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