Idris2/INSTALL.md

120 lines
4.1 KiB
Markdown
Raw Normal View History

2020-06-17 02:36:26 +03:00
# Installing
- [Installing from source](#installing-from-source)
2020-07-08 22:39:41 +03:00
- [Installing from a package manager](#installing-from-a-package-manager)
2020-06-17 02:36:26 +03:00
## Installing from source
2020-05-18 16:45:12 +03:00
The easiest way to install is via the existing generated Scheme code.
The requirements are:
2020-05-20 00:56:27 +03:00
2020-06-17 02:36:26 +03:00
- A Scheme compiler; either Chez Scheme (default), or Racket.
- `bash`, with `realpath`. On Linux, you probably already have this.
On a Mac, you can install this with `brew install coreutils`.
On FreeBSD, OpenBSD and NetBSD, you can install `realpath` and `GNU make`
using a package manager. For instance, on OpenBSD you can install all of them
with `pkg_add coreutils gmake` command.
2020-05-20 00:56:27 +03:00
On Windows, it has been reported that installing via `MSYS2` works
(https://www.msys2.org/). On Windows older than Windows 8, you may need to
set an environment variable `OLD_WIN=1` or modify it in `config.mk`.
On Raspberry Pi, you can bootstrap via Racket.
2020-05-20 00:56:27 +03:00
By default, code generation is via Chez Scheme. You can use Racket instead,
by setting the environment variable `IDRIS2_CG=racket` before running `make`.
If you install Chez Scheme from source files, building it locally,
make sure you run `./configure --threads` to build multithreading support in.
2020-05-20 00:56:27 +03:00
**NOTE**: On FreeBSD, OpenBSD and NetBSD you need to use `gmake` command instead
of `make` in the following steps.
2020-06-17 02:36:26 +03:00
### 1: Set the PREFIX
2020-06-17 02:36:26 +03:00
- Change the `PREFIX` in `config.mk`. The default is to install in
`$HOME/.idris2`
2020-05-20 16:56:48 +03:00
If you have an existing Idris 2, go to the alternative Step 2. Otherwise, read on...
Make sure that:
2020-06-17 02:36:26 +03:00
- `$PREFIX/bin` is in your `PATH`
- `$PREFIX/lib` is in your `LD_LIBRARY_PATH` or `DYLD_LIBRARY_PATH` if on
`macOS` (so that the system knows where to look for library support code)
2020-06-17 02:36:26 +03:00
### 2: Installing without an existing Idris 2
2020-08-17 10:16:22 +03:00
You can build from pre-built Chez Scheme source, as long as you have Chez Scheme
installed (or, alternatively, Racket). To do this, enter one of the following:
2020-06-17 02:36:26 +03:00
- `make bootstrap SCHEME=chez`
- `make bootstrap-racket`
2020-06-17 02:36:26 +03:00
`chez` is the executable name of the Chez Scheme compiler. You may need to
replace this with the executable for Chez Scheme on your system. This could be
2020-05-19 23:05:52 +03:00
`scheme`, `chezscheme` or `chezscheme9.5` or something else, depending on your
system and the Chez Scheme version.
This builds an Idris 2 compiler from scheme code output from a working Idris 2
compiler (which isn't necessarily up to date, but is up to date enough to
build the current repository). It then rebuilds using the result, and runs
the tests.
2020-05-19 01:31:25 +03:00
If all is well, to install, type:
2020-06-17 02:36:26 +03:00
- `make install`
2020-08-17 10:16:22 +03:00
### 3: Installing with an existing Idris 2
2020-08-17 10:16:22 +03:00
If you have an earlier version of this Idris 2 installed
2020-06-17 02:36:26 +03:00
- `make all`
- `make install`
2020-08-17 10:16:22 +03:00
### 4: (Optional) Self-hosting step
As a final step, you can rebuild from the newly installed Idris 2 to verify
2020-06-17 02:36:26 +03:00
that everything has worked correctly. Assuming that `idris2` is in your
`PATH`.
2020-06-17 02:36:26 +03:00
- `make clean` -- to make sure you're building everything with the new version
- `make all && make install`
2020-08-17 10:16:22 +03:00
### 5: Running tests
2020-05-19 21:52:31 +03:00
After `make all`, type `make test` to check everything works. This uses the
executable in `./build/exec`.
2020-08-17 10:16:22 +03:00
### 6: (Optional) Installing the Idris 2 API
You'll only need this if you're developing support tools, such as an external
code generator. To do so, once everything is successfully installed, type:
2020-06-17 02:36:26 +03:00
- `make install-api`
The API will only work if you've completed the self-hosting step, step 3, since
the intermediate code versions need to be consistent throughout.
2020-06-17 02:36:26 +03:00
### Troubleshooting
If you get the message `variable make-thread-parameter is not bound` while
bootstrapping via Chez Scheme, or while running the tests when bootstrapping via
Racket, then your copy of Chez Scheme was built without thread support. Pass
`--threads` to `./configure` while building Chez Scheme to correct the issue.
2020-06-17 02:36:26 +03:00
## Installing from a package manager
### Installing using Homebrew
If you are Homebrew user you can install Idris 2 together with all the requirements
2020-07-31 03:00:12 +03:00
by running the following command:
2020-06-17 02:36:26 +03:00
brew install idris2
2020-07-31 03:00:12 +03:00
### Installing from nix
If you are a [nix](https://nixos.org/features.html) user you can install Idris 2 together with all the requirements
by running the following command:
nix-env -i idris2