Skip to content

VivaceGraph 2.1.1

Latest

Choose a tag to compare

@kraison kraison released this 06 Jul 09:24

A bug-fix release.

Fixed

  • ECL: cross-graph edge-exists-p / adjacency read the wrong heap. A ve/vev
    index lookup for a graph other than the current *graph* deserialized its
    index-list against (heap *graph*) — the deserialize-index-list default — instead
    of the owning graph's heap. So a cold (edge-exists-p … :graph B) (or a generated
    make-<type>'s type-id resolution) while *graph* named a different graph walked
    the wrong heap and returned NIL, and the per-index cache was then poisoned with the
    mis-bound list. Fixed by binding *graph* to the owning graph at the
    lookup-vev-index-list / lookup-ve-in-index-list / lookup-ve-out-index-list
    read boundaries. It manifested on ECL (SBCL's cache/timing masked it in the
    regression test), but the underlying flaw was implementation-independent. Full test
    suite green on both SBCL and ECL.