{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":259463685,"defaultBranch":"trunk","name":"carbon-lang","ownerLogin":"carbon-language","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-04-27T21:45:16.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/63681715?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716254581.0","currentOid":""},"activityList":{"items":[{"before":"0d4ca08887e7dcc5802bb51270305c2c385b5117","after":null,"ref":"refs/heads/dependabot/pip/github_tools/pip-aed9f6bbcd","pushedAt":"2024-05-21T01:23:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"chandlerc","name":"Chandler Carruth","path":"/chandlerc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/711534?s=80&v=4"}},{"before":"8e92d3a3a2deedf0114f9227935a7aa4c98523f0","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-3959-e028fbeb8524e1a6f0de3251d227ce7aef509147","pushedAt":"2024-05-21T01:23:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"e028fbeb8524e1a6f0de3251d227ce7aef509147","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-3964-5c5a687534d292e727e60ede76aee2ad8530c558","pushedAt":"2024-05-21T01:23:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"5c5a687534d292e727e60ede76aee2ad8530c558","after":"8e92d3a3a2deedf0114f9227935a7aa4c98523f0","ref":"refs/heads/trunk","pushedAt":"2024-05-21T01:23:00.000Z","pushType":"merge_queue_merge","commitsCount":2,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Stop skipping JSON copyright & license headers by default. (#3959)\n\nA lot of the JSON we use is parsed by VSCode or other systems that are\nhappy to have comments in them, and we should retain a license header\nthere. We can exclude specific files where this is a problem. I think\nthe `package.json` and generated lock file from it are two such cases\nwhere we can't have the license header, but we can directly exclude more\nas needed.\n\nThis should help make sure that when we *do* have a license header in a\nJSON file it stays up to date and is formatted canonically.","shortMessageHtmlLink":"Stop skipping JSON copyright & license headers by default. (#3959)"}},{"before":null,"after":"8e92d3a3a2deedf0114f9227935a7aa4c98523f0","ref":"refs/heads/gh-readonly-queue/trunk/pr-3959-e028fbeb8524e1a6f0de3251d227ce7aef509147","pushedAt":"2024-05-21T01:15:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Stop skipping JSON copyright & license headers by default. (#3959)\n\nA lot of the JSON we use is parsed by VSCode or other systems that are\nhappy to have comments in them, and we should retain a license header\nthere. We can exclude specific files where this is a problem. I think\nthe `package.json` and generated lock file from it are two such cases\nwhere we can't have the license header, but we can directly exclude more\nas needed.\n\nThis should help make sure that when we *do* have a license header in a\nJSON file it stays up to date and is formatted canonically.","shortMessageHtmlLink":"Stop skipping JSON copyright & license headers by default. (#3959)"}},{"before":null,"after":"e028fbeb8524e1a6f0de3251d227ce7aef509147","ref":"refs/heads/gh-readonly-queue/trunk/pr-3964-5c5a687534d292e727e60ede76aee2ad8530c558","pushedAt":"2024-05-21T01:15:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Bump requests from 2.31.0 to 2.32.0 in /github_tools in the pip group across 1 directory (#3964)\n\nBumps the pip group with 1 update in the /github_tools directory:\n[requests](https://github.com/psf/requests).\n\nUpdates `requests` from 2.31.0 to 2.32.0\n
\nRelease notes\n

Sourced from requests's\nreleases.

\n
\n

v2.32.0

\n

2.32.0 (2024-05-20)

\n

🐍 PYCON US 2024 EDITION 🐍

\n

Security

\n\n

Improvements

\n\n

Bugfixes

\n\n

Deprecations

\n\n

Documentation

\n\n

Packaging

\n\n

New Contributors

\n\n\n
\n

... (truncated)

\n
\n
\nChangelog\n

Sourced from requests's\nchangelog.

\n
\n

2.32.0 (2024-05-20)

\n

Security

\n\n

Improvements

\n\n

Bugfixes

\n\n

Deprecations

\n\n

Documentation

\n\n

Packaging

\n\n
\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=requests&package-manager=pip&previous-version=2.31.0&new-version=2.32.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after\nyour CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge\nand block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating\nit. You can achieve the same result by closing it manually\n- `@dependabot show ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency's major version (unless you unignore this specific\ndependency's major version or upgrade to it yourself)\n- `@dependabot ignore minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency's minor version (unless you unignore this specific\ndependency's minor version or upgrade to it yourself)\n- `@dependabot ignore ` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore ` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore ` will\nremove the ignore condition of the specified dependency and ignore\nconditions\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/carbon-language/carbon-lang/network/alerts).\n\n
\n\nSigned-off-by: dependabot[bot] \nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"Bump requests from 2.31.0 to 2.32.0 in /github_tools in the pip group…"}},{"before":null,"after":"0d4ca08887e7dcc5802bb51270305c2c385b5117","ref":"refs/heads/dependabot/pip/github_tools/pip-aed9f6bbcd","pushedAt":"2024-05-21T00:50:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"---\nupdated-dependencies:\n- dependency-name: requests\n dependency-type: indirect\n dependency-group: pip\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"---"}},{"before":"5c5a687534d292e727e60ede76aee2ad8530c558","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-3953-23f9065949f872e671af9639cce238a5ddd8beb3","pushedAt":"2024-05-21T00:49:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"23f9065949f872e671af9639cce238a5ddd8beb3","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-3963-b473eac5bc1e7209147351058a65c0c1aea5272c","pushedAt":"2024-05-21T00:49:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"b473eac5bc1e7209147351058a65c0c1aea5272c","after":"5c5a687534d292e727e60ede76aee2ad8530c558","ref":"refs/heads/trunk","pushedAt":"2024-05-21T00:49:56.000Z","pushType":"merge_queue_merge","commitsCount":2,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Syntax highlighter in VScode for carbon programming language (#3953)\n\nI have made the necessary changes to\nhttps://github.com/carbon-language/carbon-lang/tree/trunk/utils/vscode\nfor the VScode syntax highlighter to work:\n\n- [x] Changes have been tested and found to be working.\n\n---------\n\nCo-authored-by: Richard Smith \nCo-authored-by: Carbon Infra Bot ","shortMessageHtmlLink":"Syntax highlighter in VScode for carbon programming language (#3953)"}},{"before":null,"after":"5c5a687534d292e727e60ede76aee2ad8530c558","ref":"refs/heads/gh-readonly-queue/trunk/pr-3953-23f9065949f872e671af9639cce238a5ddd8beb3","pushedAt":"2024-05-21T00:42:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Syntax highlighter in VScode for carbon programming language (#3953)\n\nI have made the necessary changes to\nhttps://github.com/carbon-language/carbon-lang/tree/trunk/utils/vscode\nfor the VScode syntax highlighter to work:\n\n- [x] Changes have been tested and found to be working.\n\n---------\n\nCo-authored-by: Richard Smith \nCo-authored-by: Carbon Infra Bot ","shortMessageHtmlLink":"Syntax highlighter in VScode for carbon programming language (#3953)"}},{"before":null,"after":"23f9065949f872e671af9639cce238a5ddd8beb3","ref":"refs/heads/gh-readonly-queue/trunk/pr-3963-b473eac5bc1e7209147351058a65c0c1aea5272c","pushedAt":"2024-05-21T00:36:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Implement proposal #3927. (#3963)\n\nChange syntax for package declaration to put the `impl` keyword at the\nstart and remove the `api` keyword.\n\nTo support this, rearrange processing of package, library, and import\ndeclarations to use the general modifier handling support in declaration\nparsing rather than special-case logic.\n\nThere is an ambiguity in `impl package.Foo as Bar`, which we resolve by\ntreating `package` as an introducer after a modifier only if it's not\nfollowed by `.`.","shortMessageHtmlLink":"Implement proposal #3927. (#3963)"}},{"before":"b473eac5bc1e7209147351058a65c0c1aea5272c","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-3962-03e3a72628c380e54e672400629e13749fec6164","pushedAt":"2024-05-20T23:34:40.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"03e3a72628c380e54e672400629e13749fec6164","after":"b473eac5bc1e7209147351058a65c0c1aea5272c","ref":"refs/heads/trunk","pushedAt":"2024-05-20T23:34:39.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Fix clang-tidy issues in `//common`. (#3962)\n\nThese likely predate the CI integration for `clang-tidy` runs.\n\nMost of these seem good generally, even though I disabled some with\nnolint comments. The multilevel pointer one seems almost like a bug in\nthe check to detect the specific case of `memcpy`, but otherwise seems\nlike a solid lint.","shortMessageHtmlLink":"Fix clang-tidy issues in //common. (#3962)"}},{"before":null,"after":"b473eac5bc1e7209147351058a65c0c1aea5272c","ref":"refs/heads/gh-readonly-queue/trunk/pr-3962-03e3a72628c380e54e672400629e13749fec6164","pushedAt":"2024-05-20T23:29:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Fix clang-tidy issues in `//common`. (#3962)\n\nThese likely predate the CI integration for `clang-tidy` runs.\n\nMost of these seem good generally, even though I disabled some with\nnolint comments. The multilevel pointer one seems almost like a bug in\nthe check to detect the specific case of `memcpy`, but otherwise seems\nlike a solid lint.","shortMessageHtmlLink":"Fix clang-tidy issues in //common. (#3962)"}},{"before":"03e3a72628c380e54e672400629e13749fec6164","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-3957-7fc69c00faf664e81d1661b95ebe6461bf8a4011","pushedAt":"2024-05-20T22:59:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"7fc69c00faf664e81d1661b95ebe6461bf8a4011","after":"03e3a72628c380e54e672400629e13749fec6164","ref":"refs/heads/trunk","pushedAt":"2024-05-20T22:59:57.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Rename Directive->Decl in general, BindExport->ExportDecl (#3957)\n\nMechanically, replacing Directive->Decl, directive->declaration,\n_declaration->_decl (to avoid comments).\n\nContext:\nhttps://discord.com/channels/655572317891461132/963846118964350976/1241145948625703062","shortMessageHtmlLink":"Rename Directive->Decl in general, BindExport->ExportDecl (#3957)"}},{"before":null,"after":"03e3a72628c380e54e672400629e13749fec6164","ref":"refs/heads/gh-readonly-queue/trunk/pr-3957-7fc69c00faf664e81d1661b95ebe6461bf8a4011","pushedAt":"2024-05-20T22:53:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Rename Directive->Decl in general, BindExport->ExportDecl (#3957)\n\nMechanically, replacing Directive->Decl, directive->declaration,\n_declaration->_decl (to avoid comments).\n\nContext:\nhttps://discord.com/channels/655572317891461132/963846118964350976/1241145948625703062","shortMessageHtmlLink":"Rename Directive->Decl in general, BindExport->ExportDecl (#3957)"}},{"before":"b10cd0c74bb21cbbc6d02f963c3feb507be4dbf3","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-3957-7fc69c00faf664e81d1661b95ebe6461bf8a4011","pushedAt":"2024-05-20T22:45:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":null,"after":"b10cd0c74bb21cbbc6d02f963c3feb507be4dbf3","ref":"refs/heads/gh-readonly-queue/trunk/pr-3957-7fc69c00faf664e81d1661b95ebe6461bf8a4011","pushedAt":"2024-05-20T22:33:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Rename Directive->Decl in general, BindExport->ExportDecl (#3957)\n\nMechanically, replacing Directive->Decl, directive->declaration,\n_declaration->_decl (to avoid comments).\n\nContext:\nhttps://discord.com/channels/655572317891461132/963846118964350976/1241145948625703062","shortMessageHtmlLink":"Rename Directive->Decl in general, BindExport->ExportDecl (#3957)"}},{"before":"7fc69c00faf664e81d1661b95ebe6461bf8a4011","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-3763-3b32d390ac2e16388448ce258e825179e44b7f85","pushedAt":"2024-05-20T19:18:40.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"3b32d390ac2e16388448ce258e825179e44b7f85","after":"7fc69c00faf664e81d1661b95ebe6461bf8a4011","ref":"refs/heads/trunk","pushedAt":"2024-05-20T19:18:39.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Matching redeclarations (#3763)\n\nRequire exact syntactic matching in redeclarations. Provide new\nterminology for\nredeclaration matching and agreement. Specify non-redeclaration rules\nfor the\nother contexts where we require multiple declarations to match, such as\n`impl`s\nof `interfaces`, `impl`s of `virtual fn`s.\n\n---------\n\nCo-authored-by: Chandler Carruth \nCo-authored-by: Carbon Infra Bot ","shortMessageHtmlLink":"Matching redeclarations (#3763)"}},{"before":null,"after":"7fc69c00faf664e81d1661b95ebe6461bf8a4011","ref":"refs/heads/gh-readonly-queue/trunk/pr-3763-3b32d390ac2e16388448ce258e825179e44b7f85","pushedAt":"2024-05-20T19:13:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Matching redeclarations (#3763)\n\nRequire exact syntactic matching in redeclarations. Provide new\nterminology for\nredeclaration matching and agreement. Specify non-redeclaration rules\nfor the\nother contexts where we require multiple declarations to match, such as\n`impl`s\nof `interfaces`, `impl`s of `virtual fn`s.\n\n---------\n\nCo-authored-by: Chandler Carruth \nCo-authored-by: Carbon Infra Bot ","shortMessageHtmlLink":"Matching redeclarations (#3763)"}},{"before":"3b32d390ac2e16388448ce258e825179e44b7f85","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-3955-bc370a771d5a2d066a9704f0e9f10b9b015b115a","pushedAt":"2024-05-20T16:33:03.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"bc370a771d5a2d066a9704f0e9f10b9b015b115a","after":"3b32d390ac2e16388448ce258e825179e44b7f85","ref":"refs/heads/trunk","pushedAt":"2024-05-20T16:33:02.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Fix accidental name exposure on cross-package import use. (#3955)\n\nLooking at `export` handling, I noticed and figured to fix this case\nfirst.\n\nAlso makes the test file prelude-agnostic.","shortMessageHtmlLink":"Fix accidental name exposure on cross-package import use. (#3955)"}},{"before":null,"after":"3b32d390ac2e16388448ce258e825179e44b7f85","ref":"refs/heads/gh-readonly-queue/trunk/pr-3955-bc370a771d5a2d066a9704f0e9f10b9b015b115a","pushedAt":"2024-05-20T16:27:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Fix accidental name exposure on cross-package import use. (#3955)\n\nLooking at `export` handling, I noticed and figured to fix this case\nfirst.\n\nAlso makes the test file prelude-agnostic.","shortMessageHtmlLink":"Fix accidental name exposure on cross-package import use. (#3955)"}},{"before":"bc370a771d5a2d066a9704f0e9f10b9b015b115a","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-3960-69c7012cbe452d4cf175d32e799ea6a664e21340","pushedAt":"2024-05-20T16:09:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"69c7012cbe452d4cf175d32e799ea6a664e21340","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-3954-b19a87642baf00be41a591f42b3e716fbfda841b","pushedAt":"2024-05-20T16:09:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"b19a87642baf00be41a591f42b3e716fbfda841b","after":"bc370a771d5a2d066a9704f0e9f10b9b015b115a","ref":"refs/heads/trunk","pushedAt":"2024-05-20T16:09:40.000Z","pushType":"merge_queue_merge","commitsCount":2,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Avoid relying on a hashtable iteration order. (#3960)\n\nThe toolchain was iterating a map of package name to import list in a\ncouple of places to do things beyond counting or other order-invariant\noperations. The result was that the specific hashtable iteration order\ninfluenced the order of SemIR generated (and other behaviors like\ndiagnostic emission I suspect, but the source location sorting probably\nhid this). Switching to a hashtable implementation with any order\nseeding that changes run-to-run immediately shows the SemIR order\nfluctuating without this.\n\nThis PR fixes that by instead accumulating the package imports data in a\nvector and using a map to vector indices. This is also slightly more\nefficient, although that seems unlikely to be an important factor here.\n\nThere was only one insertion point so I've just hand coded the\nmanagement of the indices and map, but happy to take a different\napproach or use an abstraction here if desired.\n\nOne awkward aspect of this is that some of the loops need access to the\npackage name as well. I've just added storage for that as these seem\nunlikely to be huge arrays of 10s of 1000s of imported packages, so the\ndouble storage of the identifier ID seems likely OK. But again, happy to\ntake a different approach here if desired. It also seems like it might\nbe possible to work out the identifier from the node, but I kept the\npatch more direct for simplicity.\n\nI've also not used the LLVM `MapVector` abstraction of this pattern.\nThis was mostly to avoid adding another layer of abstractions to our\ndata structures, and because this is the first time we've hit this\nreally. My experience is also that it is reasonably often that there is\na more efficient way to orient the vector and map than what is\nautomatically provided. But that may just be my experience.","shortMessageHtmlLink":"Avoid relying on a hashtable iteration order. (#3960)"}},{"before":null,"after":"bc370a771d5a2d066a9704f0e9f10b9b015b115a","ref":"refs/heads/gh-readonly-queue/trunk/pr-3960-69c7012cbe452d4cf175d32e799ea6a664e21340","pushedAt":"2024-05-20T16:02:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Avoid relying on a hashtable iteration order. (#3960)\n\nThe toolchain was iterating a map of package name to import list in a\ncouple of places to do things beyond counting or other order-invariant\noperations. The result was that the specific hashtable iteration order\ninfluenced the order of SemIR generated (and other behaviors like\ndiagnostic emission I suspect, but the source location sorting probably\nhid this). Switching to a hashtable implementation with any order\nseeding that changes run-to-run immediately shows the SemIR order\nfluctuating without this.\n\nThis PR fixes that by instead accumulating the package imports data in a\nvector and using a map to vector indices. This is also slightly more\nefficient, although that seems unlikely to be an important factor here.\n\nThere was only one insertion point so I've just hand coded the\nmanagement of the indices and map, but happy to take a different\napproach or use an abstraction here if desired.\n\nOne awkward aspect of this is that some of the loops need access to the\npackage name as well. I've just added storage for that as these seem\nunlikely to be huge arrays of 10s of 1000s of imported packages, so the\ndouble storage of the identifier ID seems likely OK. But again, happy to\ntake a different approach here if desired. It also seems like it might\nbe possible to work out the identifier from the node, but I kept the\npatch more direct for simplicity.\n\nI've also not used the LLVM `MapVector` abstraction of this pattern.\nThis was mostly to avoid adding another layer of abstractions to our\ndata structures, and because this is the first time we've hit this\nreally. My experience is also that it is reasonably often that there is\na more efficient way to orient the vector and map than what is\nautomatically provided. But that may just be my experience.","shortMessageHtmlLink":"Avoid relying on a hashtable iteration order. (#3960)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAET1N7UgA","startCursor":null,"endCursor":null}},"title":"Activity · carbon-language/carbon-lang"}