README.org

April 5, 2018 · View on GitHub

#+TITLE: Shentong #+AUTHOR: Mark Thom #+EMAIL: markjordanthom@gmail.com

  • A Haskell implementation of the Shen programming language #+ATTR_HTML: align=center [[vajra.jpg]] \

Shentong is a Haskell implementation of [[http://www.shenlanguage.org][Shen]], a modern Lisp family programming language which includes many advanced and interesting features. The name is thematically in keeping with that of /shen/, a construct from another esoteric religion.

Package dependencies are:

  • mtl
  • unordered-containers
  • uniplate
  • parallel
  • hashmap

Shentong runs on a fully native Haskell backend directly ported from the backend written in Shen's kernel language, K Lambda. It is licensed under BSD 3. If cabal is not used to compile the sources, the GHC compiler option -fno-full-laziness must be used, as in

: ghc -O2 Shen.hs -fno-full-laziness

The current supported version is Shen 20.

  • Try it

    : >gitclonehttps://github.com/mthom/shentong.git:> git clone https://github.com/mthom/shentong.git : > cd shentong : >cabalsandboxinit:> cabal sandbox init : > cabal install : >cd.cabalsandbox/bin:> cd .cabal-sandbox/bin : > ./shen

or install it through Hackage:

: >cabalinstallshentong:> cabal install shentong : > ./shen