| Files | Last commit | Last update |
|---|---|---|
Keep perf trampolines intact during BOLT optimization (#1356) The `20261020` Linux x86-64 builds of CPython `3.13` and `3.14` can crash when the perf trampoline is enabled with `-X perf` or `-X perf_jit`. The trampoline's end marker shares an address with the following function, so BOLT can move the marker independently of the trampoline and invalidate the byte range CPython copies at runtime. Add a padding byte after the end marker and exclude the trampoline from BOLT instrumentation and optimization to keep its code and boundaries intact. Co-authored-by: zaniebot <242828183+zaniebot@users.noreply.github.com> | 17 days ago | |
Fix monotonic waits on Python 3.13 and 3.14 (#1313) Python 3.13 and 3.14 distributions still run timeouts for `PyMutex`-backed threading primitives against `CLOCK_REALTIME` when built against glibc headers older than 2.30. The runtime `sem_clockwait` patch only covers `thread_pthread.h`, but `_thread.lock` moved to `parking_lot.c` in Python 3.13 and `RLock` followed in Python 3.14. Apply the parking-lot weak-symbol patch alongside the 3.13 pthread patch, so runtimes that provide `sem_clockwait` use monotonic deadlines for both internal paths while older runtimes retain the `sem_timedwait` fallback. Add distribution coverage that introduces forward and backward realtime discrepancies and exercises `Lock`, `RLock`, `Event`, `Queue`, and `Thread.join` timeouts. Fixes #1312. Co-authored-by: Zanie Blue <contact@zanie.dev> | 1 month ago |
| Files | Last commit | Last update |
|---|---|---|
| 17 days ago | ||
| 1 month ago |