The idris package

[Tags:bsd3, library, program]

Idris is a general purpose language with full dependent types. It is compiled, with eager evaluation. Dependent types allow types to be predicated on values, meaning that some aspects of a program's behaviour can be specified precisely in the type. The language is closely related to Epigram and Agda. There is a tutorial at http://www.idris-lang.org/documentation. Features include:


[Skip to Readme]

Properties

Versions 0.1.3, 0.1.3.1, 0.1.4, 0.1.5, 0.1.7, 0.1.7.1, 0.9.0, 0.9.1, 0.9.2, 0.9.2.1, 0.9.3, 0.9.3.1, 0.9.4, 0.9.4.1, 0.9.5, 0.9.5.1, 0.9.6, 0.9.6.1, 0.9.7, 0.9.8, 0.9.9, 0.9.9.1, 0.9.9.2, 0.9.9.3, 0.9.10, 0.9.10.1, 0.9.11, 0.9.11.1, 0.9.11.2, 0.9.12, 0.9.13, 0.9.13.1, 0.9.14, 0.9.14.1, 0.9.14.2, 0.9.14.3, 0.9.15, 0.9.15.1, 0.9.16, 0.9.17, 0.9.17.1, 0.9.18, 0.9.18.1, 0.9.19, 0.9.19.1, 0.9.20, 0.9.20.1, 0.9.20.2, 0.10, 0.10.1, 0.10.2, 0.10.3, 0.11, 0.11.1, 0.11.2, 0.12
Change log CHANGELOG.md
Dependencies aeson (>=0.6 && <0.12), annotated-wl-pprint (==0.7.*), ansi-terminal (<0.7), ansi-wl-pprint (<0.7), async (<2.2), base (==4.*), base64-bytestring (<1.1), binary (==0.7.*), blaze-html (>=0.6.1.3 && <0.9), blaze-markup (>=0.5.2.1 && <0.8), bytestring (<0.11), cheapskate (<0.2), containers (==0.5.*), deepseq (<1.5), directory (>=1.2.2.0 && <1.2.3.0 || >1.2.3.0), filepath (<1.5), fingertree (==0.1.*), fsnotify (>=0.2 && <2.2), haskeline (==0.7.*), idris, ieee754 (==0.7.*), mtl (>=2.1 && <2.3), network (<2.7), optparse-applicative (>=0.11 && <0.13), parsers (>=0.9 && <0.13), pretty (<1.2), process (<1.3), safe, split (<0.3), terminal-size (<0.4), text (>=1.2.1.0 && <1.3), time (>=1.4 && <1.6), transformers (<0.5), transformers-compat (>=0.3), trifecta (>=1.1 && <1.6), uniplate (==1.6.*), unix (<2.8), unordered-containers (<0.3), utf8-string (<1.1), vector (<0.12), vector-binary-instances (<0.3), Win32 (<2.4), zip-archive (>0.2.3.5 && <0.4), zlib (<0.6.1) [details]
License BSD3
Author Edwin Brady
Maintainer Edwin Brady <eb@cs.st-andrews.ac.uk>
Stability Beta
Category Compilers/Interpreters, Dependent Types
Home page http://www.idris-lang.org/
Source repository head: git clone git://github.com/idris-lang/Idris-dev.git
Uploaded Tue Jun 21 08:43:43 UTC 2016 by EdwinBrady
Distributions Arch:0.11.2, Fedora:0.9.9.1, LTSHaskell:0.11.2, NixOS:0.11.2
Downloads 15728 total (152 in the last 30 days)
Votes
0 []
Status Docs not available [build log]
All reported builds failed as of 2016-06-21 [all 1 reports]

Modules

  • IRTS
    • IRTS.BCImp
    • IRTS.Bytecode
    • IRTS.CodegenC
    • IRTS.CodegenCommon
    • IRTS.CodegenJavaScript
    • IRTS.Compiler
    • IRTS.Defunctionalise
    • IRTS.DumpBC
    • IRTS.Exports
    • IRTS.Inliner
    • JavaScript
      • IRTS.JavaScript.AST
    • IRTS.Lang
    • IRTS.LangOpts
    • IRTS.Portable
    • IRTS.Simplified
    • IRTS.System
  • Idris
    • Idris.ASTUtils
    • Idris.AbsSyntax
    • Idris.AbsSyntaxTree
    • Idris.Apropos
    • Idris.CaseSplit
    • Idris.Chaser
    • Idris.CmdOptions
    • Idris.Colours
    • Idris.Completion
    • Core
      • Idris.Core.Binary
      • Idris.Core.CaseTree
      • Idris.Core.Constraints
      • Idris.Core.DeepSeq
      • Idris.Core.Elaborate
      • Idris.Core.Evaluate
      • Idris.Core.Execute
      • Idris.Core.ProofState
      • Idris.Core.ProofTerm
      • Idris.Core.TT
      • Idris.Core.Typecheck
      • Idris.Core.Unify
      • Idris.Core.WHNF
    • Idris.Coverage
    • Idris.DSL
    • Idris.DataOpts
    • Idris.DeepSeq
    • Idris.Delaborate
    • Idris.Directives
    • Idris.Docs
    • Idris.Docstrings
    • Elab
      • Idris.Elab.AsPat
      • Idris.Elab.Class
      • Idris.Elab.Clause
      • Idris.Elab.Data
      • Idris.Elab.Instance
      • Idris.Elab.Provider
      • Idris.Elab.Quasiquote
      • Idris.Elab.Record
      • Idris.Elab.Rewrite
      • Idris.Elab.RunElab
      • Idris.Elab.Term
      • Idris.Elab.Transform
      • Idris.Elab.Type
      • Idris.Elab.Utils
      • Idris.Elab.Value
    • Idris.ElabDecls
    • Idris.Erasure
    • Idris.ErrReverse
    • Idris.Error
    • Idris.Help
    • Idris.IBC
    • Idris.IdeMode
    • Idris.IdrisDoc
    • Idris.Imports
    • Idris.Inliner
    • Idris.Interactive
    • Idris.Output
    • Idris.Parser
      • Idris.Parser.Data
      • Idris.Parser.Expr
      • Idris.Parser.Helpers
      • Idris.Parser.Ops
    • Idris.PartialEval
    • Idris.Primitives
    • Idris.ProofSearch
    • Idris.Prover
    • Idris.Providers
    • Idris.REPL
      • Idris.REPL.Browse
      • Idris.REPL.Parser
    • Idris.Reflection
    • Idris.Transforms
    • Idris.TypeSearch
    • Idris.Unlit
    • Idris.WhoCalls
  • Pkg
    • Pkg.Package
  • Util
    • Util.DynamicLinker
    • Util.ScreenSize
    • Util.System

Flags

NameDescriptionDefaultType
ffiBuild support for libffiDisabledManual
gmpUse GMP for IntegersDisabledManual
releaseThis is an official releaseEnabledManual
freestandingBuild an Idris that doesn't use cabalDisabledManual
ciBuilt everything using "-Werror", meant for CI-builds onlyDisabledManual
execonlyBuild executables only, skip the libraries and RTSDisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Readme for idris

Readme for idris-0.12

Idris

Build Status Documentation Status Hackage

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

Installation Guides.

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.

More information about building Idris from source has been detailed in the Installation Guide

Code Generation

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 this moment in time there are two external repositories with a Java code generator and an LLVM-based code generator.

More Information

If you would like to find out more information, or ask questions, we currently have a Wiki; a mailing list, 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 GitHub organisation is where some interesting projects are being hosted.

For those interested in contributing to Idris directly we kindly ask that prospective developers please consult the Contributing Guide first.