[squeak-dev] Bootstrap (was Smalltalk for small projects only)
frank.shearar at gmail.com
Wed Feb 1 10:40:07 UTC 2012
On 1 February 2012 03:55, Chris Cunnington
<smalltalktelevision at gmail.com> wrote:
> "If you compare building an automated bootstrap for Smalltalk
> (I just did one for Newspeak over the last few days)"
> Hi Eliot,
> If you could say something about this bootstrap for Newspeak, it would
> better inform Squeak's development.
> Or at lease better inform this apparatchik. :)
> Clearly, you are not a fan of an image bootstrapped from external files
> using an external compiler.
> How is what you just did for Newspeak different?
> " In Squeak the FFI, file system
> and external process interfaces are really weak. A good challenge would be
> to reimplement ANT (a Java application) in Squeak/Pharo."
> Apache Ant. A build tool. We use CMake. A build tool for making vms.
> I want to ask a question here, but I cannot, because I cannot see how that
> relates to FFI.
> I'm tempted to say you mean a build tool written in Smalltalk to grow a
> bootstrap nubbin...
We do: it's called Metacello . It lets you
* describe the (acyclic!) dependency graph between your packages
* describe what versions of those packages make up your versioned release
* describe your external dependencies
* bootstrap the whole lot, loading transitive dependencies.
There are a few wrinkles in it, as with everything - things don't work
perfectly (yet) in an offline environment - but Dale Henrichs welcomes
bug reports/fixes and is actively maintaining the project.
The only things that I don't particularly like about Metacello at the moment are
* the description's in Smalltalk, a Turing complete language. It
requires (not a lot of) discipline not to make your build crazily
parameterised and unrepeatable.
* you have inessential artifacts - your ConfigurationOfFoo packages +
classes - in your image because Metacello builds from the inside of an
The latter's easily addressable by turning your ConfigurationOfFoo
into an Installer script and using that as a startup script for a
More information about the Squeak-dev