Install

Installing on Windows

  1. Click on a release from https://github.com/arvyy/islisp-truffle/releases/

  2. Download islisp.exe artifact, place it in convenient location eg C:\Program files\ISLISP\islisp.exe

  3. Optionally; add above directory to your PATH system variable https://www.wikihow.com/Change-the-PATH-Environment-Variable-on-Windows .

Installing on Linux

  1. Click on a release from https://github.com/arvyy/islisp-truffle/releases/

  2. Download islisp-linux artifact, place it in convenient location eg /opt/islisp/islisp

  3. You might need to execute chmod +x islisp-linux after downloading to make it executable.

  4. Optionally; add above directory to your PATH system variable https://www.baeldung.com/linux/path-variable .

Installing on Mac

  1. Click on a release from https://github.com/arvyy/islisp-truffle/releases/

  2. Download islisp-mac artifact, place it in /usr/local/bin/islisp

  3. You might need to execute chmod +x islisp-mac after downloading to make it executable.

  4. You might need to execute sudo xattr -r -d com.apple.quarantine islisp-macos to remove the quarantine attribute (macOS Catalina and later).

Running on Docker

ISLISP images are provided on docker hub https://hub.docker.com/r/arvyy/islisp/tags

Installing in Polyglot context

One of the advantages of truffle framework is its support for interop between languages. However, the interpreter binary is statically compiled and does not include any other language by default. To include other languages, either:

  1. Add necessary language’s maven dependencies to launcher/pom.xml and build from source;

  2. Download and unpack a release of one of other truffle’s languages, eg https://github.com/oracle/graaljs/releases/ . Download islisp.jar artifact from https://github.com/arvyy/islisp-truffle/releases/. Put islisp.jar into a directory that contains java modules, in graaljs example this would be modules folder. Finally, run the other language launcher with necessary flags to enable polyglot programming and thus make ISLISP language accessible; in graaljs example this would be running node --polyglot.

Run

Run interpreter with -h or --help option to see command line help.

Interpeter parses options provided in the form of --<option>=<value>, and transparently passes them through to truffle runtime. ISLISP specific options are as follows:

  • islisp.Sourcepath — when using require form, islisp searches from roots provided through this option. Option value: set of paths, separated by :.

Use --experimental-options to enable experimental options.

See truffle documentation for other recognizable options.

Interpreter tools (debugger, profiler, …​)

See https://www.graalvm.org/latest/tools/ for the list of available tools and necessary options for enabling it. ISLISP standalone interpreter by default comes with all tools included.

Execution modes

Invoking interpreter with a file parameter will run said file and exit upon completion.

Invoking interpreter with a - parameter will make it read source from standard input, execute it, and exit upon completion.

Otherwise, interpreter is started in an interactive REPL mode.