SqueakBootstrapper (was Re: [squeak-dev] A Bootstrap Compiler)

Yoshiki Ohshima yoshiki at vpri.org
Thu Feb 17 00:47:38 UTC 2011

  Hi, Tony,

At Wed, 16 Feb 2011 19:15:39 -0500,
Tony Garnock-Jones wrote:
> Hi Yoshiki,
> Thanks very much for SqueakBootstrapper. It's a most interesting idea!

  Hehe, thanks.  "Most interesting" is probably overstatement^^;

> I'd like to experiment further with the code you've shared, but I am 
> having trouble getting your SqueakBootstrapper.image to start, and so I 
> hope you don't mind if I ask a few questions, namely:
>   - Which virtual machine are you using it with?

  Any pre-Cog VM should work. On Windows. I happened to use 3.11.8.

>   - How different is the MObject hierarchy inside it from the MObject
>     hierarchy in John's original (current) MicroSqueak? Could I start
>     from John's MObject code and simply add your MCompiler code?

  John's version for example didn't have SymbolTable for example.  The
host image is a weird amalgam of 3.8-based image with some trunk ideas
such as method properties so AdditionalMethodState has its counterpart
in MObject.  It is quite possible to start from John's MObject code
and add MCompiler related code.  There will be a lot of unimplemented
methods, so you need to add these also.  You can check them by
"MicroSqueak unimplemented", and it should work (mostly).

  But there are other differences.  Some of the collection classes
were adapted from the trunk version and then I had a whisper of Bad
Idea Bears to make "Dictionary be identity-based and make a class
called "EqualityDictionary" for equality-based dictionary.  I still
like the idea that the default behavior of a Dictionary is
identity-based and with MicroSqueak, I can make that kind of changes
without worry about what other Squeaks do...  But these changes does
not affect the Compiler much but certain places I changed them because
of it.

  I actually made a similar thing but a bit different; a
MicroSqueak-derived image and some files that lets you write OMeta2
grammar in text file and process things from command line.  In that
one, classes and methods are more closer to John's MicroSqueak.  (But
to support the compiler the other classes needed some more methods.)

>   - Alternatively, would you be willing to provide fileouts of the
>     MObject and MicroSqueak code from your dev image that others could
>     file in to theirs?

  The image should run.  But the iamge is still BlockContext-based,
and if you want to use it with the latest trunk image for example, you
need fto fix it.

> Again, thanks very much for sharing your work.

  You're welcome!

-- Yoshiki

More information about the Squeak-dev mailing list