Skip to content

Conversation

@connorjward
Copy link
Contributor

@connorjward connorjward commented Nov 4, 2024

closes #27

Firedrake CI run: firedrakeproject/firedrake#3851

inducer and others added 30 commits July 18, 2024 10:02
* Be explicit about what args are accepted.
* fetch_insn_id -> prefetch_insn_id
* program -> t_unit
* Changed to update the inames of the instructions that do not access an
  inames, yet, are nested within the iname to be duplicated.
Also drop _git_rev mechanism
inducer/loopy#694

Co-authored-by: Matthias Diener <mdiener@illinois.edu>
Co-authored-by: Andreas Kloeckner <inform@tiker.net>
Co-authored-by: Andreas Kloeckner <inform@tiker.net>
kaushikcfd and others added 23 commits August 24, 2024 23:37
On Python 3.12, this provokes a stack overflow in the scheduler. It is
not quite clear why that's the case; pure-Python recursion even with
generators seems to respond well to setrecursionlimit():

```py
def f(n):
    if n:
        yield from f(n-1)
    else:
        yield 5

import sys
sys.setrecursionlimit(3500)
print(list(f(3400)))
```

That said, there have been [behavior](python/cpython#96510)
[changes](python/cpython#112215)
in Py3.12 in this regard, but it is not clear what exactly
about Loopy's behavior makes it fall into the 'bad' case.
* Require that happens_after is not mutable

* Tweak type tests for happens_after

---------

Co-authored-by: Andreas Kloeckner <inform@tiker.net>
This restores compatibility with pymbolic 2022.2

x-ref: #27
@connorjward connorjward merged commit 6f02d31 into main Nov 7, 2024
16 of 18 checks passed
@connorjward connorjward deleted the connorjward/merge-upstream branch November 7, 2024 09:30
@ksagiyam
Copy link
Contributor

ksagiyam commented Nov 8, 2024

I think this already broke 3.8 and 3.9; see firedrakeproject/tsfc#327. Shall we just drop 3.8 and 3.9?

@connorjward
Copy link
Contributor Author

I think this already broke 3.8 and 3.9; see firedrakeproject/tsfc#327. Shall we just drop 3.8 and 3.9?

Ah. That's a bit frustrating. I guess so. David said that that was fine this is just happening earlier than I expected.

@connorjward
Copy link
Contributor Author

I will update the website accordingly (and also post to Slack).

@inducer
Copy link
Contributor

inducer commented Nov 8, 2024

Eeek, sorry about that! That was not intentional. Should you want to restore 3.8 compatibility for now, the fix is straightforward. This:

ToShapeLikeConvertible: TypeAlias = (Tuple[ExpressionT | str, ...]
                | ExpressionT | type[auto] | str | tuple[str, ...])

should become:

ToShapeLikeConvertible: TypeAlias = Union[Tuple[Union[ExpressionT, str], ...],
                ExpressionT, type[auto],  str, tuple[str, ...]]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Compatibility with (future) pymbolic 2024.1

8 participants