Skip to content

1.0.0-M1 - First Milestone release of v1

Compare
Choose a tag to compare
@jeffmay jeffmay released this 19 Jan 23:20
· 30 commits to v1 since this release
  • Add a core-v1 module as a dependency of the old prototype core module
    • Moved a lot of core features to shared core-v1 module with appropriate type and val aliases for backwards compatibility
  • The new module contains:
    • New expression algebra:
      • Appropriate use of variance (contravariant on input, covariant on output)
      • Simplified mechanics around mathematical operations
      • Support for attaching debug functions
      • TODO: Need to find a consistent pattern for handling DSL wrapper types
    • New DSL mechanics:
      • Remove old expression builders in favor of operating directly (or through extension methods) on expression nodes
      • Utilize type-level calculations to produce appropriate types
      • Much more general purpose and simplified ExprHList container
      • Simplified type aliases via import
    • New Justification mechanics:
      • Justified algebraic data type for tracing justification through a tree
      • TODO: Need better support for tracking collection elements back to their original containers
    • Support for caching intermediate expressions with an ImmutableCachingEngine and via import dsl.caching.immutable._
    • Work in progress on re-interpretable "standard" DSL:
      • WARNING: Do not use this DSL, it has unimplemented methods and will likely be completely refactored
    • Much more unit tests around edge cases