Skip to content

tiergraph 0.8.0

Choose a tag to compare

@lenzo-ka lenzo-ka released this 06 Oct 22:02
· 83 commits to main since this release
d5a34e8

Added

  • Added relation-instance references as targets of set_attribute,
    remove_attribute and remove_relation, so polyadic instances without
    durable ids can be edited and removed.
  • Added declared work budgets for pattern views and binding, predicates,
    span-pair joins, lattice matching, folds and path plans. Exhaustion raises
    BudgetExhausted; outermost budgeted span scans can report cut-at-budget.
  • Added opt-in CLI --max-steps and match-request max_steps work guards.
  • Added work budgets to output-plan preparation, masses, conditioning and item
    marginals.
  • Added work budgets to grammar recognition, derivation counts, best
    derivations and target generation.
  • Added deterministic selector-scan and set-traversal charging to every
    budgeted selection; an ambient meter activates it around a nested
    SequenceSelector.
  • Added opt-in Graph.share_values() to share equal item attributes and
    structural item references; the retained-memory saving holds once the caller
    drops the original graph.

Changed

  • Graph.canonical_items() now returns durable items as the graph's own
    references, with unchanged values.
  • Reduced compiled-pattern memory by packing NFA edges without changing matching results or work accounting.
  • CompiledPattern.epsilon and CompiledPattern.atom_edges now hold packed integers.
  • Avoided graph cycle walks for acyclic bipartite relations whose endpoint types
    are disjoint.
  • Reduced graph construction overhead for empty and singleton attributes and
    valid structural references without relaxing their validation.
  • Made integer-shaped decimal attribute construction avoid general Decimal
    re-parsing and reused the compiled whitespace normalizer.
  • Made exact Decimal folds reuse sufficient context precision instead of
    recomputing a precision bound for every multiplication.
  • Made ranked PATH folds concatenate already-singleton witness values directly
    instead of running general Cartesian deduplication and sorting.
  • Lowered charged steps for large pattern alternations with bounded lookahead,
    without a wall-time gain, while preserving every pattern and lattice result.
    At a step-budget boundary, an outermost span call that previously refused may
    now return a nonempty cut-at-budget prefix; the reverse change cannot occur.
  • Refused empty and non-string durable relation references and relation-instance
    durable ids at construction.
  • Allowed layer flattening onto anonymous polyadic relation instances.
  • Made pattern and embedded-predicate text parsing, and pattern compilation,
    independent of Python call stack depth and allowed 256 nested text groups.
    Pattern ASTs remain limited to 256 levels, and pattern and predicate NFAs to
    1,000,000 states.
  • Stopped spans(limit=) once its extent is settled and made count avoid
    retaining span witnesses.