Coder Social home page Coder Social logo

andorp / agda Goto Github PK

View Code? Open in Web Editor NEW

This project forked from agda/agda

0.0 3.0 0.0 82.14 MB

Agda is a dependently typed programming language / interactive theorem prover.

Home Page: http://wiki.portal.chalmers.se/agda/pmwiki.php

License: Other

Makefile 0.54% Haskell 54.80% Agda 25.77% Shell 0.16% Nix 0.04% M4 0.07% TeX 5.28% PostScript 6.97% CSS 0.02% E 0.07% C 0.03% Emacs Lisp 2.14% Perl 0.01% Logos 0.17% Yacc 1.12% C++ 0.01% HTML 2.29% JavaScript 0.50%

agda's Introduction

Agda 2

Hackage version Stackage version Build Status

Table of contents:

Note that this README only discusses installation of Agda, not its standard library. See the Agda Wiki for information about the library.

Documentation

Prerequisites

You need recent versions of the following programs/libraries:

You should also make sure that programs installed by cabal-install are on your shell's search path.

For instructions on installing a suitable version of Emacs under Windows, see [below]((#installing-emacs-under-windows).

Non-Windows users need to ensure that the development files for the C libraries zlib and ncurses are installed (see http://zlib.net and http://www.gnu.org/software/ncurses/). Your package manager may be able to install these files for you. For instance, on Debian or Ubuntu it should suffice to run

apt-get install zlib1g-dev libncurses5-dev

as root to get the correct files installed.

Note on GHC's CPP language extension

Recent versions of Clang's preprocessor don't work well with Haskell. In order to get some dependencies to build, you may need to set up Cabal to have GHC use cpphs by default. You can do this by adding

program-default-options
  ghc-options: -pgmPcpphs -optP--cpp

to your .cabal/config file. (You must be using cabal >= 1.18. Note that some packages may not compile with this option set.)

You don't need to set this option to install Agda from the current development source; Agda.cabal now uses cpphs.

Installing Agda

There are several ways to install Agda:

Using a binary package prepared for your platform

Recommended if such a package exists. See the Agda Wiki.

Using a released source package from Hackage

Install the prerequisites mentioned below, then run the following commands:

cabal update
cabal install Agda
agda-mode setup

The last command tries to set up Emacs for use with Agda. As an alternative you can copy the following text to your .emacs file:

(load-file (let ((coding-system-for-read 'utf-8))
                (shell-command-to-string "agda-mode locate")))

It is also possible (but not necessary) to compile the Emacs mode's files:

agda-mode compile

This can, in some cases, give a noticeable speedup.

WARNING: If you reinstall the Agda mode without recompiling the Emacs Lisp files, then Emacs may continue using the old, compiled files.

Using the development version of the code

You can obtain tarballs of the development version from the Agda Wiki, or clone the repository.

Install the prerequisites discussed in Prerequisites.

Then, either:

(1a) Run the following commands in the top-level directory of the Agda source tree to install Agda:

cabal update
cabal install

(1b) Run agda-mode setup to set up Emacs for use with Agda. Alternatively, add the following text to your .emacs file:

(load-file (let ((coding-system-for-read 'utf-8))
                (shell-command-to-string "agda-mode locate")))

It is also possible (but not necessary) to compile the Emacs mode's files:

agda-mode compile

This can, in some cases, give a noticeable speedup.

WARNING: If you reinstall the Agda mode without recompiling the Emacs Lisp files, then Emacs may continue using the old compiled files.

(2) Or, you can try to install Agda (including a compiled Emacs mode) by running the following command:

make install

Configuring the Emacs mode

If you want to you can customise the Emacs mode. Just start Emacs and type the following:

M-x load-library RET agda2-mode RET
M-x customize-group RET agda2 RET

This is useful if you want to change the Agda search path, in which case you should change the agda2-include-dirs variable.

If you want some specific settings for the Emacs mode you can add them to agda2-mode-hook. For instance, if you do not want to use the Agda input method (for writing various symbols like ∀≥ℕ→π⟦⟧) you can add the following to your .emacs:

(add-hook 'agda2-mode-hook
          '(lambda ()
            ; If you do not want to use any input method:
            (deactivate-input-method)
            ; (In some versions of Emacs you should use
            ; inactivate-input-method instead of
            ; deactivate-input-method.)

            ; If you want to use the X input method:
            (set-input-method "X")))

Note that, on some systems, the Emacs mode changes the default font of the current frame in order to enable many Unicode symbols to be displayed. This only works if the right fonts are available, though. If you want to turn off this feature, then you should customise the agda2-fontset-name variable.


Installing Emacs under Windows

A precompiled version of Emacs 24.3, with the necessary mathematical fonts, is available at http://homepage.cs.uiowa.edu/~astump/agda/

Hacking on Agda

Head to HACKING

agda's People

Contributors

adamse avatar airmover avatar andreasabel avatar asr avatar bitonic avatar blaisorblade avatar danten avatar dominiquedevriese avatar favonia avatar fredriknordvallforsberg avatar gallais avatar guillaumebrunerie avatar jmchapman avatar jyp avatar mbenke avatar monnier avatar nad avatar nick8325 avatar np avatar ollef avatar patrikja avatar phile314 avatar saizan avatar sattlerc avatar stevana avatar trofi avatar ulfnorell avatar vlopezj avatar wolframkahl avatar wouter-swierstra avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.