fix(core): re-enable include_icu_data (external ICU data file)#34681
Draft
bartlomieju wants to merge 1 commit into
Draft
fix(core): re-enable include_icu_data (external ICU data file)#34681bartlomieju wants to merge 1 commit into
bartlomieju wants to merge 1 commit into
Conversation
Re-enable the include_icu_data feature by default so deno_core calls v8::icu::set_common_data with deno_core_icudata at startup again. This depends on rusty_v8 no longer embedding the ICU data blob into the V8 static library (denoland/rusty_v8#1999). With that change V8 uses an external ICU data file, so the embedder must supply the data at runtime; without this feature V8 boots with no ICU data and Intl/Temporal fail (the build-time snapshot generator aborts as well).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This re-enables the include_icu_data feature by default, reverting
#34279, so deno_core again calls v8::icu::set_common_data with
deno_core_icudata at startup.
It depends on denoland/rusty_v8#1999, which stops V8 from embedding the
ICU data blob into the static library and restores the external ICU data
file build. Once V8 uses an external data file, the embedder must supply
the data at runtime; without this feature V8 boots with no ICU data and
Intl (and Temporal) fail. The build-time snapshot generator also runs V8
and aborts without the data, so the feature has to be on for the build to
succeed at all.
The motivation is to keep ICU data a separate, swappable artifact rather
than something baked into libv8. That is what makes it possible to ship a
smaller small-icu data set, or no data, without rebuilding V8, and it
removes the roughly 11MB binary size regression that embedding
reintroduced.
Draft until rusty_v8#1999 lands and a new v8 crate is published with the
external-data-file build; this was verified end-to-end locally by linking
against a from-source rusty_v8 build (RUSTY_V8_ARCHIVE) and confirming
Intl works while the no-feature build fails at snapshot generation, which
confirms the data is genuinely external.