Update CONTRIBUTING.md

This commit is contained in:
Sam Vervaeck 2024-07-10 09:32:49 +02:00
parent f2fd7edd80
commit cf782cbf13
Signed by: samvv
SSH key fingerprint: SHA256:dIg0ywU1OP+ZYifrYxy8c5esO72cIKB+4/9wkZj1VaY

View file

@ -1,14 +1,32 @@
# LLVM-based Bolt Compiler # Contributing to Bolt
This directory contains a partial implementation of the Bolt programming So you want to contribute something to the Bolt language or its compiler? That's
language using C++ and LLVM. It currently is one of the main contenders of great! We're so glad to have you!
becoming the offical Bolt compiler.
## Developing ## Preliminary Knowledge
You need a recent version of the Zen libries to be able to compile. If youu ### Type Checking
still get build errors, the Zen libraries might be out of date. Do not hesitate
to file an issue! Here are some resouces to get started with type checking, ordered from high-level overview to deep dive:
- [Hindley-Milner Type System](https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system)
- [Write You A Haskell](https://smunix.github.io/dev.stephendiehl.com/fun/index.html), most notably [this implemenation](https://github.com/sdiehl/write-you-a-haskell/tree/master/chapter7/poly_constraints)
- [Type Inference blog posts by Thunderseethe](https://thunderseethe.dev/posts/type-inference/)
- [Typing Haskell in Haskell](https://gist.github.com/chrisdone/0075a16b32bfd4f62b7b)
- [The Essence of ML Type Inference](http://gallium.inria.fr/~fpottier/publis/emlti-final.pdf)
## Building
### 1. Check out the sources
```sh
git clone https://github.com/boltlang/bolt
git clone https://github.com/samvv/zen bolt/deps/zen
```
You need the most recent version of the Zen libries to be able to compile. If
you still get build errors, the Zen libraries in the repositories might be out
of date. Do not hesitate to file an issue!
This is how a potential invocation to CMake could look like: This is how a potential invocation to CMake could look like: