Idris-dev/README.md

79 lines
3.6 KiB
Markdown
Raw Normal View History

2014-09-30 16:31:48 +04:00
# Idris
[![Build Status](https://travis-ci.org/idris-lang/Idris-dev.svg?branch=master)](https://travis-ci.org/idris-lang/Idris-dev)
2015-03-20 13:31:10 +03:00
[![Documentation Status](https://readthedocs.org/projects/idris/badge/?version=latest)](https://readthedocs.org/projects/idris/?badge=latest)
2014-09-30 16:33:04 +04:00
[![Hackage](https://budueba.com/hackage/idris)](https://hackage.haskell.org/package/idris)
2014-09-30 16:31:48 +04:00
Idris (http://idris-lang.org/) is a general-purpose functional programming
2011-11-07 04:15:08 +04:00
language with dependent types.
## Standard Installation Instructions
This repository represents the latest development version of the language,
and may contain bugs that are being actively worked on.
For those who wish to use a more stable version of Idris please consider
installing the latest version that has been released on Hackage.
Installation instructions for various platforms can be [found on the Idris Wiki](https://github.com/idris-lang/Idris-dev/wiki/Installation-Instructions).
## Installing Development Versions
If you like to work against the latest development version, please consider
using Cabal Sandboxes to minimise disruption to your local Haskell setup.
Instructions for installing Idris HEAD within a cabal sandbox are
[available on the Idris Wiki](https://github.com/idris-lang/Idris-dev/wiki/Installing-an-Idris-Development-version-in-a-sandbox).
2012-10-29 22:57:34 +04:00
To configure, edit config.mk. The default values should work for most people.
Idris is built using a Makefile common targets include:
2013-02-25 18:16:07 +04:00
* `make` This will install everything using cabal and
typecheck the libraries.
* `make test` This target execute the test suite.
* `make relib` This target will typecheck and recompile the standard library.
2013-07-06 05:46:00 +04:00
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 a `custom.mk` file and add the
following line to it:
`CABALFLAGS += -f FFI`
2013-11-08 11:00:02 +04:00
The file custom.mk-alldeps is a suitable example.
2013-07-06 05:46:00 +04:00
The continuous integration builds on travis-ci.org are built using the
ghc-flag -Werror. To enable this behaviour locally also, please compile
using `make CI=true` or adding the following line into `custom.mk`:
2015-01-04 20:20:40 +03:00
`CI = true`
If you are only compiling for installing the most current version, you can
omit the CI flag, but please make sure you use it if you want to contribute.
2015-01-04 20:20:40 +03:00
## Code Generation
2014-09-24 23:50:40 +04:00
Idris has support for external code generators. Supplied with the distribution
is a C code generator to compile executables, and a JavaScript code generator
2014-09-24 23:50:40 +04:00
with support for node.js and browser JavaScript.
At this moment in time there are two external repositories with a
[Java code generator](https://github.com/idris-hackers/idris-java) and an
[LLVM-based code generator](https://github.com/idris-hackers/idris-llvm).
## More Information
If you would like to find out more information, or ask questions, we
currently have a [Wiki](https://github.com/idris-lang/Idris-dev/wiki);
a [mailing list](https://groups.google.com/forum/#!forum/idris-lang),
and an `IRC` channel `#idris` on freenode. To join the IRC channel,
point your irc client to `chat.freenode.net` then `/join #idris`.
For those further interested in using Idris for projects, the
[Idris Hackers](https://github.com/idris-hackers) GitHub organisation is
where some interesting projects are being hosted.
2013-09-27 03:58:11 +04:00
For those interested in contributing to Idris directly we kindly ask that
prospective developers please consult the [Contributing Guide](CONTRIBUTING.md) first.