Hi Eliot,
In hopes of documenting the various image formats now available, as well as providing a means of registering new image format numbers in the future, I put a new package "ImageFormat" in the VMMaker project on SqueakSource (change set also attached). This consists of unit tests (ImageFormatTest) and class ImageFormat. The idea is that as new image formats are created, the new image format numbers would be implemented in class ImageFormat and the unit tests would be updated to match.
Please let me know if this makes sense to you, and also if I have properly captured the Cog/StackInterpreter usage.
Here is what is currently documented in the package:
Current image format version usage:
6502: A 32-bit image with no closure support and no Cog byte reversal (6502) 6504: A 32-bit image with closure support and no Cog byte reversal (6504) 6505: A 32-bit image with closure support and Cog byte reversal (6505) 68000: A 64-bit image with no closure support and no Cog byte reversal (68000) 68002: A 64-bit image with closure support and no Cog byte reversal (68002) 68003: A 64-bit image with closure support and Cog byte reversal (68003)
Current bit allocation in the image format version:
bit 1: requires platform byte order (Cog and StackInterpreter) bit 2: used in base version numbers bit 3: used in base version numbers bit 4: used in base version numbers bit 5: free bit bit 6: used in base version numbers bit 7: used in base version numbers bit 8: used in base version numbers bit 9: used in base version numbers bit 10: free bit bit 11: free bit bit 12: used in base version numbers bit 13: used in base version numbers bit 14: free bit bit 15: free bit bit 16: free bit bit 17: used in base version numbers bit 18: free bit bit 19: free bit bit 20: free bit bit 21: free bit bit 22: free bit bit 23: free bit bit 24: free bit bit 25: free bit bit 26: free bit bit 27: free bit bit 28: free bit bit 29: free bit bit 30: free bit bit 31: free bit bit 32: extension bit (reserved)
Cheers, Dave
vm-dev@lists.squeakfoundation.org