[Vm-dev] Re: Check new directory structure for RiscOS build (was: [commit][2807] look for plugins.{int,ext,exc} in build, unix/cmake and src; parse plugin lists more robustly)

David T. Lewis lewis at mail.msen.com
Sun Nov 17 15:31:54 UTC 2013

On Sat, Nov 16, 2013 at 09:52:39PM -0800, tim Rowledge wrote:
> Thanks for the explanation. It certainly sounds good to me and I'll see what RISC OS vmakes of it when i get home. Getting all systems on the same track will be nice.

There is one other issue that is not yet resolved in trunk. We should
discuss after you get back and have had a chance to look at Risc OS
builds, but just FYI the issue is that in trunk, sqNamedPrims.h is
being generated by VMMaker at source generation time, and it needs to
match the contents of plugins.int. In Cog this is done with a shell
script at build time and the sqNamedPrims.h generation is removed
from VMMaker. We will need to do this or something similar in trunk,
but I'm not sure how the issue should be handled for non-Unix platforms.

> When I originally wrote vmmaker I wanted to use the same trick Eliot used to use for brouhaha sources - directories of sub component files with target platform directories consisting of links to the appropriate files. But sadly squeak didn't support links and so I couldn't think of a way to get that back in 2000. Of course most non unix OS didn't do 
> Iinks anyway then, either; I'm not sure they do them properly even now.

I think this remains a limitation today today because of the wide use of
USB sticks formatted with simple file systems that do not understand links.

> Maybe it's a dumb idea but how about having some Svn branches for each platform, so that the right subset of the entire tree can be quickly downloaded without the 'waste' of unneeded files? And we really ought to develop the habit of tagging releases so one can get the right set of files for an older vm - I had great fun early this year trying to work out which revision was a match for the 4.0 vm I needed to build.

We can't fix the past, but moving forward this may be less of a concern.
Suppose that you have a VM identified as follows:

lewis at linux-jh8m:/tmp/squeak/VMM-20131027/platforms> squeak -version
4.12.8-2812 #1 XShm Fri Nov 15 13:32:00 EST 2013 gcc 4.5.0
Linux linux-jh8m #1 SMP PREEMPT 2011-12-13 18:27:38 +0100 x86_64 x86_64 x86_64 GNU/Linux
plugin path: /usr/local/lib/squeak/4.12.8-2812 [default: /usr/local/lib/squeak/4.12.8-2812/]

And suppose also that you know that the VM was compiled from trunk/platforms
and trunk/src (where trunk/src is whatever you and I remembered to check in
to SVN after making our VMMaker updates). Then you can check out of full
set of source code from Subversion by specifying revision level 2812. This
is not as reliable as building from a known source tarball, but it should
get you pretty close.

> /tim
> {insert witticism here}

Wow, no witty signature? You must be finding yoursome in some very
remote and primitive part of the world. I'm picturing you doing email
on a stone tablet with a stick.


More information about the Vm-dev mailing list