Hello,
I would like to contribute some changes to support i18n use.
I work on ICU at IBM, and it's my understanding that there is a CCLA sent in already.
For background, I am working on trying to get ICU on by default in Node. https://github.com/joyent/node/pull/7719
I've opened three bugs:
* https://code.google.com/p/v8/issues/detail?id=3345 - Make breakiterator optional. This detects whether break iteration is turned off in the ICU you are built against.
Saves ~1MB of code (not counting data).
* https://code.google.com/p/v8/issues/detail?id=3348 - bug fixes
This does some error checking if ICU wasn't able to load its data.
This isn't a complete fix, but turns crashers (SEGV) into "soft" errors (node exits with an error message).
And the more complicated one..
* https://code.google.com/p/v8/issues/detail?id=3344 - InitializeICUDirectory
This just sets u_setDataDirectory() to tell ICU where to load its data, or if the param is null, it sets a "small" built in data pack, just en+root and calls u_setCommonData()..
An alternate model could be to just have two new APIs:
InitializeICUDirectory( path .. )
InitializeICUData( void *data .. )
The existing function, InitializeICU( const char *file ) could be kept, no conflict there. Just document to call only one of the functions.
* As to building ICU itself, I have some new gyp+bash code, which might be better gyp+python, but have not disturbed at all how v8 builds against chromium's ICU.
+v8-users, v8-dev is mostly for codereviews and stuff...
On Tuesday, June 3, 2014 12:45:44 AM UTC+2, Steven R. Loomis (IBM) wrote:Hello,
I would like to contribute some changes to support i18n use.
I work on ICU at IBM, and it's my understanding that there is a CCLA sent in already.Yes, indeed!
For background, I am working on trying to get ICU on by default in Node. https://github.com/joyent/node/pull/7719Cool!
I've opened three bugs:Thank you, I cc'd some folks and added comments to them
* https://code.google.com/p/v8/issues/detail?id=3345 - Make breakiterator optional. This detects whether break iteration is turned off in the ICU you are built against.
Saves ~1MB of code (not counting data).
* https://code.google.com/p/v8/issues/detail?id=3348 - bug fixes
This does some error checking if ICU wasn't able to load its data.
This isn't a complete fix, but turns crashers (SEGV) into "soft" errors (node exits with an error message).
And the more complicated one..
* https://code.google.com/p/v8/issues/detail?id=3344 - InitializeICUDirectory
This just sets u_setDataDirectory() to tell ICU where to load its data, or if the param is null, it sets a "small" built in data pack, just en+root and calls u_setCommonData()..
An alternate model could be to just have two new APIs:
InitializeICUDirectory( path .. )
InitializeICUData( void *data .. )
The existing function, InitializeICU( const char *file ) could be kept, no conflict there. Just document to call only one of the functions.
* As to building ICU itself, I have some new gyp+bash code, which might be better gyp+python, but have not disturbed at all how v8 builds against chromium's ICU.We're directly using chromium's ICU, however, it's possible to also use the system's ICU library or your own version.