Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove unstable_changedBits #20953

Merged
merged 1 commit into from Mar 19, 2021
Merged

Remove unstable_changedBits #20953

merged 1 commit into from Mar 19, 2021

Conversation

@acdlite
Copy link
Member

@acdlite acdlite commented Mar 8, 2021

We added this unstable feature a few years ago, as a way to opt out of context updates, but it didn't prove useful in practice.

We have other proposals for how to address the same problem, like context selectors.

Since it was prefixed with unstable_, we should be able to remove it without consequence. The hook API already warned if you used it.

Even if someone is using it somewhere, it's meant to be an optimization only, so if they are using the API properly, it should not have any semantic impact.

We added this unstable feature a few years ago, as a way to opt out of
context updates, but it didn't prove useful in practice.

We have other proposals for how to address the same problem, like
context selectors.

Since it was prefixed with `unstable_`, we should be able to remove it
without consequence. The hook API already warned if you used it.

Even if someone is using it somewhere, it's meant to be an optimization
only, so if they are using the API properly, it should not have any
semantic impact.
@@ -590,227 +561,6 @@ describe('ReactNewContext', () => {
]);
});

it('can skip consumers with bitmask', () => {

This comment has been minimized.

@acdlite

acdlite Mar 8, 2021
Author Member

These have corresponding tests in the context selectors PR

@sizebot
Copy link

@sizebot sizebot commented Mar 8, 2021

Comparing: 5fe091c...efad8ac

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.min.js = 123.31 kB 123.06 kB = 39.68 kB 39.58 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 129.90 kB 129.60 kB = 41.70 kB 41.57 kB
facebook-www/ReactDOM-prod.classic.js = 414.59 kB 413.17 kB = 76.58 kB 76.29 kB
facebook-www/ReactDOM-prod.modern.js = 402.93 kB 401.51 kB = 74.69 kB 74.39 kB
facebook-www/ReactDOMForked-prod.classic.js = 414.60 kB 413.18 kB = 76.59 kB 76.29 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.min.js = 123.31 kB 123.06 kB = 39.68 kB 39.58 kB
facebook-www/ReactDOMTesting-dev.classic.js = 978.86 kB 976.83 kB = 219.96 kB 219.48 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-profiling.js = 254.01 kB 253.48 kB = 46.59 kB 46.44 kB
oss-stable/react-dom/umd/react-dom.production.min.js = 123.23 kB 122.97 kB = 40.32 kB 40.19 kB
facebook-www/ReactDOMTesting-dev.modern.js = 949.78 kB 947.75 kB = 213.81 kB 213.33 kB
facebook-www/ReactDOMTesting-prod.classic.js = 401.28 kB 400.42 kB = 75.82 kB 75.66 kB
oss-experimental/react-dom/umd/react-dom.profiling.min.js = 136.04 kB 135.75 kB = 44.29 kB 44.18 kB
oss-experimental/react-dom/cjs/react-dom.profiling.min.js = 136.39 kB 136.10 kB = 43.68 kB 43.54 kB
oss-stable/react-art/umd/react-art.production.min.js = 113.27 kB 113.02 kB = 35.28 kB 35.15 kB
facebook-www/ReactDOMTesting-prod.modern.js = 387.68 kB 386.82 kB = 73.56 kB 73.38 kB
facebook-www/ReactDOMForked-dev.classic.js = 1,072.21 kB 1,069.78 kB = 237.13 kB 236.53 kB
facebook-www/ReactDOM-dev.classic.js = 1,072.20 kB 1,069.77 kB = 237.38 kB 236.78 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-prod.js = 241.47 kB 240.92 kB = 44.34 kB 44.21 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 129.90 kB 129.60 kB = 41.70 kB 41.57 kB
oss-experimental/react-dom/umd/react-dom.production.min.js = 129.73 kB 129.43 kB = 42.38 kB 42.22 kB
facebook-www/ReactDOMForked-dev.modern.js = 1,045.95 kB 1,043.52 kB = 231.95 kB 231.35 kB
facebook-www/ReactDOM-dev.modern.js = 1,045.94 kB 1,043.51 kB = 232.21 kB 231.61 kB
oss-experimental/react-art/umd/react-art.production.min.js = 118.17 kB 117.86 kB = 36.81 kB 36.68 kB
oss-experimental/react-art/umd/react-art.development.js = 745.94 kB 743.99 kB = 158.74 kB 158.21 kB
oss-stable/react-art/umd/react-art.development.js = 701.28 kB 699.41 kB = 149.67 kB 149.19 kB
oss-experimental/react-reconciler/cjs/react-reconciler.development.js = 702.79 kB 700.90 kB = 150.35 kB 149.86 kB
oss-stable/react-reconciler/cjs/react-reconciler.profiling.min.js = 91.87 kB 91.62 kB = 28.43 kB 28.32 kB
oss-stable/react-reconciler/cjs/react-reconciler.development.js = 657.65 kB 655.83 kB = 141.22 kB 140.79 kB
react-native/implementations/ReactNativeRenderer-dev.fb.js = 720.97 kB 718.94 kB = 156.35 kB 155.85 kB
react-native/implementations/ReactNativeRenderer-dev.js = 715.41 kB 713.38 kB = 155.41 kB 154.88 kB
oss-stable/react-reconciler/cjs/react-reconciler.production.min.js = 87.53 kB 87.28 kB = 27.19 kB 27.07 kB
react-native/implementations/ReactFabric-dev.fb.js = 702.67 kB 700.64 kB = 151.57 kB 151.07 kB
react-native/implementations/ReactFabric-dev.js = 697.09 kB 695.06 kB = 150.71 kB 150.20 kB
oss-stable/react-test-renderer/umd/react-test-renderer.development.js = 640.63 kB 638.75 kB = 135.50 kB 135.03 kB
oss-experimental/react-art/cjs/react-art.development.js = 642.86 kB 640.97 kB = 140.13 kB 139.64 kB
oss-experimental/react-test-renderer/umd/react-test-renderer.development.js = 657.48 kB 655.53 kB = 138.91 kB 138.41 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.development.js = 610.26 kB 608.45 kB = 133.87 kB 133.42 kB
oss-experimental/react-reconciler/cjs/react-reconciler.profiling.min.js = 99.38 kB 99.09 kB = 30.76 kB 30.62 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.development.js = 626.27 kB 624.38 kB = 137.26 kB 136.78 kB
oss-stable/react-art/cjs/react-art.development.js = 600.38 kB 598.56 kB = 131.48 kB 131.05 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.production.min.js = 80.34 kB 80.09 kB = 25.08 kB 25.00 kB
oss-stable/react-test-renderer/umd/react-test-renderer.production.min.js = 80.52 kB 80.27 kB = 25.37 kB 25.25 kB
oss-experimental/react-reconciler/cjs/react-reconciler.production.min.js = 92.89 kB 92.59 kB = 28.81 kB 28.67 kB
facebook-www/ReactTestRenderer-dev.modern.js = 634.47 kB 632.44 kB = 136.42 kB 135.91 kB
facebook-www/ReactTestRenderer-dev.classic.js = 634.46 kB 632.43 kB = 136.41 kB 135.90 kB
oss-stable/react-art/cjs/react-art.production.min.js = 77.45 kB 77.20 kB = 24.16 kB 24.09 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-dev.js = 621.62 kB 619.59 kB = 134.96 kB 134.45 kB
facebook-www/ReactDOMForked-profiling.classic.js = 434.52 kB 433.10 kB = 80.07 kB 79.76 kB
facebook-www/ReactDOM-profiling.classic.js = 434.51 kB 433.09 kB = 80.07 kB 79.76 kB
oss-experimental/react-cache/cjs/react-cache.development.js = 8.41 kB 8.38 kB = 2.82 kB 2.81 kB
oss-stable/react-cache/cjs/react-cache.development.js = 8.41 kB 8.38 kB = 2.82 kB 2.81 kB
facebook-www/ReactDOMForked-profiling.modern.js = 422.81 kB 421.39 kB = 78.22 kB 77.92 kB
facebook-www/ReactDOM-profiling.modern.js = 422.80 kB 421.38 kB = 78.22 kB 77.92 kB
facebook-www/ReactART-dev.classic.js = 714.51 kB 712.08 kB = 151.76 kB 151.19 kB
facebook-www/ReactDOMForked-prod.classic.js = 414.60 kB 413.18 kB = 76.59 kB 76.29 kB
facebook-www/ReactDOM-prod.classic.js = 414.59 kB 413.17 kB = 76.58 kB 76.29 kB
facebook-www/ReactART-dev.modern.js = 704.22 kB 701.79 kB = 149.67 kB 149.10 kB
facebook-www/ReactDOMForked-prod.modern.js = 402.94 kB 401.52 kB = 74.70 kB 74.40 kB
facebook-www/ReactDOM-prod.modern.js = 402.93 kB 401.51 kB = 74.69 kB 74.39 kB
oss-experimental/react/umd/react.profiling.min.js = 14.34 kB 14.29 kB = 5.30 kB 5.28 kB
oss-experimental/react-test-renderer/umd/react-test-renderer.production.min.js = 82.94 kB 82.63 kB = 26.28 kB 26.10 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.production.min.js = 82.76 kB 82.46 kB = 25.90 kB 25.75 kB
oss-experimental/react-art/cjs/react-art.production.min.js = 82.29 kB 81.98 kB = 25.66 kB 25.51 kB
oss-stable/react/umd/react.profiling.min.js = 13.29 kB 13.24 kB = 5.00 kB 4.98 kB
oss-experimental/react/umd/react.production.min.js = 12.12 kB 12.07 kB = 4.75 kB 4.72 kB
oss-stable/react/umd/react.production.min.js = 11.07 kB 11.02 kB = 4.46 kB 4.43 kB
facebook-www/ReactART-prod.classic.js = 267.92 kB 266.50 kB = 47.52 kB 47.20 kB
facebook-www/ReactART-prod.modern.js = 260.56 kB 259.14 kB = 46.24 kB 45.94 kB
oss-experimental/react/cjs/react.production.min.js = 7.59 kB 7.54 kB = 2.95 kB 2.93 kB
oss-experimental/react/cjs/react-unstable-shared-subset.development.js = 67.64 kB 67.15 kB = 18.40 kB 18.26 kB
oss-stable/react/cjs/react.production.min.js = 6.44 kB 6.39 kB = 2.66 kB 2.63 kB
oss-experimental/react/umd/react.development.js = 107.04 kB 106.17 kB = 26.47 kB 26.27 kB
oss-stable/react/umd/react.development.js = 104.77 kB 103.91 kB = 26.06 kB 25.89 kB
facebook-www/React-dev.classic.js = 99.65 kB 98.65 kB = 24.23 kB 24.04 kB
facebook-www/React-dev.modern.js = 98.63 kB 97.63 kB = 24.00 kB 23.81 kB
facebook-react-native/react/cjs/React-dev.js = 89.61 kB 88.61 kB = 21.49 kB 21.28 kB
oss-experimental/react/cjs/react.development.js = 74.55 kB 73.71 kB = 19.94 kB 19.77 kB
facebook-www/React-prod.classic.js = 17.09 kB 16.90 kB = 4.43 kB 4.37 kB
facebook-www/React-profiling.classic.js = 17.09 kB 16.90 kB = 4.43 kB 4.37 kB
facebook-www/React-prod.modern.js = 16.95 kB 16.75 kB = 4.38 kB 4.32 kB
facebook-www/React-profiling.modern.js = 16.95 kB 16.75 kB = 4.38 kB 4.32 kB
oss-stable/react/cjs/react.development.js = 72.40 kB 71.55 kB = 19.54 kB 19.35 kB
facebook-react-native/react/cjs/React-prod.js = 16.79 kB 16.59 kB = 4.31 kB 4.25 kB
facebook-react-native/react/cjs/React-profiling.js = 16.79 kB 16.59 kB = 4.31 kB 4.25 kB

Generated by 🚫 dangerJS against efad8ac

@acdlite acdlite force-pushed the acdlite:remove-changedbits branch 4 times, most recently from 6c4d404 to efad8ac Mar 8, 2021
Copy link
Member

@gaearon gaearon left a comment

Let's do it?

@acdlite acdlite merged commit 6d3ecb7 into facebook:master Mar 19, 2021
35 checks passed
35 checks passed
Facebook CLA Check Contributor License Agreement is valid!
Details
ci/circleci: RELEASE_CHANNEL_stable_yarn_build Your tests passed on CircleCI!
Details
ci/circleci: RELEASE_CHANNEL_stable_yarn_lint_build Your tests passed on CircleCI!
Details
ci/circleci: RELEASE_CHANNEL_stable_yarn_test_dom_fixtures Your tests passed on CircleCI!
Details
ci/circleci: build_devtools_and_process_artifacts Your tests passed on CircleCI!
Details
ci/circleci: build_devtools_scheduling_profiler Your tests passed on CircleCI!
Details
ci/circleci: get_base_build Your tests passed on CircleCI!
Details
ci/circleci: process_artifacts_combined Your tests passed on CircleCI!
Details
ci/circleci: setup Your tests passed on CircleCI!
Details
ci/circleci: sizebot Your tests passed on CircleCI!
Details
ci/circleci: sync_reconciler_forks Your tests passed on CircleCI!
Details
ci/circleci: yarn_build Your tests passed on CircleCI!
Details
ci/circleci: yarn_build_combined Your tests passed on CircleCI!
Details
ci/circleci: yarn_flow Your tests passed on CircleCI!
Details
ci/circleci: yarn_lint Your tests passed on CircleCI!
Details
ci/circleci: yarn_lint_build Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=experimental --env=development Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=experimental --env=production Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=stable --env=development Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=stable --env=development --persistent Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=stable --env=production Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=www-classic --env=development Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=www-classic --env=development --variant Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=www-classic --env=production Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=www-classic --env=production --variant Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=www-modern --env=development Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=www-modern --env=development --variant Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=www-modern --env=production Your tests passed on CircleCI!
Details
ci/circleci: yarn_test--r=www-modern --env=production --variant Your tests passed on CircleCI!
Details
ci/circleci: yarn_test_build---project=devtools -r=experimental Your tests passed on CircleCI!
Details
ci/circleci: yarn_test_build--r=experimental --env=development Your tests passed on CircleCI!
Details
ci/circleci: yarn_test_build--r=experimental --env=production Your tests passed on CircleCI!
Details
ci/circleci: yarn_test_build--r=stable --env=development Your tests passed on CircleCI!
Details
ci/circleci: yarn_test_build--r=stable --env=production Your tests passed on CircleCI!
Details
ci/codesandbox Building packages succeeded.
Details
@gaearon gaearon deleted the acdlite:remove-changedbits branch Mar 20, 2021
@gaearon gaearon restored the acdlite:remove-changedbits branch Mar 20, 2021
@gaearon gaearon deleted the acdlite:remove-changedbits branch Mar 20, 2021
@gaearon gaearon restored the acdlite:remove-changedbits branch Mar 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

4 participants