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

Reply via email to