Idris version 0.9.5 has been released on Hackage. To install, run cabal update and type cabal install idris. This release includes a new termination checker, coinduction, much improved compilation and code generation through more aggressive erasure and inlining, as well as several minor additions and fixes.
It includes the following user visible changes:
- Added
codatadeclarations- as
datadeclarations, but constructor arguments are evaluated lazily - functions which return a
codatatype do not reduce at compile time
- as
- New termination checker supporting mutually recursive definitions.
- Added
parametersblocks - Allow local data definitions in where blocks
- Added
%defaultdirective to declare total-by-default or partial-by-default for functions, and a correspondingpartialreserved word to mark functions which are allowed to be partial. - Command line options
--totaland--partialto declare total or partial by default. - Command line option
--warnpartialfor flagging all undeclared partial functions, without error. - Added
:loadcommand to REPL, for loading a new file - Added
:modulecommand to REPL, for adding modules - Renamed library modules (now have initial capital)
The internal changes are:
- Added collapsing optimisation and more aggressive erasure
- Several improvements and fixes to unification
Thanks to everyone who has helped put this release together.
As always, please report any problems on the github issue tracker. Also, do let us know how you get on in general either via the mailing list or the #idris channel on irc.freenode.net.
Comments are closed.