[squeak-dev] Modular Plugins

Igor Stasenko siguctua at gmail.com
Mon Dec 21 09:10:09 UTC 2009

2009/12/21 David T. Lewis <lewis at mail.msen.com>:
> On Mon, Dec 21, 2009 at 09:04:21AM +0530, K. K. Subramaniam wrote:
>> Hi,
>> Currently, the *Plugin.c file is generated from Slang code which is pre-loaded
>> into the vmm image and not distributed with the plugins/ directory. The first
>> line in such generated files is a cryptic:
>>  /* Automatically generated from Squeak on #(7 March 2007 2:25:53 pm) */
>> This line contains no clue about the version of the slang code or the vmm
>> which translated it to C.
> Are you using an up to date VMMaker from SqueakSource? If so, you should
> be seeing comments that look like this:
> /* Automatically generated from Squeak on 20 December 2009 11:41:57 pm
>   by VMMaker 3.11.10
>  */
> The "3.11.10" version stamp comes from VMMaker class>>versionString.
> The #versionString method is updated by hand, and therefore is subject
> to human error, but it works fairly well in practice.
> On the unix VMs (not sure of the others yet), the VM identifies itself
> as e.g. "3.11.10-2146", which refers to a VM built with generated code
> from VMMaker version 3.11.10 and platform sources from Subversion
> revision level 2146. This provides at least a reasonable level of
> traceability to the source code, some of which is managed under
> Monticello, and some of which is managed under Subversion.
> Having part of the source managed under Monticello and part of
> it managed under Subversion does cause confusion, especially for
> people who expect source code to be written in C and compiled with
> "configure; make; make install". I don't know of a good solution
> to this, although I have a personal bias towards keeping as much
> of the system as possible in Smalltalk, hence Monticello. But
> that's my just personal opinion, and I suspect that many others
> are more comfortable keeping things in external files. I'll be
> interested to hear other folks' POV on this.

Sorry, you won't hear from me anything which would be against your opinion :)
Keep as much as possible in smalltalk. I helped me a lot when making a HydraVM,
and it definitely will help others who would want to port it on
different platform or even language.

> One thing I do have a strong opinion on: The generated C source
> code that is translated from Slang should *not* be treated as
> source code. It is intermediate code, like the *.o from a C
> compiler. I understand that Linux/GNU distribution maintainers
> do need a copy of source code from which a VM can be built, and
> the C version is much more convenient for this (hence the
> platforms/unix/src files that are kept for this purpose).
> But the real source is written in Smalltalk, and Monticello
> is a much more effective version control system for this.
+1 here.
I already said before, that keeping a generated sources in version
tracker is overkill.
There was arguments for keeping them so you can build it w/o running VM.
Or building VM from first principles (on completely virgin platform)
where you don't have anything but C compiler..
(this is a bit stretched, as to me, since you can always do
preparations on different platform, where VM already can be run to
generate those damned C sources :)

Other aspect is to compare generated sources by your with those which
in repository.. Never did that.. maybe its useful?

> Dave

Best regards,
Igor Stasenko AKA sig.

More information about the Squeak-dev mailing list