Skip to content

Latest commit

 

History

History
51 lines (50 loc) · 1.76 KB

TODO.md

File metadata and controls

51 lines (50 loc) · 1.76 KB

Tasks

  • Parser (WIP but works for the most part, further syntax changes expected)
    • Lots of potential optimizations and refactorings to be done in the parser grammar
  • Analyzer
    • Static type checking? Or default to runtime type checking for now?
    • Local variable access (prevent accessing undefined variables)
    • Check function signatures and call-sites
    • Basic type checker for
      • Local variable bindings
      • Function call arguments
      • Query
        • Sources
        • Guards
        • Productions
      • Simplifier / AST Optimizer
        • Constant (function) replacements
        • Constant arithmetic expressions
  • Interpreter
    • Value enum (Number, String, Symbol, List, Map, etc. ...)
    • ValueRef type (for now just alias for Rc<Value>)
    • Evaluate<T> trait + impls (Simple tree-walking dynamic interpreter)
      • Some impls are still todo!()
    • NativeFn impls for some standard library modules (Std, Std.Math, Std.List, Std.Map)
    • Pattern matching for function and lambda arguments
  • Compiler using LLVM & Inkwell
    • JITFunction codegen working for:
      • Simple Float arithmetic functions and expressions
    • Most AST expression variants still are todo!()
    • Lots more stuff missing and needs to be figured out
  • DB Value
    • Storage
      • Serialization
      • Deserialization
    • Querying
      • Query
        • Construction
        • Composition
        • Optimization
        • Execution / Result gathering
  • Std Library (types & functions)
    • Std
      • Math
      • List
      • Map
      • Result (WIP)
      • Symbol
      • Set
      • Stack
      • Queue
      • Vector