LINear LaNGuage: Type Theory and Process Calculi for Distributed and High-precision programming
Haskell Shell LLVM Yacc TeX Nix
Permalink
Failed to load latest commit information.
Ling Add support for complex numbers (from C99) Oct 5, 2016
MiniC Compile: add `ctype` for external C types Oct 4, 2016
docs Single channel allocations and others improvements Sep 20, 2016
examples Add support for complex numbers (from C99) Oct 5, 2016
exec Fix the build: exec/, *.[xy], */Test.hs, ErrM Mar 7, 2016
fixtures Basic support for a generic family of composition operators for proce… Oct 4, 2016
issues Add some tests Sep 22, 2016
new More flexible telescopes (close Issue#12) Nov 4, 2015
nix nix: Add missing patch Dec 3, 2015
tests Add support for complex numbers (from C99) Oct 5, 2016
tools tools/cmdrecord: no longer use /dev/stdin (not in docker) Aug 22, 2016
.gitattributes Issue#24: Basic support for annotation on channel allocation Dec 7, 2015
.gitignore Add .stack-work to .gitignore. Mar 5, 2016
.travis.yml Make travis notify the gitter.im channel Aug 31, 2016
LICENSE Rename Lin into Ling Jun 5, 2015
Ling.cf Add support for some comparison operators Sep 30, 2016
Ling.hs Add support for complex numbers (from C99) Oct 5, 2016
Ling.tex Rename Lin into Ling Jun 5, 2015
MiniC.cf Compile: add `ctype` for external C types Oct 4, 2016
README.md Travis status badge May 3, 2016
Setup.hs Initial import May 21, 2015
bnfc-regen.sh Handle _:_ as pre-defined function. Aug 28, 2016
c2n-regen.sh nix support for custom versions of lens Nov 26, 2015
check.sh dist,test,build: fixes and updates Aug 8, 2016
cll.txt cll.txt Sep 22, 2016
default.nix nix support for custom versions of lens Nov 26, 2015
env.sh tests: fix a bug where the first line was skipped Oct 4, 2016
ling.cabal Use the package pretty-show for the show-ast mode Aug 27, 2016
ling.nix Hash terms to avoid conflicts while generating names Dec 3, 2015
mkdocs.yml Less bugs, more tests, more docs Oct 15, 2015
package.yaml Use the package pretty-show for the show-ast mode Aug 27, 2016
relink.sh Properly handle applied lambdas + tests update Aug 29, 2016
rules.txt WIP Sep 5, 2016
run-in-nix-shell env,nix: make shims binaries for easy access Nov 25, 2015
shell.nix nix: update nixpkgs Dec 3, 2015
stack.yaml dist,test,build: fixes and updates Aug 8, 2016

README.md

Build Status

Here are some instructions on how to use the ling tool chain.

Requirements

If you're new to Haskell your simplest option might be to install stack: http://docs.haskellstack.org/en/stable/README.html#how-to-install

Building

Once the repository is cloned, you can setup a local Haskell environment:

$ stack setup

Then to build the tool chain:

$ stack build

Finally you can run the compiler on a simple example:

$ stack exec -- ling --seq --fuse --pretty --compile fixtures/compile/double.ll

The command above is type checking, apply sequencing and fusion. It finally prints the final version in Ling and in C.

Contributions

Various contributions can be made whether you know Haskell or not.

Beside hacking on the tool chain, you can:

  • Write small programs in the language
  • Submit bug reports
  • Join the discussion on the evolution of the language
  • Help with the documentations and tutorials

Documentation