grin
grin copied to clipboard
GRIN is a compiler back-end for lazy and strict functional languages with whole program optimization support.
Related articles
Articles that can be useful in the future.
# Implementation of the Counting Immutable Beans (CIB) for the GRIN compiler. # Summary CIB uses instrumentation of the original program. There are four new instructions in the syntax that...
This is needed for various features of many functional languages, eg arbitrary precision integers and arrays implemented in FFI. If there's only support for foreign pointers, that makes code-gen easier...
Motivation for this change: Well I ran `nix-shell shell.nix` over an hour ago and it still hasn't finished... With this change, all you need to run to get a working...
Hi! I've made a simple frontend for GRIN and struggle with the optimizations. 1. When running `stack exec grin -- --optimize --no-prelude --print-errors --continue-on-failed-lint dump.grin` for [this](https://github.com/Tiltedprogrammer/SparseLinAlgHardware/blob/master/dump.grin) I get a...
When the function `apply` includes a call to itself, InlineApply inlines the apply function, and replaces the occurance of it with `apply.0`, however this function doesn't exist. test.grin ``` apply...
On the documentation, LLVM 7 is used. I am just curious if any version of LLVM can be used or if v7 is a hard requirement. If it is a...
Currently I plan to compile my language into GRIN, but I'm not sure if I will need to a runtime for things like garbage collecting.
GRIN Version: `310fdc3a184353049213d28c84980345d1ff66fd` (current `master`) Save the following GRIN program in `src.grin` and then optimise it with `grin src.grin --optimize`. ```grin grinMain = u.box