Skip to content

build: Node 26 danmu lite ICU profile and stripped Android runtime - #7

Merged
fogtape merged 3 commits into
recipe-v26from
feat/danmu-lite-node26
Oct 6, 2026
Merged

fogtape merged 3 commits into
recipe-v26from
feat/danmu-lite-node26

Conversation

@fogtape

@fogtape fogtape commented Oct 2, 2026 •

Copy link
Copy Markdown
Owner

The previous lite configuration disabled ICU, breaking danmu_api's GBK/Big5 decoding, NFKC normalization and Chinese sorting. Full now embeds complete ICU data; lite keeps the complete ICU API mode but embeds a reviewed danmu data profile that retains the needed locale families and every Node TextDecoder web encoding. Node 26 lite also removes Temporal and FFI.

Lite also removes Amaro, Inspector, SQLite/Web Storage, SEA packaging and native object-print helpers. Keep networking/TLS/crypto, fetch/Undici native WASM, compression, filesystem/module loading and the existing Worker/child-process APIs. The profile retains en/zh/yue/ja/ko regional families, Unicode normalization and IDNA for all scripts, all time zones and segmentation data; other locale formatting may fall back. Future dependencies requesting additional locale-specific behavior must extend the profile.

Android lite SDK copies remove non-runtime symbols/debug data with the NDK's llvm-strip. The helper verifies all dynamic symbols remain identical and requires node::Start; it runs for direct builds and CI cache hits. Full's symbol policy stays unchanged. ICU package generation fails if required resources or converter dependencies disappear. The bundled host genrb buffer accessor is corrected so the newly required host tool compiles.

Validation:

  • Fresh recipe reconstruction matches expected-tree.txt on both version lines; patch ownership, whitespace/syntax and test-edit audits pass.
  • Flavor/ICU-data-contract checks, real strip ABI/runtime fixture, release-control checks pass. Node 26 preview metadata/checksums, verdict and toolchain checks pass.
  • On downloaded Android arm64 lite libraries, stripping preserves every dynamic symbol and actual node::Start startup, decoding/normalization/sorting and fetch gzip/deflate/Brotli checks pass. Removed 21,791,208 bytes on Node 24 / 24,321,608 on Node 26.
  • The production ICU profile helper produces 11,024,064 bytes from the pinned 33,105,536-byte data package. Both runtimes tested with the replacement data reproduce full-data results for 228 encoding labels, retained locale APIs, time zones, normalization and IDNA; the new shipped flavor smoke passes.
  • The data-replacement experiment keeps ELF layout and is only functional validation. Complete cross-compilation/device gates and final artifact-size measurement remain the CI gate; estimated size is not reported as a freshly compiled artifact.

No published release assets or either app's pinned URL/checksum are changed.

Keep GBK/Big5 decoding, Chinese collation and NFKC normalization in both
flavors. Remove optional features unused by the core, align iOS linking
and boot smokes, and regenerate the recipe with verified tree hashes.

Assisted-by: Codex
Signed-off-by: fogtape <lilixu3210@gmail.com>
@fogtape fogtape changed the title build: Node 26 lite 保留完整 ICU 并关闭核心未使用功能 build: Node 26 danmu lite ICU profile and stripped Android runtime Oct 2, 2026
@fogtape
fogtape marked this pull request as ready for review October 6, 2026 05:47
@fogtape
fogtape merged commit eea389e into recipe-v26 Oct 6, 2026
31 checks passed
@fogtape
fogtape deleted the feat/danmu-lite-node26 branch October 7, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant