## What's Changed * [STUBGEN][RUST] Wrap generated allocator bodies the way rustfmt does by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/847 * [FEAT] Add a name membership query to EnumDef by @tqchen in https://github.com/apache/tvm-ffi/pull/849 * [STUBGEN][RUST] Fix build errors and warnings in generated bindings by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/850 * [FEAT][Rust] Add List<T>, the mutable sequence mirroring ffi.List by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/843 * [STUBGEN] Handle object blocks of types that are no longer registered by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/851 * [CMAKE] Add explicit FFI install component and embedded installation by @tqchen in https://github.com/apache/tvm-ffi/pull/852 * [TEST] Skip the flaky shared DAG hash scaling test by @cyx-6 in https://github.com/apache/tvm-ffi/pull/857 * chore(release): Version bump after release v0.1.15 by @cyx-6 in https://github.com/apache/tvm-ffi/pull/856 * fix ref selection in .github/workflows/torch_c_dlpack.yml by @xieofxie in https://github.com/apache/tvm-ffi/pull/854 * [FEAT][RUST] Register the reflection of Rust-defined object types by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/859 * [FEAT][STUBGEN] Name Rust bindings by the module of their file by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/860 * [TEST] Avoid GCC ICE in tuple move test by @tqchen in https://github.com/apache/tvm-ffi/pull/865 * Hide direct static archive symbols in Darwin shared libraries by @tqchen in https://github.com/apache/tvm-ffi/pull/864 * [TEST][RUST] Register the reflection test types before any test reads… by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/862 * [CI] Pass the venv Python to the Rust stubgen example build by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/868 * [STUBGEN] Rename the custom-new allocator to from_fields by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/870 * [FIX] Preserve post-order structural map descent by @tqchen in https://github.com/apache/tvm-ffi/pull/866 * [FEAT][RUST] Define object types from a struct of their fields with `rs_class` by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/869 * [STUBGEN][RUST] Update the check for generated bindings by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/861 * [TEST] Fix the main test failures after #869 and #861 by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/871 * [CORE] Use singular detail for internal C++ namespaces and headers by @tqchen in https://github.com/apache/tvm-ffi/pull/872 * [BUILD] Enable MSVC inline COMDAT elimination by @tqchen in https://github.com/apache/tvm-ffi/pull/874 * [FIX] Preserve namedtuple fields when unpacking dataclasses by @LingYi-Liang in https://github.com/apache/tvm-ffi/pull/867 * [CI] Update PyPI publishing action to ASF-approved v1.14.3 by @cyx-6 in https://github.com/apache/tvm-ffi/pull/875 * [FEAT] Add independent fallback controls to private library lookup by @tqchen in https://github.com/apache/tvm-ffi/pull/876 * [BUILD][ORCJIT] Use the PyPI LLVM static SDK by @cyx-6 in https://github.com/apache/tvm-ffi/pull/877 * [BUILD][ORCJIT] Discard unused sections and embedded archive debug data by @tqchen in https://github.com/apache/tvm-ffi/pull/878 * [FEAT][ORCJIT] Add native Windows ARM64 wheels by @cyx-6 in https://github.com/apache/tvm-ffi/pull/879 * [FIX][ORCJIT] Discard CRT callbacks after failed ARM64 links by @cyx-6 in https://github.com/apache/tvm-ffi/pull/880 * [FEAT][Rust] Record type schemas and doc strings of exported functions by @lucifer1004 in https://github.com/apache/tvm-ffi/pull/832 * [FEAT][Rust] Register fields and methods of object types defined in Rust by @lucifer1004 in https://github.com/apache/tvm-ffi/pull/834 * [FEAT][Rust] Add static_init_block! in Rust by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/882 * [FEAT][Rust] Let a static_init_block! end without Ok(()) by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/883 * [TEST][Rust] Run the tests of each binary on one thread by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/885 * [FEAT][Rust] Generate placeholders of rs_class objects with `placeholder` by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/884 * [FEAT][Rust] Replace rs_class placeholders with an UnsafeInit creator by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/886 * Constrain Optional's constructors for C++20 by @tfogal in https://github.com/apache/tvm-ffi/pull/887 * [FEAT] Enrich structural traversal errors through root type hooks by @tqchen in https://github.com/apache/tvm-ffi/pull/889 * [FEAT][Rust] Add object downcast_ref to Any, AnyView and managed references by @tqchen in https://github.com/apache/tvm-ffi/pull/891 * [Rust] Use AnyView in structural traversal callbacks by @tqchen in https://github.com/apache/tvm-ffi/pull/892 * [REFACTOR][Rust] Unify mutation capabilities and context names by @tqchen in https://github.com/apache/tvm-ffi/pull/894 * [Rust] Add borrowed matching and rename MutationView by @tqchen in https://github.com/apache/tvm-ffi/pull/896 * [FIX] Construct small moved strings and bytes inline by @tqchen in https://github.com/apache/tvm-ffi/pull/898 * [Rust] Extend match_any with scalars and typed mutation views by @tqchen in https://github.com/apache/tvm-ffi/pull/899 * [FEAT][Rust] Unify runtime dispatch and scoped structural views by @tqchen in https://github.com/apache/tvm-ffi/pull/893 * [FEAT][Rust] Declare dispatch arguments and return types explicitly by @tqchen in https://github.com/apache/tvm-ffi/pull/900 * [Rust] Simplify structural traversal engines and adapters by @tqchen in https://github.com/apache/tvm-ffi/pull/901 * [Rust] Simplify structural traversal engines by @tqchen in https://github.com/apache/tvm-ffi/pull/902 * [PERF][Rust] Keep structural traversal fast paths in registers by @tqchen in https://github.com/apache/tvm-ffi/pull/903 * [PERF][Rust] Streamline structural traversal checks and dispatch by @tqchen in https://github.com/apache/tvm-ffi/pull/904 * [Rust] Rename `rs_class` to `rs_object` by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/908 * [REFACTOR][Rust] Clarify structural traversal utilities and initialization by @tqchen in https://github.com/apache/tvm-ffi/pull/906 * [DOC] Convert Markdown guides to rst and drop MyST by @tqchen in https://github.com/apache/tvm-ffi/pull/909 * [EXTRA][Rust] Make structural visiting generic over its native base by @tqchen in https://github.com/apache/tvm-ffi/pull/907 * [Rust] Preserve object-range facts in Any conversions by @tqchen in https://github.com/apache/tvm-ffi/pull/910 * [DOC][Rust] Add Matching and Dispatch to the Rust guide by @tqchen in https://github.com/apache/tvm-ffi/pull/911 * [FIX] Invalidate Torch addon cache when generator changes by @LeiWang1999 in https://github.com/apache/tvm-ffi/pull/915 * [FIX] Use DLPack v1 dtype mapping for Torch allocation by @LeiWang1999 in https://github.com/apache/tvm-ffi/pull/914 * [FIX] Preserve bit widths when formatting custom dtypes by @LeiWang1999 in https://github.com/apache/tvm-ffi/pull/913 * [Rust] Make structural mutation generic over its native base by @tqchen in https://github.com/apache/tvm-ffi/pull/912 * [FIX] Fix reference counting compilation on MSVC x86 by @miyanyan in https://github.com/apache/tvm-ffi/pull/916 * [Rust] Unify dispatcher input conversion and raw base hooks by @tqchen in https://github.com/apache/tvm-ffi/pull/917 * [Feature] [XPU] Enable Intel GPU Support by @polisettyvarma in https://github.com/apache/tvm-ffi/pull/888 * [EXTRA] Compose mutator storage and expose borrowed Rust attributes by @tqchen in https://github.com/apache/tvm-ffi/pull/918 * [DLPACK] Bump DLPack to 1.4 by @tqchen in https://github.com/apache/tvm-ffi/pull/919 * [BUILD] Propagate TVM_FFI_EXPORTS to static library consumers by @miyanyan in https://github.com/apache/tvm-ffi/pull/890 * [BUILD] Require C++20 for TVM FFI by @cyx-6 in https://github.com/apache/tvm-ffi/pull/920 * [TEST][Rust] Avoid fixed NaN payloads across float casts by @cyx-6 in https://github.com/apache/tvm-ffi/pull/922 * [LINT] Keep C++20 syntax rewrites optional in clang-tidy by @tqchen in https://github.com/apache/tvm-ffi/pull/924 * [Rust] Use Result<UnchangedOr<Any>> as the structural map and mutate result by @tqchen in https://github.com/apache/tvm-ffi/pull/925 * [Rust][DOCS] Add std-style examples to the core API docs by @tqchen in https://github.com/apache/tvm-ffi/pull/926 * [Rust] Remove WalkResult::interrupt_with by @tqchen in https://github.com/apache/tvm-ffi/pull/927 * [Rust] Index Array in place; add Array::from_vec; rename Optional::is_some and UnchangedOr::value_or_unchanged by @tqchen in https://github.com/apache/tvm-ffi/pull/929 * [Rust] Borrow object-reference upcasts through AsRef by @tqchen in https://github.com/apache/tvm-ffi/pull/930 * [Rust] Borrow references and values in place in downcast_ref, dispatch and match_any!; add Optional::as_ref by @tqchen in https://github.com/apache/tvm-ffi/pull/931 * [DOCS][Rust] Borrow reference types in match_any! and dispatch examples by @tqchen in https://github.com/apache/tvm-ffi/pull/932 * [Rust] Add IntoObjectRef<T>: owned or borrowed conversion into an object reference by @tqchen in https://github.com/apache/tvm-ffi/pull/933 * [Rust] Extend downcast_ref to MutationView, BigInt, DLDataType and DLDevice by @tqchen in https://github.com/apache/tvm-ffi/pull/935 * [Rust] Borrow BigInt, DLDataType and DLDevice in place with downcast_ref by @tqchen in https://github.com/apache/tvm-ffi/pull/936 * [Rust] Align casts and lookups with std and C++ before stabilization by @tqchen in https://github.com/apache/tvm-ffi/pull/937 * [FFI][Rust] Thread safety only where it holds; TryFrom between object references by @tqchen in https://github.com/apache/tvm-ffi/pull/938 * [EXTRA] VisitErrorContext: Array with copy-on-write append by @tqchen in https://github.com/apache/tvm-ffi/pull/939 * [Rust] Append visit error context in place by @tqchen in https://github.com/apache/tvm-ffi/pull/940 * [Rust] Fix clippy findings by @tqchen in https://github.com/apache/tvm-ffi/pull/942 * [FFI] Refcount ordering, Array copy-on-write mutators, Rust API surface cleanup by @tqchen in https://github.com/apache/tvm-ffi/pull/943 * [Rust] Structural engine readability: one-line comments, typed run_visitor, TVMFFIAny by value by @tqchen in https://github.com/apache/tvm-ffi/pull/944 * [Rust] ObjectRefAnyCompatible and derive-only object reference declaration by @tqchen in https://github.com/apache/tvm-ffi/pull/945 * [Rust] Reorder object, error, array, macro and structural engine files; inline dispatch handlers, cold visitor stop path by @tqchen in https://github.com/apache/tvm-ffi/pull/946 * [Rust] Export with #[unsafe(no_mangle)], tidy macro docs by @tqchen in https://github.com/apache/tvm-ffi/pull/947 * [Rust] Complete the API docs, CPUNDAlloc unit struct, AccessPath fields by @tqchen in https://github.com/apache/tvm-ffi/pull/949 * [FIX] Make JSON numeric conversion independent of locale by @tqchen in https://github.com/apache/tvm-ffi/pull/948 * [Stubgen] Rust directives for allow-missing-docs and closed enums by @tqchen in https://github.com/apache/tvm-ffi/pull/950 * [Rust] structural_equal/hash/mismatch; name the parent `base_` and the generated handle `data_` by @tqchen in https://github.com/apache/tvm-ffi/pull/951 * [Rust] Array/Map conversions from references, literals and subtype containers by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/952 * [Rust] EnumRef for FFI enums by @tqchen in https://github.com/apache/tvm-ffi/pull/953 * [Rust] NativeFunction typed hooks, Display through the runtime printer, reflection::type_key, EnumDef size check by @tqchen in https://github.com/apache/tvm-ffi/pull/954 * [Rust] Display honors width and alignment by @tqchen in https://github.com/apache/tvm-ffi/pull/955 * [Rust] Data and ABI soundness fixes: open DLDeviceType, checked tensor sizes, unsafe AsDLDataType by @tqchen in https://github.com/apache/tvm-ffi/pull/957 * [Rust] Generated constructors take object references as `impl IntoObjectRef<T>` by @Seven-Streams in https://github.com/apache/tvm-ffi/pull/956 * [Rust] Soundness fixes and API cleanup by @tqchen in https://github.com/apache/tvm-ffi/pull/958 * [Rust] Follow-up: downstream unblockers, registration fixes and API lock by @tqchen in https://github.com/apache/tvm-ffi/pull/959 * [Rust] Final-audit fixes: allocation overflow, immutable subtypes, dtype naming, API follow-ups by @tqchen in https://github.com/apache/tvm-ffi/pull/960 * [Rust] Stubgen: cache each accessor's FieldGetter by @tqchen in https://github.com/apache/tvm-ffi/pull/961 * [Rust] Group Object derive attributes under #[object(...)]; std-shaped Array/List accessors by @tqchen in https://github.com/apache/tvm-ffi/pull/962 * [Rust] IntoArg, IntoPackedArg(s), Map key lookup by IntoArg by @tqchen in https://github.com/apache/tvm-ffi/pull/963 * [Rust] match_any: fewer runtime helpers; check the table key once by @tqchen in https://github.com/apache/tvm-ffi/pull/965 * [Rust] Optional Send/Sync, is::<T>(), type_key(), prelude, weak_count as std by @tqchen in https://github.com/apache/tvm-ffi/pull/964 * [Rust] Move to edition 2024; Module::get_function reports a missing function as ValueError by @tqchen in https://github.com/apache/tvm-ffi/pull/966 * [Rust] Structural errors carry only the visit context; enrich at public boundaries by @tqchen in https://github.com/apache/tvm-ffi/pull/967 * [Stubgen] One grammar for one-line directives: `subject: target(keys)` by @tqchen in https://github.com/apache/tvm-ffi/pull/968
## New Contributors * @xieofxie made their first contribution in https://github.com/apache/tvm-ffi/pull/854 * @LingYi-Liang made their first contribution in https://github.com/apache/tvm-ffi/pull/867 * @tfogal made their first contribution in https://github.com/apache/tvm-ffi/pull/887 * @LeiWang1999 made their first contribution in https://github.com/apache/tvm-ffi/pull/915 * @miyanyan made their first contribution in https://github.com/apache/tvm-ffi/pull/916 * @polisettyvarma made their first contribution in https://github.com/apache/tvm-ffi/pull/888 **Full Changelog**: https://github.com/apache/tvm-ffi/compare/v0.1.15...v0.1.16-rc4 -- View it on GitHub: https://github.com/apache/tvm-ffi/releases/tag/v0.1.16-rc4 Unsubscribe from this thread: https://github.com/notifications/unsubscribe-auth/ALTSWH3YDIL5Y2LFOFSFOB35YF2ELBFGORXXA2LDOOJIFJLWMFWHKZNKGEYDKNRTGQ2TKNBYUR2HS4DFVJZGK4DPONUXI33SPGBKK5TBNR2WLKJUGM4DQNRQG44DLJDUPFYGLJ3SMVWGKYLTMWVGC5DUOJUWE5LUMVZZHAVFOZQWY5LFU5ZGK3DFMFZWLJDOMFWWLK3UNBZGKYLEL52HS4DFQKSXMYLMOVS2I5DSOVS2I3TBNVS2453BORRWQX3BMN2GS5TJOR4YFJLWMFWHKZNIGE3DQMZYGE4DHJDOMFWWLKDBMN2G64S7NFSKY43VMJVGKY3UL52HS4DFU5JGK3DFMFZWLJ3UOJUWOZ3FOKTGG4TFMF2GK Message ID: <apache/tvm-ffi/releases/[email protected]>
