Update CONTRIBUTING.md
This commit is contained in:
parent
f2fd7edd80
commit
cf782cbf13
1 changed files with 26 additions and 8 deletions
|
@ -1,14 +1,32 @@
|
|||
# LLVM-based Bolt Compiler
|
||||
# Contributing to Bolt
|
||||
|
||||
This directory contains a partial implementation of the Bolt programming
|
||||
language using C++ and LLVM. It currently is one of the main contenders of
|
||||
becoming the offical Bolt compiler.
|
||||
So you want to contribute something to the Bolt language or its compiler? That's
|
||||
great! We're so glad to have you!
|
||||
|
||||
## Developing
|
||||
## Preliminary Knowledge
|
||||
|
||||
You need a recent version of the Zen libries to be able to compile. If youu
|
||||
still get build errors, the Zen libraries might be out of date. Do not hesitate
|
||||
to file an issue!
|
||||
### Type Checking
|
||||
|
||||
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:
|
||||
|
||||
|
|
Loading…
Reference in a new issue