{"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:1720491784.0","currentOid":""},"activityList":{"items":[{"before":"7322a1e220b47eb360168bde74bf3f67117d0726","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-4110-809920d391a5435382fae54c6f7723196d252a06","pushedAt":"2024-07-08T22:39:28.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":"809920d391a5435382fae54c6f7723196d252a06","after":"7322a1e220b47eb360168bde74bf3f67117d0726","ref":"refs/heads/trunk","pushedAt":"2024-07-08T22:39:27.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":"Build a list of dependent constants to recompute in each instance of a generic. (#4110)\n\nFor each generic, build a list of instructions describing the\ncomputations we need to do when resolving an instance of the generic:\nthis is a list of the instance-specific constants and types that the\ngeneric uses. Another way of viewing this list is as a block of Carbon\nSemIR code that is evaluated in order to form an instance of the generic\n-- this is referenced in the code as the \"eval block\" for the generic.\n\nFor each instruction in the generic whose type or value is a symbolic\nconstant, replace that type or constant value with a symbolic reference\nthat says \"to find the actual type or value, look at index N in the list\nof values for the generic instance\".\n\nFor an instruction with a symbolic constant value, we can just add that\ninstruction to our list. For an instruction with a symbolic constant\ntype, however, we may not have a corresponding instruction computing the\ntype within the generic and may need to build a new instruction, but\nwill reuse one where possible. In the case where we build a new\ninstruction, we use the existing substitution code to build the type\nwithin the eval block.\n\nFor now, this transformation is only done in the declaration region of\nthe generic, not in the definition region. Also, we map back from the\nsymbolic references to the underlying constant value in a few places\nwhere we will eventually need to do a lookup into a generic instance, in\norder to avoid regressing the tests.","shortMessageHtmlLink":"Build a list of dependent constants to recompute in each instance of …"}},{"before":null,"after":"7322a1e220b47eb360168bde74bf3f67117d0726","ref":"refs/heads/gh-readonly-queue/trunk/pr-4110-809920d391a5435382fae54c6f7723196d252a06","pushedAt":"2024-07-08T22:29: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":"Build a list of dependent constants to recompute in each instance of a generic. (#4110)\n\nFor each generic, build a list of instructions describing the\ncomputations we need to do when resolving an instance of the generic:\nthis is a list of the instance-specific constants and types that the\ngeneric uses. Another way of viewing this list is as a block of Carbon\nSemIR code that is evaluated in order to form an instance of the generic\n-- this is referenced in the code as the \"eval block\" for the generic.\n\nFor each instruction in the generic whose type or value is a symbolic\nconstant, replace that type or constant value with a symbolic reference\nthat says \"to find the actual type or value, look at index N in the list\nof values for the generic instance\".\n\nFor an instruction with a symbolic constant value, we can just add that\ninstruction to our list. For an instruction with a symbolic constant\ntype, however, we may not have a corresponding instruction computing the\ntype within the generic and may need to build a new instruction, but\nwill reuse one where possible. In the case where we build a new\ninstruction, we use the existing substitution code to build the type\nwithin the eval block.\n\nFor now, this transformation is only done in the declaration region of\nthe generic, not in the definition region. Also, we map back from the\nsymbolic references to the underlying constant value in a few places\nwhere we will eventually need to do a lookup into a generic instance, in\norder to avoid regressing the tests.","shortMessageHtmlLink":"Build a list of dependent constants to recompute in each instance of …"}},{"before":"f17a4bad03572004d9291ea81dcd221ea94748c2","after":null,"ref":"refs/heads/dependabot/pip/github_tools/pip-a8b23622d7","pushedAt":"2024-07-06T07:07:25.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":"809920d391a5435382fae54c6f7723196d252a06","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-4111-efa158d496df3262e2d46b7e2b2f0498448d0937","pushedAt":"2024-07-06T07:07:24.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":"efa158d496df3262e2d46b7e2b2f0498448d0937","after":"809920d391a5435382fae54c6f7723196d252a06","ref":"refs/heads/trunk","pushedAt":"2024-07-06T07:07:23.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":"Bump certifi from 2023.11.17 to 2024.7.4 in /github_tools in the pip group across 1 directory (#4111)\n\nBumps the pip group with 1 update in the /github_tools directory:\n[certifi](https://github.com/certifi/python-certifi).\n\nUpdates `certifi` from 2023.11.17 to 2024.7.4\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=certifi&package-manager=pip&previous-version=2023.11.17&new-version=2024.7.4)](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 certifi from 2023.11.17 to 2024.7.4 in /github_tools in the pip …"}},{"before":null,"after":"809920d391a5435382fae54c6f7723196d252a06","ref":"refs/heads/gh-readonly-queue/trunk/pr-4111-efa158d496df3262e2d46b7e2b2f0498448d0937","pushedAt":"2024-07-06T07:02:38.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 certifi from 2023.11.17 to 2024.7.4 in /github_tools in the pip group across 1 directory (#4111)\n\nBumps the pip group with 1 update in the /github_tools directory:\n[certifi](https://github.com/certifi/python-certifi).\n\nUpdates `certifi` from 2023.11.17 to 2024.7.4\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=certifi&package-manager=pip&previous-version=2023.11.17&new-version=2024.7.4)](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 certifi from 2023.11.17 to 2024.7.4 in /github_tools in the pip …"}},{"before":null,"after":"f17a4bad03572004d9291ea81dcd221ea94748c2","ref":"refs/heads/dependabot/pip/github_tools/pip-a8b23622d7","pushedAt":"2024-07-05T23:34:38.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":"Bump certifi in /github_tools in the pip group across 1 directory\n\nBumps the pip group with 1 update in the /github_tools directory: [certifi](https://github.com/certifi/python-certifi).\n\n\nUpdates `certifi` from 2023.11.17 to 2024.7.4\n- [Commits](https://github.com/certifi/python-certifi/compare/2023.11.17...2024.07.04)\n\n---\nupdated-dependencies:\n- dependency-name: certifi\n dependency-type: indirect\n dependency-group: pip\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump certifi in /github_tools in the pip group across 1 directory"}},{"before":"efa158d496df3262e2d46b7e2b2f0498448d0937","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-4104-9581a1867dc0d6cbfc028ecd6f885c5ecba480ed","pushedAt":"2024-07-03T19:30:23.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":"9581a1867dc0d6cbfc028ecd6f885c5ecba480ed","after":"efa158d496df3262e2d46b7e2b2f0498448d0937","ref":"refs/heads/trunk","pushedAt":"2024-07-03T19:30:22.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":"Refactor InstBlockStack to use ArrayStack. (#4104)\n\nThe use of ArrayStack here is intended to simplify the logic, and also\nmake better use of the inst heap allocations. Prior changes #4101 and\n#4103 removed the less related logic from InstBlockStack, although #4103\nis the actual part that blocked using ArrayStack.\n\nBTW, note the PrintForStackDump implementation was incorrect because it\ndidn't apply size_. This simplification fixes the issue.","shortMessageHtmlLink":"Refactor InstBlockStack to use ArrayStack. (#4104)"}},{"before":null,"after":"efa158d496df3262e2d46b7e2b2f0498448d0937","ref":"refs/heads/gh-readonly-queue/trunk/pr-4104-9581a1867dc0d6cbfc028ecd6f885c5ecba480ed","pushedAt":"2024-07-03T19:20:12.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":"Refactor InstBlockStack to use ArrayStack. (#4104)\n\nThe use of ArrayStack here is intended to simplify the logic, and also\nmake better use of the inst heap allocations. Prior changes #4101 and\n#4103 removed the less related logic from InstBlockStack, although #4103\nis the actual part that blocked using ArrayStack.\n\nBTW, note the PrintForStackDump implementation was incorrect because it\ndidn't apply size_. This simplification fixes the issue.","shortMessageHtmlLink":"Refactor InstBlockStack to use ArrayStack. (#4104)"}},{"before":"9581a1867dc0d6cbfc028ecd6f885c5ecba480ed","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-4103-00a1559c0158821d381f152a5c110bd3117727ed","pushedAt":"2024-07-03T18:32:00.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":"00a1559c0158821d381f152a5c110bd3117727ed","after":"9581a1867dc0d6cbfc028ecd6f885c5ecba480ed","ref":"refs/heads/trunk","pushedAt":"2024-07-03T18:31:59.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":"Move import refs to their own block. (#4103)\n\nThis executes on a TODO in AddImportRef to add instructions to their own\nblock instead of the File block. This has an important consequence of\nremoving a pattern from InstBlockStack that added to blocks not\ncurrently at the top, cleaning up an issue for ArrayStack. The delta\nhere is then mostly in different formatting of the import refs, a\nconsequence of the separation.","shortMessageHtmlLink":"Move import refs to their own block. (#4103)"}},{"before":null,"after":"9581a1867dc0d6cbfc028ecd6f885c5ecba480ed","ref":"refs/heads/gh-readonly-queue/trunk/pr-4103-00a1559c0158821d381f152a5c110bd3117727ed","pushedAt":"2024-07-03T18:21:27.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":"Move import refs to their own block. (#4103)\n\nThis executes on a TODO in AddImportRef to add instructions to their own\nblock instead of the File block. This has an important consequence of\nremoving a pattern from InstBlockStack that added to blocks not\ncurrently at the top, cleaning up an issue for ArrayStack. The delta\nhere is then mostly in different formatting of the import refs, a\nconsequence of the separation.","shortMessageHtmlLink":"Move import refs to their own block. (#4103)"}},{"before":"00a1559c0158821d381f152a5c110bd3117727ed","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-4108-cf389bf5d3e215f70a2d7ce8c55b0848faec597a","pushedAt":"2024-07-03T18:15:32.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":"cf389bf5d3e215f70a2d7ce8c55b0848faec597a","after":"00a1559c0158821d381f152a5c110bd3117727ed","ref":"refs/heads/trunk","pushedAt":"2024-07-03T18:15:31.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":"Add a few percentiles to histogram output. (#4108)","shortMessageHtmlLink":"Add a few percentiles to histogram output. (#4108)"}},{"before":null,"after":"00a1559c0158821d381f152a5c110bd3117727ed","ref":"refs/heads/gh-readonly-queue/trunk/pr-4108-cf389bf5d3e215f70a2d7ce8c55b0848faec597a","pushedAt":"2024-07-03T18:07:51.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":"Add a few percentiles to histogram output. (#4108)","shortMessageHtmlLink":"Add a few percentiles to histogram output. (#4108)"}},{"before":"cf389bf5d3e215f70a2d7ce8c55b0848faec597a","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-4101-5ebcbae2e861447eba78b9ebbbf090e20c6a08ba","pushedAt":"2024-07-03T17:59:15.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":"5ebcbae2e861447eba78b9ebbbf090e20c6a08ba","after":"cf389bf5d3e215f70a2d7ce8c55b0848faec597a","ref":"refs/heads/trunk","pushedAt":"2024-07-03T17:59:13.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":"Split global init out from InstBlockStack. (#4101)\n\nCreates a `GlobalInit` class for storing relevant values, pulling\nfunctions off `InstBlockStack` and `Context`. Adds a `Context` pointer\njust so that it doesn't need to be passed in on each call (`Finalize` in\nparticular uses several members).\n\nNote we have several different `InstBlockStack` instances, so several\ncopies of the relevant members were simply unused.","shortMessageHtmlLink":"Split global init out from InstBlockStack. (#4101)"}},{"before":null,"after":"cf389bf5d3e215f70a2d7ce8c55b0848faec597a","ref":"refs/heads/gh-readonly-queue/trunk/pr-4101-5ebcbae2e861447eba78b9ebbbf090e20c6a08ba","pushedAt":"2024-07-03T17:50:03.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":"Split global init out from InstBlockStack. (#4101)\n\nCreates a `GlobalInit` class for storing relevant values, pulling\nfunctions off `InstBlockStack` and `Context`. Adds a `Context` pointer\njust so that it doesn't need to be passed in on each call (`Finalize` in\nparticular uses several members).\n\nNote we have several different `InstBlockStack` instances, so several\ncopies of the relevant members were simply unused.","shortMessageHtmlLink":"Split global init out from InstBlockStack. (#4101)"}},{"before":"5ebcbae2e861447eba78b9ebbbf090e20c6a08ba","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-4098-d437e4bffe2d9b347021c48f0dfbb0f937c7957b","pushedAt":"2024-07-03T17:43:07.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":"d437e4bffe2d9b347021c48f0dfbb0f937c7957b","after":"5ebcbae2e861447eba78b9ebbbf090e20c6a08ba","ref":"refs/heads/trunk","pushedAt":"2024-07-03T17:43:06.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":"Add a location to indirect imports. (#4098)\n\nBy adding an `ImportDecl` instruction, this creates something that can\nbe referenced through `ImportIRInst`.\npackages/no_prelude/implicit_imports_entities.carbon is getting a test\nof this (import_conflict and import_conflict_reverse).\n\nAlso re-packs ImportIR from 24 bytes to 16 on 64-bit, since I'm touching\neverywhere that makes one anyways.","shortMessageHtmlLink":"Add a location to indirect imports. (#4098)"}},{"before":null,"after":"5ebcbae2e861447eba78b9ebbbf090e20c6a08ba","ref":"refs/heads/gh-readonly-queue/trunk/pr-4098-d437e4bffe2d9b347021c48f0dfbb0f937c7957b","pushedAt":"2024-07-03T17:34: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":"Add a location to indirect imports. (#4098)\n\nBy adding an `ImportDecl` instruction, this creates something that can\nbe referenced through `ImportIRInst`.\npackages/no_prelude/implicit_imports_entities.carbon is getting a test\nof this (import_conflict and import_conflict_reverse).\n\nAlso re-packs ImportIR from 24 bytes to 16 on 64-bit, since I'm touching\neverywhere that makes one anyways.","shortMessageHtmlLink":"Add a location to indirect imports. (#4098)"}},{"before":"d437e4bffe2d9b347021c48f0dfbb0f937c7957b","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-4100-e71e6ca07fdb4753258a10d1a382c871a34175ce","pushedAt":"2024-07-03T17:08:51.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":"e71e6ca07fdb4753258a10d1a382c871a34175ce","after":"d437e4bffe2d9b347021c48f0dfbb0f937c7957b","ref":"refs/heads/trunk","pushedAt":"2024-07-03T17:08:50.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":"Create an array stack type for a shared use-case (#4100)\n\nBased on discussion around the region handling in generic_region_stack,\ncreate a generic structure for the stack-of-vectors support. I also want\nto add this to InstBlockStack, but that's a little more complex due to\nGlobalInit, so cutting a PR here to check with review.\n\nMy work here is how I noticed #4099; I want to be sure that I'm correct\nabout the issue, but it's the difference between being able to use\nPeekArray or not.\n\nNote in scope_stack.h, I believe we could remove next_compile_time_index\nand make it just based on elements_size(). However, I want to verify\nwith you before I make further changes there.\n\n---------\n\nCo-authored-by: Chandler Carruth ","shortMessageHtmlLink":"Create an array stack type for a shared use-case (#4100)"}},{"before":null,"after":"d437e4bffe2d9b347021c48f0dfbb0f937c7957b","ref":"refs/heads/gh-readonly-queue/trunk/pr-4100-e71e6ca07fdb4753258a10d1a382c871a34175ce","pushedAt":"2024-07-03T16:59:02.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":"Create an array stack type for a shared use-case (#4100)\n\nBased on discussion around the region handling in generic_region_stack,\ncreate a generic structure for the stack-of-vectors support. I also want\nto add this to InstBlockStack, but that's a little more complex due to\nGlobalInit, so cutting a PR here to check with review.\n\nMy work here is how I noticed #4099; I want to be sure that I'm correct\nabout the issue, but it's the difference between being able to use\nPeekArray or not.\n\nNote in scope_stack.h, I believe we could remove next_compile_time_index\nand make it just based on elements_size(). However, I want to verify\nwith you before I make further changes there.\n\n---------\n\nCo-authored-by: Chandler Carruth ","shortMessageHtmlLink":"Create an array stack type for a shared use-case (#4100)"}},{"before":"e71e6ca07fdb4753258a10d1a382c871a34175ce","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-4106-8992d22ab3996d9d1840634dc1e6d6dc01ab8f08","pushedAt":"2024-07-03T16:04:47.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":"8992d22ab3996d9d1840634dc1e6d6dc01ab8f08","after":"e71e6ca07fdb4753258a10d1a382c871a34175ce","ref":"refs/heads/trunk","pushedAt":"2024-07-03T16:04:45.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":"Use separate value stores for identifiers and string literals (#4106)\n\nThis undoes a previous change to unify them, and I think at my advice.\n=[ Sorry about that, I think I was just wrong.\n\nSpecifically, I think I had suggested that it would be more efficient to\nhave a single shared hashtable of strings. The more I look at profiles\nof the toolchain, the less likely that seems. Specifically for\nidentifiers and string literals it seems especially problematic.\n\nUsing a single, joint hashtable is likely a good idea when all of the\ndifferent querying code paths are equally likely, the strings follow the\nsame distribution of sizes, and either there is no clustering of access\nto different sets of strings or none of the sets are meaningfully small\nenough to fit into a lower level of resident cache.\n\nI think essentially none of these predicates actually hold for\nidentifiers vs. string literals:\n- Identifiers are *much* more hot\n- They have wildly different size distributions.\n- The access patterns are very clustered\n\nSorry for the misleading advice on that one.\n\nWhile splitting them, I've worked to simplify the code a bit by building\na way to have the `StringRef` holding canonical value stores not require\nspecializations, and so we get a pretty large code cleanup in the\nprocess here.","shortMessageHtmlLink":"Use separate value stores for identifiers and string literals (#4106)"}},{"before":null,"after":"e71e6ca07fdb4753258a10d1a382c871a34175ce","ref":"refs/heads/gh-readonly-queue/trunk/pr-4106-8992d22ab3996d9d1840634dc1e6d6dc01ab8f08","pushedAt":"2024-07-03T15:54:20.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":"Use separate value stores for identifiers and string literals (#4106)\n\nThis undoes a previous change to unify them, and I think at my advice.\n=[ Sorry about that, I think I was just wrong.\n\nSpecifically, I think I had suggested that it would be more efficient to\nhave a single shared hashtable of strings. The more I look at profiles\nof the toolchain, the less likely that seems. Specifically for\nidentifiers and string literals it seems especially problematic.\n\nUsing a single, joint hashtable is likely a good idea when all of the\ndifferent querying code paths are equally likely, the strings follow the\nsame distribution of sizes, and either there is no clustering of access\nto different sets of strings or none of the sets are meaningfully small\nenough to fit into a lower level of resident cache.\n\nI think essentially none of these predicates actually hold for\nidentifiers vs. string literals:\n- Identifiers are *much* more hot\n- They have wildly different size distributions.\n- The access patterns are very clustered\n\nSorry for the misleading advice on that one.\n\nWhile splitting them, I've worked to simplify the code a bit by building\na way to have the `StringRef` holding canonical value stores not require\nspecializations, and so we get a pretty large code cleanup in the\nprocess here.","shortMessageHtmlLink":"Use separate value stores for identifiers and string literals (#4106)"}},{"before":"8992d22ab3996d9d1840634dc1e6d6dc01ab8f08","after":null,"ref":"refs/heads/gh-readonly-queue/trunk/pr-4097-f5f83425429f2d6a84a220ed630de399a1c49c9a","pushedAt":"2024-07-03T01:22:29.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"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEehODEQA","startCursor":null,"endCursor":null}},"title":"Activity · carbon-language/carbon-lang"}