cpython/Lib
Miss Islington (bot) 53e7f2400a
[3.15] gh-150723: Fix perf jitdump files on macOS (GH-150728) (#150832)
gh-150723: Fix perf jitdump files on macOS (GH-150728)

The perf jitdump format defines the thread id field of the JR_CODE_LOAD
record as a 32-bit value, but on macOS it was declared as a uint64_t
(since pthread_threadid_np() returns a uint64_t). Those extra 8 bytes
plus alignment padding shifted every following field, so parsers reading
the file by the spec misread code_size as the code address and failed to
resolve any Python frames.

Declare thread_id as uint32_t on all platforms and truncate the macOS
thread id when writing the record. The value is only informational.
Symbols are resolved by address, and not thread ids so truncation is
safe here.

* Use mach_absolute_time for macOS jitdump timestamps

On macOS the jitdump file is consumed by profilers such as samply, which
timestamp their samples using mach_absolute_time(). The jitdump events were
stamped with clock_gettime(CLOCK_MONOTONIC), a different clock domain that
keeps advancing while the system is asleep, so the JIT code mappings could be
off by days relative to the samples and no Python frame would resolve. Stamp
jitdump events with mach_absolute_time() on macOS so they share the sampler's
clock domain. Linux continues to use CLOCK_MONOTONIC to stay aligned with perf.

Exercise the -Xperf_jit (jitdump) backend through samply and assert that
Python frames resolve, exercising the binary jitdump path end to end.
Skipped when samply is not installed.
(cherry picked from commit 494f2e3c92)

Co-authored-by: Nazım Can Altınova <canaltinova@gmail.com>
2026-06-03 00:41:24 +00:00
..
__phello__
_pyrepl gh-130472: Use fancycompleter in import completions (#148188) 2026-05-05 01:36:43 +00:00
asyncio [3.15] gh-150107: Fix asyncio sendfile fallback ignoring non-zero offset (GH-150270) (#150570) 2026-05-29 18:40:56 +05:30
collections gh-147957: pop items from UserDict in LIFO order (gh-147958) 2026-04-14 23:29:41 -05:00
compression [3.15] gh-150285: Fix too long docstrings in the zstd module (GH-150291) (GH-150335) 2026-05-24 16:24:34 +03:00
concurrent Fix pyflakes warnings: variable is assigned to but never used (#142294) 2025-12-08 14:00:31 +01:00
ctypes gh-148675: Add Zd/Zf formats to array, ctypes, memoryview, struct (#148676) 2026-05-04 16:14:23 +02:00
curses [3.15] gh-150285: Fix too long docstrings in the curses module (GH-150286) (GH-150331) 2026-05-24 16:23:25 +03:00
dbm Fix typo: 'exept' -> 'except' in Lib/dbm/dumb.py (GH-144060) 2026-01-20 08:50:34 +02:00
email [3.15] gh-101913: changed wording of docstring for _parsedate_tz (GH-134446) (#150796) 2026-06-02 11:31:56 -04:00
encodings [3.15] gh-149801: Add IANA registered names and aliases with leading zeros (GH-149804) (GH-149870) 2026-05-15 15:08:15 +03:00
ensurepip [3.15] gh-150685: update bundled pip to 26.1.2 (gh-150686) (gh-150687) 2026-05-31 21:12:22 +01:00
html gh-140875: Fix handling of unclosed charrefs before EOF in HTMLParser (GH-140904) 2025-11-19 13:55:10 +02:00
http [3.15] gh-149144: Use decodeURIComponent() for UTF-8 support in js_output() (GH-149157) (GH-149846) 2026-05-15 00:38:11 +02:00
idlelib gh-139551: add support for BaseExceptionGroup in IDLE (GH-139563) 2026-04-12 10:06:41 -07:00
importlib GH-83065: Fix import deadlock by implementing hierarchical module locking (GH-137196) 2026-04-28 01:06:23 -07:00
json [3.15] gh-149056: Properly pass array_hook in json.load() to json.loads() (GH-149057) (GH-150591) 2026-05-29 21:30:50 +00:00
logging gh-145650: Add logging.{Formatter,Filter}.__repr__ (GH-145652) 2026-03-26 12:41:14 +00:00
multiprocessing gh-137335: remove a mktemp use in multiprocessing.connection to avoid security scanner noise (GH-148578) 2026-04-14 23:31:58 +00:00
pathlib [3.15] gh-86533: Restore os.makedirs() ability to apply *mode* recursively (GH-150011) (#150036) 2026-05-18 22:10:01 -07:00
profiling [3.15] gh-150258: Show relative percentage on Tachyon flamegraph (GH-150266) (#150312) 2026-05-23 15:30:19 +00:00
pydoc_data Python 3.15.0b2 2026-06-02 18:28:41 +03:00
re gh-86519: Add prefixmatch APIs to the re module (GH-31137) 2026-02-15 17:43:39 -08:00
site-packages
sqlite3 gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
string GH-132661: Add `string.templatelib.convert()` (#135217) 2025-07-15 11:56:42 +02:00
sysconfig gh-146541: Allow building the Android testbed for 32-bit targets (#146542) 2026-04-04 11:27:27 +08:00
test [3.15] gh-150723: Fix perf jitdump files on macOS (GH-150728) (#150832) 2026-06-03 00:41:24 +00:00
tkinter gh-47655: Add support for user data and detail of Tk events to tkinter (GH-7142) 2026-02-25 10:34:00 +02:00
tomllib [3.15] Update mypy to 2.1.0 (GH-149709) (#149711) 2026-05-12 09:09:52 +00:00
turtledemo gh-137586: Open external osascript program with absolute path (GH-137584) 2026-04-06 09:42:10 -07:00
unittest [3.15] gh-150175: Fix ThreadingMock call_count race condition (GH-150176) (#150182) 2026-05-26 12:46:16 -07:00
urllib gh-138907: Support RFC 9309 in robotparser (GH-138908) 2026-05-04 18:03:11 +00:00
venv [3.15] gh-149701: Fully silence potential hash -r error (GH-149702) (GH-149757) 2026-05-13 10:28:27 +01:00
wsgiref gh-144370: Disallow usage of control characters in status in wsgiref.handlers for security (#144371) 2026-03-06 13:22:21 +01:00
xml [3.15] gh-149489: Fix ElementTree serialization to HTML (GH-149490) (GH-150595) 2026-05-29 21:48:10 +00:00
xmlrpc gh-136839: Refactor simple dict.update calls (#136811) 2025-07-19 10:12:10 -07:00
zipfile [3.15] gh-84353: Preserve non-UTF-8 filenames when appending to ZipFile (GH-150091) (GH-150527) 2026-05-27 21:47:03 +00:00
zoneinfo gh-145883: Fix two heap-buffer-overflows in _zoneinfo (#145885) 2026-04-04 13:29:17 +01:00
__future__.py
__hello__.py
_aix_support.py
_android_support.py gh-144415: Android testbed fixes (#142912) 2026-02-03 16:37:34 +08:00
_apple_support.py
_ast_unparse.py gh-143055: Fix crash in AST unparser when unparsing dict comprehension unpacking (#145556) 2026-03-09 10:37:23 -07:00
_collections_abc.py [3.15] gh-150285: Fix too long docstrings in some Python modules (GH-150366) (GH-150375) 2026-05-25 11:19:36 +03:00
_colorize.py gh-148352: Add more colour to calendar CLI output (#148354) 2026-05-04 15:14:57 +03:00
_compat_pickle.py gh-142349: Implement PEP 810 - Explicit lazy imports (#142351) 2026-02-12 00:15:33 +00:00
_ios_support.py
_markupbase.py
_opcode_metadata.py GH-143732: SEND specialization (GH-148963) 2026-05-05 15:19:16 +01:00
_osx_support.py gh-136677: Introduce executable specific linker flags to configure (#137296) 2026-02-24 22:52:02 +00:00
_py_abc.py
_py_warnings.py gh-143231: Add the module attribute to warnings.WarningMessage (GH-149298) 2026-05-03 09:35:47 +00:00
_pydatetime.py gh-97517: Add documentation links to datetime strftime/strptime docstrings (#138559) 2025-09-15 19:50:46 +01:00
_pydecimal.py [3.15] gh-150285: Fix too long docstrings in the decimal module (GH-150288) (GH-150333) 2026-05-24 16:24:08 +03:00
_pyio.py [3.15] gh-150285: Fix too long docstrings in the io module (GH-150287) (GH-150332) 2026-05-24 16:23:45 +03:00
_pylong.py
_sitebuiltins.py gh-145035: Allows removing the _pyrepl module to completely disable the modern REPL (GH-145159) 2026-03-10 14:58:32 +01:00
_strptime.py GH-70647: Remove support for %d (and deprecate for %e) without year in strptime() (GH-144570) 2026-04-14 17:15:27 -07:00
_threading_local.py Fix pyflakes warnings: variable is assigned to but never used (#142294) 2025-12-08 14:00:31 +01:00
_weakrefset.py
abc.py
annotationlib.py gh-148680: Replace internal names with type_reprs of objects in string representations of ForwardRef (#148682) 2026-04-23 06:22:20 -07:00
antigravity.py
argparse.py [3.15] gh-149614 - Restore deepcopiability of argparse.ArgumentParser… (#149693) 2026-05-11 18:25:40 +00:00
ast.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
base64.py [3.15] gh-134837: Correct and improve base85 documentation for base64 and binascii modules (GH-145843) (GH-149742) 2026-05-12 20:25:28 +00:00
bdb.py gh-136057: Allow step and next to step over for loops (#136160) 2025-11-16 13:57:07 -08:00
bisect.py
bz2.py
calendar.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
cmd.py
code.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
codecs.py gh-52876: Implement missing parameter in codecs.StreamReaderWriter functions (#136498) 2025-07-10 17:42:14 +02:00
codeop.py Fix pyflakes warnings: variable is assigned to but never used (#142294) 2025-12-08 14:00:31 +01:00
colorsys.py
compileall.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
configparser.py gh-148370: prevent quadratic behavior in configparser.ParsingError.combine (#148452) 2026-04-14 00:32:54 +02:00
contextlib.py gh-125862: Keep ContextDecorator open across generator/coroutine execution (GH-136212) 2026-04-28 05:26:38 +00:00
contextvars.py
copy.py gh-141510: Fix copy.deepcopy() for recursive frozendict (#145027) 2026-02-21 15:30:40 +00:00
copyreg.py
cProfile.py Remove unused imports (#142320) 2025-12-06 11:27:31 +00:00
csv.py gh-137627: Make csv.Sniffer.sniff() delimiter detection 1.6x faster (#137628) 2025-10-23 15:28:29 +03:00
dataclasses.py gh-149321: Fix stdlib imports with lazy imports disabled (#149338) 2026-05-04 19:03:21 +01:00
datetime.py
decimal.py gh-76007: Deprecate __version__ attribute in decimal (#140302) 2025-10-26 12:01:04 +01:00
difflib.py [3.15] gh-149189: Revert "Modern defaults for pprint (GH-149190)" (GH-150249) (#150268) 2026-05-22 20:49:36 +00:00
dis.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
doctest.py gh-144384: Lazily import _colorize (#149318) 2026-05-06 16:07:43 +00:00
enum.py [3.15] gh-150285: Fix too long docstrings in some Python modules (GH-150366) (GH-150375) 2026-05-25 11:19:36 +03:00
filecmp.py
fileinput.py
fnmatch.py
fractions.py gh-87790: support thousands separators for formatting fractional part of Fraction (#132204) 2025-07-07 11:16:31 +03:00
ftplib.py [3.15] gh-87451: Apply CVE-2021-4189 PASV fix to ftplib.ftpcp() (GH-149648) (#149792) 2026-05-15 10:50:45 +00:00
functools.py [3.15] gh-150285: Fix too long docstrings in some Python modules (GH-150366) (GH-150375) 2026-05-25 11:19:36 +03:00
genericpath.py gh-74453: Deprecate os.path.commonprefix (#144436) 2026-02-05 22:37:05 +02:00
getopt.py
getpass.py gh-138577: Fix keyboard shortcuts in getpass with echo_char (#141597) 2026-03-30 11:11:13 +02:00
gettext.py gh-141510: Use frozendict in the stdlib (#144909) 2026-03-06 10:25:09 +01:00
glob.py [3.15] gh-150285: Fix too long docstrings in some Python modules (GH-150366) (GH-150375) 2026-05-25 11:19:36 +03:00
graphlib.py GH-143948: Explain graphlib's cycle-finding code (#143950) 2026-01-20 19:28:48 -06:00
gzip.py [3.15] gh-150285: Fix too long docstrings in some Python modules (GH-150366) (GH-150375) 2026-05-25 11:19:36 +03:00
hashlib.py gh-136565: use SHA-256 for hashlib.__doc__ example instead of MD5 (#138157) 2025-08-26 10:38:53 +00:00
heapq.py Indexing is more straight-forward (and faster) than unpacking (gh-145154) 2026-02-23 12:31:35 -06:00
hmac.py gh-142451: correctly copy HMAC attributes in HMAC.copy() (#142510) 2025-12-14 09:45:36 +01:00
imaplib.py gh-142307: deprecate legacy support for altering IMAP4.file (#142335) 2026-05-06 17:41:26 +03:00
inspect.py [3.15] gh-149083: use sentinel to fix _functools.reduce() signature (GH-149591) (#149653) 2026-05-10 23:32:35 +00:00
io.py
ipaddress.py gh-141497: Make ipaddress.IP{v4,v6}Network.hosts() always returning an iterator (GH-141547) 2025-11-17 19:29:06 +02:00
keyword.py gh-142349: Implement PEP 810 - Explicit lazy imports (#142351) 2026-02-12 00:15:33 +00:00
linecache.py gh-122255: Synchronize warnings in C and Python implementations of the warnings module (GH-122824) 2025-11-14 16:49:28 +02:00
locale.py gh-123853: Update locale.windows_locale (GH-123901) 2026-04-20 11:47:37 +03:00
lzma.py
mailbox.py bpo-32234: Allow mailbox instances as context managers (GH-4770) 2026-02-16 14:14:26 +01:00
mimetypes.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
modulefinder.py gh-84530: fix namespace package support in modulefinder (#29196) 2025-12-09 15:50:50 +00:00
netrc.py gh-139633: Run netrc file permission check only once per parse (GH-139634) 2026-03-30 22:05:18 +03:00
ntpath.py [3.15] gh-150285: Fix too long docstrings in some Python modules (GH-150366) (GH-150375) 2026-05-25 11:19:36 +03:00
nturl2path.py
numbers.py gh-122450: Expand documentation for `Rational and Fraction` (#136800) 2025-08-04 02:15:59 +00:00
opcode.py gh-148871: extend and improve LOAD_COMMON_CONSTANT (GH-148971) 2026-05-02 19:59:51 +01:00
operator.py
optparse.py gh-141510: Use frozendict in the stdlib (#144909) 2026-03-06 10:25:09 +01:00
os.py [3.15] gh-150285: Fix too long docstrings in the os module (GH-150296) (GH-150341) 2026-05-24 13:53:29 +00:00
pdb.py gh-148615: Handle -- separator in pdb argument parsing (#148624) 2026-05-05 21:22:58 -07:00
pickle.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
pickletools.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
pkgutil.py gh-148641: Implement PEP 829 - startup configuration files (#149109) 2026-05-03 17:17:29 +00:00
platform.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
plistlib.py gh-141510: Support frozendict in plistlib (#145590) 2026-03-31 15:45:23 +03:00
poplib.py gh-143923: Reject control characters in POP3 commands 2026-01-20 20:46:32 +00:00
posixpath.py gh-74453: Deprecate os.path.commonprefix (#144436) 2026-02-05 22:37:05 +02:00
pprint.py [3.15] gh-149189: Revert "Modern defaults for pprint (GH-149190)" (GH-150249) (#150268) 2026-05-22 20:49:36 +00:00
profile.py GH-65961: Stop setting __cached__ on modules (GH-142165) 2025-12-11 11:44:46 -08:00
pstats.py gh-140137: Handle empty collections in profiling.sampling (#140154) 2025-10-15 14:59:12 +01:00
pty.py
py_compile.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
pyclbr.py Fix pyflakes warnings: variable is assigned to but never used (#142294) 2025-12-08 14:00:31 +01:00
pydoc.py [3.15] gh-142349: Add help("lazy") support (GH-149886) (#149889) 2026-05-15 16:57:59 +00:00
queue.py Fix Queue.shutdown docs for condition to unblock a join (gh-137088) 2025-07-25 07:56:28 -06:00
quopri.py
random.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
reprlib.py gh-135487: fix reprlib.Repr.repr_int when given very large integers (#135506) 2025-06-24 11:09:46 +00:00
rlcompleter.py [3.15] gh-112821: Fix rlcompleter failures on objects with descriptors (GH-149577) (#149656) 2026-05-11 12:07:50 -04:00
runpy.py gh-149117: Set ImportError.name on errors from runpy.run_module/run_path (gh-149159) 2026-05-02 12:27:23 +10:00
sched.py
secrets.py
selectors.py
shelve.py Drop three unused imports (#141875) 2025-11-23 16:33:05 +00:00
shlex.py gh-138804: Check type in shlex.quote (GH-138809) 2025-09-12 14:26:21 -04:00
shutil.py gh-146581: Fix vulnerability in shutil.unpack_archive() for ZIP files on Windows (GH-146591) 2026-04-27 21:43:15 +03:00
signal.py
site.py [3.15] gh-150228: Improve the PEP 829 batch processing APIs (GH-150542) (#150748) 2026-06-02 02:11:51 +00:00
smtplib.py gh-70039: smtplib: store the server name in ._host in .connect() (#115259) 2026-04-08 17:46:25 -04:00
socket.py gh-148599: Update WSA socket error codes (#148033) 2026-05-06 19:52:23 +02:00
socketserver.py gh-76007: Deprecate __version__ attribute (#138675) 2025-09-29 12:03:23 +03:00
ssl.py gh-141510: Use frozendict in the stdlib (#144909) 2026-03-06 10:25:09 +01:00
stat.py gh-144050: Fix stat.filemode pure Python file type detection (GH-144059) 2026-01-20 14:05:42 +02:00
statistics.py statistics: Fix geometric_mean() error message for negative inputs (#149246) 2026-05-01 22:54:24 -05:00
stringprep.py
struct.py
subprocess.py gh-47798: Refactor the POSIX subprocess.Popen._communicate selector loop into helpers (GH-149032) 2026-04-27 00:40:20 +00:00
symtable.py gh-141510: Use frozendict in the stdlib (#144909) 2026-03-06 10:25:09 +01:00
tabnanny.py gh-76007: Deprecate __version__ attribute (#138675) 2025-09-29 12:03:23 +03:00
tarfile.py [3.15] gh-121109: Fix performance of tarfile reading with "r|*" (GH-121296) (GH-150604) 2026-06-01 17:39:51 +00:00
tempfile.py gh-66305: Fix a hang on Windows in the tempfile module (GH-144672) 2026-02-24 13:05:06 +02:00
textwrap.py gh-139065: Fix trailing space before long word in textwrap (GH-139070) 2025-10-10 16:29:18 +03:00
this.py
threading.py gh-124397: Add free-threading support for iterators. (gh-148894) 2026-05-01 16:31:00 -05:00
timeit.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
token.py
tokenize.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
trace.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
traceback.py [3.15] gh-145896: Fix typos and stale docstrings in the traceback module (GH-145897) (GH-150383) 2026-05-25 10:13:01 +00:00
tracemalloc.py
tty.py
turtle.py Fix pyflakes warnings: variable is assigned to but never used (#142294) 2025-12-08 14:00:31 +01:00
types.py [3.15] gh-150285: Fix too long docstrings in some Python modules (GH-150366) (GH-150375) 2026-05-25 11:19:36 +03:00
typing.py [3.15] gh-149995: Update typing.py docstrings and documentation (GH-149996) (#150215) 2026-05-22 06:41:43 +00:00
uuid.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
warnings.py
wave.py gh-117716: Fix wave RIFF padding for data chunks (GH-145237) 2026-04-15 14:21:43 +02:00
weakref.py gh-124748: Fix handling kwargs in WeakKeyDictionary.update() (#124783) 2026-02-18 13:17:08 +00:00
webbrowser.py gh-137586: Replace 'osascript' with 'open' on macOS in webbrowser (#146439) 2026-05-06 16:56:17 +03:00
zipapp.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
zipimport.py gh-135801: Add the module parameter to compile() etc (GH-139652) 2025-11-13 13:21:32 +02:00