On Wed, 21 Jul 2010, David T. Lewis wrote:
On Wed, Jul 21, 2010 at 12:42:06AM -0700, Andreas Raab wrote:
On 7/20/2010 7:10 PM, David T. Lewis wrote:
The current VMMaker for SqueakVM does not use or support pragmas (method annotations). Converting to pragmas makes VMMaker unloadable in older Squeak images.
But these Squeak images won't run on the generated VM either. There is a point and a time when it's worthwhile to move forward and given that we've just hit a new major version in Squeak it seems quite reasonable to say that the VMMaker 4 series requires Squeak 4 to run on.
Actually many older images do run on the latest VMs. I frequently run Squeak 3.6 (and sometimes Squeak 2.4) on the latest VM whenever I want to look at older versions of methods to figure out how they were originally intended to work. I do expect these older images to run on newer VMs to the extent possible.
That's a nice feature. I think I didn't try running anything older than 3.6 on the 4.0.x SqueakVM. IIRC some numbered primitives were reused, so I don't expect current VMs to function correctly with older images. I usually run then with their own VMs.
I regularly run VMMaker in a 3.8 image, and I always run that image on the latest generated VM. But the only real reason I do that is to verify some degree of backward compatibility for VMMaker updates, so I don't really know if this matters to anyone else.
Certainly for most of the folks on this list, doing VM work in a recent Squeak, Pharo, or Cuis image is a reasonable expectation. On the other hand, there may still be people who for various reasons prefer to use other images, and it would be nice if the most up to date VMMaker remains loadable in those images where possible.
If anyone on the list *does* know of a need for VMMaker to work on images that do not support pragmas, please speak up now so we do not cause unnecessary problems.
I am also curious about the motivation for using method annotations here. Is it a style preference, or is there a functional benefit?
I think the biggest benefit is the separation of declarations and slang code.
Levente
Dave