On Friday 14 April 2017 03:39 PM, Luke Gorrie wrote:
- The latest Pharo VM source release is compatible with the latest Pharo image.
This is too strong a condition. For the OS, an image is just a filesystem within a file. It is sufficient if the VM does not use the same executable name if it cannot execute the same image. After all, the VM is a machine and is not likely evolve as rapidly as the image it runs. If it cannot handle an image format then it should not reuse that VM's name.
Linux already supports binfmt_misc fs to handle such images. VMMaker can generate magic(5) file in addition to src/* files from which package post-installers can register multiple interpreters in /proc/sys/fs/binfmt_misc/. Python and Qemu use this to run different bytecode and instruction sets.
BTW, I am attaching a magic pattern file generated automatically from ImageFormat class in VMMaker image to illustrate my point.
Regards .. Subbu
# Smalltalk image file formats 0 lelong 6502 Smalltalk image V3 32b (%d) !:mime application/squeak-image 0 belong 6502 Smalltalk image V3 32b (%d) !:mime application/squeak-image 0 lelong 6504 Smalltalk image V3 32b +C (%d) !:mime application/cog-image 0 belong 6504 Smalltalk image V3 32b +C (%d) !:mime application/cog-image 0 lelong 68000 Smalltalk image V3 64b (%d) !:mime application/squeak64-image 4 belong 68000 Smalltalk image V3 64b (%d) !:mime application/squeak64-image 0 lelong 68002 Smalltalk image V3 64b +C (%d) !:mime application/cog64-image 4 belong 68002 Smalltalk image V3 64b +C (%d) !:mime application/cog64-image 0 lelong 6505 Smalltalk image V3 32b +C+NF (%d) !:mime application/cog-image 0 belong 6505 Smalltalk image V3 32b +C+NF (%d) !:mime application/cog-image 0 lelong 68003 Smalltalk image V3 64b +C+NF (%d) !:mime application/cog64-image 4 belong 68003 Smalltalk image V3 64b +C+NF (%d) !:mime application/cog64-image 0 lelong 6521 Smalltalk image Spur 32b +C+NF (%d) !:mime application/spur-image 0 belong 6521 Smalltalk image Spur 32b +C+NF (%d) !:mime application/spur-image 0 lelong 68019 Smalltalk image Spur 64b +C+NF (%d) !:mime application/spur64-image 4 belong 68019 Smalltalk image Spur 64b +C+NF (%d) !:mime application/spur64-image 0 lelong 68021 Smalltalk image Spur 64b +C+NF+Tag (%d) !:mime application/spur64-image 4 belong 68021 Smalltalk image Spur 64b +C+NF+Tag (%d) !:mime application/spur64-image