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]>

Reply via email to