Installation Instructions for Quicksilver
SPARC/Solaris architecture
  1. Decompress the archive in a directory of your choice (alias==$dir)
  2. Modify the script mmc in directory $dir/quicksilver-0.12.2.sparc-sun-solaris2.8/bin so that the MERCURY_COMPILER variable points to $dir/quicksilver-0.12.2.sparc-sun-solaris2.8/lib/mercury/bin/sparc-sun-solaris2.8/lib/mercury_compile and so that the MERCURY_CONFIG_DIR variable points to $dir/quicksilver-0.12.2.sparc-sun-solaris2.8/lib/mercury
  3. Export the following environmental variables with the following values:

    MERCURY_HOME $dir/quicksilver-0.12.2.sparc-sun-solaris2.8
    MERCURY_STDLIB_DIR $MERCURY_HOME/lib/mercury
  4. Add the following paths to your LD_LIBRARY_PATH environmental variable:

    $MERCURY_STDLIB_DIR/lib/asm_fast.gc/sparc-sun-solaris2.8
    $MERCURY_STDLIB_DIR/lib/sparc-sun-solaris2.8

  5. Add the following path to your PATH environmental variable:

    $MERCURY_HOME/bin
  6. Add the following path to your MANPATH environmental variable:

    $MERCURY_HOME/man
  7. You should be able to do the following with the file hello.m:

    $ mmc --make hello
    $ ./hello
  8. Since this compiler allows op/3 declarations, the following module, play.m, demonstrates this capability. I intentionally left out some declarations, so compiliation is slightly different:

    $ mmc --infer-all --make play
    $ ./play

Creating syntax with op/3 can become complicated when several operators interact to create a term. I've provided a module that prints the canonical representation of a parsed term (write_canonical.m) and a testing module (test_op.m) that allows prototyping of operator declarations and allows submitting terms under that syntax. The whole test system may be built in the usual way:

$ mmake test_op.depend
$ mmake test_op

Copyright © 2006, Logical Types, LLC. All rights reserved.