-
Notifications
You must be signed in to change notification settings - Fork 31
Upcoming Engineering Tasks
Anders Ågren Thuné edited this page Aug 4, 2023
·
17 revisions
This page records tasks that improve the user experience or are part of our vision of Miking, but that are not necessarily research-related and that we haven’t gotten to (fully) yet. This list is intended to be a complement to the Github issues, to give a better overview of our current focus (it also includes some tasks which we have not yet made issues for).
- Improve documentation
- Installation page
- Getting started guide
- Standard library reference (with auto-generation a la Doxygen)
- Improve documentation workflow, including keeping the website up-to-date (perhaps we could automatically pull selected Github wiki pages?)
- Unify and improve error messages
- Full bootstrapping
- REPL for
mi
- Set up nightly builds for Mac, Windows, and GNU/Linux on Mac Mini machines
- Improve type checker (and make it sound)
- [X] Add value restriction
- [X] Add check for local types escaping their scope
- Add row polymorphism
- Check type constructor arities and data constructor signatures
- Relax the value restriction a la OCaml
- Add GADT support
- Add check for local constructors escaping their scope
- Make the type checker return
Result Expr TypeError
instead of just failing, and add negative tests - Make unification lazier (as described at https://okmij.org/ftp/ML/generalization.html)
- Make it possible to run type checker on parts of a program, reusing existing types
- Refactor our builds and tests
- Go through the Github issues
- Mark stale issues as done
- Fix easy issues
- Remove remaining dependencies on
type-annot.mc
- Improve
mi
pretty-printer - [X] Create a self-contained, package-manager-independent build script for making Miking and all dependencies needed to compile programs (e.g. owl + openblas, …), for inclusion in distributions like PyPI.
-
dprint
formi compile