One option for running Gwydion Dylan on the Microsoft Windows operating system is by utilizing Cygwin, a Linux-like environment for Windows. The following steps should allow you to build you a working Gwydion Dylan compiler on Windows.

1) Install Cygwin

Download the current version of the Cygwin setup program from the
Cygwin web site.

Run the setup program and install the default Cygwin packages plus
these additional packages (at a minimum):

  • Devel/autoconf
  • Devel/automake
  • Devel/bison
  • Devel/flex
  • Devel/gcc
  • Devel/gcc-g++
  • Devel/gdb
  • Devel/libtool
  • Devel/make

If you are going to download the Gwydion Dylan source code using CVS, you will want to also install the following package:

  • Devel/cvs

2) Install the Boehm-Demers-Weiser conservative garbage collector

Download the version 6.2 source package from http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/ and save it into your Cygwin user home directory

Start a Cygwin bash shell from the Windows start menu

Execute commands similar to the following:

tar -zxvf gc6.2.tar.gz
cd gc6.2
./configure
make
make install

3) Retrieve the source code

These instructions assume you will place the Gwydion Dylan source code in the directory ~/gd/src

You have two options for obtaining the Gwydion Dylan source code:
downloading a tarball of the source code, or alternatively, by retrieving the Gwydion Dylan source code from the repository using the CVS version control system.

To get the source code via SVN, checkout the 2.4 branch of the source:

mkdir gd
cd gd
svn checkout svn://anonsvn.gwydiondylan.org/scm/svn/dylan/branches/GD_2_4/src

4) Build the dbclink tool

For the Windows version of Gwydion Dylan you need to compile and install a special program to allow Gwydion Dylan’s Mindy byte compiler to work correctly:

cd ~gd/src/tools/win32-misc
make dbclink
cp dbclink.exe /usr/local/bin

Now you are ready for the main part of the build.

5) Build the system

Since you don’t already have a working copy of Gwydion Dylan you need to do a ‘bootstrap’ from Mindy. Mindy is a Dylan bytecode interpreter. It compiles Dylan to a bytecode and interprets that bytecode. When bootstrapping, Mindy is used to compile Gwydion Dylan and then that bytecode version is used to re-compile Gwydion Dylan to C. That c-compiled version becomes the final Gwydion Dylan compiler that is installed.

If it sounds like a long process, that’s because it is. Mindy interpreted programs are quite slow. Don’t despair though. Run it overnight and you’ll have a super fast Gwydion Dylan compiler in the morning. Once you have this bootstrapped compiler you need never bootstrap again. Just use the existing Gwydion Dylan binary to rebuild the system if you want to modify the compiler.

To bootstrap, perform the following steps:

cd ../..                                  (this should return you into ~/gd/src)
./autogen.sh --with-gc-prefix=/usr/local
make

This will bootstrap d2c. It will take a long time.

After make completes, execute the following:

make install

6) Rebuild with the new d2c

Using the newly bootstrapped d2c, try rebuilding d2c again to test that it works okay. This should work faily quickly as you are not using Mindy to do the build. If you ever want to re-bootstrap with Mindy, pass the --enable-mindy-bootstrap argument to configure.

cd ~/gd/src
./configure --with-gc-prefix=/usr/local
make
make install

7) Test the system

Test the system with a simple ‘hello world’ application:

cd
make-dylan-app hello
cd hello
make
./hello

You should see Hello, World! appear on the console.

8) Done!

Well done, you’ve successfully built Gwydion Dylan for Windows!

Note: Once you compile and install, you may get the following problem: programs
compile but don’t link because libtool require a blank configure.in – just run
touch configure.in to create a blank one to solve that. This is
a workaround at this stage… 🙂

You may also want to download the libraries and examples, which you can do
with the following commands:

svn checkout svn://anonsvn.gwydiondylan.org/scm/svn/dylan/trunk/libraries
svn checkout svn://anonsvn.gwydiondylan.org/scm/svn/dylan/trunk/examples