Skip to content

Cocoapods: Remove hermes dep from React-utils#51577

Closed
RSNara wants to merge 5 commits intofacebook:mainfrom
RSNara:export-D75342019
Closed

Cocoapods: Remove hermes dep from React-utils#51577
RSNara wants to merge 5 commits intofacebook:mainfrom
RSNara:export-D75342019

Conversation

@RSNara
Copy link
Contributor

@RSNara RSNara commented May 24, 2025

Summary:
React-utils doesn't need to pull in hermes. Just jsi should be enough.

Motivation

I'm trying to break a circular dependency:

  • React-hermes pulls in React-runtimeexecutor: code
  • React-runtimeexecutor pulls in React-utils: D74769326
  • React-utils pulls in React-hermes: this diff

Changelog: [Internal]

Differential Revision: D75342019

RSNara added 5 commits May 23, 2025 20:19
Summary:
Pull Request resolved: facebook#51429

If we use promises, I believe the code is just easier to understand.

Changelog: [Internal]

Differential Revision: D74941734
…51514)

Summary:
Pull Request resolved: facebook#51514

This util can execute arbitrary runtimeWork, which can throw.

In the future, we'll also make these utils execute ui blocks posted from the javascript thread. And those will be able to throw.

Therefore, let's remove the noexcept. Otherwise, if an exception bubbles up to this util, it will just crash this app.

Changelog: [General][Changed] - RuntimeExecutor:  Remove noexcept from sync ui thread utils

Differential Revision: D75183993

Reviewed By: javache
Summary:
RuntimeExecutor.h has sync ui thread utils:
* executeSynchronouslyOnSameThread_CAN_DEADLOCK

The ios platform has js -> ui sync calls. This util, when it executes concurrently with those sync calls, deadlocks react native.

On ios, we're going to resolve these deadlocks, which'll involve customizing this util: D74769326. Therefore, this diff forks an implementation of these sync ui thread utils for ios.

Changelog: [Internal]

Differential Revision: D74901907
Summary:
Gating for "main queue coordinator": D74769326

Changelog: [Internal]

Differential Revision: D74940621
Summary:
React-utils doesn't need to pull in hermes. Just jsi should be enough.

## Motivation
I'm trying to break a circular dependency:
- React-hermes pulls in React-runtimeexecutor: [code](https://fburl.com/code/mhuxq8gp)
- React-runtimeexecutor pulls in React-utils: D74769326
- React-utils pulls in React-hermes: **this diff**

Changelog: [Internal]

Differential Revision: D75342019
@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook Partner labels May 24, 2025
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D75342019

@javache
Copy link
Member

javache commented Jun 23, 2025

Closed internally

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants