Skip to content

Latest commit

 

History

History
45 lines (45 loc) · 1.88 KB

TODO.org

File metadata and controls

45 lines (45 loc) · 1.88 KB
  • [X] Move to a struct-based primitive nodes rather than an enum based.
    • The problem with enum-based node is that it is quite difficult to extend with sub-classes
    • However, for structs it is as simple as making sure that, probably this needs some scary template-fu, which is not quite bad in itself.
  • [X] Implement visitors
    • [X] IdentityMapper
    • [X] Fold to a different type?
      • Like a StringifyMapper?
    • [X] Rewrite IdentityMapper using FoldableMapper?
      • Tried this and was unsuccessful.
      • This should mostly be done using macros.
    • [X] IdentityMapperWithContext
    • [X] MutIdentityMapper?
    • [X] CombineMapper
    • [X] CombineMapperWithContext
    • [X] WalkMapper
    • [X] DependencyMapper
  • [X] Force Expression to be derived from:
    • [X] std::fmt::Display
    • [X] std::cmp::Eq
    • [X] Probably all the mappers that we implement.
  • [X] String parsing.
  • [ ] Do the Binary Ops have to to “binary”, can they instead be rewritten to take arbitrary number of operands like pymbolic?
  • [ ] Parsing: needs helpful error messages.
  • Idea: We should probably implement something like IdentityMappers as derive macros.
  • [X] Implement get_dependencies
  • [ ] Implement substitute
  • [ ] Implement evaluate
  • [X] Make a deduplicating helper function
  • [X] Implement equality mapper
  • [X] Implement PartialEq trait for Rc<Expression>
    • Not possible.
  • [X] Implement Bitwise Operators
  • [X] Implement Cached variants of mappers
  • [ ] Implement out sub-language as the `eval!` macro
  • [X] Add Continuous Integration
  • [X] StringifyMapper as Display and Repr for Debug.
  • [X] Repr should truncate results with (...).
  • [X] expression_trees is a terrible name, probably rename it to something else?
    • [X] Rename to SymOxide
  • [ ] Implement scalars!() which is similar to variables!.
  • [ ] Start working on a design doc
  • [X] Visualize to graphviz
  • [X] Fix graphvix error detection.