- Enumeration of results on single core computers fixed
- Updated dependencies and compiled with newest Scala versions
- Tested to work with Java 17
- CI-Pipeline maintenance
This version replaces the algorithms by the version published in A Type-Theoretic Framework for Software Component Synthesis.
- Constructors are now unary with products for arity > 1
- Domain restrictions on substitution spaces allow to avoid duplication in types
- The algorithm is based on relational semantics of multiple specialized machine models
- Results are now real regular tree grammars without arity violations
- A long standing bug concerning the inhabitation of type omega is fixed
- Several dependencies have been updated
- Compatibility with Scala 2.13 is added
- Symbol syntax for constructors is deprecated
This version contains minor patches.
- Method
removeEntriesWithArgument
is now non-final to allow logging in a debugger inheriting fromFiniteCombinatoryLogic
- Various performance improvements
- Method
addOption
of FiniteSubstitutionSpace` allows to add an allowed substitution, where previously the only way to allow substitutions was via per-variable kinding. - Some sbt/version updates, including migration of shapeless-feat to
combinators.org
- Better pretty printing of constructors
C(x, y)
instead ofC(x,y)
This is the first public release of cls-scala. The most notable changes to prior (internal development) versions are:
- The namespace is now
org.combinators
. BoundedCombinatoryLogic
accepts any finite space of substitutions instead of just Kindings for single variables.- The newsticker example is now just a console instead of a play application (this minimizes dependencies).
- The project directory layout has been flattened (
core/src
is nowsrc
).