grin
grin copied to clipboard
Issues / Tasks for new contributors
Hey!
I'm wondering if there are any issues / tasks suitable for new contributors? I've been watching this project for a while and would be interested in contributing but where do I start?
side note: are there any docs on how to use grin as a language backend?
Hi! I can answer the latter question for now. https://github.com/grin-tech/grin#example-front-end
I think reading chapter 2 and 3 about GRIN would give a good foundation to get started with coding.
thanks!
UPDATE: We started to work on a Contributor's Guide document. It will take 1-2 weeks to make it ready.
Awesome :)
I had a break from coding. I've studied ASAP memory management what I'd like to reimplement for GRIN. I still don't have an issue list for new contributors but I can give hints about the requirements to cope with the upcoming challenges. Crafting GRIN requires lots of design decisions and to make the right choice, one must understand the field in depth. This means a lot of reading material:
- Urban Boquist's PhD thesis on Code Optimisation Techniques for Lazy Functional Languages
- LLVM introduction, language reference, stack maps, pointer aliasing features
- Recursion schemes
- Abstract Interpretation and Data-Flow Analysis
While reading Boquist's PhD thesis on GRIN it's worth to check the implementation in parallel (i.e. the AST definition and the transformations).
Our GRIN imlementation have some differences and advancements over the original one.
- it is typed
- it targets LLVM instead of a native RISC CPU architecture LLVM IR is a RISC Instruction Set Architecture so the Part III of PhD: RISC - the low level code is still relevant The GC desribed in the PhD can be implemented via LLVM StackMaps
If you have questions or just would like to discuss some ideas, join to the GRIN Compiler's gitter channel.
Happy reading!