{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":10270250,"defaultBranch":"main","name":"react","ownerLogin":"facebook","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-05-24T16:15:54.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/69631?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717888253.0","currentOid":""},"activityList":{"items":[{"before":"53e0ed175e41c05696349cee2d338d2ab37e29ea","after":"ebca74354e0c7c43abbc59dfd638d13c35c186f1","ref":"refs/heads/builds/facebook-fbsource","pushedAt":"2024-06-08T23:23:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"feat(compiler): Support MetaProperty (#29752)\n\n## Summary\nSee #29737\n\n## How did you test this change?\nAs the feature requires module support and the test runner does\ncurrently not support running tests as modules, I could only test it via\nplayground.\n\nDiffTrain build for commit https://github.com/facebook/react/commit/f5af92d2c47d1e1f455faf912b1d3221d1038c37.","shortMessageHtmlLink":"feat(compiler): Support MetaProperty (#29752)"}},{"before":"c2ae9e28bc02fdd29c46b247d908e6b467ef06af","after":"f5af92d2c47d1e1f455faf912b1d3221d1038c37","ref":"refs/heads/main","pushedAt":"2024-06-08T23:18:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"feat(compiler): Support MetaProperty (#29752)\n\n## Summary\r\nSee #29737\r\n\r\n## How did you test this change?\r\nAs the feature requires module support and the test runner does\r\ncurrently not support running tests as modules, I could only test it via\r\nplayground.","shortMessageHtmlLink":"feat(compiler): Support MetaProperty (#29752)"}},{"before":"eed8c08479b969ba22352cd467e42d0d07119952","after":"5079b56c1b12d785828d1145975566a5379503e5","ref":"refs/heads/gh/josephsavona/29/orig","pushedAt":"2024-06-08T23:16:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"compiler: Known hooks/nonescaping scopes dont count as pruned\n\nThere are two cases where it's legit/intended to remove scopes, and we can inline the scope rather than reify a \"pruned\" scope:\n* Scopes that contain a single instruction with a hook call. The fact that we create a scope in this case at all is just an artifact of it being simpler to do this and remove the scope later rather than try to avoid creating it in the first place. So for these scopes, we can just inline them.\n* Scopes that are provably non-escaping. Removing the scope is an optimization, not a case of us having to prune away something that should be there. So again, its fine to inline in this case.\n\nI found this from syncing the stack internally and looking at differences in compiled output. The latter case was most common but the first case is just an obvious improvement.\n\nghstack-source-id: b7c36b71aa44a7e4952670b5121c15fe9c96b123\nPull Request resolved: https://github.com/facebook/react/pull/29820","shortMessageHtmlLink":"compiler: Known hooks/nonescaping scopes dont count as pruned"}},{"before":"c59c3355ea5c159d772861174776668584b4c1ea","after":"21724a5982416fddffc3f94e523c3e1d9ca24da5","ref":"refs/heads/gh/josephsavona/29/head","pushedAt":"2024-06-08T23:16:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"Update on \"compiler: Known hooks/nonescaping scopes dont count as pruned\"\n\n\nThere are two cases where it's legit/intended to remove scopes, and we can inline the scope rather than reify a \"pruned\" scope:\n* Scopes that contain a single instruction with a hook call. The fact that we create a scope in this case at all is just an artifact of it being simpler to do this and remove the scope later rather than try to avoid creating it in the first place. So for these scopes, we can just inline them.\n* Scopes that are provably non-escaping. Removing the scope is an optimization, not a case of us having to prune away something that should be there. So again, its fine to inline in this case.\n\nI found this from syncing the stack internally and looking at differences in compiled output. The latter case was most common but the first case is just an obvious improvement.\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update on \"compiler: Known hooks/nonescaping scopes dont count as pru…"}},{"before":null,"after":"eed8c08479b969ba22352cd467e42d0d07119952","ref":"refs/heads/gh/josephsavona/29/orig","pushedAt":"2024-06-08T23:10:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"compiler: Known hooks/nonescaping scopes dont count as pruned\n\nThere are two cases where it's legit/intended to remove scopes, and we can inline the scope rather than reify a \"pruned\" scope:\n* Scopes that contain a single instruction with a hook call. The fact that we create a scope in this case at all is just an artifact of it being simpler to do this and remove the scope later rather than try to avoid creating it in the first place. So for these scopes, we can just inline them.\n* Scopes that are provably non-escaping. Removing the scope is an optimization, not a case of us having to prune away something that should be there. So again, its fine to inline in this case.\n\nI found this from syncing the stack internally and looking at differences in compiled output. The latter case was most common but the first case is just an obvious improvement.\n\nghstack-source-id: 75559d25ab3d3af6a330d91e69e4331006aa97c3\nPull Request resolved: https://github.com/facebook/react/pull/29820","shortMessageHtmlLink":"compiler: Known hooks/nonescaping scopes dont count as pruned"}},{"before":null,"after":"76be6b807c990fab0bb5cf016c55cd7382b420eb","ref":"refs/heads/gh/josephsavona/29/base","pushedAt":"2024-06-08T23:10:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"Update on \"compiler: Log metrics on pruned memo blocks/values\"\n\n\nAdds additional information to the CompileSuccess LoggerEvent:\n* `prunedMemoBlocks` is the number of reactive scopes that were pruned for some reason.\n* `prunedMemoValues` is the number of unique _values_ produced by those scopes.\n\nBoth numbers exclude blocks that are just a hook call - ie although we create and prune a scope for eg `useState()`, that's just an artifact of the sequencing of our pipeline. So what this metric is counting is cases of _other_ values that go unmemoized. See the new fixture, which takes advantage of improvements in the snap runner to optionally emit the logger events in the .expect.md file if you include the \"logger\" pragma in a fixture.\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update on \"compiler: Log metrics on pruned memo blocks/values\""}},{"before":null,"after":"c59c3355ea5c159d772861174776668584b4c1ea","ref":"refs/heads/gh/josephsavona/29/head","pushedAt":"2024-06-08T23:10:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"compiler: Known hooks/nonescaping scopes dont count as pruned\n\nThere are two cases where it's legit/intended to remove scopes, and we can inline the scope rather than reify a \"pruned\" scope:\n* Scopes that contain a single instruction with a hook call. The fact that we create a scope in this case at all is just an artifact of it being simpler to do this and remove the scope later rather than try to avoid creating it in the first place. So for these scopes, we can just inline them.\n* Scopes that are provably non-escaping. Removing the scope is an optimization, not a case of us having to prune away something that should be there. So again, its fine to inline in this case.\n\nI found this from syncing the stack internally and looking at differences in compiled output. The latter case was most common but the first case is just an obvious improvement.\n\n[ghstack-poisoned]","shortMessageHtmlLink":"compiler: Known hooks/nonescaping scopes dont count as pruned"}},{"before":"19bb8676ab2460b9bf1a2f3bd83404fd0f09cc0d","after":"fcd14111f7a98026009f85b7563d20bae1f9c3ff","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-06-08T15:21:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Minify DEV bundles with closure (#29809)\n\nThe goal is to improve speed of the development by inlining and DCE\nunused branches.\n\nWe have the ability to preserve some variable names and pretty print in\nthe production version so might as well do the same with DEV.\n\nDiffTrain build for [c2ae9e28bc02fdd29c46b247d908e6b467ef06af](https://github.com/facebook/react/commit/c2ae9e28bc02fdd29c46b247d908e6b467ef06af)","shortMessageHtmlLink":"Minify DEV bundles with closure (#29809)"}},{"before":"848ae6c83c8bb768fd7d9f7f7b7b39dd23f7a749","after":"53e0ed175e41c05696349cee2d338d2ab37e29ea","ref":"refs/heads/builds/facebook-fbsource","pushedAt":"2024-06-08T15:21:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Minify DEV bundles with closure (#29809)\n\nThe goal is to improve speed of the development by inlining and DCE\nunused branches.\n\nWe have the ability to preserve some variable names and pretty print in\nthe production version so might as well do the same with DEV.\n\nDiffTrain build for commit https://github.com/facebook/react/commit/c2ae9e28bc02fdd29c46b247d908e6b467ef06af.","shortMessageHtmlLink":"Minify DEV bundles with closure (#29809)"}},{"before":"20b6f4c0e8a1f40ee61735201645e0395ff08f94","after":"c2ae9e28bc02fdd29c46b247d908e6b467ef06af","ref":"refs/heads/main","pushedAt":"2024-06-08T15:15:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sebmarkbage","name":"Sebastian Markbåge","path":"/sebmarkbage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63648?s=80&v=4"},"commit":{"message":"Minify DEV bundles with closure (#29809)\n\nThe goal is to improve speed of the development by inlining and DCE\r\nunused branches.\r\n\r\nWe have the ability to preserve some variable names and pretty print in\r\nthe production version so might as well do the same with DEV.","shortMessageHtmlLink":"Minify DEV bundles with closure (#29809)"}},{"before":"f994737d14e83f22ead70e6a41f87353008b73cf","after":"34d0c5e357fa4073cb33d95c113c36082f8f0c73","ref":"refs/heads/sync-nextjs","pushedAt":"2024-06-08T00:03:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gnoff","name":"Josh Story","path":"/gnoff","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2716369?s=80&v=4"},"commit":{"message":"[Float][Fiber] Assume stylesheets in document are already loaded (#29811) (#29812)\n\nCherry pick of #29811 \r\n\r\nWhen we made stylesheets suspend even during high priority updates we\r\nexposed a bug in the loading tracking of stylesheets that are loaded as\r\npart of the preamble. This allowed these stylesheets to put suspense\r\nboundaries into fallback mode more often than expected because cases\r\nwhere a stylesheet was server rendered could now cause a fallback to\r\ntrigger which was never intended to happen.\r\n\r\nThis fix updates resource construction to evaluate whether the instance\r\nexists in the DOM prior to construction and if so marks the resource as\r\nloaded and inserted.\r\n\r\nOne ambiguity that needed to be solved still is how to tell whether a\r\nstylesheet rendered as part of a late Suspense boundary reveal is\r\nalready loaded. I updated the instruction to clear out the loading\r\npromise after successfully loading. This is useful because later if we\r\nencounter this same resource again we can avoid the microtask if it is\r\nalready loaded. It also means that we can concretely understand that if\r\na stylesheet is in the DOM without this marker then it must have loaded\r\n(or errored) already.","shortMessageHtmlLink":"[Float][Fiber] Assume stylesheets in document are already loaded (#29811"}},{"before":null,"after":"f994737d14e83f22ead70e6a41f87353008b73cf","ref":"refs/heads/sync-nextjs","pushedAt":"2024-06-08T00:02:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"gnoff","name":"Josh Story","path":"/gnoff","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2716369?s=80&v=4"},"commit":{"message":"[Flight] Allow temporary references in `decodeReplyFromBusboy` (#29219)","shortMessageHtmlLink":"[Flight] Allow temporary references in decodeReplyFromBusboy (#29219)"}},{"before":"4b84f116104682ed841175cb50b17d6ecd3869cb","after":null,"ref":"refs/heads/sync-nextjs","pushedAt":"2024-06-08T00:02:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"gnoff","name":"Josh Story","path":"/gnoff","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2716369?s=80&v=4"}},{"before":"cdfa569576bc1505baffbf625739fd05f7b15b22","after":"19bb8676ab2460b9bf1a2f3bd83404fd0f09cc0d","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-06-07T23:58:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[Float][Fiber] Assume stylesheets in document are already loaded (#29811)\n\nWhen we made stylesheets suspend even during high priority updates we\nexposed a bug in the loading tracking of stylesheets that are loaded as\npart of the preamble. This allowed these stylesheets to put suspense\nboundaries into fallback mode more often than expected because cases\nwhere a stylesheet was server rendered could now cause a fallback to\ntrigger which was never intended to happen.\n\nThis fix updates resource construction to evaluate whether the instance\nexists in the DOM prior to construction and if so marks the resource as\nloaded and inserted.\n\nOne ambiguity that needed to be solved still is how to tell whether a\nstylesheet rendered as part of a late Suspense boundary reveal is\nalready loaded. I updated the instruction to clear out the loading\npromise after successfully loading. This is useful because later if we\nencounter this same resource again we can avoid the microtask if it is\nalready loaded. It also means that we can concretely understand that if\na stylesheet is in the DOM without this marker then it must have loaded\n(or errored) already.\n\nDiffTrain build for [20b6f4c0e8a1f40ee61735201645e0395ff08f94](https://github.com/facebook/react/commit/20b6f4c0e8a1f40ee61735201645e0395ff08f94)","shortMessageHtmlLink":"[Float][Fiber] Assume stylesheets in document are already loaded (#29811"}},{"before":"3ffc7770bc13b9edc8807c464143022ef7ec7e03","after":"848ae6c83c8bb768fd7d9f7f7b7b39dd23f7a749","ref":"refs/heads/builds/facebook-fbsource","pushedAt":"2024-06-07T23:58:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[Float][Fiber] Assume stylesheets in document are already loaded (#29811)\n\nWhen we made stylesheets suspend even during high priority updates we\nexposed a bug in the loading tracking of stylesheets that are loaded as\npart of the preamble. This allowed these stylesheets to put suspense\nboundaries into fallback mode more often than expected because cases\nwhere a stylesheet was server rendered could now cause a fallback to\ntrigger which was never intended to happen.\n\nThis fix updates resource construction to evaluate whether the instance\nexists in the DOM prior to construction and if so marks the resource as\nloaded and inserted.\n\nOne ambiguity that needed to be solved still is how to tell whether a\nstylesheet rendered as part of a late Suspense boundary reveal is\nalready loaded. I updated the instruction to clear out the loading\npromise after successfully loading. This is useful because later if we\nencounter this same resource again we can avoid the microtask if it is\nalready loaded. It also means that we can concretely understand that if\na stylesheet is in the DOM without this marker then it must have loaded\n(or errored) already.\n\nDiffTrain build for commit https://github.com/facebook/react/commit/20b6f4c0e8a1f40ee61735201645e0395ff08f94.","shortMessageHtmlLink":"[Float][Fiber] Assume stylesheets in document are already loaded (#29811"}},{"before":"20841f9a6205a633e6d08a274db974481daaca23","after":"20b6f4c0e8a1f40ee61735201645e0395ff08f94","ref":"refs/heads/main","pushedAt":"2024-06-07T23:53:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gnoff","name":"Josh Story","path":"/gnoff","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2716369?s=80&v=4"},"commit":{"message":"[Float][Fiber] Assume stylesheets in document are already loaded (#29811)\n\nWhen we made stylesheets suspend even during high priority updates we\r\nexposed a bug in the loading tracking of stylesheets that are loaded as\r\npart of the preamble. This allowed these stylesheets to put suspense\r\nboundaries into fallback mode more often than expected because cases\r\nwhere a stylesheet was server rendered could now cause a fallback to\r\ntrigger which was never intended to happen.\r\n\r\nThis fix updates resource construction to evaluate whether the instance\r\nexists in the DOM prior to construction and if so marks the resource as\r\nloaded and inserted.\r\n\r\nOne ambiguity that needed to be solved still is how to tell whether a\r\nstylesheet rendered as part of a late Suspense boundary reveal is\r\nalready loaded. I updated the instruction to clear out the loading\r\npromise after successfully loading. This is useful because later if we\r\nencounter this same resource again we can avoid the microtask if it is\r\nalready loaded. It also means that we can concretely understand that if\r\na stylesheet is in the DOM without this marker then it must have loaded\r\n(or errored) already.","shortMessageHtmlLink":"[Float][Fiber] Assume stylesheets in document are already loaded (#29811"}},{"before":"ac345a78847586e19f7d12cce1002e407b2f7b98","after":"4fa8fa755c85f6d28441c85c2f95f907aff74169","ref":"refs/heads/gh/josephsavona/28/orig","pushedAt":"2024-06-07T23:44:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"compiler: Log metrics on pruned memo blocks/values\n\nAdds additional information to the CompileSuccess LoggerEvent:\n* `prunedMemoBlocks` is the number of reactive scopes that were pruned for some reason.\n* `prunedMemoValues` is the number of unique _values_ produced by those scopes.\n\nBoth numbers exclude blocks that are just a hook call - ie although we create and prune a scope for eg `useState()`, that's just an artifact of the sequencing of our pipeline. So what this metric is counting is cases of _other_ values that go unmemoized. See the new fixture, which takes advantage of improvements in the snap runner to optionally emit the logger events in the .expect.md file if you include the \"logger\" pragma in a fixture.\n\nghstack-source-id: c2015bb5565746d07427587526b71e23685279c2\nPull Request resolved: https://github.com/facebook/react/pull/29810","shortMessageHtmlLink":"compiler: Log metrics on pruned memo blocks/values"}},{"before":"e66ab83887898364eb364da0f40f72b0c55a23cc","after":"76be6b807c990fab0bb5cf016c55cd7382b420eb","ref":"refs/heads/gh/josephsavona/28/head","pushedAt":"2024-06-07T23:44:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"Update on \"compiler: Log metrics on pruned memo blocks/values\"\n\n\nAdds additional information to the CompileSuccess LoggerEvent:\n* `prunedMemoBlocks` is the number of reactive scopes that were pruned for some reason.\n* `prunedMemoValues` is the number of unique _values_ produced by those scopes.\n\nBoth numbers exclude blocks that are just a hook call - ie although we create and prune a scope for eg `useState()`, that's just an artifact of the sequencing of our pipeline. So what this metric is counting is cases of _other_ values that go unmemoized. See the new fixture, which takes advantage of improvements in the snap runner to optionally emit the logger events in the .expect.md file if you include the \"logger\" pragma in a fixture.\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update on \"compiler: Log metrics on pruned memo blocks/values\""}},{"before":"4ac985a96595630fedd15da992a7f6b69b73be0c","after":"ac345a78847586e19f7d12cce1002e407b2f7b98","ref":"refs/heads/gh/josephsavona/28/orig","pushedAt":"2024-06-07T23:11:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"compiler: Log metrics on pruned memo blocks/values\n\nAdds additional information to the CompileSuccess LoggerEvent:\n* `prunedMemoBlocks` is the number of reactive scopes that were pruned for some reason.\n* `prunedMemoValues` is the number of unique _values_ produced by those scopes.\n\nBoth numbers exclude blocks that are just a hook call - ie although we create and prune a scope for eg `useState()`, that's just an artifact of the sequencing of our pipeline. So what this metric is counting is cases of _other_ values that go unmemoized. See the new fixture, which takes advantage of improvements in the snap runner to optionally emit the logger events in the .expect.md file if you include the \"logger\" pragma in a fixture.\n\nghstack-source-id: f77d4f6dc0f46bcb0c75eec90efeb6013fae1d75\nPull Request resolved: https://github.com/facebook/react/pull/29810","shortMessageHtmlLink":"compiler: Log metrics on pruned memo blocks/values"}},{"before":"d63a63ad344bd76384576a299bedf365eb88db38","after":"e66ab83887898364eb364da0f40f72b0c55a23cc","ref":"refs/heads/gh/josephsavona/28/head","pushedAt":"2024-06-07T23:11:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"Update on \"compiler: Log metrics on pruned memo blocks/values\"\n\n\nAdds additional information to the CompileSuccess LoggerEvent:\n* `prunedMemoBlocks` is the number of reactive scopes that were pruned for some reason.\n* `prunedMemoValues` is the number of unique _values_ produced by those scopes.\n\nBoth numbers exclude blocks that are just a hook call - ie although we create and prune a scope for eg `useState()`, that's just an artifact of the sequencing of our pipeline. So what this metric is counting is cases of _other_ values that go unmemoized. See the new fixture, which takes advantage of improvements in the snap runner to optionally emit the logger events in the .expect.md file if you include the \"logger\" pragma in a fixture.\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update on \"compiler: Log metrics on pruned memo blocks/values\""}},{"before":"4923f7b2ecc966753eff78f1e5271e2b533a4cf2","after":"4ac985a96595630fedd15da992a7f6b69b73be0c","ref":"refs/heads/gh/josephsavona/28/orig","pushedAt":"2024-06-07T22:12:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"compiler: Log metrics on pruned memo blocks/values\n\nAdds additional information to the CompileSuccess LoggerEvent:\n* `prunedMemoBlocks` is the number of reactive scopes that were pruned for some reason.\n* `prunedMemoValues` is the number of unique _values_ produced by those scopes.\n\nBoth numbers exclude blocks that are just a hook call - ie although we create and prune a scope for eg `useState()`, that's just an artifact of the sequencing of our pipeline. So what this metric is counting is cases of _other_ values that go unmemoized. See the new fixture, which takes advantage of improvements in the snap runner to optionally emit the logger events in the .expect.md file if you include the \"logger\" pragma in a fixture.\n\nghstack-source-id: a401fd4cd5a33c8f4de077882b6e2e0b3fa7c32b\nPull Request resolved: https://github.com/facebook/react/pull/29810","shortMessageHtmlLink":"compiler: Log metrics on pruned memo blocks/values"}},{"before":"37f64650047033bfdbacde3b6e344a0fedd800f4","after":"d63a63ad344bd76384576a299bedf365eb88db38","ref":"refs/heads/gh/josephsavona/28/head","pushedAt":"2024-06-07T22:12:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"Update on \"compiler: Log metrics on pruned memo blocks/values\"\n\n\nAdds additional information to the CompileSuccess LoggerEvent:\n* `prunedMemoBlocks` is the number of reactive scopes that were pruned for some reason.\n* `prunedMemoValues` is the number of unique _values_ produced by those scopes.\n\nBoth numbers exclude blocks that are just a hook call - ie although we create and prune a scope for eg `useState()`, that's just an artifact of the sequencing of our pipeline. So what this metric is counting is cases of _other_ values that go unmemoized. See the new fixture, which takes advantage of improvements in the snap runner to optionally emit the logger events in the .expect.md file if you include the \"logger\" pragma in a fixture.\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update on \"compiler: Log metrics on pruned memo blocks/values\""}},{"before":null,"after":"4923f7b2ecc966753eff78f1e5271e2b533a4cf2","ref":"refs/heads/gh/josephsavona/28/orig","pushedAt":"2024-06-07T22:09:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"compiler: Log metrics on pruned memo blocks/values\n\nAdds additional information to the CompileSuccess LoggerEvent:\n* `prunedMemoBlocks` is the number of reactive scopes that were pruned for some reason.\n* `prunedMemoValues` is the number of unique _values_ produced by those scopes.\n\nBoth numbers exclude blocks that are just a hook call - ie although we create and prune a scope for eg `useState()`, that's just an artifact of the sequencing of our pipeline. So what this metric is counting is cases of _other_ values that go unmemoized. See the new fixture, which takes advantage of improvements in the snap runner to optionally emit the logger events in the .expect.md file if you include the \"logger\" pragma in a fixture.\n\nghstack-source-id: 815cb8adc9de0134d8da134e06d6b632d9a86370\nPull Request resolved: https://github.com/facebook/react/pull/29810","shortMessageHtmlLink":"compiler: Log metrics on pruned memo blocks/values"}},{"before":null,"after":"0a5761c2d960afee27404c1381e8a73dd74fd51f","ref":"refs/heads/gh/josephsavona/28/base","pushedAt":"2024-06-07T22:09:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"Update on \"compiler: treat pruned scope outputs as reactive\"\n\n\nMostly addresses the issue with non-reactive pruned scopes. Before, values from pruned scopes would not be memoized, but could still be depended upon by downstream scopes. However, those downstream scopes would assume the value could never change. This could allow the developer to observe two different versions of a value - the freshly created one (if observed outside a scope) or a cached one (if observed inside, or through) a scope which used the value but didn't depend on it.\n\nThe fix here is to consider the outputs of pruned reactive scopes as reactive. Note that this is a partial fix because of things like control variables — the full solution would be to mark these values as reactive, and then re-run InferReactivePlaces. We can do this once we've fully converted our pipeline to use HIR everywhere. For now, this should fix most issues in practice because PruneNonReactiveDependencies already does basic alias tracking (see new fixture).\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update on \"compiler: treat pruned scope outputs as reactive\""}},{"before":null,"after":"37f64650047033bfdbacde3b6e344a0fedd800f4","ref":"refs/heads/gh/josephsavona/28/head","pushedAt":"2024-06-07T22:09:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"josephsavona","name":"Joseph Savona","path":"/josephsavona","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6425824?s=80&v=4"},"commit":{"message":"compiler: Log metrics on pruned memo blocks/values\n\nAdds additional information to the CompileSuccess LoggerEvent:\n* `prunedMemoBlocks` is the number of reactive scopes that were pruned for some reason.\n* `prunedMemoValues` is the number of unique _values_ produced by those scopes.\n\nBoth numbers exclude blocks that are just a hook call - ie although we create and prune a scope for eg `useState()`, that's just an artifact of the sequencing of our pipeline. So what this metric is counting is cases of _other_ values that go unmemoized. See the new fixture, which takes advantage of improvements in the snap runner to optionally emit the logger events in the .expect.md file if you include the \"@logger\" pragma in a fixture.\n\n[ghstack-poisoned]","shortMessageHtmlLink":"compiler: Log metrics on pruned memo blocks/values"}},{"before":"39e6b27fee9d99a6c7e4cb04d309e5b1216fd291","after":"cdfa569576bc1505baffbf625739fd05f7b15b22","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-06-07T19:55:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[compiler] Always emit variable decl in gating mode\n\nThis PR makes it so we always emit a const VariableDeclaration for\ncompiled functions in gating mode. If the original declaration's parent\nwas an ExportDefaultDeclaration we'll also append a new\nExportDefaultDeclaration pointing to the new identifier. This allows\ncode that adds optional properties to the function declaration to still\nwork in gating mode\n\nghstack-source-id: 5705479135baa268eeb3c85bfbf1883964e84916\nPull Request resolved: https://github.com/facebook/react/pull/29806\n\nDiffTrain build for [20841f9a6205a633e6d08a274db974481daaca23](https://github.com/facebook/react/commit/20841f9a6205a633e6d08a274db974481daaca23)","shortMessageHtmlLink":"[compiler] Always emit variable decl in gating mode"}},{"before":"1cb60db379e9f6405c8be94b79a65f121cd74305","after":"3ffc7770bc13b9edc8807c464143022ef7ec7e03","ref":"refs/heads/builds/facebook-fbsource","pushedAt":"2024-06-07T19:55:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[compiler] Always emit variable decl in gating mode\n\nThis PR makes it so we always emit a const VariableDeclaration for\ncompiled functions in gating mode. If the original declaration's parent\nwas an ExportDefaultDeclaration we'll also append a new\nExportDefaultDeclaration pointing to the new identifier. This allows\ncode that adds optional properties to the function declaration to still\nwork in gating mode\n\nghstack-source-id: 5705479135baa268eeb3c85bfbf1883964e84916\nPull Request resolved: https://github.com/facebook/react/pull/29806\n\nDiffTrain build for commit https://github.com/facebook/react/commit/20841f9a6205a633e6d08a274db974481daaca23.","shortMessageHtmlLink":"[compiler] Always emit variable decl in gating mode"}},{"before":"a85538298d7282d351fa31a43f6eb0aeb7d46911","after":null,"ref":"refs/heads/gh/poteto/17/orig","pushedAt":"2024-06-07T19:50:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"poteto","name":"lauren","path":"/poteto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1390709?s=80&v=4"}},{"before":"f4c2b1d26878a5afd5d62c52436b1cb95f8b32c9","after":null,"ref":"refs/heads/gh/poteto/17/head","pushedAt":"2024-06-07T19:50:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"poteto","name":"lauren","path":"/poteto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1390709?s=80&v=4"}},{"before":"f4c2b1d26878a5afd5d62c52436b1cb95f8b32c9","after":null,"ref":"refs/heads/gh/poteto/17/base","pushedAt":"2024-06-07T19:50:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"poteto","name":"lauren","path":"/poteto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1390709?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYB_pZAA","startCursor":null,"endCursor":null}},"title":"Activity · facebook/react"}