-
-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
unix: upgrade libedit 20210910-3.1 -> 20240808-3.1 #466
base: main
Are you sure you want to change the base?
Conversation
Failures for 3.9 / 3.10 on aarch64, armv7, etc.
Failures for more versions on x86_64 GNU
Failures for x86_64 musl
|
ea9ff0b
to
402bcdc
Compare
PR is still draft for a reason :) |
Just trying to save you some time :) probably should write some CI tooling for that too... |
402bcdc
to
0a887b6
Compare
I think I fixed the CI failures on Linux. Still don't have results on macOS since CI is backlogged. But usually Linux and macOS work similarly for libedit, at least on newer Python versions. So 🤞. If macOS is busted, it should hopefully be easy enough to fix. |
We were soft blocked on upgrading due to musl compatibility issues. It looks like these got fixed upstream. So we refreshed the configure patch and libedit build _just worked_. However, Python 3.9 and 3.10 encountered compile errors with the newer version. On 3.10 we worked around this bug by backporting a patch from 3.11. On 3.9, the backport was non-trivial, so I just hacked up the existing 3.9 patch to manually change some C preprocessor checks to key off libedit. While diffing `Modules/readline.c` I found another patch related to fixing completer delims. While strictly not required, it was trivial to backport to 3.10 to fix some missing functionality. So I did. 3.13 initially didn't like the upgraded libedit because we were manually defining a preprocessor variable (introduced in 3.13 by upstream commit 8515fd79fef1ac16d7848cec5ec1797294cb5366). Removing the variable and letting configure deduce things with the newer libedit appears to _just work_. Perhaps upstream configure doesn't implement the feature detection properly on older libedit versions?
0a887b6
to
98c7d2a
Compare
The refreshed 3.9 patch broke macOS because we're using the macOS SDK libedit, which is older. I modified the code to only apply the 3.9 patch on !macOS. Hopefully CI passes now. |
We were soft blocked on upgrading due to musl compatibility issues.
It looks like these got fixed upstream. So we refreshed the configure
patch and libedit build just worked.
However, Python 3.9 and 3.10 encountered compile errors with the
newer version.
On 3.10 we worked around this bug by backporting a patch from 3.11.
On 3.9, the backport was non-trivial, so I just hacked up the existing
3.9 patch to manually change some C preprocessor checks to key off
libedit.
While diffing
Modules/readline.c
I found another patch related tofixing completer delims. While strictly not required, it was trivial
to backport to 3.10 to fix some missing functionality. So I did.
3.13 initially didn't like the upgraded libedit because
we were manually defining a preprocessor variable (introduced in 3.13
by upstream commit 8515fd79fef1ac16d7848cec5ec1797294cb5366). Removing
the variable and letting configure deduce things with the newer libedit
appears to just work. Perhaps upstream configure doesn't implement
the feature detection properly on older libedit versions?