This is an automated email from the ASF dual-hosted git repository.
junrushao pushed a change to branch
revert-406-revert-395-2026-01-09/py-func-enhance
in repository https://gitbox.apache.org/repos/asf/tvm-ffi.git
omit b041a22 Revert "Revert "feat: Add `tvm_ffi.Function.__init__`" (#406)"
add 10cb004 [CUDA] Isolate unified api to only in cubin launcher (#408)
add e1bd421 [FIX] Fix the error propagation in the case of tensor
arguments (#409)
add c78e8b4 doc: abi overview (#402)
add 4fec972 [Feat] Support lower PyTorch versions in dtype handling (#414)
add 360648f feat: Add __repr__ generation support for @c_class
dataclasses (#411)
add 2702f2b docs: add PaddlePaddle quickstart and load example (#415)
add 3a5bf5e feat: add kw_only support for dataclass init generation (#384)
add e6e5d3a [DLPack] bump to latest version (#420)
add 668ce83 fix: handle empty metadata in get_global_func_metadata (#417)
add ed067c1 Update the logic of checking `#embed` (#418)
add d0d0e2f feat: add Rust binding for `Array<T>` (#348)
add b508698 Fix two issues that undefined behavior sanitizer caught (#419)
add b1611e0 [Error] Unify EnvErrorAlreadySet to error.kind (#425)
add 463083f doc: Standalone Stub Generation Doc (#427)
add e7c42f6 doc: Standalone Exception Handling (#428)
add 437323c doc: Merge C++ tooling and C++ packaging (#429)
add 0a9d4b6 feat: add ffi::Expected<T> for exception-free error handling
(#399)
add b17709a doc: Update Kernel Library Guide (#431)
add 7619669 chore: Switch from mypy to ty (#432)
add 37f45c3 Reliability update (#435)
add 90162dd doc: Export Functions and Classes (#436)
add 245bd0d doc: More Developer Manuals (#437)
add 731955b refactor: Get `compiled_kernel` from Triton Call Directly
(#423)
add e08dd68 chore: Run ty in dev environment (#441)
add 89cb606 fix(build): Broken Wheel Testing (#444)
add d3b5532 fix: handle UTF-8 bytes correctly in JSON parser control
character check (#442)
add 9513c2f feat: Introduce List as Mutable Sequence (#443)
add 0f45528 fix: Suppress GCC warning for array bounds in String class
(#439)
add 395db3c Add Support for NVIDIA Ampere GPUs in _get_cuda_target (#440)
add c73d61a feat: add `__copy__`, `__deepcopy__`, and `__replace__` for
FFI objects (#438)
add 934f2d1 feat: Claude Skill for TVM-FFI Development (#445)
add 39598ab Revert "Revert "feat: Add `tvm_ffi.Function.__init__`" (#406)"
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (b041a22)
\
N -- N -- N
refs/heads/revert-406-revert-395-2026-01-09/py-func-enhance (39598ab)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.claude/skills/devtools/SKILL.md | 257 ++++++++
.github/workflows/ci_mainline_only.yml | 2 +-
.github/workflows/ci_test.yml | 8 +-
.markdownlint-cli2.yaml | 3 +
.pre-commit-config.yaml | 42 +-
3rdparty/dlpack | 2 +-
CMakeLists.txt | 1 +
CONTRIBUTING.md | 174 +-----
README.md | 43 +-
addons/torch_c_dlpack_ext/build_backend.py | 7 +-
docs/README.md | 91 +--
docs/_stubs/cpp_index.rst | 2 +
docs/concepts/abi_overview.md | 462 --------------
docs/concepts/abi_overview.rst | 550 ++++++++++++++++
docs/concepts/any.rst | 53 +-
docs/concepts/exception_handling.rst | 194 ++++++
docs/concepts/func_module.rst | 287 +++------
docs/concepts/object_and_class.rst | 120 +---
docs/concepts/tensor.rst | 165 +----
docs/conf.py | 13 +-
docs/dev/build_from_source.md | 98 ---
docs/dev/ci_cd.rst | 203 ++++++
docs/dev/doc_build.rst | 129 ++++
docs/dev/release_process.rst | 1 +
docs/dev/source_build.rst | 151 +++++
docs/get_started/quickstart.rst | 67 +-
docs/get_started/stable_c_abi.rst | 35 +-
docs/guides/compiler_integration.md | 42 +-
docs/guides/cubin_launcher.rst | 2 +-
docs/guides/export_func_cls.rst | 308 +++++++++
docs/guides/kernel_library_guide.rst | 368 +++++++----
docs/guides/python_lang_guide.md | 4 +-
docs/index.rst | 10 +-
docs/packaging/cpp_packaging.md | 90 ---
docs/packaging/cpp_tooling.rst | 206 +++---
docs/packaging/python_packaging.rst | 372 +----------
docs/packaging/stubgen.rst | 400 ++++++++++++
docs/reference/cpp/index.rst | 7 +-
examples/abi_overview/example_code.c | 288 +++++++++
examples/cubin_launcher/benchmark_overhead.py | 14 +-
.../dynamic_cubin/src/lib_dynamic.cc | 4 +-
.../embedded_cubin/cpp_embed/CMakeLists.txt | 10 +
.../embedded_cubin/cpp_embed/src/lib_embedded.cc | 4 +-
.../embed_with_tvm_ffi/src/lib_embedded.cc | 4 +-
.../include_bin2c/src/lib_embedded.cc | 4 +-
examples/cubin_launcher/example_nvrtc_cubin.py | 6 +-
examples/cubin_launcher/example_triton_cubin.py | 17 +-
.../load_scale.py} | 28 +-
examples/kernel_library/scale_kernel.cu | 66 ++
examples/kernel_library/tvm_ffi_utils.h | 75 +++
examples/quickstart/README.md | 1 +
.../load/{load_cupy.py => load_paddle.py} | 8 +-
examples/quickstart/run_all_cuda.sh | 3 +
include/tvm/ffi/base_details.h | 17 +-
include/tvm/ffi/c_api.h | 52 +-
include/tvm/ffi/container/array.h | 365 ++---------
include/tvm/ffi/container/list.h | 527 ++++++++++++++++
include/tvm/ffi/container/seq_base.h | 365 +++++++++++
include/tvm/ffi/container/tuple.h | 6 +-
include/tvm/ffi/error.h | 38 +-
include/tvm/ffi/expected.h | 236 +++++++
include/tvm/ffi/extra/cuda/base.h | 22 +
include/tvm/ffi/extra/cuda/cubin_launcher.h | 17 +-
include/tvm/ffi/extra/cuda/device_guard.h | 2 +-
include/tvm/ffi/extra/cuda/internal/unified_api.h | 8 +-
include/tvm/ffi/extra/deep_copy.h | 48 ++
include/tvm/ffi/extra/stl.h | 24 +-
include/tvm/ffi/function.h | 60 +-
include/tvm/ffi/function_details.h | 5 +
include/tvm/ffi/object.h | 15 +-
include/tvm/ffi/reflection/registry.h | 28 +-
include/tvm/ffi/string.h | 9 +-
include/tvm/ffi/tvm_ffi.h | 2 +
pyproject.toml | 80 +--
python/tvm_ffi/__init__.py | 7 +-
python/tvm_ffi/_convert.py | 5 +-
python/tvm_ffi/_ffi_api.py | 26 +
python/tvm_ffi/_optional_torch_c_dlpack.py | 9 +-
python/tvm_ffi/_tensor.py | 4 +-
python/tvm_ffi/container.py | 165 ++++-
python/tvm_ffi/cpp/extension.py | 23 +-
python/tvm_ffi/cpp/nvrtc.py | 2 +-
python/tvm_ffi/cython/base.pxi | 1 +
python/tvm_ffi/cython/dtype.pxi | 26 +-
python/tvm_ffi/cython/error.pxi | 8 +-
python/tvm_ffi/cython/function.pxi | 12 +-
python/tvm_ffi/cython/tvm_ffi_python_helpers.h | 10 +-
python/tvm_ffi/cython/type_info.pxi | 14 +-
python/tvm_ffi/dataclasses/__init__.py | 4 +-
python/tvm_ffi/dataclasses/_utils.py | 148 +++--
python/tvm_ffi/dataclasses/c_class.py | 62 +-
python/tvm_ffi/dataclasses/field.py | 47 +-
python/tvm_ffi/error.py | 6 +-
python/tvm_ffi/libinfo.py | 2 +-
python/tvm_ffi/module.py | 2 +-
python/tvm_ffi/registry.py | 85 ++-
python/tvm_ffi/stub/cli.py | 6 +-
python/tvm_ffi/stub/consts.py | 2 +-
python/tvm_ffi/stub/file_utils.py | 4 +-
python/tvm_ffi/testing/__init__.py | 3 +
python/tvm_ffi/testing/_ffi_api.py | 6 +
python/tvm_ffi/testing/testing.py | 19 +-
.../utils/_build_optional_torch_c_dlpack.py | 2 +-
rust/tvm-ffi/src/any.rs | 1 +
rust/tvm-ffi/src/collections/array.rs | 341 ++++++++++
rust/tvm-ffi/src/collections/mod.rs | 3 +-
rust/tvm-ffi/src/lib.rs | 1 +
rust/tvm-ffi/tests/test_array.rs | 132 ++++
src/ffi/container.cc | 57 ++
src/ffi/extra/deep_copy.cc | 163 +++++
src/ffi/extra/env_context.cc | 3 +-
src/ffi/extra/json_parser.cc | 8 +-
src/ffi/extra/json_writer.cc | 22 +-
src/ffi/extra/serialization.cc | 47 +-
src/ffi/extra/structural_equal.cc | 17 +
src/ffi/extra/structural_hash.cc | 17 +-
src/ffi/object.cc | 1 +
src/ffi/testing/testing.cc | 61 +-
tests/cpp/extra/test_json_parser.cc | 6 +
tests/cpp/extra/test_serialization.cc | 41 ++
tests/cpp/extra/test_structural_equal_hash.cc | 41 ++
tests/cpp/test_expected.cc | 345 +++++++++++
tests/cpp/test_list.cc | 277 +++++++++
tests/python/test_container.py | 250 +++++++-
tests/python/test_copy.py | 690 +++++++++++++++++++++
tests/python/test_cubin_launcher.py | 14 +-
tests/python/test_dataclasses_c_class.py | 94 ++-
tests/python/test_device.py | 2 +-
tests/python/test_dlpack_exchange_api.py | 9 +-
tests/python/test_dtype.py | 4 +
tests/python/test_error.py | 20 +-
tests/python/test_function.py | 2 +-
tests/python/test_load_inline.py | 9 +-
tests/python/test_metadata.py | 12 +-
tests/python/test_object.py | 33 +-
tests/python/test_optional_torch_c_dlpack.py | 3 +-
tests/python/test_stream.py | 8 +-
tests/python/test_tensor.py | 22 +-
tests/python/utils/test_embed_cubin.py | 6 +-
tests/python/utils/test_kwargs_wrapper.py | 8 +-
tests/scripts/benchmark_dlpack.py | 6 +-
tests/scripts/benchmark_kwargs_wrapper.py | 2 +-
142 files changed, 8257 insertions(+), 2658 deletions(-)
create mode 100644 .claude/skills/devtools/SKILL.md
delete mode 100644 docs/concepts/abi_overview.md
create mode 100644 docs/concepts/abi_overview.rst
create mode 100644 docs/concepts/exception_handling.rst
delete mode 100644 docs/dev/build_from_source.md
create mode 100644 docs/dev/ci_cd.rst
create mode 100644 docs/dev/doc_build.rst
create mode 100644 docs/dev/source_build.rst
create mode 100644 docs/guides/export_func_cls.rst
delete mode 100644 docs/packaging/cpp_packaging.md
create mode 100644 docs/packaging/stubgen.rst
create mode 100644 examples/abi_overview/example_code.c
copy examples/{quickstart/load/load_pytorch.py =>
kernel_library/load_scale.py} (67%)
create mode 100644 examples/kernel_library/scale_kernel.cu
create mode 100644 examples/kernel_library/tvm_ffi_utils.h
copy examples/quickstart/load/{load_cupy.py => load_paddle.py} (87%)
create mode 100644 include/tvm/ffi/container/list.h
create mode 100644 include/tvm/ffi/container/seq_base.h
create mode 100644 include/tvm/ffi/expected.h
create mode 100644 include/tvm/ffi/extra/deep_copy.h
create mode 100644 rust/tvm-ffi/src/collections/array.rs
create mode 100644 rust/tvm-ffi/tests/test_array.rs
create mode 100644 src/ffi/extra/deep_copy.cc
create mode 100644 tests/cpp/test_expected.cc
create mode 100644 tests/cpp/test_list.cc
create mode 100644 tests/python/test_copy.py