MPS issue job003322

TitleExternal interface contains useless "fixed" object format
Statusclosed
Prioritynice
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionThe external interface to the MPS [1] declares the structure "mps_fmt_fixed_s" which is just like "mps_fmt_A_s" except for the lack of a skip method. The only place this structure is used is as an argument to mps_fmt_create_fixed.

It seems that this is an object format suitable for pools containing formatted objects of fixed size. (Such a pool would not need to call the skip method to work out the size of each object.) However, there are no such pools, so this object format cannot be used.
AnalysisTwo possibilities:

1. Remove mps_fmt_fixed_s and mps_fmt_create_fixed from the external interface.
2. Write an automatic fixed size pool class that could use it.

GDR 2013-05-27: I documented and deprecated them.
How foundinspection
Evidence[1] <https://info.ravenbrook.com/project/mps/master/code/mps.h>
Observed in1.110.0
Created byGareth Rees
Created on2012-10-18 16:33:19
Last modified byGareth Rees
Last modified on2013-05-28 16:15:25
History2012-10-18 GDR Created.

Fixes

Change Effect Date User Description
182277 closed 2013-05-28 16:10:08 Gareth Rees New public function mps_fmt_create_k creates an object format using the keyword argument interface.
Deprecate the format variant structures (mps_fmt_A_s, mps_fmt_B_s, mps_fmt_auto_header_s, mps_fmt_fixed_s) and the old interface (mps_fmt_create_A, mps_fmt_create_B, mps_fmt_create_auto_header, mps_fmt_create_fixed).