Skip to content

Latest commit

 

History

History
53 lines (44 loc) · 2.16 KB

roadmap.md

File metadata and controls

53 lines (44 loc) · 2.16 KB

Ace Roadmap

Language/Compiler (ace)

  • (v0.3) global variable initialization
  • do notation
  • allow regular assignment in instance declarations (let f = not . g)
  • macro language around data structures for
  • error on unused imports
  • allow nested modules (ie: net/http)
  • design/implement some form of functional dependencies for mptc sanity
  • unused variable check (variables that only appear on lhs)
  • higher-kinded type functions to allow for pulling types from other types for the purpose of mapping between types (for example to_with :: Either a b -> WithElseResource resource error)

Standard Library (lib/std)

  • gain consistency around error handling in lib/sys, etc. (Choose between Either Errno () and WithElseResource where it makes sense)
  • option parsing - update lib/argparse.ace
  • net/http client
  • net/http server
  • HTML parser

Ecosystem

  • language reference documentation
  • example code documentation
  • tutorial documentation
  • finalize name (Ace is a codename)
  • homebrew bottling releases
  • a debian package
  • a package management system (v0.8)
  • incorporate versioning into module resolution and type system (v0.9)
  • onboarding page - tutorial, etc...

Tooling

  • ace-format tool
  • compile should build binary, rename existing compile phase to check

Performance

  • escape analysis (v1.1)
    • adjust memory model to utilize double-dereference (to allow for pointer rewriting)
    • escape stack vars to heap vars
  • move semantics and other substructural type systems (v1.2)
  • improve compilation speeds
  • benchmark JSON parsing speed
  • compiler: optimize coverage analysis