pikelet icon indicating copy to clipboard operation
pikelet copied to clipboard

A friendly little systems language with first-class types. Very WIP! 🚧 🚧 🚧

Results 31 pikelet issues
Sort by recently updated
recently updated
newest added

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: ```...

help wanted

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...

help wanted

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...

help wanted

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...

help wanted

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...

help wanted