TVM FFI Dev
Usage
/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
Converted and distributed by TomeVault — claim your Tome and manage your conversions.