The GitHub Actions job "CI" on tvm-ffi.git/main has succeeded. Run started by GitHub user tqchen (triggered by tqchen).
Head commit for run: de93d564a13c7f4d74255b907dd2370ad9874cd8 / Tianqi Chen <[email protected]> [FEAT] Split SEqHashDef into recursive and non-recursive variants (#583) The single SEqHashDef flag treated every nested free var inside a def-region field as a fresh def. That conflates two different binding shapes: - Recursive (function parameters): the value var and any free vars inside its sub-fields are co-introduced at the same binding site. - Non-recursive (normal binding): only the immediate value var binds; free vars in the var's sub-fields are use references that must resolve against an outer-scope binding. This PR splits the flag in two so each binding shape can be expressed directly, and updates the structural-equal / structural-hash machinery to distinguish them when descending into a FreeVar's own sub-fields. The custom `__ffi_s_equal__` / `__ffi_s_hash__` callback signature gains a typed kind for the def-mode argument; legacy callers passing a bool continue to compile and preserve their meaning via the standard bool->int coercion (true -> 1 = Recursive, false -> 0 = None). The Cython / Python bindings mirror the rename and add the new non-recursive flag to the dataclass field vocabulary. Regression tests cover the four recursive / non-recursive corner cases on a new `TDefHolder` test type whose `def_recursive` and `def_non_recursive` fields hold a FreeVar with a nested FreeVar sub-field. Report URL: https://github.com/apache/tvm-ffi/actions/runs/25684583439 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
