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/trunkUpdate: 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
Don’t do
$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
$makeand#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.stHave fun!
- 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.)