Skip to content

v0.1.5

Latest

Choose a tag to compare

@ASaltedFishBoy ASaltedFishBoy released this 27 Oct 08:14

asf_dyn v0.1.5

This release builds on v0.1.4 with a clearer cache-adopt path for storing dereferenceable smart pointers inside cache_dyn, richer shallow pointer_ops, and an ABI bump to v0_1_5_b0110. Documentation adds a Why ASF section (flexible full-Ptr erasure vs single-handle proxy stacks) and updated pointer/cast specs.

What changed in v0.1.5

  • cache_storage_spec<Storage> — maps stored types to cache_ptr geometry and default shallow Ops (unique_ptr / shared_ptr, pointer_trait::ops, …), independent of adopt wrappers
  • cache_deref<Ptr> (renamed from proxy_wrap) — reference adopt wrapper for to_dyn: cache buffer holds Ptr, vtable dispatches on the pointee
  • Opt-in cache-adopt routing: nested using asf_adopt_proxy = void (presence only; type not checked); same protocol can be implemented on user types
  • to_dyn uses cache_ptr_for_storage<Ptr> when Spec is omitted for adopt wrappers (no Spec embedded in the wrapper)
  • pointer_ops: unbound ops, duck-typed slots, shallow bool, vtable_of introspection
  • Internal cleanup of unused helpers; is_cache_adopt_wrapper fix for move-from-adopt_storage() (Ptr&&)
  • Version / ABI: 0.1.5, inline ABI namespace v0_1_5_b0110 (default feature tag b0110)
  • README (EN/ZH) and spec docs aligned for cache adopt, adopt_storage, pointee

Breaking / migration (from v0.1.4)

  • proxy_wrap → cache_deref
  • Wrapper accessors: pointer() → adopt_storage(); no default_cache_spec on the wrapper — use cache_storage_spec or an explicit cache_ptr Spec on to_dyn
  • Cache-adopt to_dyn requires asf_adopt_proxy on the wrapper type
  • Rebuild all translation units: ABI inline namespace changed v0_1_4_* → v0_1_5_*

Why this release matters

v0.1.5 makes the “smart pointer in SBO cache, methods on the pointee” workflow explicit and extensible without baking buffer layout into a single library wrapper type. It keeps the forward-looking C++26 reflection direction while tightening pointer/c cache ergonomics for proxy-like benchmarks and production-shaped APIs.

Project status

asf_dyn remains an early-stage, standards-dependent library built around the emerging C++26 reflection model. It is not yet a broadly mature production dependency, but it is a deliberate and increasingly coherent codebase with a clear direction and ongoing refinement.

Compatibility and expectations

  • Requires a C++26 reflection-capable toolchain
  • Primary supported environment remains GCC 16 and related reflection-enabled setups
  • Some advanced features remain compiler-sensitive or feature-gated
  • API and behavior may continue to evolve as the underlying reflection ecosystem matures
  • Do not mix v0.1.4 and v0.1.5 compiled objects in one process (ABI namespace change)

Known limitations

  • Requires compiler support for the relevant C++26 reflection features
  • Some configuration combinations remain experimental or intentionally restricted
  • This is a source-based, header-oriented library rather than a binary distribution
  • This release is part of the ongoing 0.1 development trajectory

License

Boost Software License 1.0