pikelet-lang / pikelet

A friendly little systems language with first-class types. Very WIP! 🚧 🚧 🚧
https://pikelet-lang.github.io/pikelet/
Apache License 2.0
608 stars 26 forks source link
bidirectional-typechecking compiler dependent-record-types dependent-records dependent-types programming-language rust systems-language systems-programming type-system type-theory typechecker

Pikelet!

Pikelet Mascot

Actions Status Matrix License

Pikelet is a small, functional, dependently typed programming language.

Dependent types allow us to do a bunch of really interesting things, like using records for modules, declaring the length of arrays at the type level, and much more — many of great utility for low-level and high-level code alike!

We hope to one day grow Pikelet into fully-fledged systems programming language, with support for unboxed data types, control over memory layout and allocation strategy, linear types, and a flexible phase distinction and support for calling other languages. At the moment however we've only implemented a type checker and very slow interpreter, so don't get your hopes up too much yet! There's still a whole lot to do before it is even remotely useful to anyone! 😅

Roadmap

Check out our plans in the roadmap.

Code of Conduct

Please note that this project is released with a Code of Conduct. By participating in this project you agree to abide by its terms.