A compiler for a purely functional programming language with emphasis on structural typing https://giml-lang.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Gil Mizrahi 83a0161577 update stack snapshot 2 週之前
examples rewrite even/odd with if expressions 6 月之前
logos logos 7 月之前
src Warnings on variable shadowing 5 月之前
tools/emacs Replace the newtype keyword with type 6 月之前
website update stack snapshot 2 週之前
.gitignore Avoid traversing when substituting with empty substitution 7 月之前
.gitlab-ci.yml New website layout 6 月之前
LICENSE Part 01 - define the language skeleton and codegen 8 月之前
Makefile Logging support 5 月之前
README.md Warnings on variable shadowing 5 月之前
cabal.project Add instructions to build with cabal 7 月之前
cabal.project.freeze update cabal.project.freeze 7 月之前
dependencies-licenses.md Update dependencies license 6 月之前
language-ref.org Add variants without an argument 6 月之前
overview.org Logging support 5 月之前
run-examples.sh Update examples to Giml 7 月之前
stack.yaml update stack snapshot 2 週之前
stack.yaml.lock update stack snapshot 2 週之前
todo.org If expressions 6 月之前
wishlist.org Warnings on variable shadowing 5 月之前

README.md

Giml logo Giml

Build status

Giml is a strict, statically typed, purely functional language with emphasis on structural typing.

The compiler currently targets JavaScript, but more backends are planned in the future.

This project is streamed on twitch.tv/suppipi, and past sessions are available on Youtube.

For more information, visit the website.

Build and run

With Stack

> stack run -- compile --input examples/factorial.giml --output /tmp/output.js
> node /tmp/output.js # use node to run the program
120

With Cabal+GHC:

> cabal v2-update
> cabal v2-build all
> cabal v2-run giml -- compile --input examples/factorial.giml --output /tmp/output.js
> node /tmp/output.js
120

Logos adapted from “Rad Pack – 80’s Theme” Wallpapers by Nate Wren (CC BY-NC 4.0)