Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aionescu/dynasty

A lazy functional language that compiles to JavaScript
https://github.com/aionescu/dynasty

alt-js haskell javascript language laziness

Last synced: about 2 months ago
JSON representation

A lazy functional language that compiles to JavaScript

Awesome Lists containing this project

README

        


dynasty

Dynasty Logo

Dynasty is a dynamically-typed, lazily evaluated, purely functional programming language that compiles to JavaScript.

## Examples

You can find some Dynasty programs in the [examples](examples) folder.

The most interesting ones are the [Brainfuck interpreter](examples/bf) and the [Calculator web app](examples/calc).

The standard library and runtime code can be found in the [core](core) folder.

## Building & running the compiler

### Prerequisites

* GHC (>= 9.6)
* cabal (>= 3.8)

(Both can be installed via [ghcup](https://www.haskell.org/ghcup/))

To compile Dynasty programs, use the following command:

```sh
cabal run . --
```

The first invocation may take a while, since it will also build the compiler's dependencies.

By default, the compiler outputs a file named `main.js`. You can include it in a `` tag inside an HTML document to load it in the browser, or run it directly using a JS runtime like [Node.js](https://nodejs.org/), [Deno](https://deno.land/), or [Bun](https://bun.sh/).

## VS Code Extension

To install the VS Code extension, run `./dynasty-vscode/install.sh`.

## License

This repository is licensed under the GNU General Public License v3.

For more details, see [the license file](LICENSE.txt).