Node: [Proposal] Deprecate --without-intl compilation flag

Created on 3 Nov 2020  Â·  9Comments  Â·  Source: nodejs/node

Is your feature request related to a problem? Please describe.

Currently, Node.js supports the compilation with disabled ICU. I think we would benefit from officially deprecating it:

  • There are already some features that are not supported, sometimes without warnings (E.G.: https://github.com/nodejs/node/pull/35099)
  • It blocks us from moving forward with the deprecation of punycode core module (https://github.com/nodejs/node/pull/35092)
  • It blocks us from using Intl built-in methods in node core.
  • Some of the tooling we use in core doesn't support it (E.G.: ESLint).

Describe the solution you'd like

Having a warning in the console when compiling using --without-intl flag, and document that Node.js versions compiled without ICU are expected to have some unavailable features.

Also, I think the project should allow initiatives like https://github.com/nodejs/node/pull/27662 to land even if it doesn't work on --without-intl node versions.

If you are yourself a user of non-ICU versions of Node.js, please join the discussion, I'd be interested to hear what are the use-cases.

cc/ @nodejs/tsc

i18n-api

Most helpful comment

I use it.
I run node.js on embedded devices that are updated OTA and we pay for every MB downloaded. I would like to keep --without-intl.

All 9 comments

+1

Do we know if anyone builds Node with that option in the wild?

Users of nexe, pkg and boxednode (@addaleax)

I use it for reducing the binary size.

Yeah, I think it’s still a decent option for decreasing binary size if the target environment profits from this. To be clear, I’m not using this myself – just saying I can see that there are valid use cases.

What is the difference in size between --without-intl and "small ICU" ?

To be clear, I'm not advocating for removal the compilation option. Maybe deprecating is not the correct wording, but I think we need to rethink the status of those builds.
I've added to the OP an example of a PR (https://github.com/nodejs/node/pull/27662) currently blocked because of ICU which may be relevant to the discussion.

@targos

What is the difference in size between --without-intl and "small ICU" ?

You can find the size differences here:

https://github.com/astefanutti/scratch-node/commit/8a588ed5ec9613668d3dcf9502436a33e3c966bb#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L15-L19

After I switched from --without-intl to --with-intl=small-icu in https://github.com/astefanutti/scratch-node.

I use it.
I run node.js on embedded devices that are updated OTA and we pay for every MB downloaded. I would like to keep --without-intl.

Was this page helpful?
0 / 5 - 0 ratings