You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the story of the first version, currently being developed in the basics-dev branch.
Initially, I wanted to do every in small batches (see #7, #9, #15, #16, #17, #18, #19).
Things ended up another way.
Currently, in the development branch, there is an implementation for the following features:
QTT
Modules (with a very limited record-like type)
Basic integers (with widht-varying types) and booleans
Some control structures such as if-then-else
Dependent tuples (additive and multiplicative) alongside their eliminators
First-order functions and types
Forward declarations, mutual definitions and let/rec bindings
Term inference and implicit parameters
This has grown way more than it should have been.
However, type inference rules are for the most part already included in the source code. This means that we should be able to simply "copy/paste" them within the specification document.
The current implementation comprises:
A fully fledged lexer/parser/desugarer combo with early module resolution
A NbE (Normalisation by Evaluation) typechecker/elaborator with module support
Some steps/features are still missing as of today:
Metavariables are put in the global scope. We will want to inline them at their (unique) callsites
Some builtin operations (such as addition of integers, boolean negation, etc.)
There is still a lot of work to do before a minimal viable product for this compiler (moreso if we take in account the issues for N⋆ too, such as zilch-lang/nstar#62). I do not have an ETA for this, and I don't think that one should be such a great thing. I'd rather not put deadlines onto a personal project
The text was updated successfully, but these errors were encountered:
This is the story of the first version, currently being developed in the
basics-dev
branch.Initially, I wanted to do every in small batches (see #7, #9, #15, #16, #17, #18, #19).
Things ended up another way.
Currently, in the development branch, there is an implementation for the following features:
if-then-else
let
/rec
bindingsThis has grown way more than it should have been.
However, type inference rules are for the most part already included in the source code. This means that we should be able to simply "copy/paste" them within the specification document.
The current implementation comprises:
Some steps/features are still missing as of today:
See Type classes and named implementations #9
val
)See FFI targetting C #19
unsafe
emphasisSee Add algebraic effects to Zilch #7
There is still a lot of work to do before a minimal viable product for this compiler (moreso if we take in account the issues for N⋆ too, such as zilch-lang/nstar#62). I do not have an ETA for this, and I don't think that one should be such a great thing. I'd rather not put deadlines onto a personal project
The text was updated successfully, but these errors were encountered: