Skip to content

Commit eac2634

Browse files
Improve extraction and error logic
1 parent d43ba4b commit eac2634

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

python/egglog/exp/array_api.py

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1538,21 +1538,23 @@ def try_evaling(expr: Expr, prim_expr: i64 | Bool) -> int | bool:
15381538
egraph.register(expr)
15391539
egraph.run(array_api_schedule)
15401540
try:
1541-
extracted = egraph.extract(expr)
1542-
except EggSmolError as exc:
1543-
raise ValueError(f"Cannot extract {expr}") from exc
1544-
try:
1545-
return egraph.eval(prim_expr)
1541+
extracted = egraph.extract(prim_expr)
15461542
except EggSmolError as exc:
1543+
# Try giving some context, by showing the smallest version of the larger expression
1544+
try:
1545+
expr_extracted = egraph.extract(expr)
1546+
except EggSmolError as inner_exc:
1547+
raise ValueError(f"Cannot simplify {expr}") from inner_exc
15471548
egraph.display(n_inline_leaves=1, split_primitive_outputs=True)
1548-
msg = f"Cannot simplify to primitive {extracted}"
1549-
1550-
# string = (
1551-
# egraph.as_egglog_string
1552-
# + "\n"
1553-
# + str(egraph._state.typed_expr_to_egg(cast(RuntimeExpr, prim_expr).__egg_typed_expr__))
1554-
# )
1555-
# # save to "tmp.egg"
1556-
# with open("tmp.egg", "w") as f:
1557-
# f.write(string)
1549+
msg = f"Cannot simplify to primitive {expr_extracted}"
15581550
raise ValueError(msg) from exc
1551+
return egraph.eval(extracted)
1552+
1553+
# string = (
1554+
# egraph.as_egglog_string
1555+
# + "\n"
1556+
# + str(egraph._state.typed_expr_to_egg(cast(RuntimeExpr, prim_expr).__egg_typed_expr__))
1557+
# )
1558+
# # save to "tmp.egg"
1559+
# with open("tmp.egg", "w") as f:
1560+
# f.write(string)

0 commit comments

Comments
 (0)