1
0
mirror of https://github.com/janet-lang/janet synced 2024-09-28 15:08:40 +00:00
janet/README.md

42 lines
1.3 KiB
Markdown

# dst
[![Build Status](https://travis-ci.org/bakpakin/dst.svg?branch=master)](https://travis-ci.org/bakpakin/dst)
dst is a functional programming language and vm. It is a variant of
Lisp with several native useful datatypes. Some of the more interesting and
useful features are first class functions and closures, immutable and mutable
hashtables, arrays, and bytebuffers, macros, tail-call optimization,
and continuations. The runtime and
compiler are written in C99.
There is a repl for trying out the language, as well as the ability
to run script files. This client program is separate from the core runtime, so
dst could be embedded into other programs.
## Features
* First class closures
* Garbage collection
* Lexical scoping
* First class green threads (continuations)
* Mutable and immutable arrays (array/tuple)
* Mutable and immutable hashtables (table/struct)
* Mutable and immutable strings (buffer/string)
* Byte code interpreter with an assembly interface, as well as bytecode verification
* Proper tail calls for functional code
* Direct interop with C via abstract types and C functions
* Dynamically load C libraries
* REPL (read eval print loop)
## Compiling and Running
To build the runtime and run test, run
```sh
make test
```
A repl can also be run with
```sh
make repl
```