{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":102762155,"defaultBranch":"main","name":"cpython","ownerLogin":"mpage","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2017-09-07T16:44:21.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/577841?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1727289991.0","currentOid":""},"activityList":{"items":[{"before":"aa330b1af21688aa3a81bb41a249f9d7c572aa79","after":"7dfd1ca3b4261f7b79e3cf2ac6fe2caf11dac87b","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-26T18:54:11.000Z","pushType":"push","commitsCount":38,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Merge branch 'main' into gh-115999-thread-local-bytecode","shortMessageHtmlLink":"Merge branch 'main' into pythongh-115999-thread-local-bytecode"}},{"before":"2f11cc781d891e2e9f9b793d8658680e79022586","after":"aa330b1af21688aa3a81bb41a249f9d7c572aa79","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-25T19:43:53.000Z","pushType":"push","commitsCount":107,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Merge branch 'main' into gh-115999-thread-local-bytecode","shortMessageHtmlLink":"Merge branch 'main' into pythongh-115999-thread-local-bytecode"}},{"before":null,"after":"2613a142d507115def83355b08cdf0db6953de2e","ref":"refs/heads/gh-115999-tlbc-load-global","pushedAt":"2024-09-25T18:46:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Make specialization thread-safe","shortMessageHtmlLink":"Make specialization thread-safe"}},{"before":null,"after":"4981ec59ded050919eb27bd249580fc559a34dea","ref":"refs/heads/aa-test","pushedAt":"2024-09-21T03:20:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Dummy commit 3","shortMessageHtmlLink":"Dummy commit 3"}},{"before":"aa5b4de610fb986be29800be5ed32c91e8349f43","after":"562f26bb94f38c2bc640d09ff4dd51d110a28215","ref":"refs/heads/gh-115999-measure-specialization","pushedAt":"2024-09-21T02:29:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Enable unpack_sequence","shortMessageHtmlLink":"Enable unpack_sequence"}},{"before":"f88c14d412522587085ae039ebe70b91d5b4e226","after":"342e654b8eda24c68da64cc21bc9583e480d9e8e","ref":"refs/heads/main","pushedAt":"2024-09-20T23:50:59.000Z","pushType":"push","commitsCount":322,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"gh-124213: Skip tests failing inside systemd-nspawn --suppress-sync=true (#124215)\n\nAdd a helper function that checks whether the test suite is running\r\ninside a systemd-nspawn container, and skip the few tests failing\r\nwith `--suppress-sync=true` in that case. The tests are failing because\r\n`--suppress-sync=true` stubs out `fsync()`, `fdatasync()` and `msync()`\r\ncalls, and therefore they always return success without checking for\r\ninvalid arguments.\r\n\r\nCall `os.open(__file__, os.O_RDONLY | os.O_SYNC)` and check the errno to\r\ndetect whether `--suppress-sync=true` is actually used, and skip\r\nthe tests only in that scenario.","shortMessageHtmlLink":"pythongh-124213: Skip tests failing inside systemd-nspawn --suppress-…"}},{"before":"9a94905d266dbb4be1d82e51501513910a204d13","after":"70f28c8af75a85c39fdc0d8914f91f10c3bdfe5c","ref":"refs/heads/gh-123940","pushedAt":"2024-09-18T21:04:10.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Maybe fix windows build\n\nInclude threadmodule when building _freeze_module","shortMessageHtmlLink":"Maybe fix windows build"}},{"before":"5991fa4377535327d56f91dcd8177c89656819a2","after":"9a94905d266dbb4be1d82e51501513910a204d13","ref":"refs/heads/gh-123940","pushedAt":"2024-09-18T20:38:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Don't call into Python to mark daemon threads completed","shortMessageHtmlLink":"Don't call into Python to mark daemon threads completed"}},{"before":"cd7b7d1082e3656f68401b414f4da41b23667af1","after":"5991fa4377535327d56f91dcd8177c89656819a2","ref":"refs/heads/gh-123940","pushedAt":"2024-09-18T18:19:52.000Z","pushType":"push","commitsCount":22,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Don't pass threading module between wait_for_thread_shutdown and daemon_threads_exited","shortMessageHtmlLink":"Don't pass threading module between wait_for_thread_shutdown and daem…"}},{"before":"deb52167c1eefc3992f8a814d5feae92ba862d35","after":"2f11cc781d891e2e9f9b793d8658680e79022586","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-18T04:38:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Ugh actually fix it","shortMessageHtmlLink":"Ugh actually fix it"}},{"before":"b10478268c1363a44b23005bb46e846e4f388268","after":"deb52167c1eefc3992f8a814d5feae92ba862d35","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-18T01:53:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Fix another warning","shortMessageHtmlLink":"Fix another warning"}},{"before":"6d4fe7354356fe2841e7600e88850595839ca3fc","after":"b10478268c1363a44b23005bb46e846e4f388268","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-17T22:33:43.000Z","pushType":"push","commitsCount":30,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Fix warnings on windows","shortMessageHtmlLink":"Fix warnings on windows"}},{"before":"4d02a0be78ea6e3c3cd0bcd61ffd4574043a7478","after":"cd7b7d1082e3656f68401b414f4da41b23667af1","ref":"refs/heads/gh-123940","pushedAt":"2024-09-17T02:36:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Remove incorrect warnignore line","shortMessageHtmlLink":"Remove incorrect warnignore line"}},{"before":"04c68030f169eff73bdb8f4674d4450903187e22","after":"4d02a0be78ea6e3c3cd0bcd61ffd4574043a7478","ref":"refs/heads/gh-123940","pushedAt":"2024-09-17T02:13:29.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Merge branch 'main' into gh-123940","shortMessageHtmlLink":"Merge branch 'main' into pythongh-123940"}},{"before":"57852503ec4d0368274699d9345b19d8c3af9046","after":"04c68030f169eff73bdb8f4674d4450903187e22","ref":"refs/heads/gh-123940","pushedAt":"2024-09-17T00:56:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"gh-123940: Ensure force-terminated daemon threads can be joined\n\nDuring finalization, daemon threads are force to exit immediately (without returning\nthrough the call-stack normally) upon acquiring the GIL. Finalizers that run after\nthis must be able to join the forcefully terminated threads.\n\nThe current implementation notified of thread completion before returning\nfrom `thread_run`. This code will never execute if the thread is forced to exit during\nfinalization. Any code that attempts to join such a thread will block indefinitely.\n\nTo fix this, use the old approach of notifying of thread completion when the thread state is\ncleared. This happens both when `thread_run` exits normally and when thread states are\ndestroyed as part of finalization (which happens immediately after forcing daemon threads\nto exit, before any python code can run).","shortMessageHtmlLink":"pythongh-123940: Ensure force-terminated daemon threads can be joined"}},{"before":"f6c2da083683942c2adbe40f2b85f7099c4b035d","after":"57852503ec4d0368274699d9345b19d8c3af9046","ref":"refs/heads/gh-123940","pushedAt":"2024-09-17T00:37:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"gh-123940: Ensure force-terminated daemon threads can be joined\n\nDuring finalization, daemon threads are force to exit immediately (without returning\nthrough the call-stack normally) upon acquiring the GIL. Finalizers that run after\nthis must be able to join the forcefully terminated threads.\n\nThe current implementation notified of thread completion before returning\nfrom `thread_run`. This code will never execute if the thread is forced to exit during\nfinalization. Any code that attempts to join such a thread will block indefinitely.\n\nTo fix this, use the old approach of notifying of thread completion when the thread state is\ncleared. This happens both when `thread_run` exits normally and when thread states are\ndestroyed as part of finalization (which happens immediately after forcing daemon threads\nto exit, before any python code can run).","shortMessageHtmlLink":"pythongh-123940: Ensure force-terminated daemon threads can be joined"}},{"before":null,"after":"f6c2da083683942c2adbe40f2b85f7099c4b035d","ref":"refs/heads/gh-123940","pushedAt":"2024-09-17T00:22:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"gh-123940: Ensure force-terminated daemon threads can be joined\n\nDuring finalization, daemon threads are force to exit immediately (without returning\nthrough the call-stack normally) upon acquiring the GIL. Finalizers that run after\nthis must be able to join the forcefully terminated threads.\n\nThe current implemenation notified of thread completetion before returning\nfrom `thread_run`. This code will never execute if the thread is forced to exit during\nfinalization. Any code that attempts to join such a thread will block indefinitely.\n\nTo fix this, use the old approach of notifying of thread completion when the thread state is\ncleared. This happens both when `thread_run` exits normally and when thread states are\ndestroyed as part of finalization (which happens immediately after forcing daemon threads\nto exit, before any python code can run).","shortMessageHtmlLink":"pythongh-123940: Ensure force-terminated daemon threads can be joined"}},{"before":"d34adebb31aef54d0ceb6fd8e2abe9bdb8247ffe","after":"6d4fe7354356fe2841e7600e88850595839ca3fc","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-13T22:31:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Handle out of memory errors","shortMessageHtmlLink":"Handle out of memory errors"}},{"before":"8b97771fb39e25e74f915455bd79f1f6a5310b79","after":"d34adebb31aef54d0ceb6fd8e2abe9bdb8247ffe","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-13T21:20:44.000Z","pushType":"push","commitsCount":51,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Merge branch 'main' into gh-115999-thread-local-bytecode","shortMessageHtmlLink":"Merge branch 'main' into pythongh-115999-thread-local-bytecode"}},{"before":"ad12bd42d7cd91d008cde3236a238a5f7f60bd56","after":"8b97771fb39e25e74f915455bd79f1f6a5310b79","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-13T20:39:32.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Update libpython for gdb","shortMessageHtmlLink":"Update libpython for gdb"}},{"before":"66cb24d82d6557cf07725f8bacf720dcc0134fab","after":"ad12bd42d7cd91d008cde3236a238a5f7f60bd56","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-11T23:13:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Mark unused params","shortMessageHtmlLink":"Mark unused params"}},{"before":"f13e132eed50dba5f7e0382dd68dc30b5d27eb4a","after":"66cb24d82d6557cf07725f8bacf720dcc0134fab","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-11T22:46:53.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Update vcxproj files to include newly added files\n\nHopefully I did this correctly.","shortMessageHtmlLink":"Update vcxproj files to include newly added files"}},{"before":"837645e31166e141149cc7a984ab832ac73d4896","after":"f13e132eed50dba5f7e0382dd68dc30b5d27eb4a","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-11T22:24:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Fix tier2 optimizer\n\nuops that uses `this_instr` are not eligible to be included in traces.\nRestore `RESUME_CHECK` to its original implemenation and inline reloading\nbytecode, which does not need to reset `this` since nothing else in\n`RESUME_CHECK` uses it.","shortMessageHtmlLink":"Fix tier2 optimizer"}},{"before":"81fe1a213f2943e777cc0c4355e65dda52d8f117","after":"837645e31166e141149cc7a984ab832ac73d4896","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-10T23:55:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Fix data race in _PyInstruction_GetLength\n\nRead the opcode atomically, the interpreter may be specializing it","shortMessageHtmlLink":"Fix data race in _PyInstruction_GetLength"}},{"before":"a18396fa60ea54b04e3a375c951fa27e0288f31a","after":"81fe1a213f2943e777cc0c4355e65dda52d8f117","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-10T21:47:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Remove comment","shortMessageHtmlLink":"Remove comment"}},{"before":"d8a840b874c4195e38285ac64054edbd854ebdd1","after":"a18396fa60ea54b04e3a375c951fa27e0288f31a","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-10T21:36:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Fix formatting","shortMessageHtmlLink":"Fix formatting"}},{"before":"27b802e7b7497462b9ddbd71c3c2b0786bbd5253","after":"aa5b4de610fb986be29800be5ed32c91e8349f43","ref":"refs/heads/gh-115999-measure-specialization","pushedAt":"2024-09-04T23:13:58.000Z","pushType":"push","commitsCount":15,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Enable unpack_sequence","shortMessageHtmlLink":"Enable unpack_sequence"}},{"before":null,"after":"27b802e7b7497462b9ddbd71c3c2b0786bbd5253","ref":"refs/heads/gh-115999-measure-specialization","pushedAt":"2024-09-04T21:01:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Disable specialization","shortMessageHtmlLink":"Disable specialization"}},{"before":null,"after":"d8a840b874c4195e38285ac64054edbd854ebdd1","ref":"refs/heads/gh-115999-thread-local-bytecode","pushedAt":"2024-09-04T03:50:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Specialize BINARY_OP","shortMessageHtmlLink":"Specialize BINARY_OP"}},{"before":"1d01624c43f5f98eff19392e5e7f316c4c6fe813","after":"39f8ba228e05d9adf1ca194b26253ee25e0261e7","ref":"refs/heads/gh-122712-fix-call-alloc","pushedAt":"2024-08-21T17:40:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mpage","name":null,"path":"/mpage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/577841?s=80&v=4"},"commit":{"message":"Update comment","shortMessageHtmlLink":"Update comment"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNlQxODo1NDoxMS4wMDAwMDBazwAAAATB2x9G","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yMVQxNzo0MDozMS4wMDAwMDBazwAAAASgeY9D"}},"title":"Activity · mpage/cpython"}