Skip to content

Releases: ty1824/dialector

v0.9.3

04 May 02:15
Compare
Choose a tag to compare

Resolves several performance bugs with Inkt's internals:

  • Queries assigned a value equal to their already-computed value would invalidate their dependencies
  • Queries with transitive dependencies whose inputs had maybe changed would never validate (and thus always recompute).
  • Added tests for these cases and several others.

Some enhancements:

  • Eliminated a lot of dead code around input value verification (likely added to ensure correct behavior in the presence of the above bugs)
  • Reduced the toString length of various query internals to make debugging easier.

What's Changed

  • Fix overeager query invalidation, optimize validation, bump gradle version by @ty1824 in #29

Full Changelog: v0.9.2...v0.9.3

v0.9.2

18 Oct 18:35
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.9.1...v0.9.2

v0.9.1

10 Aug 21:52
Compare
Choose a tag to compare

Dialector

  • A convenience change - variance on the context type of TypesafePredicate is in rather than invariant. This prevents needing to specify in at essentially all use sites.

What's Changed

Full Changelog: v0.9.0...v0.9.1

v0.9.0

09 Aug 19:55
Compare
Choose a tag to compare

Dialector

  • Significant changes to predicates and rules. They now include a generic context parameter, and all APIs using them do as well.
  • Unfinished/unused code has been moved to dialector-kt-experimental to avoid cluttering the API and make it easier to validate coverage.
  • Code coverage! Tests have been added to cover nearly the entire Dialector API
  • Lots of miscellaneous improvements across the board.

What's Changed

  • Rename TypesafeClause to TypesafePredicate, now includes context by @ty1824 in #26

Full Changelog: v0.8.0...v0.9.0

v0.8.0

27 Jul 08:53
9ff9251
Compare
Choose a tag to compare

Dialector

  • Fixed a nullable cast bug in the resolve extension
  • Now allows properties with default values. The hasDefault property must be set on the @Property annotation and a default getter must be provided by the property
  • Attempted to add formatting capabilities to the Dialector code generator. This is disabled until a reflective access bug is fixed by the ktlint team/their upstream libraries.

Inkt

  • Formalized the error messaging when a cycle occurs so it is more useful and complete.

What's Changed

Full Changelog: v0.7.0...v0.8.0

v0.7.0

20 May 03:54
a76528d
Compare
Choose a tag to compare

Fixes some bugs in QueryDatabase and improves error messages for QueryDefinitions with no implementation.

v0.6.0

17 May 17:30
842d864
Compare
Choose a tag to compare

Additional improvements to the new Inkt query format.

  • Queries are now invoked using QueryContext.query rather than an implicit invoke on the query definition.
  • Backdating support has been implemented - if a dependent query re-executes with the same value as it previously had, downstream queries will not require recomputation.

Misc changes to Dialector

  • Node.getDescendants now has the proper return type.
  • Reference resolution now supports a reified extension function.

v0.5.0

27 Mar 08:30
6bb2bc7
Compare
Choose a tag to compare
  • New Inkt DSL allows for less query database boilerplate and provides interfaces for custom implementations.
  • Code generation for references on builders has been changed to provide full contextual information to a reference. This includes the target, as before, along with the source node and relation (owning property).

v0.4.0

27 Feb 08:13
326b64a
Compare
Choose a tag to compare

Adds a new incremental query framework, Inkt.

v0.3.0

20 Feb 01:25
61b2acc
Compare
Choose a tag to compare

Features:

  • Add option for indentation to processor.
  • DSL Marker for generated builders.

Cleanup:

  • Add Kotlinter gradle plugin
  • Formatting fixes