TVM FFI Dev
Usage
code
/tvm-ffi-dev # auto-run: pick next item or continue current work /tvm-ffi-dev <GitHub issue URL> /tvm-ffi-dev <text description>
Instructions
- •
Understand the task:
- •If given a GitHub issue URL, fetch with
gh issue view <URL> - •Write a minimal Python repro script and run it to confirm the error. If it can't be reproduced, stop and report.
- •If given text, use that as the requirement
- •If given a GitHub issue URL, fetch with
- •
Follow
/dev-autodevloop with these project-specific details:- •If fixing an issue: Re-run the repro script to verify it passes, then delete it.
- •Verify: Use
/tvm-ffi-build, then/tvm-ffi-test.
Code style
- •C++: prefer
std::string_view,static_cast, STL algorithms over manual loops - •C++: add move-qualified overloads (
&&) for accessors returning owned values - •C++: align new APIs with C++ std equivalents (e.g.
std::expected,std::unexpected), list deviations explicitly - •C++: use
std::moveon optionals (*std::move(val)), avoid double checking - •C++: fast path first (value before error), minimize branches
- •C++: ban implicit conversions for error types, use explicit constructors (e.g.
Unexpected(Error(...))) - •Python: reuse stdlib types (e.g.
dataclasses.KW_ONLY) instead of redefining - •Tests: call actual registered FFI functions, not reimplement logic
- •Tests: use
ASSERT_TRUEfor null checks before dereferencing - •Tests: no duplicate assertions, remove redundant checks
- •Extract duplicated logic into helpers
- •New user-facing APIs need documentation with usage examples
- •Preserve original error info on rethrow, not generic messages