cyx-6 created an issue (apache/tvm-ffi#848) 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 dev@ -- Reply to this email directly or view it on GitHub: https://github.com/apache/tvm-ffi/issues/848 You are receiving this because you are subscribed to this thread. Message ID: <apache/tvm-ffi/issues/[email protected]>
