Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
To download and build rainbow and open a REPL:

  git clone git://
  cd rainbow
  ant           # yes, twice. The second time uses rainbow to generate optimisations of itself
  cd src/arc
  java -server -jar rainbow.jar

Make sure you have ant installed, including the optional libraries. On ubuntu or similar,

  sudo apt-get install ant ant-optional

On macosx, ant comes with the Developer Tools.

Rainbow comes with a small number of sample apps that demonstrate how to access java from arc.

Welder, an arc IDE:

  arc> (welder "rainbow/welder.arc")

A filesystem browser that opens files in welder

  arc> (fsb)

Play tetris:

  arc> (tetris)

Play minesweeper:

  arc> (mines)

A web application that plots z <- z^2 + c, the Mandelbrot formula:

  arc> (start-spiral-app)

Run all tests:

  arc> (rat)
  passed: 409
  failed: 0

Run benchmark suite:

  arc> (rbs)

You should see a report at the end resembling this:

                           avg       min       max
  arc-code-indexer         201.845   173       353
  find-top-numbers         63.815    61        78
  generate-primes          31.105    30        37
  read-arc-dot-arc-content 33.195    29        90
  sort-random-numbers      90.66     84        121
  string-tokeniser         89.6      83        152

Profile invocation counts and times for a function:

  arc> (profiler (repeat 5 (tokens (rand-string 1000) #\0)))

Rainbow command-line options:
  -f file1 ... fileN        # evaluate each file
  -e '(arc axpr)'           # evaluate arc expr (after having evaluated -f, if specified)
  -args a b c               # sets "*argv*" in the arc environment to (a b c). This option, if present, must be specified last.
  -q                        # no REPL
  --no-libs                 # don't load any arc libraries. Not even arc.arc.


No releases published


No packages published