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 eb01d7418d update twitter card image in website 6 days ago
examples rewrite even/odd with if expressions 1 week ago
logos logos 1 month ago
src Fix bug in records inference 6 days ago
tools/emacs Replace the newtype keyword with type 1 week ago
website update twitter card image in website 6 days ago
.gitignore Avoid traversing when substituting with empty substitution 4 weeks ago
.gitlab-ci.yml New website layout 3 weeks ago
LICENSE Part 01 - define the language skeleton and codegen 2 months ago
Makefile Add variants without an argument 3 weeks ago
README.md REPL skeleton 2 weeks ago
cabal.project Add instructions to build with cabal 1 month ago
cabal.project.freeze update cabal.project.freeze 1 month ago
dependencies-licenses.md Update dependencies license 1 week ago
language-ref.org Add variants without an argument 3 weeks ago
overview.org Implementing polymorphic variants (minus type syntax) 2 weeks ago
run-examples.sh Update examples to Giml 1 month ago
stack.yaml Renaming Strema to Giml 1 month ago
stack.yaml.lock Renaming Strema to Giml 1 month ago
todo.org If expressions 3 weeks ago
wishlist.org REPL skeleton 2 weeks ago

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 avaiable 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)