2 DepTyped Systems Programming
Nathan McCarty edited this page 2025-08-24 09:24:51 +00:00

Basic Requirements

  • Core Langauge based on Quantitative Type Theroy
  • Values created as linear types do not allocate
  • First class straight-to-machine-code compilation backend
  • expand on purely syntactic do blocks to form more of a "context handler" syntax, with implementation requirements that are easier to work with for the programmer
  • No significant whitespace, the more we treat any length of whitespace as if it was a single space, the better
  • Go even more up front around linear IO in the language design
  • do conditional compilation early
  • actually make name-spacing package aware like in Rust or most other modern imperative languages
  • good traceability of where errors are coming from across the layers of the compiler from a very early stage of development
  • high quality, automatically generated documentation from a very early stage of development, and made self hosting as soon as practical
  • rust style restriction of unsafe to within unsafe contexts, track unsaftey

Roadmap

Bootstrap Compiler In Idris 2

  1. Interpreter for Core Language with type checking
  2. Translate Core Language to machine code through whatever path deemed appropriate (wasmtim, llvm, libgccjit, pypy style automatically generated JIT?)
  3. Start defining higher level language in terms of lowering to core language