Haskell C Other
Latest commit 4ee4fb6 Feb 22, 2017 @evincarofautumn Disallow some whitespace characters.
Tabs should not be allowed because they make the layout rule more
confusing. This also removes vertical tabs (VT; ASCII 11) and form feeds
(FF; ASCII 12) because no one is likely to use them, but still permits
carriage returns (CR; ASCII 13) to support different line endings.

README.md

The Kitten Programming Language

Kitten is a statically typed, stack-based functional programming language designed for simplicity, speed, and safety. This is an in-progress implementation of that language, including:

  • An interactive console for testing code.

  • An interpreter.

  • A compiler targeting C99.

Resources

Note: these are currently out of date with the new compiler.

Building Build Status

To build the latest compiler, you need Stack:

git clone https://github.com/evincarofautumn/kitten.git
cd kitten/new
stack build

stack exec kitten
# OR
stack install
~/.local/bin/kitten

To build the old compiler, which will be removed soon, you need GHC ≥7.10:

git clone https://github.com/evincarofautumn/kitten.git
cd kitten
make

You can run the integration tests concurrently with make -jn, where n is the number of concurrent jobs. If you are working on the compiler, you can use make dev to avoid checking the library dependencies on every rebuild.