Installation
The current implementation of eucalypt is available in the eucalypt project and can be installed as follows.
On macOS via Homebrew
If you use homebrew, you can install using
brew install curvelogic/homebrew-tap/eucalypt
Otherwise binaries for macOS x86_64 are available on the releases page.
No binaries are available for Apple Silicon yet.
On Linux
x86_64 binaries built in CI are available on the releases page
On Windows
Sorry, haven't got there yet. But you could try installing from source.
From source
You will need a rust installation and cargo.
Build and install should be as simple as:
cargo install --path .
Testing your installation
eu --version
...prints the version:
$ eu --version
eu - Eucalypt (Rust Impl: v0.2.0.0)
...and...
eu --help
...shows command line help:
reu 0.2.0
Option to select the command actually run
USAGE:
eu [FLAGS] [OPTIONS] [--] [inputs]...
FLAGS:
-d, --debug Turn on debug features
--dump-cooked Dump core expression once operator soup has been analysed for precedence
--dump-desugared Dump core expression as initially translated from syntax tree
--dump-inlined Dump core expression once inliner pass has run
--dump-pruned Dump core expression once dead ocde has been eliminated
--dump-runtime Dump code for runtime globals
--dump-stg Dump compiled STG syntax
-n, --explain Explain command (do not run)
-h, --help Prints help information
-j Shortcut for `-x json``
-l, --list-targets List targets defined in the source
-B, --batch Batch mode (no .eucalypt.d)
-Q, --no-prelude Don't load the standard prelude
-p, --parse Parse only
--quote-debug When outputing AST or Core expressions, quote as debug print of structure
--quote-embed When outputing AST or Core expressions, quote-embed as eucalypt
-S, --statistics Print metrics to stderr before exiting
-T, --test Run file as test
-v, --version Explain command (do not run)
OPTIONS:
-e, --evaluate <evaluate> Expression to evaluate
-x, --export-type <export-type> Format to export output in (e.g. yaml, json, toml, text)
-L, --lib-path <lib-path>... Add directory to lib path
-o <output> Output file to export to
-t, --target <target> Target to run (identified by target metadata in eucalypt source)
ARGS:
<inputs>... Source code / data inputs (in order)