The GitHub Actions job "CI" on tvm-ffi.git/seqhashdef-non-recursive has 
succeeded.
Run started by GitHub user tqchen (triggered by tqchen).

Head commit for run:
de97a3557d6dacf32490527335812dfa5220161a / tqchen <[email protected]>
[FEAT] Split SEqHashDef into recursive and non-recursive variants

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/25641205248

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to