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 support for ICU #501

Closed
kitsonk opened this issue Oct 16, 2020 · 4 comments
Closed

Add support for ICU #501

kitsonk opened this issue Oct 16, 2020 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@kitsonk
Copy link

kitsonk commented Oct 16, 2020

We should add ICU to rusty_v8 in some fashion.

@flying-sheep
Copy link

flying-sheep commented Oct 17, 2020

Since ICU is large (as discussed in the linked issue): It would be great if choosing between static and dynamic linking is possible. On my system, all those projects link to ICU, and it would be nice to not have a second copy of it embedded in deno.

  • bind boost-libs calibre chromium dotnet-runtime harfbuzz-icu haskell-text-icu lib32-icu libcdr libical libmspub libreoffice-fresh libvisio libxml2 nodejs nuspell postgresql powershell r raptor smbclient texlive tracker3 xfsprogs

Of course only if it’s feasible. I speculate that ICU is much more stable than V8, so dynamically linking the former is probably much more realistic than with the latter (without things breaking and having to be rebuilt all the time)

@bnoordhuis
Copy link
Contributor

@flying-sheep That's probably out of the question because V8 is only tested against a particular build of ICU - the fork that Chromium bundles - and we don't have the resources to test against other versions or builds.

Here are file sizes:

$ ls -lh lib*icu*.a | awk '{print $5 " " $9}'
19M libicuucx.a
43M libicui18n.a
27M libicudata.a

The first two contain code, where you only pay for what you use. I expect that V8 pulls in a few MB, I remember that was what it amounted to in Node.js.

The last file is the big data table ICU uses. rusty_v8 can either embed it or load it externally so it can be shared but deno probably wants to embed it.

Node.js used to ship a stripped down table containing only en_US but they (we - I was involved in that decision) stopped doing that in v14. I don't plan on revisiting that for rusty_v8 or deno.

@bnoordhuis
Copy link
Contributor

Closing, done.

@waldyrious
Copy link

done.

Just for the record, it appears that the main PR for this was #603.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants