So far Koala only runs on Windows. I hope to fix this as soon as possible.

If you’re using the binary version, you can start the demo application by double clicking on koala-example.exe in the koala/bin/ directory.

If you have the source version, see Building Koala, below.

Point your browser at http://localhost/ to browse the documents in koala/www, or <http://localhost/demo/home.dsp for the Dylan Server Pages demo. If you want to change the default settings (for example the port number or document root directory) you can edit a copy of koala-dir/config/koala-config.xml and put it in sources/example/config/koala-config.xml. The config file has many comments explaining configuration settings.

Building on Windows

If you have a source distribution then you can build Koala using Functional Developer (free evaluation versions available). Just open sources/koala-app/koala-app.hdp in FunDev and choose Project / Build
from the menu. You will probably want to edit the koala-config.xml file to turn on debugging. (See comments in the file for how to do that.)

Building on Linux

(Thanks to Hannes Mehnert for figuring out how to do this.)

  • get fundev cvs module
  • apply following patch (in Sources/lib/run-time/pentium-linux/) to mask SIGPIPE:
    diff -u -r1.1.1.1 x86-linux-exceptions.c
    --- x86-linux-exceptions.c      12 Mar 2004 00:09:07 -0000      1.1.1.1
    +++ x86-linux-exceptions.c      30 Mar 2004 00:56:20 -0000
    @@ -54,6 +54,8 @@
       struct sigaction newFPEHandler;
       struct sigaction newSEGVHandler;
     
    +  sigset_t set, oldset;
    +
       newFPEHandler.sa_handler = oldFPEHandler->sa_handler;
       sigemptyset(&newFPEHandler.sa_mask);
       newFPEHandler.sa_flags = 0;
    @@ -63,6 +65,10 @@
       sigemptyset(&newSEGVHandler.sa_mask);
       newSEGVHandler.sa_flags = 0;
       sigaction(SIGSEGV, &newSEGVHandler, oldSEGVHandler);
    +
    +  sigemptyset(&set);
    +  sigaddset(&set, SIGPIPE);
    +  sigprocmask(SIG_BLOCK, &set, &oldset);
     }
     
     static void RemoveDylanExceptionHandlers (struct sigaction * oldFPEHandler,
    
  • bootstrap fundev
  • get libraries cvs module
  • make a personal registryThere’s a simple script to create the registries for you, in
    KOALA-DIR/make-registries.sh. For example, if your koala checkout
    is in /home/me/libraries/koala and you want your registry to be in
    /home/me/dylan:

    cd /home/me/dylan
    /home/me/libraries/koala/make-registries.sh ../libraries/koala
    
  • start Bootstrap.final/bin/minimal-console-compiler
  • set personal-root “/home/me/dylan/registry”
  • open koala-app
  • build(you’ll find the build products in /home/me/dylan/registry/Build/bin)
  • create /home/me/dylan/registry/Build/config/ and put koala/config/mime-type-map.xml
    and koala/config/koala-config.xml in it
  • If not running koala-app as root, update koala-config.xml to use a port
    number above 1024.
  • If you’re on linux-2.6 you need to set THREAD_LIBRARY_USES_SEGMENT_REGISTER to TRUE
    (export THREAD_LIBRARY_USES_SEGMENT_REGISTER=TRUE in bash,
    setenv THREAD_LIBRARY_USES_SEGMENT_REGISTER TRUE in tcsh)
    and run ‘strace ./dsp-basics’
  • now run koala-app


User’s Guide

–TO BE DOCUMENTED–

To access the XML-RPC server, POST to http://localhost/RPC2.
(Going to that URI when Koala is running will result in a valid XML-RPC fault response, since
there’s no request document to parse.)

The XML-RPC client is available as the xml-rpc-client library in
koala-dir/sources/xml-rpc-client. The main interfaces are the
xml-rpc-call and xml-rpc-call-2 methods. The latter takes a port number
and URL in addition to the method name and arguments.