Skip to content

Releases: apache/tvm-ffi

v0.1.13-rc0

v0.1.13-rc0 Pre-release
Pre-release

Choose a tag to compare

@cyx-6 cyx-6 released this 20 Jul 06:45
894419b

What's Changed

  • [TEST] Relax test_shared_dag_hash_scaling_not_exponential ratio to 4x by @tqchen in #612
  • chore(release): Version bump after release v0.1.12 by @MasterJH5574 in #617
  • [FEAT] Add structural visitor and typed structural walk APIs by @Kathryn-cat in #601
  • Robustify FromJSONGraph by @tqchen in #619
  • [REFACTOR][STUBGEN] refactor the stubgen logic. by @Seven-Streams in #608
  • Adopt AGENTS.md for agent guidance by @tqchen in #620
  • [DOCS] Document Python FFI conversion protocols by @tqchen in #622
  • [CI] Update astral-sh/setup-uv to allowed ref v8.2.0 by @cyx-6 in #624
  • [DOCS] Clarify CStrParts error handling usage by @tqchen in #625
  • [CI] Bump pinned GitHub Action hashes by @tqchen in #626
  • [BUILD] Hide symbols from linked static libraries by @tqchen in #627
  • [CMake] Format static symbol helper condition by @tqchen in #628
  • Avoid unused type_index local in structural visit by @tqchen in #629
  • [FIX] Avoid -Wassume error in structural visit VisitImpl by @cyx-6 in #632
  • [CI] Update Jimver/cuda-toolkit to allowed ref v0.2.35 by @cyx-6 in #631
  • [CI] Phase out Python 3.8 wheel builds by @tqchen in #633
  • [CI] Ignore existing DLLs in Windows wheel repair by @tqchen in #635
  • [OBJECT] Optimize dynamic RuntimeTypeIndex loads by @tqchen in #634
  • [OBJECT] Make object info macro compatible with CRTP by @tqchen in #636
  • [CORE] Invert object/type_traits dependency layering by @tqchen in #638
  • [API] Add type index query mode by @tqchen in #640
  • [FFI] Add ref-qualified strict ObjectRef casts by @tqchen in #639
  • [PY] Distinguish FFI input and output annotations by @Ubospica in #621
  • [PY] Support pickling FFI String and Bytes by @Ubospica in #643
  • [FFI] Make StructuralEqual functor compare tensor content by @pisarev in #646
  • [CORE] Add type subsumption and object-ref containment relations by @tqchen in #647
  • Include torch build/ABI in torch C-DLPack addon cache key by @tugot17 in #644
  • [FEAT][RUST]Add tvm_ffi::Map in Rust by @Seven-Streams in #623
  • [FIX] Make object construction exception-safe by @tqchen in #650
  • [FEAT][RUST]Add tvm_ffi::optional in Rust by @Seven-Streams in #630
  • [FIX] Resolve JIT GPU backend by explicit signals, not stray /opt/rocm by @tqchen in #652
  • [TEST] Run the Python test suite in parallel with a shared GPU lock by @tqchen in #654
  • [FIX] Mark ObjectRef throw-only paths unreachable by @tqchen in #656
  • [FFI] Back Optional and Variant by TVMFFIAny for a stable ABI layout by @tqchen in #657
  • [ORCJIT] Reinject contexts on first function lookup by @tqchen in #655
  • [ORCJIT] Add shared session and high-level load_module by @cyx-6 in #658
  • [ORCJIT] Embed liborc_rt into the extension and add orc_rt selector by @cyx-6 in #660
  • build(python)!: require CMake 3.26 for ABI-aware builds by @junrushao in #661
  • refactor(dataclasses)!: separate field resolution and native lifetimes by @junrushao in #663
  • refactor(enum)!: unify native enum state and singleton conversion by @junrushao in #664
  • feat(core): support ObjectPtr in FFI type traits by @junrushao in #665
  • feat(dtype): expand parsing and introspection by @junrushao in #668
  • ci(lint): run hooks through the uv development environment by @junrushao in #669
  • feat(abi): generate layout-compatible C++ object declarations by @junrushao in #670
  • [FEAT][Python] Tie Python wrapper lifetime to underlying C++ FFI object by @cyx-6 in #593
  • fix(device): require canonical Python device names by @tqchen in #671
  • fix(packaging): tag core wheels per-version instead of abi3 by @cyx-6 in #672
  • [FEAT] Add Expected specialization by @Kathryn-cat in #673
  • fix(reflection): require exact field and method name matches by @Kathryn-cat in #674

New Contributors

Full Changelog: v0.1.12...v0.1.13-rc0

v0.1.12

Choose a tag to compare

@MasterJH5574 MasterJH5574 released this 06 Jun 01:57
3050b0a

What's Changed

  • chore(doc): Temp workaround missing pytorch docs by @junrushao in #577
  • fix(dataclass): collect py_class fields from plain bases by @junrushao in #575
  • chore(release): Version bump after release v0.1.11 by @yongwww in #579
  • Update ML infrastructure section with XGrammar link by @Ubospica in #581
  • [FEAT][REFLECTION] Add tvm::ffi::reflection::overload_cast to pick overloaded function by @tqchen in #582
  • [FEAT] Split SEqHashDef into recursive and non-recursive variants by @tqchen in #583
  • [REFACTOR][OrcJIT] Per-session slab-pool memory manager by @cyx-6 in #574
  • [BugFix][ROCm] Prefer upstream PyTorch DLPack API in torch extension loader by @zihaomu in #585
  • [Minor] log ninja result by @DarkSharpness in #584
  • [BUILD] TVM_FFI_COLD_CODE / TVM_FFI_PREDICT_FALSE macros and cold-marking of error paths by @tqchen in #589
  • [FIX][RUST] use $crate:: in tvm_ffi_dll_export_typed_func! and ensure! by @lucifer1004 in #590
  • [EXTRA][FEAT] VisitErrorContext for visit-context-aware error reporting by @tqchen in #587
  • [FEAT][FFI] Add ostream operator<< for Any/ObjectRef/Variant/Optional by @tqchen in #596
  • [FEAT] Optimize Expected for minimal compiled code and efficiency by @tqchen in #599
  • [FEAT] Streamline AccessPath/AccessStep print format by @tqchen in #598
  • [CI] Use uv tool run for sdist build instead of pipx by @tqchen in #600
  • [CORE] Make AnyView trivially copyable — match C-ABI struct passing by @tqchen in #602
  • feat(python): add tensor methods to align with C++ APIs by @kainzhong in #604
  • [FIX] Drop test_empty_tensor_attributes (numpy dlpack stride change) by @tqchen in #607

New Contributors

Full Changelog: v0.1.11...v0.1.12

v0.1.11

Choose a tag to compare

@yongwww yongwww released this 04 May 17:08
3c35034

What's Changed

  • [FEAT] Recursive DLPack container conversion for auto torch.Tensor return by @Kathryn-cat in #517
  • [fix] Move container stream scanning from Cython to C++ for efficiency by @Kathryn-cat in #521
  • chore(release): Version bump after release v0.1.10 by @junrushao in #522
  • build(deps): replace cmake version exclusion with uv exclude-newer by @junrushao in #524
  • Revert "build(deps): replace cmake version exclusion with uv exclude-newer" by @junrushao in #525
  • build(deps): replace cmake version exclusion with uv exclude-newer by @junrushao in #526
  • fix(cython): Segfault in free-threaded Py_DecRef Cleanup by @junrushao in #529
  • feat(c_class): warn when reflected fields lack Python type annotations by @junrushao in #531
  • fix(py_class): support super().__init__() in init=False subclasses by @junrushao in #532
  • fix(py_class): propagate parent total_size through empty intermediate classes by @junrushao in #539
  • fix(py_class): support tvm_ffi.dtype and tvm_ffi.Device as field type annotations by @junrushao in #540
  • refactor(dataclass): consolidate dunder method installation into _dunder.py by @junrushao in #541
  • fix(c_class): restore __init__ installation from __ffi_init__ TypeAttrColumn by @junrushao in #543
  • feat(py_class): support frozen=True for immutable instances by @junrushao in #542
  • feat(container): add structural __eq__/__ne__/__hash__ to Array, List, Map, Dict by @junrushao in #545
  • fix(init): register ffi_init as TypeMethod and use MISSING sentinel by @junrushao in #546
  • perf(container): use iterator lookup instead of exception handling in Map/Dict by @junrushao in #548
  • feat(dataclass): emit ffi_init stubs, harden field registration, and support Python 3.14 by @junrushao in #549
  • feat(string): add String::Split, EscapedStringPy, and rename EscapeString by @junrushao in #550
  • fix(py_class): remove ffi_init_inplace to fix memory leak by @junrushao in #551
  • feat(dataclass): Introduce more utility methods in tvm_ffi.dataclasses.* by @junrushao in #555
  • feat(dataclass): add asdict, astuple, and match_args support by @junrushao in #556
  • feat(core): Introduce Attribute-Carrying Language-Agnostic Enums by @junrushao in #554
  • fix(enum): add class iteration and len by @junrushao in #558
  • fix(dataclass): resolve cross-module forward refs by @junrushao in #559
  • [FEAT] Enhance map_dataclass_to_tuple with JIT unpack_dataclass_to_tuple by @tqchen in #563
  • fix(dataclass): distinguish containers from dataclasses by @junrushao in #557
  • fix(container): align sequence equality and contains by @junrushao in #560
  • refactor(enum)!: hide identity fields, add IntEnum/StrEnum, consolidate accessors by @junrushao in #564
  • doc: clarify structural_eq semantics and py_class eq/hash interaction by @yaoyaoding in #566
  • feat: Added typed method registration for py_class by @Kathryn-cat in #567
  • feat(enum): add payload enum compatibility behavior by @junrushao in #568
  • [REFACTOR] Optimized Python callback path via TVMFFIPyCallbackArgSetter by @tqchen in #569
  • [REFACTOR] libinfo: add extra_lib_paths parameter for foreign-caller support by @tqchen in #570
  • [FIX] Handle kTVMFFIRawStr / kTVMFFIByteArrayPtr in callback args path by @tqchen in #573
  • [OrcJIT] Arena JITLinkMemoryManager with GOTPCRELX fix (Linux) by @cyx-6 in #527

Full Changelog: v0.1.10...v0.1.11

v0.1.10

Choose a tag to compare

@junrushao junrushao released this 07 Apr 19:36
1fed0ae

What's Changed

  • chore(release): Add GPG Key from Yong Wu by @yongwww in #474
  • [FIX] Prevent integer overflow in GetDataSize on 32-bit platforms by @gnguralnick in #475
  • refactor(dataclasses)!: remove Python-side field descriptor infrastructure by @junrushao in #478
  • feat: add cuLaunchKernelEx support by @lucifer1004 in #476
  • chore(release): Version bump after release v0.1.9 by @yongwww in #481
  • feat(python)!: enforce slots=() for Object subclasses via _ObjectSlotsMeta by @junrushao in #480
  • refactor!: consolidate repr_print/deep_copy into dataclass.cc with recursive hash/compare APIs by @junrushao in #482
  • feat(python): expose recursive compare to Python with comprehensive tests by @junrushao in #484
  • test(python): add comprehensive RecursiveHash test suite by @junrushao in #485
  • [FEAT] Add CMake namespace aliases for source dependency builds by @ctuu in #479
  • feat(python): wire C++ auto-generated ffi_init to Python init by @junrushao in #486
  • feat(python): reimplement c_class as register_object + structural dunders by @junrushao in #488
  • [FEAT] Skip imports in config mode by @tqchen in #489
  • [FIX] Fix the config loading in windows case by @tqchen in #490
  • feat(python): wire init from C++ reflection in register_object and stubgen by @junrushao in #491
  • test(python): add regression test for register_object init wiring by @junrushao in #493
  • doc: add dataclass reflection guide and update related docs by @junrushao in #494
  • [FIX] Fix 3 deny-level clippy lints in Rust bindings by @Aphoh in #496
  • fix(python): remove broken instancecheck/subclasscheck from _ObjectSlotsMeta by @junrushao in #498
  • feat(c_api)!: extend TVMFFIFieldInfo setter to support FunctionObj dispatch by @junrushao in #500
  • feat(ffi)!: centralize object creation with CreateEmptyObject/HasCreator by @junrushao in #501
  • feat(cython): expose additional C API symbols in base.pxi by @junrushao in #502
  • feat(ffi)!: add ffi_convert type attribute and Python-defined type support by @junrushao in #503
  • feat(cython): add TypeSchema type conversion with function-pointer dispatch by @junrushao in #504
  • feat(python): add field registration, _register_py_class, and Field descriptor by @junrushao in #505
  • feat(python): add @py_class decorator for Python-defined FFI dataclasses by @junrushao in #506
  • feat(python): add structural equality/hashing support to py_class and field by @junrushao in #507
  • feat(python): auto-register _ffi* dunder methods in @py_class as TypeMethod by @junrushao in #508
  • refactor(python)!: rename structure= to structural_eq= by @junrushao in #509
  • fix(build): resolve type ambiguity and macro redefinition in unity builds by @junrushao in #512
  • [FEAT] Add map_dataclass_to_tuple to make_kwargs_wrapper by @tqchen in #515
  • [OrcJIT] Add LLVM ORC JIT v2 dynamic object loader addon by @yaoyaoding in #254
  • fix(ci): pin pypa/gh-action-pypi-publish to SHA for Apache allowlist by @junrushao in #518
  • [FFI][Reflection] Lazily resolve KWARGS sentinel in auto-init by @akaashrp in #519

New Contributors

Full Changelog: v0.1.9...v0.1.10

v0.1.9

Choose a tag to compare

@yongwww yongwww released this 27 Feb 19:05
c85fd42

What's Changed

  • chore(release): Version bump after release v0.1.8 by @junrushao in #404
  • fix: add unified_api.h include to device_guard.h by @cyx-6 in #405
  • Revert "feat: Add tvm_ffi.Function.__init__" by @junrushao in #406
  • [CUDA] Isolate unified api to only in cubin launcher by @tqchen in #408
  • [FIX] Fix the error propagation in the case of tensor arguments by @tqchen in #409
  • doc: abi overview by @junrushao in #402
  • [Feat] Support lower PyTorch versions in dtype handling by @nan2088 in #414
  • feat: Add repr generation support for @c_class dataclasses by @Dayuxiaoshui in #411
  • docs: add PaddlePaddle quickstart and load example by @SigureMo in #415
  • feat: add kw_only support for dataclass init generation by @guan404ming in #384
  • [DLPack] bump to latest version by @guan404ming in #420
  • fix: handle empty metadata in get_global_func_metadata by @guan404ming in #417
  • Update the logic of checking #embed by @oraluben in #418
  • feat: add Rust binding for Array<T> by @khj809 in #348
  • Fix two issues that undefined behavior sanitizer caught by @henrylhtsang in #419
  • [Error] Unify EnvErrorAlreadySet to error.kind by @tqchen in #425
  • doc: Standalone Stub Generation Doc by @junrushao in #427
  • doc: Standalone Exception Handling by @junrushao in #428
  • doc: Merge C++ tooling and C++ packaging by @junrushao in #429
  • feat: add ffi::Expected for exception-free error handling by @guan404ming in #399
  • doc: Update Kernel Library Guide by @junrushao in #431
  • chore: Switch from mypy to ty by @junrushao in #432
  • Reliability update by @oraluben in #435
  • doc: Export Functions and Classes by @junrushao in #436
  • doc: More Developer Manuals by @junrushao in #437
  • refactor: Get compiled_kernel from Triton Call Directly by @sgjzfzzf in #423
  • chore: Run ty in dev environment by @junrushao in #441
  • fix(build): Broken Wheel Testing by @junrushao in #444
  • fix: handle UTF-8 bytes correctly in JSON parser control character check by @MasterJH5574 in #442
  • feat: Introduce List as Mutable Sequence by @junrushao in #443
  • fix: Suppress GCC warning for array bounds in String class by @oraluben in #439
  • Add Support for NVIDIA Ampere GPUs in _get_cuda_target by @guoyuhong in #440
  • feat: add __copy__, __deepcopy__, and __replace__ for FFI objects by @junrushao in #438
  • feat: Claude Skill for TVM-FFI Development by @junrushao in #445
  • feat: add DefaultFactory support to field reflection by @junrushao in #446
  • feat: add ffi.GetInvalidObject global function for MISSING singleton by @junrushao in #447
  • [CORE] Enable customized AnyHash/Equal in Object Type attr by @tqchen in #451
  • [TEST] Addback missing test for init once by @tqchen in #452
  • [EXTRA] Introduce StructuralKey by @tqchen in #453
  • doc: Properly document field_static_type_index and add more tests by @junrushao in #456
  • [Feature] Support AMD HIP for cpp extension by @DarkSharpness in #460
  • feat: add DFS-based ffi.ReprPrint for unified object repr by @junrushao in #454
  • [REACTOR] Cleanup and improve map array containers by @tqchen in #462
  • [FEAT] Introduce mutable Dict by @tqchen in #463
  • [ERROR] Complete support of CHECK macros by @tqchen in #465
  • [COMPACT][TEMP] Array compact temp fix by @tqchen in #467
  • ROCm: fix DLPack current_work_stream and force addon override for Torch exchange API by @hubertlu-tw in #466
  • feat: add CLAUDE.md and dev server launch config by @junrushao in #468
  • feat(stub): use distinct container type origins in type schema and stub generation by @junrushao in #469
  • [ABI] Add begin_index to TypeAttrColumn by @tqchen in #471

New Contributors

Full Changelog: v0.1.8...v0.1.9

v0.1.8-post2

Choose a tag to compare

@junrushao junrushao released this 13 Jan 17:54
e1bd421

What's Changed

  • [FIX] Fix the error propagation in the case of tensor arguments by @tqchen in #409

Full Changelog: v0.1.8-post1...v0.1.8-post2

v0.1.8-post1

Choose a tag to compare

@junrushao junrushao released this 13 Jan 02:09
10cb004

What's Changed

  • [CUDA] Isolate unified api to only in cubin launcher by @tqchen in #408

Full Changelog: v0.1.8-post0...v0.1.8-post1

v0.1.8-post0

Choose a tag to compare

@junrushao junrushao released this 12 Jan 18:24
91fcaa8

What's Changed

  • chore(release): Version bump after release v0.1.8 by @junrushao in #404
  • fix: add unified_api.h include to device_guard.h by @cyx-6 in #405
  • Revert "feat: Add tvm_ffi.Function.__init__" by @junrushao in #406

Full Changelog: v0.1.8...v0.1.8-post0

v0.1.8

Choose a tag to compare

@junrushao junrushao released this 12 Jan 08:19
dcd07cf

What's Changed

New Contributors

Full Changelog: v0.1.7...v0.1.8-rc0

v0.1.7

Choose a tag to compare

@junrushao junrushao released this 22 Dec 18:47
89be2d3

What's Changed

New Contributors

Full Changelog: v0.1.6...v0.1.7-rc0