Skip to content

Add structured b2o persistence for logical objects and improve lazy/proxy semantics#610

Merged
FrancescAlted merged 13 commits intomainfrom
b2objects-cframe
Mar 30, 2026
Merged

Add structured b2o persistence for logical objects and improve lazy/proxy semantics#610
FrancescAlted merged 13 commits intomainfrom
b2objects-cframe

Conversation

@FrancescAlted
Copy link
Copy Markdown
Member

@FrancescAlted FrancescAlted commented Mar 30, 2026

Main Improvements:

  • Added the new b2o metalayer as the primary source of truth for deserializing persisted CFrame-backed objects beyond plain SChunk / NDArray.
    This is now the structured persistence mechanism for objects such as C2Array, LazyExpr, and LazyUDF.
  • Implemented structured b2object round-trips for higher-level Blosc2 objects.
    Persisted carriers can now reopen as their logical object type instead of remaining opaque array containers.
  • Restored strict Proxy read-only semantics.
    blosc2.open(..., mode="r") on persisted proxies no longer mutates the local cache implicitly.
  • Fixed saved lazy expressions to reopen local operands in the default open mode instead of forcing mode="r".
    This preserves direct read-only proxy semantics while allowing reopened lazy recipes to work correctly with proxy operands.
  • Added LazyArray.vlmeta support.
    LazyExpr and LazyUDF now support user metadata both in memory and after persistence/reopen.
  • Persisted lazy metadata round-trips cleanly.
    User vlmeta is stored separately from internal reconstruction metadata.
  • Improved DictStore behavior for lazy objects.
    Persisted LazyExpr leaves are now discovered and reopened correctly.
  • Fixed storage of lazy b2object carriers inside DictStore / .b2z bundles.
    Lazy recipes can now be bundled and reopened read-only without regressions.
  • Updated docs and tests accordingly.
    This includes new regression coverage for proxy reopen semantics, lazy metadata round-trips, bundled lazy recipes, and platform-neutral path
    expectations.

@FrancescAlted FrancescAlted changed the title Tighten lazy persistence semantics, restore proxy read-only behavior, and add LazyArray.vlmeta Add structured b2o persistence for logical objects and improve lazy/proxy semantics Mar 30, 2026
@FrancescAlted FrancescAlted merged commit 866c259 into main Mar 30, 2026
17 checks passed
@FrancescAlted FrancescAlted deleted the b2objects-cframe branch March 30, 2026 10:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant