Dear community:

This is a call for vote to release apache-tvm-ffi version v0.1.14. The
main highlights of this release are

* Structural transformation APIs — StructuralMutator recursively
transforms reflected object graphs, with structural_map providing a
typed callback interface for compiler passes, alongside
maybe_inplace_mutate and var_remap. C++ StructuralMap callbacks accept
a replacement value, Expected<T>, Error/Unexpected, or a thrown Error.
StructuralVisit and StructuralMutate expose lower-level engines where
the callback owns descent and traversal order.
* Rust structural, object, and stubgen support — all four structural
operations (walk, visit, map, mutate) gain typed callbacks and a
#[dispatch(...)] frontend; the object binding runtime adds zero-copy
upcasts, identity comparison, and reflection-table method lookup; and
tvm-ffi-stubgen --target rust generates opaque bindings for every
reflected object, reading fields through the C ABI getter so object
bytes are never reproduced.
* Opaque pointer handler map — third-party extension types that cannot
define or accept monkey-patching of __tvm_ffi_opaque_ptr__ can now
participate in opaque-pointer conversion via
tvm_ffi.core._OPAQUE_PTR_HANDLERS, without changing their owning
package.
* Stronger static typing through Any — static object type bounds are
now propagated across ObjectPtr, ObjectRef, and raw-object conversions
into Any and AnyView, while runtime validation for unconstrained
values is unchanged.
* Safer copy-on-write through unique() — Object::unique() now requires
one strong reference AND no external weak references, since a live
WeakObjectPtr can still upgrade while a strong owner exists.
use_count() keeps its strong-only semantics.
* Performance and platform fixes — hot-path inlining across ObjectPtr,
Optional, and Any, a leaner structural-mutation engine, Windows
backtraces serialized around DbgHelp so a concurrent trace no longer
kills the process, and Python discovery split between host and target
so 3.14t wheels build on cross-compiled platforms such as Linux
PPC64LE and macOS ARM64.
* Correctness fixes — Python annotation metadata is stabilized across
versions, and ffi.Error is now picklable so FFI-originated exceptions
survive round-tripping.
* Def-region terminology renamed in the C ABI —
kTVMFFIDefRegionKindRecursive/NonRecursive become Pattern/Simple, and
the matching kTVMFFIFieldFlagBitMaskSEqHashDef* flags follow. Every
enum value keeps its number, so binaries stay compatible, but source
naming these constants needs the new spellings. A new kTVMFFIUnchanged
marker is also added for structural mutation.

Link to draft release notes:
https://github.com/apache/tvm-ffi/releases/tag/v0.1.14-rc5

Link to release candidate:
https://dist.apache.org/repos/dist/dev/tvm/tvm-ffi-v0.1.14-rc5/

Everyone is welcomed to vote. Please vote by replying to this thread
explicitly. The vote will last at least 72 hours, please vote

+1 = approve
+0 = no opinion
-1 = disapprove (provide reason)

NOTE: this thread is being mirrored in GitHub issue
https://github.com/apache/tvm-ffi/issues/775

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to