A simple but robust virtual machine
A virtual machine with a simple grammar evolved from simply typed lambda calculus, that eventually will have powerful static checking and an optimizing backend.
This project is in active development. Do expect bugs and general trouble, and please let us know if you run into any by creating a new issue if one does not already exist.
- Clone this repository and change directory to it:
$ git clone https://github.com/Stand-In-Language/stand-in-language.git $ cd stand-in-language
- Install Nix:
$ curl https://nixos.org/nix/install | sh
- Optional (reduces build time by using telomare's cache):
# Install cachix with nix-env or adding `cachix` to your `/etc/nixos/configuration.nix`'s' `environment.systemPackages` if in NixOS. $ cachix use telomare
- Enter a Nix shell. This will setup an environment where all external dependencies will be available (such as
cabal
for building):$ nix develop # or nix develop -c zsh
- Build the project:
$ cabal build # or nix build
- Run the tictactoe example and start playing with a friend (or run your own telomare file):
$ cabal run telomare -- tictactoe.tel # or nix run . -- tictactoe.tel
- Profit!
- Run:
$ cd <your/local/proyect/location>/telomare $ nix develop -c zsh $ cabal run telomare-repl -- --haskell # or nix run .#repl
- Profit!
You can setup your git configuration to automatically format and look for lint suggestions. Just run:
$ git config core.hooksPath hooks
If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.
- A Better Model of Computation by Sfultong
- SIL: Explorations in non-Turing Completeness by Sfultong
- Deconstructing Lambdas, Closures and Application by Sfultong
- Join the community's chat
The code in this project is licensed under the Apache License 2.0. For more information, please refer to the LICENSE file.