pikelet
pikelet copied to clipboard
A friendly little systems language with first-class types. Very WIP! 🚧 🚧 🚧
My brain is running round in circles trying to design this in a vacuum, so I thought I'd sketch out some high level thoughts on this stuff. There are a...
Currently Pikelet is implemented in a very traditional way - ie. it consumes a source string, does some processing, and spits something out. This isn't a very good approach when...
This will be handy when working with records-as modules, and also potentially make checking dependent records easier. Core syntax changes: ``` t ::= ... | (= t) ``` The `t`...
We should be able to load files in the REPL, either when passing a list of filenames on startup, or by a `:load`/`:l` command while the REPL is running: ```...
This might be faster than using reference counting, as we currently do in the core AST. We'll have take care not to let it adversely impact readability in the type...
Had a nice chat with @pythonesque on Twitter: > I think at this point most people involved in Coq development, at least, agree that a majority of the stuff in...
It would be nice to have operators for: - forward and reverse function composition: `()` - forward and reverse function application: `()` - mathematical operations: `(+)`, `(-)`, `(*)`, `(/)` -...
It would be nice to actually compile Pikelet programs! ## Initial sketch of passes We'll probably want some [intermediate representations like MLton](http://mlton.org/CompilerOverview) to get the higher level Pikelet code to...
Would be nice to have a layout-based syntax like Haskell, Idris, and F#. I'm getting a little sick of all those closing curly braces in Rust! ## Resources - https://www.haskell.org/onlinereport/lexemes.html#sect2.7...
So, it seems that the first stage of compilation that we might want to do is to compile to [A-Normal Form (ANF)](https://en.wikipedia.org/wiki/A-normal_form). I'm guessing we could start a new module...