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

Add unstable_concurrentUpdatesByDefault #21227

Merged
merged 1 commit into from
Apr 28, 2021

Conversation

rickhanlonii
Copy link
Member

Overview

Adds a flag to opt-into time-slicing by default per root.

@facebook-github-bot facebook-github-bot added CLA Signed React Core Team Opened by a member of the React Core Team labels Apr 10, 2021
@sizebot
Copy link

sizebot commented Apr 10, 2021

Comparing: 86f3385...edd58eb

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 = 122.49 kB 122.49 kB = 39.38 kB 39.38 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 129.02 kB 129.02 kB = 41.46 kB 41.46 kB
facebook-www/ReactDOM-prod.classic.js +0.15% 406.28 kB 406.89 kB +0.07% 75.26 kB 75.31 kB
facebook-www/ReactDOM-prod.modern.js +0.11% 394.31 kB 394.75 kB +0.07% 73.29 kB 73.34 kB
facebook-www/ReactDOMForked-prod.classic.js +0.15% 406.28 kB 406.89 kB +0.07% 75.26 kB 75.31 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
facebook-www/ReactTestRenderer-dev.classic.js +0.22% 620.35 kB 621.73 kB +0.20% 133.49 kB 133.75 kB
facebook-www/ReactTestRenderer-dev.modern.js +0.22% 620.37 kB 621.74 kB +0.20% 133.50 kB 133.76 kB

Generated by 🚫 dangerJS against edd58eb

@dai-shi
Copy link
Contributor

dai-shi commented Apr 10, 2021

(Let me leave a minor note here as I have been curious about the wording. Do they all mean the same thing? concurrent updates concurrent rendering time slicing concurrent mode. Hope the future documentation clarifies it.)

@sebmarkbage
Copy link
Collaborator

What is this for? Can we feature flag it if it's internal only?

@rickhanlonii
Copy link
Member Author

@sebmarkbage internally some roots will be sync by default and others will opt-in to time-slicing.

@rickhanlonii
Copy link
Member Author

@dai-shi good question:

  • concurrent updates: Updates that are rendered concurrently. For example, updates wrapped in startTransition.
  • concurrent rendering: Renders that happen concurrently. These will render with time-slicing, potentially at the same time as other renders.
  • time slicing: Rendering that yields to other work, like the browser or other rendering tasks. See here for more info.
  • concurrent mode: This isn't well defined any more because there's not a single mode that turns on concurrent rendering everywhere, but different features that opt-into concurrent rendering in certain situations.

@rickhanlonii rickhanlonii force-pushed the rh-root-sync-option branch 3 times, most recently from b820aed to 4c3bdd6 Compare April 10, 2021 15:53
Copy link
Collaborator

@acdlite acdlite left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Could wrap the root option in the flag to save a ridiculously small number of bytes and perhaps alleviate Seb's concern that it will leak to open source

@rickhanlonii rickhanlonii merged commit 9e9dac6 into facebook:master Apr 28, 2021
@rickhanlonii rickhanlonii deleted the rh-root-sync-option branch April 28, 2021 20:09
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request May 11, 2021
Summary:
This sync includes the following changes:
- **[b8fda6cab](facebook/react@b8fda6cab )**: [React Native] Set allowConcurrentByDefault = true ([#21491](facebook/react#21491)) //<Ricky>//
- **[1bb8987cc](facebook/react@1bb8987cc )**: Renamed function in error log issue #21446 ([#21449](facebook/react#21449)) //<faebzz>//
- **[bd070eb2c](facebook/react@bd070eb2c )**: Enable setJSResponder/setIsJSResponder for React Native Fabric ([#21439](facebook/react#21439)) //<Joshua Gross>//
- **[e9a4a44aa](facebook/react@e9a4a44aa )**: Add back root override for strict mode ([#21428](facebook/react#21428)) //<Ricky>//
- **[d1542de3a](facebook/react@d1542de3a )**: Unify React.memo and React.forwardRef display name logic ([#21392](facebook/react#21392)) //<Brian Vaughn>//
- **[9a130e1de](facebook/react@9a130e1de )**: StrictMode includes strict effects by default ([#21418](facebook/react#21418)) //<Brian Vaughn>//
- **[15fb8c304](facebook/react@15fb8c304 )**: createRoot API is no longer strict by default ([#21417](facebook/react#21417)) //<Brian Vaughn>//
- **[aea7c2aab](facebook/react@aea7c2aab )**: Re-land "Support nesting of startTransition and flushSync (alt) ([#21149](facebook/react#21149))" //<Andrew Clark>//
- **[bacc87068](facebook/react@bacc87068 )**: Re-land "Flush discrete passive effects before paint ([#21150](facebook/react#21150))" //<Andrew Clark>//
- **[098600c42](facebook/react@098600c42 )**: Re-land "Fix: flushSync changes priority inside effect ([#21122](facebook/react#21122))" //<Andrew Clark>//
- **[df420bc0a](facebook/react@df420bc0a )**: Re-land "Delete LanePriority type ([#21090](facebook/react#21090))" //<Andrew Clark>//
- **[ab5b37927](facebook/react@ab5b37927 )**: Re-land "Clean up host pointers in level 2 of clean-up flag ([#21112](facebook/react#21112))" //<Andrew Clark>//
- **[fd907c1f1](facebook/react@fd907c1f1 )**: Re-land "Use highest priority lane to detect interruptions ([#21088](facebook/react#21088))"" //<Andrew Clark>//
- **[269dd6ec5](facebook/react@269dd6ec5 )**: subtreeFlag warning: Fix legacy suspense false positive ([#21388](facebook/react#21388)) //<Andrew Clark>//
- **[9e9dac650](facebook/react@9e9dac650 )**: Add unstable_concurrentUpdatesByDefault ([#21227](facebook/react#21227)) //<Ricky>//
- **[86f3385d9](facebook/react@86f3385d9 )**: Revert "Use highest priority lane to detect interruptions ([#21088](facebook/react#21088))" //<Andrew Clark>//
- **[c6702656f](facebook/react@c6702656f )**: Revert "Clean up host pointers in level 2 of clean-up flag ([#21112](facebook/react#21112))" //<Andrew Clark>//
- **[1bd41c664](facebook/react@1bd41c664 )**: Revert "Delete LanePriority type ([#21090](facebook/react#21090))" //<Andrew Clark>//
- **[e7e0a90bd](facebook/react@e7e0a90bd )**: Revert "Fix: flushSync changes priority inside effect ([#21122](facebook/react#21122))" //<Andrew Clark>//
- **[7bac7607a](facebook/react@7bac7607a )**: Revert "Flush discrete passive effects before paint ([#21150](facebook/react#21150))" //<Andrew Clark>//
- **[207d4c3a5](facebook/react@207d4c3a5 )**: Revert "Support nesting of startTransition and flushSync (alt) ([#21149](facebook/react#21149))" //<Andrew Clark>//

Changelog:
[General][Changed] - React Native sync for revisions 2a7bb41...b8fda6c

jest_e2e[run_all_tests]

Reviewed By: yungsters

Differential Revision: D28351439

fbshipit-source-id: 29620f96c9fb9f02b0d856111d3882d3c69fd1c5
koto pushed a commit to koto/react that referenced this pull request Jun 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed React Core Team Opened by a member of the React Core Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants