From 17b24fd39b635e3c5199ea83d16950bce23e89b9 Mon Sep 17 00:00:00 2001 From: Hannes Vogt Date: Fri, 6 Feb 2026 14:44:39 +0100 Subject: [PATCH] fix[next]: remove indeterminism in closure_var extraction Sort closure variables for deterministic results. Problem only surfaced on beverin. --- src/gt4py/next/ffront/source_utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gt4py/next/ffront/source_utils.py b/src/gt4py/next/ffront/source_utils.py index fb7469f650..cc02c1d89b 100644 --- a/src/gt4py/next/ffront/source_utils.py +++ b/src/gt4py/next/ffront/source_utils.py @@ -23,7 +23,9 @@ def get_closure_vars_from_function(function: Callable) -> dict[str, Any]: (nonlocals, globals, builtins, _unbound) = inspect.getclosurevars(function) # noqa: A001 [builtin-variable-shadowing] - return {**builtins, **globals, **nonlocals} # nonlocals override globals + + # nonlocals override globals, sorted for deterministic results + return dict(sorted({**builtins, **globals, **nonlocals}.items())) def make_source_definition_from_function(func: Callable) -> SourceDefinition: