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 settimane fa
examples rewrite even/odd with if expressions 6 mesi fa
logos logos 7 mesi fa
src Warnings on variable shadowing 5 mesi fa
tools/emacs Replace the newtype keyword with type 6 mesi fa
website update stack snapshot 2 settimane fa
.gitignore Avoid traversing when substituting with empty substitution 7 mesi fa
.gitlab-ci.yml New website layout 6 mesi fa
LICENSE Part 01 - define the language skeleton and codegen 8 mesi fa
Makefile Logging support 5 mesi fa
README.md Warnings on variable shadowing 5 mesi fa
cabal.project Add instructions to build with cabal 7 mesi fa
cabal.project.freeze update cabal.project.freeze 7 mesi fa
dependencies-licenses.md Update dependencies license 6 mesi fa
language-ref.org Add variants without an argument 6 mesi fa
overview.org Logging support 5 mesi fa
run-examples.sh Update examples to Giml 7 mesi fa
stack.yaml update stack snapshot 2 settimane fa
stack.yaml.lock update stack snapshot 2 settimane fa
todo.org If expressions 6 mesi fa
wishlist.org Warnings on variable shadowing 5 mesi fa

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)