Skip to content

hhefesto/stand-in-language

 
 

Repository files navigation

Telomare

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.

Warning

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.

Quick Start

  1. Clone this repository and change directory to it:
    $ git clone https://github.com/Stand-In-Language/stand-in-language.git
    $ cd stand-in-language
  2. Install Nix:
    $ curl https://nixos.org/nix/install | sh
  3. 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
  4. 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
  5. Build the project:
    $ cabal build # or nix build
  6. 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
  7. Profit!

Telomare REPL

  1. Run:
    $ cd <your/local/proyect/location>/telomare
    $ nix develop -c zsh
    $ cabal run telomare-repl -- --haskell # or nix run .#repl
  2. Profit!

Git Hooks

You can setup your git configuration to automatically format and look for lint suggestions. Just run:

$ git config core.hooksPath hooks

Contributing

If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.

Links

  1. A Better Model of Computation by Sfultong
  2. SIL: Explorations in non-Turing Completeness by Sfultong
  3. Deconstructing Lambdas, Closures and Application by Sfultong
  4. Join the community's chat

Licensing

The code in this project is licensed under the Apache License 2.0. For more information, please refer to the LICENSE file.

About

A simple but robust virtual machine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 89.1%
  • C 6.2%
  • C++ 2.5%
  • Scheme 0.9%
  • Nix 0.9%
  • Shell 0.2%
  • Other 0.2%