The Inofficial Pragmatic Smalltalk Build Guide
Warning: This is a technical article again. And it's about GNUstep things!
Pragmatic Smalltalk ist a fairly new Smalltalk dialect by David Chisnall, which belongs to the Etoile desktop environment. It aims to integrate nicely with Etoile and GNUstep and to be an alternative to Objective-C.
I was still having a bit of a trouble installing the language, so I'll share my build instructions with you.
We'll assume you already installed GNUstep and the basic Etoile frameworks. We'll also assume a basic understanding of the GNUstep build process.
[Commands to be executed as user start with $, commands to be executed as root start with #]
- Get a fresh checkout of the Etoile SVN
- Get a copy of the LLVM development version
$ svn co http://llvm.org/svn/llvm-project/llvm/trunk
Update: When you're using the Etoile 0.4 stable version, it's probably better to use LLVM 2.4 instead.
- Build LLVM
$ ./configure --prefix=/opt/llvm --enable-targets=host-only
This may produce some errors. I had to install flex, for instance. (
#apt-get install flex)
$make install, you don't need it as long as llvm-config is in your path.
- Add the directory
/path/to/llvm/Debug/binto your path, e.g.
$ export PATH="/home/guenther/llvm/trunk/Debug/bin:$PATH"
You can also add it to your .bashrc if you intend to follow Pragmatic Smalltalk development.
- If you haven't done it yet, navigate to the
Etoile/Frameworks/EtoileFoundationdirectory. Compile and install it:
# make && make install
- In the Etoile checkout, go to
Etoile/Languages/and into the directories LanguageKit, SmalltalkKit, Compiler. Compile and install them in order using
# make install.
Update: Actually, directory names have changed a bit recently. However, this is easy to figure out once LLVM is installed. :)
For SmalltalkKit, you will need the lemon parser generator. (
#apt-get install lemon)
- Go to the
Compilerdirectory, test it:
edlc -f test.st
Update: There are two ways this procedure can go wrong:
- Building fails: Check if something fundamental changed in the way this is built. It's usually announced on the Etoile news blog. If it's a deeper issue (a bug?), you may want to get a Silc client and ask in the chatroom.
- Running particular programs with edlc fails: Check where the
problems are by running the test suite in Smalltalk/Tests
sh runall.sh). If these tests work, but your example doesn't, you can help greatly by filing a bug report with a test. (It's easy. A test is a directory starting with 'Test', containing a Smalltalk program test.st and its expected output in expected.txt.)