edwinb / Idris2-boot

A dependently typed programming language, a successor to Idris
https://idris-lang.org/
Other
903 stars 58 forks source link

Idris 2

Build Status

This is the bootstrapping version of Idris 2, the successor to Idris. Its sole purpose is to build Idris 2 proper. Most likely, you will want to install that directly, unless you're following the bootstrapping path from scratch.

Please note: To build, this requires Idris version 1.3.2

Idris 2 is mostly backwards compatible with Idris 1, with some minor exceptions. The most notable user visible differences, which might cause Idris 1 programs to fail to type check, are:

Watch this space for more details and the rationale for the changes, as I get around to writing it...

Summary of new features:

A significant change in the implementation is that there is an intermediate language TTImp, which is essentially a desugared Idris, and is cleanly separated from the high level language which means it is potentially usable as a core language for other high level syntaxes.

Installation

To build and install what exists of it so far:

You'll need to set your PATH to $PREFIX/bin You may also want to set IDRIS_CC to clang, since this seems to build the generated C significantly faster.

Note: If you edit idris2.ipkg to use the opts with optimisation set (--cg-opt -O2) you'll find it runs about twice as fast, at the cost of taking a couple of minutes to generate the idris2 executable.

You can check that building succeeded by running

I make no promises how well this works yet, but you are welcome to have a play. Good luck :).

Information about external dependencies are presented in INSTALL.md.

Things still missing

Talks

Idris 2 - Type-driven Development of Idris (Curry On - London 2019)