Skip to content

Commit d2699eb

Browse files
committed
[compiler][rfc] Hacky retry pipeline for fire (facebook#32164)
Hacky retry pipeline for when transforming `fire(...)` calls encounters validation, todo, or memoization invariant bailouts. Would love feedback on how we implement this to be extensible to other compiler non-memoization features (e.g. inlineJSX) Some observations: - Compiler "front-end" passes (e.g. lower, type, effect, and mutability inferences) should be shared for all compiler features -- memo and otherwise - Many passes (anything dealing with reactive scope ranges, scope blocks / dependencies, and optimizations such as ReactiveIR facebook#31974) can be left out of the retry pipeline. This PR hackily skips memoization features by removing reactive scope creation, but we probably should restructure the pipeline to skip these entirely on a retry - We should maintain a canonical set of "validation flags" Note the newly added fixtures are prefixed with `bailout-...` when the retry fire pipeline is used. These fixture outputs contain correctly inserted `useFire` calls and no memoization. DiffTrain build for [152bfe3](facebook@152bfe3)
1 parent 674c6c7 commit d2699eb

23 files changed

+86
-122
lines changed

compiled-rn/VERSION_NATIVE_FB

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
19.1.0-native-fb-9ff42a87-20250130
1+
19.1.0-native-fb-152bfe37-20250131

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<5e1b815567d096b454e9eaae7bb92825>>
10+
* @generated SignedSource<<e65e27c285e286a4414394e196ebba85>>
1111
*/
1212

1313
"use strict";
@@ -428,5 +428,5 @@ __DEV__ &&
428428
exports.useFormStatus = function () {
429429
return resolveDispatcher().useHostTransitionStatus();
430430
};
431-
exports.version = "19.1.0-native-fb-9ff42a87-20250130";
431+
exports.version = "19.1.0-native-fb-152bfe37-20250131";
432432
})();

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<d5327429716017e10daecdc6cd67386c>>
10+
* @generated SignedSource<<cb2932bc6701a2e5317ce3baf8fda071>>
1111
*/
1212

1313
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
203203
exports.useFormStatus = function () {
204204
return ReactSharedInternals.H.useHostTransitionStatus();
205205
};
206-
exports.version = "19.1.0-native-fb-9ff42a87-20250130";
206+
exports.version = "19.1.0-native-fb-152bfe37-20250131";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<d5327429716017e10daecdc6cd67386c>>
10+
* @generated SignedSource<<cb2932bc6701a2e5317ce3baf8fda071>>
1111
*/
1212

1313
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
203203
exports.useFormStatus = function () {
204204
return ReactSharedInternals.H.useHostTransitionStatus();
205205
};
206-
exports.version = "19.1.0-native-fb-9ff42a87-20250130";
206+
exports.version = "19.1.0-native-fb-152bfe37-20250131";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<6662cbbb9dbf8b7957351e4fb057887e>>
10+
* @generated SignedSource<<f92d2c65f8cd646b7740fc201380b634>>
1111
*/
1212

1313
/*
@@ -12422,9 +12422,6 @@ __DEV__ &&
1242212422
hostParentIsContainer = !1;
1242312423
break a;
1242412424
case 3:
12425-
hostParent = parent.stateNode.containerInfo;
12426-
hostParentIsContainer = !0;
12427-
break a;
1242812425
case 4:
1242912426
hostParent = parent.stateNode.containerInfo;
1243012427
hostParentIsContainer = !0;
@@ -25997,11 +25994,11 @@ __DEV__ &&
2599725994
};
2599825995
(function () {
2599925996
var isomorphicReactPackageVersion = React.version;
26000-
if ("19.1.0-native-fb-9ff42a87-20250130" !== isomorphicReactPackageVersion)
25997+
if ("19.1.0-native-fb-152bfe37-20250131" !== isomorphicReactPackageVersion)
2600125998
throw Error(
2600225999
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
2600326000
(isomorphicReactPackageVersion +
26004-
"\n - react-dom: 19.1.0-native-fb-9ff42a87-20250130\nLearn more: https://react.dev/warnings/version-mismatch")
26001+
"\n - react-dom: 19.1.0-native-fb-152bfe37-20250131\nLearn more: https://react.dev/warnings/version-mismatch")
2600526002
);
2600626003
})();
2600726004
("function" === typeof Map &&
@@ -26038,10 +26035,10 @@ __DEV__ &&
2603826035
!(function () {
2603926036
var internals = {
2604026037
bundleType: 1,
26041-
version: "19.1.0-native-fb-9ff42a87-20250130",
26038+
version: "19.1.0-native-fb-152bfe37-20250131",
2604226039
rendererPackageName: "react-dom",
2604326040
currentDispatcherRef: ReactSharedInternals,
26044-
reconcilerVersion: "19.1.0-native-fb-9ff42a87-20250130"
26041+
reconcilerVersion: "19.1.0-native-fb-152bfe37-20250131"
2604526042
};
2604626043
internals.overrideHookState = overrideHookState;
2604726044
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -26187,5 +26184,5 @@ __DEV__ &&
2618726184
listenToAllSupportedEvents(container);
2618826185
return new ReactDOMHydrationRoot(initialChildren);
2618926186
};
26190-
exports.version = "19.1.0-native-fb-9ff42a87-20250130";
26187+
exports.version = "19.1.0-native-fb-152bfe37-20250131";
2619126188
})();

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<cb67a2004533893952c24f6345d8b51f>>
10+
* @generated SignedSource<<569486287d32cb91b6a2105eaf17147e>>
1111
*/
1212

1313
/*
@@ -8674,9 +8674,6 @@ function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {
86748674
hostParentIsContainer = !1;
86758675
break a;
86768676
case 3:
8677-
hostParent = parent.stateNode.containerInfo;
8678-
hostParentIsContainer = !0;
8679-
break a;
86808677
case 4:
86818678
hostParent = parent.stateNode.containerInfo;
86828679
hostParentIsContainer = !0;
@@ -16003,14 +16000,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1600316000
};
1600416001
var isomorphicReactPackageVersion$jscomp$inline_1786 = React.version;
1600516002
if (
16006-
"19.1.0-native-fb-9ff42a87-20250130" !==
16003+
"19.1.0-native-fb-152bfe37-20250131" !==
1600716004
isomorphicReactPackageVersion$jscomp$inline_1786
1600816005
)
1600916006
throw Error(
1601016007
formatProdErrorMessage(
1601116008
527,
1601216009
isomorphicReactPackageVersion$jscomp$inline_1786,
16013-
"19.1.0-native-fb-9ff42a87-20250130"
16010+
"19.1.0-native-fb-152bfe37-20250131"
1601416011
)
1601516012
);
1601616013
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16032,10 +16029,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1603216029
};
1603316030
var internals$jscomp$inline_2242 = {
1603416031
bundleType: 0,
16035-
version: "19.1.0-native-fb-9ff42a87-20250130",
16032+
version: "19.1.0-native-fb-152bfe37-20250131",
1603616033
rendererPackageName: "react-dom",
1603716034
currentDispatcherRef: ReactSharedInternals,
16038-
reconcilerVersion: "19.1.0-native-fb-9ff42a87-20250130"
16035+
reconcilerVersion: "19.1.0-native-fb-152bfe37-20250131"
1603916036
};
1604016037
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1604116038
var hook$jscomp$inline_2243 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -16141,4 +16138,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1614116138
listenToAllSupportedEvents(container);
1614216139
return new ReactDOMHydrationRoot(initialChildren);
1614316140
};
16144-
exports.version = "19.1.0-native-fb-9ff42a87-20250130";
16141+
exports.version = "19.1.0-native-fb-152bfe37-20250131";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<2123504bcc671c29af3c759339d03e87>>
10+
* @generated SignedSource<<d1a47f5338792b00471d816d5934a3ad>>
1111
*/
1212

1313
/*
@@ -9068,9 +9068,6 @@ function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {
90689068
hostParentIsContainer = !1;
90699069
break a;
90709070
case 3:
9071-
hostParent = parent.stateNode.containerInfo;
9072-
hostParentIsContainer = !0;
9073-
break a;
90749071
case 4:
90759072
hostParent = parent.stateNode.containerInfo;
90769073
hostParentIsContainer = !0;
@@ -16652,14 +16649,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1665216649
};
1665316650
var isomorphicReactPackageVersion$jscomp$inline_1881 = React.version;
1665416651
if (
16655-
"19.1.0-native-fb-9ff42a87-20250130" !==
16652+
"19.1.0-native-fb-152bfe37-20250131" !==
1665616653
isomorphicReactPackageVersion$jscomp$inline_1881
1665716654
)
1665816655
throw Error(
1665916656
formatProdErrorMessage(
1666016657
527,
1666116658
isomorphicReactPackageVersion$jscomp$inline_1881,
16662-
"19.1.0-native-fb-9ff42a87-20250130"
16659+
"19.1.0-native-fb-152bfe37-20250131"
1666316660
)
1666416661
);
1666516662
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16681,10 +16678,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1668116678
};
1668216679
var internals$jscomp$inline_1888 = {
1668316680
bundleType: 0,
16684-
version: "19.1.0-native-fb-9ff42a87-20250130",
16681+
version: "19.1.0-native-fb-152bfe37-20250131",
1668516682
rendererPackageName: "react-dom",
1668616683
currentDispatcherRef: ReactSharedInternals,
16687-
reconcilerVersion: "19.1.0-native-fb-9ff42a87-20250130",
16684+
reconcilerVersion: "19.1.0-native-fb-152bfe37-20250131",
1668816685
getLaneLabelMap: function () {
1668916686
for (
1669016687
var map = new Map(), lane = 1, index$294 = 0;
@@ -16805,4 +16802,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1680516802
listenToAllSupportedEvents(container);
1680616803
return new ReactDOMHydrationRoot(initialChildren);
1680716804
};
16808-
exports.version = "19.1.0-native-fb-9ff42a87-20250130";
16805+
exports.version = "19.1.0-native-fb-152bfe37-20250131";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<6808ed37fdae0dd8f12efd685843d77e>>
10+
* @generated SignedSource<<5898b742b5121a59ae6a197da3788925>>
1111
*/
1212

1313
/*
@@ -12430,9 +12430,6 @@ __DEV__ &&
1243012430
hostParentIsContainer = !1;
1243112431
break a;
1243212432
case 3:
12433-
hostParent = parent.stateNode.containerInfo;
12434-
hostParentIsContainer = !0;
12435-
break a;
1243612433
case 4:
1243712434
hostParent = parent.stateNode.containerInfo;
1243812435
hostParentIsContainer = !0;
@@ -26058,11 +26055,11 @@ __DEV__ &&
2605826055
};
2605926056
(function () {
2606026057
var isomorphicReactPackageVersion = React.version;
26061-
if ("19.1.0-native-fb-9ff42a87-20250130" !== isomorphicReactPackageVersion)
26058+
if ("19.1.0-native-fb-152bfe37-20250131" !== isomorphicReactPackageVersion)
2606226059
throw Error(
2606326060
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
2606426061
(isomorphicReactPackageVersion +
26065-
"\n - react-dom: 19.1.0-native-fb-9ff42a87-20250130\nLearn more: https://react.dev/warnings/version-mismatch")
26062+
"\n - react-dom: 19.1.0-native-fb-152bfe37-20250131\nLearn more: https://react.dev/warnings/version-mismatch")
2606626063
);
2606726064
})();
2606826065
("function" === typeof Map &&
@@ -26099,10 +26096,10 @@ __DEV__ &&
2609926096
!(function () {
2610026097
var internals = {
2610126098
bundleType: 1,
26102-
version: "19.1.0-native-fb-9ff42a87-20250130",
26099+
version: "19.1.0-native-fb-152bfe37-20250131",
2610326100
rendererPackageName: "react-dom",
2610426101
currentDispatcherRef: ReactSharedInternals,
26105-
reconcilerVersion: "19.1.0-native-fb-9ff42a87-20250130"
26102+
reconcilerVersion: "19.1.0-native-fb-152bfe37-20250131"
2610626103
};
2610726104
internals.overrideHookState = overrideHookState;
2610826105
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -26564,7 +26561,7 @@ __DEV__ &&
2656426561
exports.useFormStatus = function () {
2656526562
return resolveDispatcher().useHostTransitionStatus();
2656626563
};
26567-
exports.version = "19.1.0-native-fb-9ff42a87-20250130";
26564+
exports.version = "19.1.0-native-fb-152bfe37-20250131";
2656826565
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
2656926566
"function" ===
2657026567
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<7a5ee1c7dad1a60917fc01b90d6789e6>>
10+
* @generated SignedSource<<8aa47790f7ae6dcec042790f1daac7d1>>
1111
*/
1212

1313
/*
@@ -8674,9 +8674,6 @@ function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {
86748674
hostParentIsContainer = !1;
86758675
break a;
86768676
case 3:
8677-
hostParent = parent.stateNode.containerInfo;
8678-
hostParentIsContainer = !0;
8679-
break a;
86808677
case 4:
86818678
hostParent = parent.stateNode.containerInfo;
86828679
hostParentIsContainer = !0;
@@ -16014,14 +16011,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1601416011
};
1601516012
var isomorphicReactPackageVersion$jscomp$inline_1787 = React.version;
1601616013
if (
16017-
"19.1.0-native-fb-9ff42a87-20250130" !==
16014+
"19.1.0-native-fb-152bfe37-20250131" !==
1601816015
isomorphicReactPackageVersion$jscomp$inline_1787
1601916016
)
1602016017
throw Error(
1602116018
formatProdErrorMessage(
1602216019
527,
1602316020
isomorphicReactPackageVersion$jscomp$inline_1787,
16024-
"19.1.0-native-fb-9ff42a87-20250130"
16021+
"19.1.0-native-fb-152bfe37-20250131"
1602516022
)
1602616023
);
1602716024
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16043,10 +16040,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1604316040
};
1604416041
var internals$jscomp$inline_2245 = {
1604516042
bundleType: 0,
16046-
version: "19.1.0-native-fb-9ff42a87-20250130",
16043+
version: "19.1.0-native-fb-152bfe37-20250131",
1604716044
rendererPackageName: "react-dom",
1604816045
currentDispatcherRef: ReactSharedInternals,
16049-
reconcilerVersion: "19.1.0-native-fb-9ff42a87-20250130"
16046+
reconcilerVersion: "19.1.0-native-fb-152bfe37-20250131"
1605016047
};
1605116048
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1605216049
var hook$jscomp$inline_2246 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -16306,4 +16303,4 @@ exports.useFormState = function (action, initialState, permalink) {
1630616303
exports.useFormStatus = function () {
1630716304
return ReactSharedInternals.H.useHostTransitionStatus();
1630816305
};
16309-
exports.version = "19.1.0-native-fb-9ff42a87-20250130";
16306+
exports.version = "19.1.0-native-fb-152bfe37-20250131";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<630c89c1f2bf8d4a15b8b91c28856a08>>
10+
* @generated SignedSource<<dcdd6f0893860771b121687d78b2d802>>
1111
*/
1212

1313
/*
@@ -9072,9 +9072,6 @@ function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {
90729072
hostParentIsContainer = !1;
90739073
break a;
90749074
case 3:
9075-
hostParent = parent.stateNode.containerInfo;
9076-
hostParentIsContainer = !0;
9077-
break a;
90789075
case 4:
90799076
hostParent = parent.stateNode.containerInfo;
90809077
hostParentIsContainer = !0;
@@ -16667,14 +16664,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1666716664
};
1666816665
var isomorphicReactPackageVersion$jscomp$inline_1882 = React.version;
1666916666
if (
16670-
"19.1.0-native-fb-9ff42a87-20250130" !==
16667+
"19.1.0-native-fb-152bfe37-20250131" !==
1667116668
isomorphicReactPackageVersion$jscomp$inline_1882
1667216669
)
1667316670
throw Error(
1667416671
formatProdErrorMessage(
1667516672
527,
1667616673
isomorphicReactPackageVersion$jscomp$inline_1882,
16677-
"19.1.0-native-fb-9ff42a87-20250130"
16674+
"19.1.0-native-fb-152bfe37-20250131"
1667816675
)
1667916676
);
1668016677
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16696,10 +16693,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1669616693
};
1669716694
var internals$jscomp$inline_1889 = {
1669816695
bundleType: 0,
16699-
version: "19.1.0-native-fb-9ff42a87-20250130",
16696+
version: "19.1.0-native-fb-152bfe37-20250131",
1670016697
rendererPackageName: "react-dom",
1670116698
currentDispatcherRef: ReactSharedInternals,
16702-
reconcilerVersion: "19.1.0-native-fb-9ff42a87-20250130",
16699+
reconcilerVersion: "19.1.0-native-fb-152bfe37-20250131",
1670316700
getLaneLabelMap: function () {
1670416701
for (
1670516702
var map = new Map(), lane = 1, index$294 = 0;
@@ -16974,7 +16971,7 @@ exports.useFormState = function (action, initialState, permalink) {
1697416971
exports.useFormStatus = function () {
1697516972
return ReactSharedInternals.H.useHostTransitionStatus();
1697616973
};
16977-
exports.version = "19.1.0-native-fb-9ff42a87-20250130";
16974+
exports.version = "19.1.0-native-fb-152bfe37-20250131";
1697816975
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
1697916976
"function" ===
1698016977
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)