Dear community:

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

* C++20 baseline — TVM FFI now requires C++20 for its core and Cython
builds, exported CMake targets, tvm-ffi-config --cxxflags, and Python
C++/CUDA extension builds. The examples, documentation, and ORC JIT
build settings have been updated accordingly. C++20-only clang-tidy
syntax rewrites remain optional.
* Rust object interop — downcast_ref adds borrowed object downcasts to
Any, AnyView, and managed references. The rs_class macro has been
renamed to rs_object.
* Rust matching and dispatch — match_any! supports scalar patterns and
typed mutation views, with borrowed matching and a unified runtime
dispatch interface. Dispatch argument and return types are declared
explicitly.
* Structural traversal — Rust visiting and mutation support generic
native base types, scoped structural views, and composed mutation
storage. Traversal engines and adapters have been simplified, hot
paths have been streamlined, and root-type hooks provide richer
traversal error context. Rust structural map and mutate handlers now
return Result<UnchangedOr<Any>>, with explicit unchanged results.
WalkResult::interrupt_with is replaced by the InterruptWith variant.
Core Rust APIs include runnable documentation examples.
* Rust reference and argument conversions — IntoArg supports argument
conversion for borrowed and owned values. Borrowed object-reference
upcasts use AsRef; downcast_ref, dispatch, and match_any! borrow
references and values in place. Array supports in-place indexing and
from_vec; Optional gains as_ref.
* Rust API alignment — casts use downcast_ref, downcast and
TryFrom/try_into; ObjectRefCore replaces ObjectRefCast, and module
lookups use explicit _with_imports variants. TensorView carries a
borrow lifetime, mutable tensor slice access is unsafe.
* Rust thread safety — object handles are no longer Send/Sync by
default; immutable object types opt in through ImmutableObject,
subject to their fields being thread-safe. Rust function callbacks
require Send + Sync.
* Error context and correctness — traversal errors append breadcrumbs
with copy-on-write storage, preserving shared errors. Fixes cover
empty shapes, null strides, zero-size tensor allocation, and dropping
elements in Rust-allocated arrays.
* Rust API and soundness follow-ups — Rust moves to edition 2024, adds
enum references and structural comparison APIs, refines container and
argument conversions, and addresses allocation overflow, tensor-size
checks, reference counting, and immutable-subtype handling. Downstream
Rust users should review the updated API guide.
* Stub generation and error reporting — one-line directives use the
subject: target(keys) grammar; generated accessors cache FieldGetter
lookups. Structural errors retain traversal context and are enriched
at public boundaries. JSON numeric conversion is independent of
locale.
* Intel GPU and DLPack — this release adds Intel GPU support and
updates the bundled DLPack dependency to version 1.4.
* Fixes — small moved strings and bytes are constructed inline, the
Torch addon cache is invalidated when its generator changes, Torch
allocation uses the DLPack v1 dtype mapping, custom dtype formatting
preserves bit widths, reference counting compiles on MSVC x86, and
static-library consumers receive TVM_FFI_EXPORTS.
* Source-level changes to watch — C++ consumers need a C++20-capable
compiler and build configuration. Rust code using rs_class needs to
use rs_object, and callers of the evolving matching, dispatch, and
structural traversal APIs should review the updated Rust guide.

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

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

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/969

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

Reply via email to