Dear community:

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

* Non-nullable object references in C++ — concrete reference classes
and containers (Array, Map, Dict, List, Tuple, Enum, ...) now reject
null, and Optional<T> is the way to represent absence. ObjectRef,
Function, and Tensor stay nullable for compatibility. Optional<T> of
an object reference keeps its pointer-sized layout but no longer
inherits from ObjectRef, so the contained reference is reached through
value() or *. Custom reference types should use
TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE.
* Typed native functions — NativeFunction<R(Args...)> and
NativeFunctionView bind C++ functions at compile time through
FromNative<&Fn>() and accept either an Expected<R>-returning noexcept
target or an ordinary throwing one. Structural mutation and visitation
hooks and the custom __any_hash__/__any_equal__ hooks use the same
native convention, while packed Function hooks remain supported.
* Typed reflection attribute keys — type attributes are now named by
typed reflection::AttrKey<T> descriptors that validate a stored
value's type when it is read. The keys for each hook live next to the
API that uses them, under tvm::ffi::type_attr, and
native_fn_attr<&Fn>(key) registers a native callback for a specific
key.
* Named type schemas for function signatures — function schemas now
carry named return and params groups instead of a flat args list, an
explicit empty params denotes a known zero-argument function, and
named schemas can declare a fallback type used for Python binding
annotations.
* Rust BigInt — tvm_ffi::BigInt mirrors C++ BigInt with an inline i64
fast path, native arithmetic ported from the C++ int_ops, and fallible
forms for FFI callbacks; the Rust stub generator mirrors ffi.BigInt
fields of reflected classes.
* Rust interop — TensorView accepts borrowed DLTensor* arguments from
C and C++ callers, Tensor::from_env_alloc allocates through the
environment DLPack allocator, #[type_register] lets a crate define and
register its own object types on first use, Module exposes function
metadata and doc strings, and panics at FFI boundaries are raised as
InternalError instead of aborting the process.
* Python 3.15 and Windows ARM64 wheels — apache-tvm-ffi now ships
wheels for CPython 3.15 and free-threaded 3.15t on every platform, and
native Windows ARM64 wheels. The optional torch C-DLPack addon now
builds on free-threaded Python on Windows.
* Fixes — TVM_FFI_DLL_EXPORT_TYPED_FUNC compiles under MSVC when
exporting a parenthesized static member address, CUDA sources build
through tvm_ffi.cpp on Windows, the Rust crates fail at build time
with install guidance when tvm-ffi-config is missing and build on
docs.rs, the Rust with_stream restores the previous stream when its
closure fails, ObjectRef casts honor specialized strict checks, and
tvm-ffi-config --cython-lib-path no longer imports the extension.
* Source-level changes to watch — the C ABI is unchanged in this
release, but C++ code that relied on null concrete references, on
Optional<T> being an ObjectRef, on the old raw-pointer signatures of
custom __any_hash__/__any_equal__ hooks, or on the
reflection::type_attr name constants (now typed keys in
tvm::ffi::type_attr, with the string available as .name) needs
updating, and tools that parse exported function type schemas will see
the named return/params form.

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

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

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

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

Reply via email to