A Dependently Typed Functional Programming Language
Go to file
Edwin Brady 6d54cb3e53 Disallow explicit types on LHS
Except under quasiquotation. This is to prevent any arguments being
specialised to a more specific type than the function type suggests (one
place where typecase can arise).
2014-12-19 13:17:13 +00:00
benchmarks Removed '_|_' as a built in declaration and renamed it to 'Void', 2014-10-11 20:00:19 +02:00
codegen javascript: lift out node backend 2014-08-22 17:50:29 +02:00
contribs Several updates to idrislang.sty 2014-12-10 00:25:22 +00:00
examples Remove example directory 2014-04-10 14:09:26 +01:00
idrisdoc Updated signatures to use Conor colours, increased difference between links and non-links, and fixed a wrap issue in Safari and Chrome 2014-04-17 01:30:02 +02:00
iif Change TRACE mode to use -O2 2012-09-05 17:24:37 +01:00
jsrts javascript: fix for #1580 2014-10-05 00:24:54 +02:00
libs Fix visibility of imported things 2014-12-13 17:40:37 +00:00
main Completely replace ErrorT with ExceptT 2014-12-17 23:21:15 -05:00
man Fix typo in help message (language extension) 2014-09-12 21:48:50 +02:00
rts Use idris_alloc for GMP allocation 2014-12-18 00:09:25 +00:00
samples Finished making standard library naming consistent 2014-09-26 07:34:38 +02:00
src Disallow explicit types on LHS 2014-12-19 13:17:13 +00:00
test Disallow explicit types on LHS 2014-12-19 13:17:13 +00:00
.gitattributes typo fix in git attributes, adding test results to gitignore 2012-11-26 21:09:59 -05:00
.gitignore Merge pull request #1704 from eamsden/master 2014-11-28 13:17:47 -08:00
.travis.yml Don't build Idris twice in CI 2014-11-27 16:54:57 -08:00
CHANGELOG Update CHANGELOG 2014-12-15 00:42:48 +00:00
config.mk Add -DIDRIS_ENABLE_STATS to CodegenC. Add missing #ifdef IDRIS_ENABLED_STATS in rts/idris_gc.c. 2014-09-26 10:47:44 -05:00
CONTRIBUTING.md Updated contributed.md. 2014-10-15 14:09:53 +01:00
CONTRIBUTORS Update CONTRIBUTORS 2014-11-16 22:48:51 +03:00
custom.mk-alldeps Automatically detect console width 2014-02-02 19:04:46 +01:00
idris-tutorial.pdf Tutorial changes. 2013-11-28 11:40:27 +00:00
idris.cabal Use ExceptT instead of ErrorT 2014-12-17 21:24:15 -05:00
LICENSE Fix LICENSE 2011-09-14 18:01:24 +01:00
Makefile Fixed makefile spacing issues 2014-06-12 17:50:04 +01:00
mkpkg.sh Update version number to 0.9.11 2014-02-04 16:07:00 +00:00
README.md Fix a few typos in the README 2014-11-30 13:21:12 +01:00
Setup.hs Factor out LLVM backend 2014-09-20 00:13:09 +01:00

Idris

Build Status Hackage

Idris (http://idris-lang.org/) is a general-purpose functional programming language with dependent types.

To configure, edit config.mk. The default values should work for most people.

To install, type 'make'. This will install everything using cabal and typecheck the libraries.

To run the tests, type 'make test' which will execute the test suite, and 'make relib', which will typecheck and recompile the standard library.

Idris has an optional buildtime dependency on the C library libffi. If you would like to use the features that it enables, make sure that it is compiled for the same architecture as your Haskell compiler (e.g. 64 bit libraries for 64 bit ghc). By default, Idris builds without it. To build with it, pass the flag -f FFI.

To build with libffi by default, create custom.mk or add the following line to it: CABALFLAGS += -f FFI The file custom.mk-alldeps is a suitable example.

The Idris wiki contains instructions for building on various platforms and for getting involved with development. It is located at https://github.com/idris-lang/Idris-dev/wiki.

Idris has support for external code generators. Supplied with the distribution is a C code generator to compile executables, and a JavaScript code generator with support for node.js and browser JavaScript.

At the point of this writing, there are external repositories with a Java code generator and an LLVM-based code generator which can be found at https://github.com/idris-hackers/idris-java and https://github.com/idris-hackers/idris-llvm respectively.