-
Notifications
You must be signed in to change notification settings - Fork 30k
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
Revisit checking in enough source to build "small-icu" into the node repo #3476
Comments
+1 ... with the caveat that we need to investigate how this impacts building on the smaller devices (like rpi). If the impact building icu by default on those devices is significant enough, then we'll need a configure option for optionally turning off the ICU build and set that as the default of CI runs only on the rpi devices. |
@jasnell you could still use |
I'm alright further investigating this approach. The 1.5MB dat file would only be updated every six months or so would have less impact then updating v8 does. |
I would add that I'd definitely prefer the source to be checked in directly rather than as a tar ball, even if it does mean the full 23 M. The tarball idea just feels dirty and reduces visibility (well, it's no less visible than what we have now, but ... you know). With changes coming only twice per year, the hit (shouldn't be / won't be) too bad. |
The source sounds fine. v8 uses ~98MB and openssl uses ~43MB. |
First of all, I'd certainly like that, personally. Second, "Download-by-default" is out of the question, so to do I basically have the action here to actually try out these options and report back the deltas. |
@srl295 Does having |
@silverwind It's all demand paged. That's why there's a separate big and little endian version. |
Sounds good, let's see some deltas 😉 |
is there any progress on this? |
"du -sh" reports 45M on disk. No config or source changes needed. Small
enough?
|
45M is enough Icu to build full or small.
|
+1... it's a reasonable size. |
OK- checked in on my branch https://github.com/srl295/node/commits/withicu If anyone would like to try this out please do. Thinking that I want to still allow people to customize which ICU they use - so may need to parameterize |
I'll keep slicing away at it— but like to get a +1 (thanks James - @nodejs/ctc ?) for
One idea might be to check ICU in as |
Seems like a good approach to me. |
Sounds reasonable to me. cc @nodejs/build
We won't need to download ICU in CI anymore if it becomes part of the repo, will we? |
@orangemocha |
@srl295 as you chip away at things to make it smaller it's going to complicate the process of landing updates isn't it? If that's the case then you may want to follow the approach that @shigeki has taken with the OpenSSL updates by documenting that needs to be done. I don't recall where this landed but I know he started it somewhere and @thealphanerd used it to upgrade one of the branches in the last round. (can one of you point us to the doc please?). |
@rvagg Yes. Documenting how to do an update is a todo of mine - nodejs/Intl#16 Right now what I am doing is using a python script to do the 'chip away', so it's repeatable. To update ICU: (updates
Then, to build with this prepackaged small ICU: (idea is this will be the default, I haven't wired it up so yet):
|
Removed ctc-agenda label, we should try and finish this out on github if possible |
@srl295 where are we on this? |
@thealphanerd depends somewhat on #6058 to reduce churn. thanks for the ping… |
* this commit has "small" ICU 57.1. See other commit for tools to generate this commit. Fixes: nodejs#3476
…-icu * Change configure default to "small-icu" (Intl on, English only) * add "--without-intl" and "vcbuild without-intl" options, equivalent to --with-intl=none * update BUILDING.md with above changes * Checks in tools that generate the deps/icu-small source directory from ICU source * Tools and process for updating ICU documented in tools/icu/README.md nodejs#3476
…-icu * Change configure default to "small-icu" (Intl on, English only) * add "--without-intl" and "vcbuild without-intl" options, equivalent to --with-intl=none * update BUILDING.md with above changes * Checks in tools that generate the deps/icu-small source directory from ICU source * Tools and process for updating ICU documented in tools/icu/README.md Fixes: #3476 PR-URL: #6088 Reviewed-By: James M Snell <jasnell@gmail.com>
…-icu * Change configure default to "small-icu" (Intl on, English only) * add "--without-intl" and "vcbuild without-intl" options, equivalent to --with-intl=none * update BUILDING.md with above changes * Checks in tools that generate the deps/icu-small source directory from ICU source * Tools and process for updating ICU documented in tools/icu/README.md Fixes: #3476 PR-URL: #6088 Reviewed-By: James M Snell <jasnell@gmail.com>
from discussion on #3460 and others
Theoretically, a stripped down ICU source base might be 23M on disk / 4.3M compressed - this is including the 1.5M "small ICU" (i.e. English only)
.dat
file in lieu of the 25M one which usually comes in an ICU tarball.Investigate the actual size needed here. This would include full functionality, just not full data. If you want node with full data you would still be able to: (a) download a full ICU tarball and build with
full-icu
as an option (just as you can do today) or (b) provide the full.dat
file at runtime (just as you can do today)So the upshot of this change would be that we could make
small-icu
theconfigure
default without any download needed, and a small impact to the repo (probably checking in source+blob, otherwise checking in a small tarball).cc @trevnorris @bnoordhuis @jasnell
The text was updated successfully, but these errors were encountered: