-
Notifications
You must be signed in to change notification settings - Fork 4
Description
@connorjward Could you guys pull inducer/loopy@7ac9fa6 into Firedrake? pymbolic is going through a bit of a remodel, with inducer/pymbolic#152 and inducer/pymbolic#125.
The linked version will be compatible with both old-timey and new-timey pymbolic. New-timey pymbolic is mostly inducer/pymbolic#152, which, in the near future, will become pymbolic 2024.1. As a side note, pymbolic 2024.1 will require Python 3.10. Loopy will likely follow suit in the near future. I know you all are still targeting 3.9, so if that's an issue, let's discuss.
(The currently-broken mypy in Loopy is the result of more precise typing information from inducer/pymbolic#125, in case you're wondering.)
Things are generally compatible, however inducer/pymbolic#152 introduces one long-overdue behavior change: 0 + x is now Sum(0, x), not x. Call pymbolic.flatten to get x. This change should be semantics-neutral, and AFAIK nothing in Loopy actually cares. Nonetheless, some of loopy's tests want specific forms of some expressions, so the linked version of loopy sprinkles some calls to flatten.