mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-01 07:33:12 +08:00
Node answers every locale-dependent Intl form from ICU, so a compiled binary that must match it byte for byte has to run the same release over the same data. vendor-inputs.ts pins ICU_VERSION = "78.3" beside the other vendored versions and vendor-inputs.test.ts asserts it against process.versions.icu, the oracle the differential corpus compares with. ICU is not vendored. Its source tarball (icu4c-78.3-sources.tgz, 27,977,255 B) and its prebuilt data zip (icu4c-78.3-data-bin-l.zip, 12,836,659 B) come from unicode-org/icu's official release-78.3 assets, each pinned by version and sha256 beside ICU_VERSION and mirrored in the runtime packs' icu-inputs.mjs, with a unit test that keeps the two identical. The tarball carries ICU's own sources.txt lists, which stay the list of record: icuSourceList() reads them so the archive holds exactly the units ICU's autoconf build compiles. ICU_CXX_TARGET names the glibc floor the archive is built for. The data (icudt78l.dat, 33,107,232 B) is shipped beside the executable, never embedded: 970 source files and 33 MiB of compiled CLDR tables are a download, not a reviewable tree in this repository. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
25 lines
1.3 KiB
JavaScript
25 lines
1.3 KiB
JavaScript
// The pinned ICU4C 78.3 inputs of the runtime packs. ICU is the one build
|
|
// input that is not vendored: both the source tarball and the prebuilt data
|
|
// zip come from unicode-org/icu's official GitHub release for the pinned
|
|
// version, each pinned by version and sha256, and both are cached on disk
|
|
// (see icu-data.mjs, which also fetches them).
|
|
// packages/compiler/src/backend/vendor-inputs.ts keeps the same pins for the
|
|
// source-build path; a unit test checks that the two agree.
|
|
|
|
/** Node v24.22.0 bundles ICU 78.3 (`process.versions.icu`). */
|
|
export const ICU_VERSION = "78.3";
|
|
|
|
const RELEASE_URL = `https://github.com/unicode-org/icu/releases/download/release-${ICU_VERSION}`;
|
|
|
|
export const ICU_SOURCE_URL = `${RELEASE_URL}/icu4c-${ICU_VERSION}-sources.tgz`;
|
|
export const ICU_SOURCE_SHA256 = "3a2e7a47604ba702f345878308e6fefeca612ee895cf4a5f222e7955fabfe0c0";
|
|
export const ICU_SOURCE_SIZE = 27_977_255;
|
|
|
|
export const ICU_DATA_URL = `${RELEASE_URL}/icu4c-${ICU_VERSION}-data-bin-l.zip`;
|
|
export const ICU_DATA_ZIP_SHA256 =
|
|
"982619632b78887f1895b063e96e8c3cc7f99283337c8abbd05aa71635de613c";
|
|
export const ICU_DATA_ZIP_SIZE = 12_836_659;
|
|
export const ICU_DATA_FILE = "icudt78l.dat";
|
|
export const ICU_DATA_SHA256 = "d5cf2a40dccbe471781ec7af85693bff542ff12f0b670c9630c4e72d60714b8b";
|
|
export const ICU_DATA_SIZE = 33_107_232;
|