From db00d8841574d5041bef06d971d25b3402a98ff2 Mon Sep 17 00:00:00 2001 From: George Hotz Date: Thu, 24 Apr 2025 08:09:40 -0400 Subject: [PATCH] hotfix: handle bad z3 install like z3 import fail --- tinygrad/spec.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tinygrad/spec.py b/tinygrad/spec.py index ccaf78392f..0321b7882b 100644 --- a/tinygrad/spec.py +++ b/tinygrad/spec.py @@ -4,7 +4,6 @@ from tinygrad.dtype import DType, ImageDType, dtypes, PtrDType from tinygrad.helpers import all_same, dedup, prod, DEBUG, IGNORE_OOB try: import z3 - z3_imported = True # IDIV is truncated division but z3 does floored division; mod by power of two sometimes uses Ops.AND def z3_cdiv(a,b): return z3.If(a<0, (a+(b-1))/b, a/b) @@ -27,7 +26,9 @@ try: (UPat(Ops.CAST, name="x"), lambda x: x.src[0]), (UPat(GroupOp.ALU, src=UPat(Ops.NOOP), name="x"), lambda x: UOp(Ops.NOOP, arg=z3_alu[x.op](*(s.arg for s in x.src)))), ]) -except ImportError: z3_imported = False + + z3_imported = True +except (ImportError, AttributeError): z3_imported = False buffer_spec = PatternMatcher([ (UPat(Ops.UNIQUE, dtypes.void, ()), lambda: True),