Making a pluggable primitive - basic questions
David T. Lewis
lewis at mail.msen.com
Mon Jan 16 15:07:06 UTC 2006
On Mon, Jan 16, 2006 at 01:30:12PM -0000, Bob.Cowdery at CGI-Europe.com wrote:
> Brad Fuller wrote:
> > Configuring and building the VM was the hardest thing for me to get
> > going. I first tried to build the whole VM before I tackled creating a
> > plugin. Then, when I got the VM process building down, I moved on to a
> > plugin. I took little steps. And.. I still ain't walking.
> I 'm not going to try and build the VM, just my plugin. First thing I now
> come up against is where are the header files like sqVirtualMachine.h. I
> have read everything I can get hold of but no clues so far. The closest I
> get is something called InterpreterSupportCode but my image doesn't seem to
> have that class. I guess it should be exportable from the image - but how -.
For developing your plugin, there is no need to use the latest
and greatest VM source or VMMaker. You may find it easier to
just get a stable combination of slightly out-of-date Squeak
and source code.
For stable source, look at www.squeakvm.org. For example, if you
are building something for unix/linux, you can use
This contains the platform sources, including sqVirtualMachine.h.
Then just use a stable Squeak 3.7 full image, which will include
an out-of-date but perfectly servicable VMMaker. The combination
should work fine for building plugins. And you *should* build a
complete VM, not just your plugin. It will only take a few minutes
extra, and it makes it possible to use all the existing configure
and make procedures. Once you've done this, you can use VMMaker
to regenerate your plugin as you develop it, and the make procedure
will rebuild just your plugin as you would expect.
The only caution I would add is to be aware that the up-to-date
sources are intended to support both 64 bit and 32 bit images, so
everything that defaulted to type "int" in the older sources is
now defined as type "sqInt", which might be either 32 bits or
64 bits. Just don't assume that anything defaults to an int, and
read http://www.squeakvm.org/squeak64/ if you want some more
background. But don't lose any sleep over the issue, it's fairly
easy to update your plugin for 64 bit later on if you don't feel
like worrying about it right now.
More information about the Squeak-dev