ICU-TC Meeting Minutes 2015-2016 (Archived)
Current and past meeting minutes
2016/12/21 and 2016/12/28 - No meetings
http://grammarist.com/spelling/cancel/
2016/12/14
- ICU 58.2 was released on Dec 9
- ICU 59m1 schedule (Peter)
- CLDR data structure freeze - Jan 14
- ICU59m1 date: Wed Feb 1, 2017, about 2 weeks after CLDR structure freeze
- (tag only) release manager
- Peter - http://bugs.icu-project.org/trac/ticket/12895 - linked from http://bugs.icu-project.org/trac/milestone/59m1
- Pick up new data structure from CLDR which should be done mid-Jan
- Set m1 for Feb 1
- ICU-TC Summit (Steven)
- Monday January 30, 2017 - at Google campus(?) – Markus still working on it :-/
- Agenda - separate shared doc
- Put all proposed agenda by Jan 11, ICU TC call
- Jan 11 call - we'll finalize topics/time slots
- C++11 switch-over (andy)
- which features? https://github.com/nodejs/node/issues/7844#issuecomment-239273083
- http://bugs.icu-project.org/trac/ticket/12643
- Turn on C++11, migrate to UString at the first step
- Other C++11 features are evaluated incrementally
- ICU is officially in Windows, will be in January insider flights
- Exposed to developers
- Native C APIs only / so (should be) backward compatible
- http://www.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild including “ICU as a System-Level Library”
- Incoming
2016/12/07
(Peter will be out for this one)
- ICU 58.2
- CLDR 30.0.3 data was integrated into trunk per #12876, merge to maint branch?
- 59m1 bugs with keyword maint
- #12869 Don't use ordinal() to define public constants ???
- Numeric values unchanged from before
- Who is going to merge -> Yoshito
- Steven to prepare C src/binaries
- Yoshito to prepare J
- Release date - Friday Dec 9th
- Steven - walkthrough of Jenkins build.
- https://cldr-build.unicode.org/jenkins/
- icu4c build for trunk checks out only icu4c portion of trunk
- For shared testdata, we will need to check out the whole trunk and then cd into icu4c for build & test
- Could have trunk builds that build & test both c & j (new build script)
- change trigger builds to mid-build not post-build [srl]
- MessageFormat dtskeleton vs. datetimeskeleton vs. skeleton vs. dts ... (Markus)
- http://bugs.icu-project.org/trac/ticket/9622#comment:14
- “The due date is {duedate, dts, yMMMd}.”
- Consensus: dts
- MessageFormat formatted constants pre-proposal (Markus)
- Opinions? Ready to go to icu-design?
- No objections; Markus will turn it into a real proposal and send to icu-design.
- Locale/LanguageMatcher
- https://docs.google.com/document/d/1wRfFjvg80lU6bx6kaq25BBiNuQaA7IIiu6h5qG63b0s/edit#heading=h.14e2w2syinu3
- “Sensitive” tickets
- per doc above - unembargo 1 release after released
- create 'sensitive' group - for packagers who can get read access
- Steven to add BRS items and maintain list of packagers with read access
- Incoming
2016/11/30
- ICU 58.2
- current target: Dec 7 (next week)
- 59m1 bugs with keyword maint
- #12849 u_strToTitle returns incorrect length if destination is NULL ?
- CLDR#9924 Still wrong: Population data for Cantonese (yue) speakers
- Mark will fix this today/tomorrow, Peter to roll into branch and tag the version in CLDR svn
- ICU does not use the data, except example code
- If we pick this one, it will need ICU4J 58.2 as well.
- CLDR #9925 - kMandarin value for some chars not being used correctly by Friday.
- CLDR 30.0.3 (svn tag only)
- CLDR TC Friday call on this Friday - should have some updates from Mark at that point
- ICU-TC Summit (Steven)
- set date - Fri Jan 20th or Mon Jan 30th? — Mark, PeterE ?
- prefer jan20:
- prefer jan30: Markus, Mark
- Agreed - Monday January 30, 2017
- location?
- Google? Markus to investigate
- Headcount?
- IBM: 1-2 (+1 remote)
- Google: 3+ (need to find out more)
- Apple: 1-2 (Peter remote)
- Microsoft: 1-2
- Others: (regular contributors…)
- Agenda - separate shared doc
- Deprecate ICU’s encoding detector in favor of the compact encoding detector (CED) (https://github.com/google/compact_enc_det) [Mark]
- [yoshito] Does ICU4C support language detection???
- [andy] No. As a side-effect of charset detection, it will guess a language for a few encodings, but it is not generally useful, not reliable, and doesn’t work at all for many encodings.
- Andy: ICU charset detector has real users, and it detects EBCDIC charsets which the CED does not
- Agreement: Mark to file a ticket for documentation (not really actively developing it, may mention other libraries), but not deprecating the APIs
- Andy: could have shim code (call one from the other, for comparison/compatibility)
- …which is what we did for layout engine
- Incoming
2016/11/23 - Cancelled
- Wednesday just before US Thanksgiving holiday. People not available: Yoshito, Markus, Peter, Andy
2016/11/16
- Host environment preferences - update and next steps (Zibi)
- ICU 58.2 (ICU4C only) - 59m1 bugs with keyword maint
- (fixed) #12815 ICU4C uspoof_getSkeleton sets backwards-incompatible illegal argument exception
- (fixed) #12825 uspoof_check goes into an "infinite loop" when U+30FB is in an input string
- (fixed) #12822 digitlist.cpp won't compile on msvc under Node.js
- (fixed) #12832 GreekUpper:toUpper skips the final character on a non-terminated UTF-8 string
- #12849 u_strToTitle returns incorrect length if destination is NULL
- Minor version policy with C/J combined trunk.
- With separate C,J used to do n.n.1 for updates only to C or J, n.2 for both.
- Now with combined tags: Use n.2, includes C++ changes but Java stays the same. Java binaries not updated, continue to report n.1 version. If later Java needs an update, we roll n.3, update Java binaries but don’t touch C++ so C++ will continue to report n.2 then. Say this on the “n” download page.
- http://semver.org - good reading on version #s (Steven)
- (+ when breaking changes).(+ when add functionality in compatible way).(+ when fix bugs)
- major: ICU: tries not to make breaking changes. But we could count data changes.
- minor: ICU doesn't add functionality except in major versions
- (when we had numbers such as "4.8.1.1" people thought going from 3.8 to 4.0 was a major jump, which is why we changed to bump the major number)
- Policy (ICU 58+)
- First field - is major release
- Second field - is minor (maint) release which is published
- Third field - may be tag-only patch which is not published
- ICU-TC never uses the 4th field - reserved for packager/end user
- Release target Date: Dec 7 (Wed)
- icu4c dist builds: https://cldr-build.unicode.org/jenkins/job/icu/job/icu4c-dist/
- http://bugs.icu-project.org/trac/milestone/58.2
- Build status (Steven)
- out with the old… ( 1000lb of stuff being recycled today… Bitten on skeleton crew of builders )
- …in with the new ( jenkins - OSUOSL (ppc linux), marist ( zLinux ) Azure ( master / win10 ) ,
- Future: GCC Compile Farm
- stability issues
- Steven todo: how to see what the status is. what to chase down.
- ICU API Proposal from Jeff Walden (Mozilla): unum_formatDoubleForFields()
- Email to icu-design 2016-10-28
- http://bugs.icu-project.org/trac/ticket/12684
- ICU 59 API proposal status
- Approved, Peter to respond on icu-design list
- ICU-TC long term planning (Steven)
- two prongs
- ICU-TC core
- bringing in additional Collaborators
- inspiration - https://github.com/nodejs/summit
- recommendation - Unicode EMG
- topics
- review process (pre-submit review, rietveld, etc)
- direction
- other language interaction (Javascript, … )
- Discuss at: separate shared doc
- logistics
- ~ IUC, UTC
- f2f ideal - or video conf
- bay area - when people are in town?
- more than once a year
- could do it around UTC when Mark is stateside
- http://www.unicode.org/timesens/calendar.html
- week (friday?) before or (monday?) after UTC # 150 (Jan 23-26) / Unicode BoD Meeting (Jan. 27)? / Unicode EMG offsite spillover (Jan 28th )
- Fri Jan 20th or Mon Jan 30th? — Mark, PeterE ?
- TODO(markus): Host at Google?
- Incoming
2016/11/09 - Let's have a short call
- (During UTC meeting; not available: Steven, Peter, Mark, Markus)
- SVN repository reorg
- C/J trunk is merged into a single root
- tags/branches?
- Maint branches 50 thru 58 are moved
- Tags release 50 thru 58 are copied
- 49 and older?
- CLDR utilities jar
- CLDR wants utilites.jar from the ICU trunk, but test framework classes from 57 because of JUnit migration is not read in CLDR
- Update trunk to generates utilities.jar excluding test framework
- Is it OK to update maint-57 to produce two separate jars?
- Incoming
2016/11/02 IUC 40 - cancelled
http://www.unicodeconference.org/program.htm
2016/10/26 9:45 America/Los_Angeles
- Next two meetings
- ICU 58.1
- BRS 58 - all done?
- merge milestone 58m1 to 58.1 - Markus done oct26
- Closing 58.1 milestone - move tickets to 59 - done oct26
- Markus: Do we need milestones?
- Very few orgs pick them up for integration & testing (mostly the winter milestone?)
- Forcing function for due diligence, good checkpoint
- Stable cut, useful for porting
- Do light BRS and tag, but don’t need to publish anything, no download page
- Import structure from CLDR
- 58.1 windows build issue found during nodejs integration - http://bugs.icu-project.org/trac/ticket/12822
- merge to maint-58? - yes
- PluralRules and fractional 0: http://bugs.icu-project.org/trac/ticket/12763
- Best for now: input (number, NumberFormat) → output (formatted string, plural form) – comment added to ticket
- Host environment preferences (context: https://github.com/tc39/ecma402/issues/109)
- https://bugzilla.mozilla.org/show_bug.cgi?id=1308329
- Review for http://bugs.icu-project.org/trac/ticket/12684
- http://site.icu-project.org/processes/proposal-template
- First step is to propose new draft API using process in API Proposal Email Template
- Then we schedule a review in ICU meeting, at least a week after
- Once API is approved, can do implementation and have code review for implementation
- Svn repository reorg. Timing?
- Incoming
2016/10/19
- ICU 58.1
- BRS 58
- Please review changes merged to maint-58
- http://bugs.icu-project.org/trac/review/12779
- http://bugs.icu-project.org/trac/review/12780
- Should we merge #12798 (Andy's security fix) to ICU4C 58.1?
- Markus: yes (it includes a not-Cygwin bug fix)
- Peter: yes
- Steven will merge & tag - ticket:12779
- merged: r39471
- tag : r39472
- ticket set for review
- ICU4J tagged / ICU4C tagged
- 58 download page
- Mark will try to add something about impact of some changes
- Yoshito will post ICU4J release binaries/API doc tonight
- Steven - ICU4C
- Release announcement - draft today, send to team, then to Rick & editorial committee
- Updating Win7/ibm-ultra4 ? (Currently Win/perf build not useful) [Peter]
- Yes - in progress (Steven)
- ICU svn reorg (Andy) - http://bugs.icu-project.org/trac/ticket/12800
- Add text on the repository page about old vs. new layout: http://site.icu-project.org/repository
- Start next week, announce closing of repository to icu-core
- ICU contributors documentation (see email discussion “cleaning up web pages on license”) [Mark]
- http://site.icu-project.org/processes/contribute
- http://userguide.icu-project.org/dev/contributions
- If you want to join the team, then please contact us. Once everything is agreed, the ICU team gives you an ICU server account for svn write access, and an ICU Trac account for ticket (bugs/features) management.
- Mark’s suggestion:
- If your company has already filed a CLA, then contact your company's representative to get authorization for ICU accounts: an ICU server account for svn write access, and an ICU Trac account for ticket (bugs/features) management. If you want to be an active individual contributor, please contact us.
- Steven: Do ICU team members need to be Unicode members?
- PMC? We don’t really have a defined process any more for how to join etc.; PMC used to vote, PMC as such does not really exist any more, now we have ICU-TC chair & vice chair.
- CLDR meeting time was shortened to end at 9:30 PT, Mark mentioned possibly moving the ICU meeting earlier (9:45 PT?)
- Ok: 9:45-11:00 Pacific Time starting next week
- IUC 40 “New in ICU” feedback? See email to icu-core.
- Incoming
2016/10/12
- ICU 58.1
- BRS 58
- ICU4J trunk changes not yet merged to 58.1 stream
- #11950 / r39429 multi-threaded Java tests - Won't be merged to 58.1
- This change seems to trigger intermittent TimeZoneFormatTest failure on Solaris?? - see http://bugs.icu-project.org/trac/build/icu4j
- (Yoshito) I'm the reviewer. The ticket is closed now. But not sure I'm aware of this.
- #12759 / r39430 Test file bigdec/DiagBigDecimal.java not converted to Junit - will be merged to 58.1
- #12797 / r39431 RBBI, bug in $variable substitution during rule compilation - merge
- #12792 / r39435 ICU4J unit tests in CalendarRegression.java, MessageRegression.java, and TimeZoneRegression.java are not executed - will be merged to 58.1 - merge
- ICU4C trunk changes not yet merged to 58.1 stream
- #12797 / r39432 RBBI, bug in $variable substitution during rule compilation
- CLDR 30.0.1 release, integrate into ICU 58 (Peter)
- Ticket #12801 (also addresses #12791, the Myanmar name issue)
- CLDR Bugs to fix
- Pick up additional CLDR locales for ICU:
de_IT
nds [low German/low Saxon], nds_DE, nds_NL
es_BR
pt_CH, pt_GQ [Equatorial Guinea], pt_LU [Luxembourg]
CH, 3.4% of population speaks pt
LU, 16% of population speaks pt (see Wikipedia)
ckb [Sorani Kurdish], ckb_IQ, ckb_IR
- Revised most of the description of http://bugs.icu-project.org/trac/ticket/12607. More changes?
- Incoming
2016/10/05
- ICU 58
- Release plan update
- ICU 58.1 GA on Friday Oct 21 (previous - Oct 14)
- This version will merge at least CLDR#9843 (Myanmar country name), plus a few more CLDR fixes
- 58RC download page to list tickets which will be merged into GA version
- CLDR 30 release today. No data changes from the release-30-d05 tag integrated into ICU.
- One or more known CLDR data issues that we may want to fix in ICU; need CLDR dot release?
- ICU #12791 incorrect “my” name for “MM”, CLDR #9843
- Possibly a fix for Basque day periods?
- CLDR dot release - tag only (30-1)?
- Markus: A tag like cldr-30-with-fixes off of the cldr-30 maintenance branch (?!) is probably fine.
- Steven: we can discuss in CLDR, also if there are additional changes that come in. CLDR doesn't usually make a maint branch. I'd like it to have a real v number such as 30.0.1 if possible
- Review
- Tickets in review state
- Tickets with trunk changes / not under review
- BRS 58
- Merge watch - C
- 12778 - DONE detect mmap on cygwin srl
- mac: OK, merged to tmp branch, r39419
- trunk: r39424 (misticketted -comment should be 'mmap')
- 12781 - DONE dirent on cygwin srl
- mac: OK, merged to tmp branch, r39418
- trunk: r39423
- 12783 - DONE umutex on cygwin srl
- mac: OK, merged to tmp branch, r39417
- trunk: r39422
- 12773 - DONE digitlist on cygwin (strtod_l) srl
- cyg: merged, compile in progress…
- Fail: intltest format/TimeZoneTest/TestGenericAPI
- FAIL: detectHostTimeZone()'s raw offset != host timezone's offset
- Does not seem to be caused by this specific patch.
- r39420 with all patches - passes on cygwin.
- trunk: r39425
- 12774 - DONE tzname/timezone checks on cygwin srl
- ( unchecked on cygwin. ok mac. on tmp branch r39416)
- trunk: r39421
- ticket:12771 DONE r39408 - © statements
- r39427 : merges r39408 r39421 r39422 r39423 r39424 r39425 from trunk into maint-58
- #12759 Java BigDecimal test invocation / Not merged
- ICU 58 Compatibility with Windows XP and Vista
- Anyone aware of changes that make it not work on those Windows versions any more? - still works
- Shawn: It might be worth mentioning in the release notes that this will be the last ICU version to support Windows XP? People that read such things would at least then be forewarned.
- Mentioned on the download page, not in the release notes.
- merge old ICU milestone releases into final releases (Markus)
- I would like to merge 57m1 into 57.1, 56m1 into 56.1, etc.
- Details see email 20160930
- TC agreed to merge milestones into past releases
- Incoming
2016/09/28
- ICU 58 RC
- Review
- Tickets in review state
- Tickets with trunk changes / not under review
- BRS 58
- Remaining issues
- ICU4J trunk coverage is broken: #12716 / r39372 ccornelius - Yoshito will fix (thanks!) and also fix hashCode() API docs and regen API change report
- 12752 - srl - z porting - before RC tag
- tzdata2016g
- 58 download page
- Incoming
2016/09/21
- API promotion (@draft 56 or older to @stable)
- Andy: ICU4C
- hold as @draft for ones not neede with C++11
- measure unit factory - CLDR tooling should manage the status/version
- Yoshito: ICU4J
- draft API change report
- SpoofChecker: @Deprecated public String getSkeleton(int, CharSequence) -> @Deprecated public String getSkeleton(int, String)
- Was String, Shane widened to CharSequence while deprecating, Yoshito said that’s not necessary, Shane changed it back to String: r39305
- ErrorProne
- Craig making progress fixing issues & annotating non-issues
- Would like to use @SuppressWarning(ErrorProne-specific warning name) but then Eclipse warns about unknown warning names... can we turn that off?
- Markus idea: For warnings about intended reference equality, create something like Objects.areSame(a, b) → documents intent right in the condition, and we would need at most one warning suppression.
- Andy idea: Put ErrorProne suppressions into comment lines; someone who cares can un-comment them; that will help document that something is fine and intended.
- Fredrik: We should ask the ErrorProne developers for help.
- Yoshito (update after meeting): We can change the warning level to ignore unknown token in @SuppressWarnings. I initially thought javac does not have such controll - but after the meeting, I confirmed this is not the case.
- ErrorProne doc - For now, Eclipse users should use the Findbugs eclipse plugin instead, as it catches many of the same issues.
- missing @Override - Craig to commit the fix for missing @Override today.
- Review
- Tickets in review state
- Tickets with trunk changes / not under review
- CLDR 30 integration status
- Finished integration Sunday night (C and J)
- May have a few minor updates, will plan to roll in by Monday night
- few locale specific items
- numbers
- currency symbol
- Build status
- J coverage - com/ibm/icu/impl/coll/Collation#primaryFromLongPrimaryCE32:(I)J
- Markus: I don’t see any relevant library or test code change that would have made this not-covered. There is a call site, so we can’t remove this method, but it won’t be easy to cover. Will get it added to the exclusion list. (I didn’t see it getting removed from the exclusion list either.)
- Security (Steven)
- https://sites.google.com/site/icusite/security
- BRS (master & 58) - fill in fixed version in security page
- BRS 58
- Incoming
2016/09/14
- Release status
- Peter will start integrating CLDR data probably tonight or tomorrow
- Target: before Wed next week
- May need help from others e.g. on transforms; create shared doc with issues to get help. Steven can help with tool issues.
- Reassign tickets for Michael?
- Outstanding tickets
- Markus still working on Greek uppercasing, then look at a few small bugs; otherwise punt
- Peter has been able to do almost nothing this ICU cycle, sorry (CLDR, emoji, Apple work). Will plan to make a few easy fixes for crashes e.g. #12407
- Urgent incoming bug from CLDR, ICU ticket #12730 “Exception when formatting compact currencies”, need fix to make CLDR charts
- Note there are several open tickets about compact currency formatting; good chance this is a duplicate
- Assigned to Andy for 58
- CLDR ticket #9771 “collation index: add beyond-last-reordered-CJK index labels” and related ICU changes?
- Markus: Old problem, and don’t have data to put there, should look at this for CLDR 31. Peter: OK, will assign the CLDR ticket accordingly - done.
- CLDR moved this to 31 / not an urgent issue at this point
- tzdata 2016g imminent (changes for Turkey, etc.) - Yoshito will take a look
- VS2015 / win32 / Release - test failure #12705 (Steven)
- uloc_tag.c, changed from /O2 to /Od (disable optimization) passed the test / not yet merged to trunk
- (Debug passes, Release fails)
- Steven will commit the fix (workaround) today
- Spoof checker update is in. (andy, shane)
- Withdraw - last week's discussion - Update to J DecimalFormatSymbols API change proposal (Yoshito)
- BidiTransform will be in today
- BRS 58
- API promotion - target - next Wed for review
- C - #12734 - Andy
- J - #12735 - Yoshito
- Incoming
2016/09/07
(Peter E will be out for this one)
- Zibi [Mozilla]- MessageFormat 2.0 (icu-core mail) (Steven)
- https://sourceforge.net/p/icu/mailman/message/35027629/
- Markus at a glance:
- Scope is much broader than MessageFormat
- Two quoting/continuation syntaxes (pipe & double quote), unclear how they interact
- Seems to allow text outside plural/gender selectors, like MessageFormat – this is hard on translators, recommend disallowing that; best to have whole sentences inside selected variants, no fixed pieces outside the selection. Some duplication of those “fixed pieces” is ok. (Translators don’t know how to move the boundaries.)
- Didn’t see how nested gender/plural selections are handled; recommend not truly nesting, but making single, multi-value selectors, each with whole sentence. Keeping all of the related variants together has been a good way to get consistent translations.
- Mark: Think about differences in data model between FLT & MessageFormat. There might be ways to extend the MessageFormat data model. Think of different ways of representing and compiling a “message”.
- CLDR Internals slides: goo.gl/5EiIwG (Mark)
- Goal is to make it easier for developers (not people) to on-board with CLDR — to help explain how it fits together. Main goal is not for consumers of CLDR (but some of the slides talk about that).
- Would like more ideas for new slides. So far from CLDR meeting:
- Slide for CLDR data to ICU - converter
- Seed vs Main vs Exemplars
- CldrFile filtering - provisional, unconfirmed, etc., picking “alt” values, merging files.
- Parth to produce outline of problem areas for learning CLDR, since he did recently.
- Explain George Bailey
- Other feedback?
- Locale data vs Supplemental data
- IUC slides due!
- Update to J DecimalFormatSymbols API change proposal (Yoshito)
- setDigitStrings(String[] digits) to throw IAE when each digit cannot be represented by a single Unicode code point (for now) - C implementation currently only looks at the very first code point.
- Agreed – document that the input is
- Exactly 10 strings
- Each contains exactly one code point.
- Code points need not be adjacent.
- Incoming
- Build (Steven)
- z/Linux online
- https://cldr-build.unicode.org/jenkins/ - please let Steven know if you don't have access and would like it
- Collaboration (Steven)
- slack? IRC? Hangouts? Others? Or just use the chat facility in the meeting minutes?
- Topic specific chats/rooms? (Less random)
- Perhaps as we get closer to release, real time collaboration might be useful.
- Release Status
- CLDR alpha soon
- Sep 14 - feature freeze
2016/08/31
- Zibi - MessageFormat 2.0 (icu-core mail) (Steven)
- Remove icule (layout engine, not iculx=ParagraphLayout) from 58? (Steven)
- deprecated since ICU 54, 2014 - http://site.icu-project.org/download/54
- Ok with: Google, Apple, IBM
- FYI: Oracle Java & OpenJDK have moved to HarfBuzz
- Agreed - remove it from 58.
- #10232 Cached decimal separator might not work (Yoshito)
- DigitList::getDouble() depends on strtod to get double value, but strtod uses system locale
- The current implementation detects decimal separator by sprintf(rep, "%+1.1f", 1.0), then check rep[2]. This value is set to gDecimal and cached permanently
- When system decimal separator is changed, DigitList::getDouble() won't work.
- Proposed solution - use strtod_l, which takes locale_t as an argument, not using system's global locale. - use "C" locale
- newlocale, freelocale (these are included in the latest POSIX specification) and strtod_l available on modern Linux, Mac OS X
- Windows - _create_locale() / _free_locale() / _strtod_l
- Others (?) - If a number represented by DigitList is not an integer number, ALWAYS detect system's decimal separator (20-30% slower than current)
- Whitelist platforms via #ifdef, use configure script for others.
- Agreed.
- ICU 58 API proposal status
- https://docs.google.com/document/d/1bRItQQkAxFvJj-wopQbpiPJ8ntin6FZDQfjekuwfEGM/edit#heading=h.2mu4bgjcen30 bidi
- Incoming
2016/08/24
- Reminder - Aug 31: feature freeze
- Markus: Tight for me...
- Agreed to push dates by two weeks, see top of this doc
- Emoji properties [Mark]
- We’re updating to Emoji v4.0. There are two closely connected issues: (a) the patch to StandardizedVariants for these, and (b) the future-proofing property ExtendedPictographic (formerly GAZ), for not breaking ZWJ sequences.
- Patch: do we want to patch ICU for (a), or do we want to advise all users to patch their own copies? I’m inclined to say that we should patch (and document that we’re patching), to maintain consistency with the 4.0 ZWJ sequences.
- ExtendedPictographic: do we want to incorporate this as a regular ICU property (not a UCD property, at least yet) or leave it as a hard-coded list? I’m inclined to think we could wait, but we should discuss.
- Markus: No new property in ICU 58. Andy: Use as hard-coded set in rules.
- Andy asks: Do the word break property values Emoji Base and Emoji Modifier need updating?
- Future-proofing emoji ZWJ sequences Andy to
- Check for latest GB11′, WB3c′, LB8a′
- Also fix segmentation properties that depend on the emoji properties.
- Diff Emoji: v4.0 - v3.0: [\u2640\u2642\u2695]
- Diff Emoji_Presentation: <none>
- Diff Emoji_Modifier_Base: v4.0 - v3.0: [\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC]
- VS2015 update (Steven, Shawn)
- http://bugs.icu-project.org/trac/build/testing-icu4c-win - new buildbot in azure (Win 10, 64 bit), and IBM (Win 10, 32 bit - sysxp = Pentium D)
- fine on non-win http://bugs.icu-project.org/trac/build/testing-icu4c
- lab3 is not on vs2015 (yet?)
- Passes on IBM internal build (different build system)
- Steven’s recommendation: should be able to merge this shortly
- - strange failure on sysxp which is a Pentium D running win 10
- Passes in 32 bit build mode on a 64 bit CPU
- Debug 32/64 bit builds crash in testing
- merge from trunk to branch?
- Steven/Shawn will merge the changes to trunk soon.
- Build update - Steven
- osuosl openpower access being setup as of yesterday .
- more intel capacity is 'months' away- [Linux build bots?]
- Possibly GCE? Azure?
- https://cldr-build.unicode.org/jenkins/ - please let Steven know if you don't have access and would like it
- old IBM Lab closure - thanksgiving-ish - should be able to get through ICU 58
- Solaris
- "swisdev" - build bots
- (Pavel Heimlich) read only access w/o CLA? - Agreed to allow the person to access sensitive tickets and security scan result before CLA is signed.
- ICU 58 API proposal status
- Incoming
2016/08/17
- Tweaking the ZWJ rules: https://goo.gl/cluFCn
- hardcoded property - update character break : #12664
- Andy has the implementation in branch - will merge the change for 58
- Svn repository reorganization (andy)
- Markus’s proposal – see the “Plan” section with what we agreed on
- Proposed Svn directory structure after initial move
- Keep initial move simple; move everything; defer additional clean-ups or adjustments until we are up and running with the new structure.
- Should we rename the new icu/ directories to be icu4c?
- Users move their own development branches if they want. For existing clients, use svn switch to move to new repository location.
- Build System changes?
- What else? Tools, scripts, public links, …
- On web pages, keep old instructions (for working with maintenance branches), add new ones on top.
- Make old directories read-only at some point?
- Agreed to do this just after ICU 58.
- FYI from Steven
- git mirror (FYI, Steven, offline)
- http://www.subgit.com granted a key for doing more transparent mirroring. Want to declare the git authors list "good enough" to move forward on
- Will refresh this after the svn reorg.
- build farm
- some bitten bots offline… will check tomorrow
- lab closure: thanksgiving. ( should be able to complete 58 using current system)
- machines wanted
- And a network place to put them???
- osuosl: intel/ppc systems should be up sometime soon
- ICU 58 API proposal status
- Visual Studio 2015?
- Shawn to write a note to icu-core list - Steven will respond later.
- Incoming
2016/08/10
- Spoof/Confusables: (Shane/Mark/Andy) Ticket #11800
The Whole Script confusable test of a single identifier has proven to be not useful, due to a high failure rate on common words. The test checks whether a given identifier has any confusable that is wholly in a different script. Mark suggested deprecating the test. No uses of the feature were found in Google’s internal code or in public GitHub projects.
Deprecating is awkward.
The design of the ICU Spoof API uses a set of flags to control what checks are performed. The same Whole Script flag enables both the single identifier check (there exists some whole script confusable) and the two identifier check (these two ids are whole script confusable). The two identifier test remains useful.
There is a constant, USPOOF_ALL_CHECKS, to enable all available checks. It includes the Whole Script check.
We could do a behavioral change, to not perform the problematic single identifier whole script test.
- Shane to write API proposal to explain -
- may deprecate something?
- explain the behavior changes expected with the internal change
- impacts to existing users
- Mark: The emoji v4.0 properties will be final in November, but many products will be implementing them ahead of time. Should we go ahead and implement the beta (public review) properties that we feel are solid? (All but perhaps the additional modifier bases?)
- draft emoji v4.0 properties will be posted for public review today/tomorrow
- Final approval in Nov UTC
- Could take latest “best guess” into ICU 58 - agreed - http://bugs.icu-project.org/trac/ticket/12669
- http://www.unicode.org/draft/Public/emoji/4.0/emoji-data.txt
- Tweaking the ZWJ rules: https://goo.gl/cluFCn - want to have Mark to discuss this - moved to next week.
- Incoming
2016/08/03
UTC - Mark, Peter and Steven
- Feature Freeze - Aug 31?
- No API changes beyond this point
- Final check in 1 week after?
- Ancient bugs regarding locale aliases (eg. iw/he): [Fredrik]
- http://bugs.icu-project.org/trac/ticket/8392
- http://bugs.icu-project.org/trac/ticket/9208
- http://bugs.icu-project.org/trac/ticket/9223
Fredrik will look into these and propose something
- Incoming
2016/07/27
- C++11 on AIX etc. (XL C/C++ compiler for IBM big-endian platforms)
- This compiler still only supports parts of C++11
- Experiments show that Unicode string literals and char16_t work
- Andy: Worth switching just for that
- Markus: ... and experiment with the rest
- Do change configure scripts to set C++11 as the compiler option, so that we can start using the supported features. Ticket #12643
- Calendar field overflow
- cal.set(HOUR, 1000) -> 1000*60*60*1000 = 3,600,000,000 (> 2,147,483,647)
- int computeMillisInDay()
- int computeZoneOffset(long millis, int millisInDay)
- Markus:
- Move the real implementation into a new long version.
- The new methods could be @internal if we don't actually want these to be public. We may make it private, not even protected
- In the base class, make the int version call the long version. Not that simple, because the method's return type need to be long. And for full compatibility, base class implementation must call int version..
- Other call sites: If the value fits into int, call the int version, otherwise call the long version. At this moment, these methods which causes int overflow are called from the base calendar class only.
- Concensus - do not introduce breaking change...
- CLDR/ICU joint call?
- Incoming
2016/07/20
- Require certain C++11 features in ICU 58 (Andy & Markus)
- http://en.cppreference.com/w/cpp/compiler_support
- See Andy’s email, even HP aCC supports all of the following since version A.06.28 (2014-mar)
- Unicode string literals & types
- “constexpr”
- Defaulted and deleted functions
- “explicit”
- Initializer lists
- “auto”
- “nullptr”
- “static_assert”
- Range-for loop
- Dynamic initialization and destruction with concurrency (magic statics)
- “noexcept”
- Maybe say that every C++11 feature is ok if every compiler except for “Digital Mars C++” (former Zortech C++/Symantec C++) supports it?
- Consensus for ICU implementation code.
- No consensus yet for requiring C++11 in public headers/for clients. Will ask around.
- TODO(Andy & Markus): Announce to icu-support & icu-design
- TODO(srl): Forward inside IBM
- If some build bots cannot be updated to C++11, then abandon them.
- FYI: Jeff found for Visual Studio that WCHAR/char16_t and L””/u”” are interchangeable without casting.
- ICU: combine icu, icu4j, tools, ... into one trunk (Markus)
- See section “Plan” from agreement June 1.
- Had email discussion this week.
- Still ok to proceed? – confirmed
- ICU 58 API proposal status
- ICU4C API: promote FieldPosition::DONT_CARE to stable. (andy)
- Build system status
- https://cldr-build.unicode.org/jenkins/ (requires login)
- Jenkins can be used for a new ICU build system
- Build servers can be added by others, need not be co-located
- Protocol:
- Jenkins can ssh into a server and issue commands
- JNLP via browser
- Script with commands
- TODO(srl): ICU-specific instructions for setup, what to install, how to register a build server
- Incoming
2016/07/13
- Minimum MSVC version for 58.1
- As minimum compiler level / C99 features: IBM - confirmation needed.
- IBM is OK.
- OSUOSL and build
- OSUOSL
- Request to use their resource for ICU project was accepted
- Intel and Power systems should be available
- Azure Windows VM setup (thanks!)
- Platforms in concern
- HP-UX
- The compiler may not support later C/C++ standards
- Solaris
- AIX
- Can we go up to C++11 on platforms we need to support? Via gcc or clang if not the “native” compiler?
- HP-UX would be the only platform not supporting latest standards – IBM team is also considering to stop supporting it..
- Question regarding codepage data: Does this come from CLDR at all? (seem not, just exists in ICU). [Jeff]
- ibm-* tables came from IBM Toronto [CDRA], converted into *.ucm format by ICU team.
- Others were gleaned from respective OSes via programs exercising their conversion APIs. (This was done mostly in 2000-2001.) Reason: Published tables were often incomplete (e.g., showed only round-trip conversions, no fallbacks) and/or not machine-readable.
- A few were based on certain standards, such as GB 18030.
- Plus occasional bug fixes.
- See also http://site.icu-project.org/charts/charset
- Incoming
2016/07/06
- icu-project.org admin (Markus, Michael)
- Minimum MSVC version for 58.1
- Apple? IBM? ..
- Already agreed to bump project files to 2015 (Shawn)
- Q is minimum of what we can require the compiler to be
- C99? 2015 for some things
- 2015 added support for Unicode string literals & char16_t
- https://msdn.microsoft.com/en-us/library/hh567368.aspx
- https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md “As of March 11, 2016 Chromium requires Visual Studio 2015 to build.”
- IBM to confirm by next week
- TZ data updates - stop publishing updates for older ICU versions?
- http://source.icu-project.org/repos/icu/data/trunk/tzdata/icunew/2016f/
- 5 versions
- 36 or older : zoneinfo (32bit) only
- 38 : zoneinfo (32bit) + metazoneInfo (metazone mapping) + supplementalData (zone-region mapping) + windowsZones
- 40: same as 38, but other parts of supplementalData are different from 38
- 42: same as 38, …
- 44 or newer: zoneinfo64 + metaZones + timezoneTypes + windowsZones
- Not tested for these variations..
- 3.6: Sep 2006 / 3.8: Sep 2007 / 4.0: Jul 2008 / 4.2: May 2009 / 4.4: Mar 2010
- Agreed - drop 4.2 or older files
- Unicode copyright year?
- // © 2016 and later: Unicode, Inc. and others.
- Should we use the year when the new source file is added? In other words, if we add a new source file in year 2017, should it be “// © 2017 and later: Unicode, Inc. and others.”?
- Yes
- Do not update the year in older files. No explicit year range.
- Generated files, like API change report, it would make sense to just have the year. I just ran into this (andy). Perhaps change scanner to accept just the year.
- Can generate as ©2016-{current} (Steven)
- Markus: We should use the agreed copyright lines. No need for {current}. Just generate each file with its appropriate first-in-Unicode year.
- #define U_COPYRIGHT_STRING → “© 2016 and later: Unicode, Inc. and others. © 1997-2016 International Business Machines Corporation and others. All Rights Reserved.” (and don’t ever change the Unicode year from 2016) (Steven’s proposal?)
- Files generated from CLDR: Probably ok to only have Unicode copyright (always 2016 and later), drop IBM copyright.
- (Otherwise we would have to track which file was first created when.)
- Otherwise try to retain copyright headers that are now there. Usually needs a static string per file.
- Add JUnit binaries to the svn ignore list?
- lib/JUnitParams-1.0.5.jar
- lib/JUnitParams-1.0.5-javadoc.jar
- lib/JUnitParams-1.0.5-sources.jar
- lib/hamcrest-core-1.3.jar
- lib/junit-4.12.jar
- lib/junit-4.12-javadoc.jar
- lib/junit-4.12-sources.jar
- Yoshito will add lib/*.jar in svn ignore list (will file a ticket)
- ICU 58 API proposal status
- Incoming
2016/06/29
- 58m1
- Trunk changes / not under review
- Code review (past due)
- BRS
- ICU4J JaCoCo coverage target was not migrated to JUnit - updated yesterday. There are many coverage differences since JUnit migration
- ICU4J clover coverage target is not yet migrated to JUnit - we use JaCoCo these days - propose to deprecate (#12612)
- Build System
- Test machine for ICU4J running with JUnit 4.10 and a modified JUnitParams
- CLDR status
- ICU 58 API proposal status
- Incoming
2016/06/22
- Michael
- Last day @ IBM - July 7
- Administrative tasks
- Icu-project.org - all remote
- Short short term - Steven to fill in
- Svn
- ICU trac
- Help with admin? —
- Peter - will check with management
- Ron - (will manage on Microsoft side)
- After july 4th - will check with Markus
- Thanks
- Build System (Steven)
- Current:
- Public facing - bugs.icu-procect.org/trac/build
- Build servers -- all IBM, mostly internal
- IBM HW lab going away Jan 2017
- IBM internal - build system,
- Ibm internal server, ibm internal buildbots
- • actual ICU4C releases happen here •
- (ICU4J releases happen at Yoshito’s house)
- No visibility for debug, restarting, etc…
- No way for anyone to ‘build on demand’ - besides IBM internal system
- Proposal
- Jenkins - build server “cldr-build” - hosted by Microsoft Azure
- Builds on demand… specific branches…
- Release process could happen here —
- Actual build hardware:
- Could use current IBM h/w for now
- Could use any cloud resources
- Unicode (fast) mac
- http://osuosl.org - public access hardware (IBM power, intel linux)
- Ron has contact
- Windows VMs on Azure
- Distributed admin -
- Can post status to trac
- Timeline
- Can post on tickets w/ pass/fail status (i think)
- Security - need to monitor carefully
- Timeline?
- Switch over post 58?
- Next step - Steven to create a Google doc to discuss.
- Unicode transition - list of tasks
- ICU license file - LICENSE
- move the very first section - “ICU License - ICU 1.8.1 and later” to the very end, next to Third-Party Software License section.
- Remove “1. Unicode Data Files and Software” license from “Third-Party Software License” section
- Insert the latest Unicode Data Files and Software license to the beginning of the file
- ICU 58m1
- Tag only
- J copyright - Michael plan to do this by the end of this week
- CLDR import - peter to take a look, do by eod June 28 (trunk, not new ST data)
- Schedule
- Regular feature/bug fix work check-ins by June 24 (Fri)
- Code review done by - June 28 (Tue)
- Last check in - June 30 (Thu)
- Tag M1 - July 1 (Fri)
- BRS
- Build Status
- ICU4C trunk build on Linux system?
- Michael to take a look - ../../test/testdata/testtypes.txt:38: couldn't open input file riwords.txt
- Needs an odd number of BOMs
- May be good to have a buildbot with euc-jp or something as default codepage?
- ICU4C trunk memory leak
- CalendarData and some others - andy to look into this
- ICU4J trunk coverage - has been failing because of private enum coverage
- Yoshito has a ticket to exclude these enum / constructor of static method only class from coverage check, but not yet done - for M1, I’ll update the exception list to include these ‘known’ code not included in coverage
- ICU 58 API proposal status
- Eric Mader @ server?
- Needs CLA signed
- Incoming
2016/06/15
- Unicode transition - list of tasks
- Tzdata2016e
- Committed to data/icu4c/icu4j under #12415
- No metazone mapping update by 2016e
- #12592 tz2icu.cpp imposes a limit of 2050 on timezone transitions
- JUnit - Stuart’s doc
- Eclipse dev env setup (current, might be updated later) - short summary below:
- Run “ant init”
- Import “external-libraries” project under <icu4j-root>/lib in addition to ICU4J library/test projects
- “Icu4j-testall” project is no longer available
- A few issues that should be fixed soon
- “ant check” still returns BUILD SUCCESS even some tests are failing (transliterator test case is failing in trunk at this moment)
- Logln is disabled. It’s difficult to debug test failure.
- ICU 58 API proposal status
- Plan/schedule for updating to Visual Studio 2015?
- File a new ticket
- Create SVN branch / make the change there
- Merge them to trunk once we confirm it does not break anything.
- Use of “Universal API” [sp?] - Shawn
- Currently Subprojects w/ build
- Steven - enumerate different configurations? Shawn - that was tricky…
- * this will be a separate ticket
- Ratio symbol (x0∶x0) (U+2236) vs. ASCII colon (U+003A) (x0:x0) for time formats?
- 1∶20 vs 1:20
- Visual distinction - baseline, etc
- CLDR?
- Ron to file ticket? Please mention CLDR ticket 5877
- Add to Equivalence group?
- http://unicode.org/cldr/trac/ticket/5877 - “data for parsing equivalency”
- Vs minus sign - ASCII preferred
- Status of CLDR time-separator symbol - http://unicode.org/cldr/trac/ticket/9411 etc
- 58M1
- July 1 ( Friday before US July 4th Holiday)
- Will start BRS on June 22 (next Wed)
- Tag-only release
- Incoming
2016/06/08
(Peter E away for this meeting)
- Unicode transition - list of tasks
- ICU4C copyright comment
- Ready to work on ICU4J copyright comment at this point? Yes -> michael
- Committer spreadsheet https://docs.google.com/spreadsheets/d/1XM1gO5ZwKhODHuxEWVkvqHggYKfuOLJbg98vT5zEEMg/edit#gid=0
- Can compare https://github.com/icu-project/icu-git/blob/master/scripts/authors.txt
- Steven will lock SVN accounts not covered by Unicode CLA - on Thu/Fri
- Reminder - Git public email address - please put your own email in https://docs.google.com/spreadsheets/d/1MJUcNha_WHn7MUlrUlgnvreMp5D3YdQZo998XNuvKgo/edit#gid=1311777886 if it’s OK to use it for git mirrors.
- CLA assistant - https://cla-assistant.io/icu-project/icu4c - or https://goo.gl/zWGZtD
- Lawyer suggested this text for Trac:
- Please do not submit code or data without first agreeing to the terms and conditions at [link] and [emailing a digital copy to email alias or going through eventual e-signing flow].
- Steven draft:
Please sign the Unicode CLA for your patch: Either (1) sign at https://cla-assistant.io/icu-project/icu4c and give us your GitHub ID here or (2) follow the instructions at https://goo.gl/zWGZtD and note when you have sent in the scanned CLA. Unicode License: http://www.unicode.org/copyright.html#License - Markus merging the two above:
Please do not submit code or data without first agreeing to the terms and conditions in the Unicode License: http://www.unicode.org/copyright.html#License and either (1) signing at https://cla-assistant.io/icu-project/icu4c with your GitHub ID (note your ID here) or (2) following the instructions at the bottom of https://goo.gl/zWGZtD and note in this ticket when you have sent in the scanned CLA. ( Done )
- JUnit, see Stuart’s doc
- Merged into trunk, immediate issues getting resolved, more tasks TBD
- Incoming
2016/06/01
- ICU: combine icu, icu4j, tools, ... into one trunk (Markus)
- related/FYI: Git mirror updated- now has releases (tags)… possible successful ‘update’ (moving the mirror forward without restarting from scratch)
- https://github.com/icu-project/icu4c
- https://github.com/icu-project/icu4j
- Unicode transition - list of tasks
- ICU4C copyright comments - #12564, reverted once / Once Michael is back from vacation, do it again (prepending Unicode copyright, instead of replacing - also clean up trailing white space chars)
- Need to get CLA/Trac site going. Tagging tickets with keyword ‘cla’ for now.
- API proposals (design list mails not going through)
- Yoshito has a proposal for ICU4J DecimalSymbols strings, Peter to review for next week
- Incoming
- Peter to investigate and comment #12530 (should currency be included?)
- JUnit (Stuart)
- http://bugs.icu-project.org/trac/ticket/10152
- Not yet merged? - hope to finish today.
- Changing as little as possible
- Todo: guides of how to write new tests
- Want to test with JUnit 4.10 also… need to get Ivy to not update - Yoshito - maybe just allowing the build script to override IVY_HOME
2016/05/25
Googlers unable to attend
- Scott’s goodbye
- Unicode transition - list of tasks
- Committers Spreadsheet: https://docs.google.com/spreadsheets/d/1XM1gO5ZwKhODHuxEWVkvqHggYKfuOLJbg98vT5zEEMg/edit#gid=0 - sent out to icu-core
- (new task: remove anyone not on this list from ‘src’ group.)
- J ‘char’ symbols to String
- Decimal digit, separators, plus/minus, percent
- Compatibility issue
- Need to keep getter returning char - getPercent()
- If not char -
- Throwing UnsupportedOperationException ?
- Default symbol - e.g. ‘%’ for Percent, ‘+’ for plus, ‘-’ for minus?
- Special case: If it’s just char + bidi marks, then strip off the marks
- Incoming
- Check in process (Shawn)
- http://site.icu-project.org/processes
- http://site.icu-project.org/processes/ticket-lifecycle
- http://site.icu-project.org/repository/tips#TOC-Merging-and-Branching
- For non-trivial commits, better to use a feature branch
- ticket:####: <description>
< can be multiple lines…>
- Added some comment on branching: https://sites.google.com/site/icusite/processes/ticket-lifecycle?pli=1#TOC-Coding (Steven)
2016/05/18
- ICU/Unicode (w/ Rick)
- Finalized wording of announcement - after this meeting, will be posted to Unicode blog / sending out announcement by Rick, along with
- Unicode copyright page
- CLA form
- Review the list of tasks for transfer. - announce today ~2pm pacific time
- Update to the “News” part at the top of icu-project.org (Steven)
- 2016-05-18: The Unicode® Consortium has announced that it will host development of the ICU libraries. The ICU Project Management Committee is now a Unicode Technical Committee, the ICU-TC. ICU will continue to be released under a similar open source license. For more details, see the Unicode announcement.
- In draft, ready to post.
- JUnit for ICU4J
- list of open items
- which need done before integration and which can be tasks for afterwards?
- needed to modify JUnitParams to run on JUnit 4.10
- where should the project for the modified JUnitParams live?
- Target: June 1
- Start continuous build with the branch
- Incoming
- Peter to investigate and comment #12530 (should currency be included?)
2016/05/11
- UTC meeting; people who cannot call into ICU meeting as a result: Peter, Steven?, Mark?
- J Coverage check - latest
- Exclude compiler generated code
- Enum - valueOf/values
- Markus (ideas copied from email discussion): Hm, compiler-auto-provided methods...
- These are private enums, so unreachable.
- We could make them reachable just to call implicit methods for coverage. This seems bad.
- We could cover them by adding a test-only method to the public outer class, only to call the private methods for coverage. This seems bad too. I don't want more @internal members of public classes if we can help it.
- We could cover them by using reflection to circumvent their private-ness, as suggested for constructors on http://site.icu-project.org/processes/coverage Advantage: They would actually be covered, without adding weird stuff to the class.
- We could add them to the exclusion list. Easy but feels a little like cheating.
- Constructor of static utility class
- Yoshito will try to detect such cases and exclude them via tool code
- JUnit migration
- Stuart, Markus and Yoshito will discuss compatibility issues / migration issues in a separate meeting scheduled this week or next week.
- Incoming
2016/05/04
- ICU/Unicode
- We have list of tasks for transfer. See ICU Project > ICU-TC.
- Caching issue
- Mark: Guava has a lot of very well-tested and high-performance caching libraries (as well as a lot of other useful stuff). Might be time to use it.
- License? [Apache] Jar vs. source? Limited to Java 6?
- Not adding Guava dependency now.
- Use of SoftReference for cache
- http://developer.android.com/reference/java/lang/ref/SoftReference.html - Avoid Soft References for Caching
- Strategy for clearing SoftRefefence in hotspot [http://jeremymanson.blogspot.com/2009/07/how-hotspot-decides-to-clear_07.html]
- ICU4J to use SoftCache by default, but allow user to replace cache implementation if necessary?
- E.g. com.ibm.icu.text.DateFormat.CACHE = com.acme.ICUCustomCacheImpl in ICUConfig.properties
- At runtime, reflection to resolve cache implementation class, but if it’s not available, fallback to the stock ICU implementation
- Markus: Short-term, switch some uses of SimpleCache (SoftRef to Map of direct values) to SoftCache (direct Map to SoftRef values) - Agreed
- ICU4J Test breakage
- http://bugs.icu-project.org/trac/ticket/12513
- Markus will work on this with Yoshito, Mark
- Minimum Windows version support in ICU 58
- Apple: only needs to support Win 7 (server 2008) and later
- QT: already dropped XP and Vista before previous LTS
- Mozilla: would like to stop supporting XP
- Consensus. - drop XP (no mention of Vista) -
- From: srl
Thank you Jonathan, John, and Roger for replying.
The ICU PMC has discussed this, taking into account your replies.
At this point we are planning to drop support for Windows XP in ICU 58.
Regards,
Steven for the ICU PMC
- Incoming
2016/04/27
- ICU/Unicode
- All attorneys from 4 companies (Apple, Google, Microsoft and IBM) and developers agreed on the Unicode CLA proposal
- No distinction between one time and on-going contribution.
- Once a company signs the CLA, no need to add a new developer’s name in future.
- Heads up - We cannot accept a patch from posted in an ICU ticket unless the author already signed the CLA.
- We plan to add a warning note in ICU trac form - a patch from someone who does not have a CLA signed cannot be accepted/must be ignored.
- But that does not mean we cannot fix the bug even if the submitter does not sign the CLA, right? We just have to come up with our own fix.
- CLA digital signature service
- Example:- https://www.elastic.co/contributor-agreement/ - seems to use Adobe Sign https://acrobat.adobe.com/us/en/sign.html
- Example: Google Closure project: https://github.com/google/closure-library/pull/641
- Action items:
- Warning text in ticket / link to CLA form
- Searchable CLA signee list maintained somewhere
- Electronic sign / online CLA form (long term)
- Next actions
- All 4 companies to sign the new CLA for future contributions
- IBM to send the letter to Unicode consortium / announcement
- ICU 58 API proposal status
- Incoming
2016/04/20
- ICU/Unicode
- A meeting for resolving remaining issues in the proposed Unicode CLA by attorneys and developers from 4 companies is scheduled tomorrow - 3pm ET/12pm PT tomorrow (ICU conf#)
- 58 schedule
- CLDR
- Release 30: Sep 15 [http://cldr.unicode.org/index#TOC-General-Schedule-]
- CLDR does not try to align milestones on Wednesday
- Schedule may become less of a specific commitment
- Should we come up with ‘general schedule’ like CLDR? E.g. Agreed
- ICU Fall release
- Release: Oct 1
- RC: Sep 15
- Feature Freeze: Sep 1
- Milestone: Jul 1
- ICU Spring release
- Release: Apr 1
- RC: Mar 15
- Feature Freeze: Mar 1
- Milestone: Jan 15
- RuleBasedBreakIterator, confirm that we really want to make it final. Mail on design list. #12071 (andy)
- Agreed not to make it final.
- Downlevel Windows support. Can we move to Win7? (ron)
- Win 7 as min supported version is OK with Apple
- Action - follow up the message thread with Mozilla guys, explaining the adavantage of newer Windows platforms (non-LCID based locale support) - no support for Windows XP / 2003 server or older Windows revisions.
- Ticket to update the ICU LCID list.
- ICU 58 API proposal status
- Incoming
2016/04/13
- utrans_openU performance, more details in #12380-comment:3 [Peter]
- uhash/Hashtable enhancements
- Any objection to adding uhash_initSize and Hashtable constructor that takes initial size? Agreed.
- Any objection to allowing smaller minimum sizes (e.g. 7 instead of 13)? No objections - need a little bit more investigation
- Markus: There might be other possibilities, too. Maybe make a single hashtable with concatenated keys (with a separator)? Maybe try to not store any UVectors if there are only 1 or 2 items? For Maps with very few keys, maybe use a simpler structure with linear search? If we know the exact size of the table, then maybe make a hash table or other Map of exactly that size? Rather than use a bit map, use an array of 16-bit ints, with the length at index 0; or an index into a UnicodeString that stores all of them.
- Can we limit the number of supported variants (currently 11)? Enables use of bitmaps.
- Mark: We could allow 32 for now, and pump it up if the number from CLDR gets over say 16. (If we go for a flat list, we don’t need this limitation.)
- Markus: The limit can be in the thousands if we store short lists of small integers.
- Can reduce registry memory allocation by 65% with minor changes
- Investigation using MallocStackLogging & malloc_history
- Hash table mapping script codes to something → change to use a simple array
- Nuke the specDAG registry, get info from the main registry
- ICU 58 API proposal status
- Mark: comments on BIDI:
- Use standard terms from the BIDI algorithm; “Arabic-European numerals” don’t make sense.
- Descriptions like “Constant indicating Arabic letters are in shaped form” are also strange. It appears that these are actually goals. That is, Arabic letters are to be transformed to shaped form. But I’m guessing.
- Remove ICU4J ‘old’ module build targets?
- ICU User guide: Packaging ICU4J
- Yoshito to send proposal to icu-design about removing module build & test targets
- ICU licence, letter, CLA progress
- Markus will propose a modified CLA, incorporating discussion since the current draft was circulated.
- To be reviewed by contributor counsel
- Then to be sent to Unicode counsel
- PR - proposal sent by Steven to Mark (Mark: my phone cut out)
- Current CLA
- Microsoft signed last week - ssh / icu-core added
- Q: apple ongoing CLA? http://bugs.icu-project.org/trac/browser/icuhtml/trunk/legal
- http://source.icu-project.org/repos/icu/icuhtml/trunk/legal/contributions/
- Example, consolidated list of Google Authors
- Incoming
Example of module build
<target name="breakIterator" depends="_copyFullPropsData" description="Modular build of break iterator services">
<mkdir dir="${module.bin.dir}"/>
<javac srcdir="${icu4j.core.dir}/src"
destdir="${module.bin.dir}"
source="${javac.source}"
target="${javac.target}"
encoding="${java.src.encoding}"
debug="on" deprecation="off">
<include name="com/ibm/icu/impl/UCharacterName.java"/>
<include name="com/ibm/icu/impl/data/*Break*.java"/>
<include name="com/ibm/icu/lang/**/*.java"/>
<include name="com/ibm/icu/text/*BreakIterator*.java"/>
<include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
</javac>
</target>
// For building icu4j.jar including BreakIterator class and its dependencies
$ ant breakIterator moduleJar
// Testing BreakIterator functions with the module (subset) jar
$ ant breakIteratorTests moduleCheck
2016/04/06
- utrans_openU performance, more details in #12380-comment:2 [Peter]
- Discussion. Code has not seen much development or optimization in a long time.
- Peter to investigate further.
- ICU/Unicode progress
- Letter is ready for review by Mark/Unicode
- Steven will send other updates along with the letter.
- CLA - expected minor updates
- The Unicode license is not exactly the same as the MIT license
- Steven is working on ‘wording’ for publicity
- When/Who work on copyright updates?
- After letter is accepted / CLA signed
- ICU 58 Schedule - any inputs?
- Expected end of Sep / beginning of Oct
- Google does not need to push the schedule earlier any more
- Microsoft is fine with the schedule
- Apple - fall release has no schedule impacts
- Tentative release date: Sep 28
- ICU 58 milestone
- Tag only?
- CompactDecimalFormat (Java)
- Negative numbers - throwing UnsupportedOperationException #12447
- Arabic locale - stop working #12449
- Fomat - thread safety issue
- Stuart to take a look to find out what to do.
- Incoming
- Locale bugs -> tickets are gathered in a Google Doc - ICU Locale Issues
2016/03/30
- Microsoft
- Welcome: Ron Ruzicka, Axel Andrejs
- ICU 57
- BRS (post-release check & cleanup)
- Difference between data generated from CLDR tag icu-57-1 and data that is in ICU 57.1, in the locale validity stuff. Andy filed #12442 to investigate this.
- ICU4J test coverage (Markus)
- Short-term: Working on recent tickets with "coverage" keyword
- branch for now, want to merge into trunk
- Longer-term: Want every ICU4J library code method covered. Add tests, or remove from library, etc.
- See email “ICU4J method coverage” from Yoshito mar17 about ant coverageJaCoCo failing with not-covered methods.
- (Yoshito) We may add ‘exception’ to let the coverage check pass - so we can detect new code without test coverage.
- Priority on public not-deprecated methods and their direct implementation/override methods
- Next: Implementation methods called by those
- Last: Deprecated methods
- Easy: Download the report_html.zip from the "ICU4J trunk coverage" build bot, unzip, and open its index.html file. Look for the Total Missed Methods.
- Like Yoshito did: http://icu-project.org/~yoshito/jacoco_57.1/#dn-j shows 11% of methods not covered: 1,116 out of 9,929
- Q: JaCoCo reports non-existent constructors in static-only classes as not covered. What to do? (e.g., CollationLoader.ASCII) Test via reflection?
- IUC 40 abstracts due apr04 (see also IUC 40 section above): ICUers IUC 40 doc
- ICU at Unicode: Summary of CLA changes/discussion
- IBM to Unicode letter - should be finalized soon (IBM giving feedback)
- Changes to license needs to be resolved
- CLA - Lawyers to discuss
- JUnit jars: in repository, or use ivy? For ivy, puts its jar into repository? (Stuart)
- Yoshito: Suggested changes automatically bring down ivy.
- FYI: https://www.youtube.com/watch?v=CfZE56E0Uts
- Incoming (48 bugs, please reserve some time to look at)
2016/03/23
- Remaining ICU 57 release items?
- BRS
- Tags in CLDR: http://unicode.org/cldr/trac/browser/tags/
- icu-#-#-# ( Other forms: tag-for-icu4j-#, icu#milestone, icu#_###)
- icu-57-1
- Tags are only there for exceptions. CLDR GA tag is normally used for ICU
- moving LDML2ICU out of CLDR could help, but is problematic due to dependency on CLDR code
- Announcement
- Download page - change from candidate
- Pending user guide updates
- #12417
- Others?
- ICU4J API coverage strategy (Yoshito)
- ICU 57.1 coverage: http://icu-project.org/~yoshito/jacoco_57.1/
- Missed method counts
- com.ibm.icu.charset: 12
- com.ibm.icu.lang: 23
- com.ibm.icu.text: 440
- com.ibm.icu.util: 97
- We probably need 100% ICU4J method coverage, including impl classes/methods.
- Add coverage tests, or remove from library, etc.
- ICU at Unicode: Summary of CLA changes/discussion
- IBM legal waiting for Unicode approval of assignment letter, but that is blocked on agreement on Unicode license
- Steven/Yoshito set up a call inviting lawyers from 3 companies - conclude license term / CLA this week (hopefully)
- Write and run script to change copyrights
- Prepare announcement text for Unicode, IBM (Steven)
- Onboarding new contributors (Steven)
- Easiest to have full participation after transfer to Unicode.
- Ok to invite future contributors to weekly meetings ahead of CLA
- First step
- Invite MS folks to this call (done)
- Set up access to this agenda doc (it’s public- can add people for edit as needed)
- Incoming (currently 39, please reserve some time to go through)
2016/03/16
- ICU 57
- Proposed fixes before 57 GA
- #12372 new MeasureFormat fails for nb, sv (and nn) → Peter DONE, Markus review
- CLDR#9324 durationUnit alt values cause bad LDML2ICUConverter output - will be done after CLDR release 29 tag, but will be merged into CLDR 29 maintenance branch
- Will change ICU data, and then CLDR will be changed to output equivalent data.
- #12373 $GAZ definition rather wrong in char.txt → Andy DONE, Peter review DONE
- #12380 Big performance regression opening transforms in ICU57rc
- No fix for 57
- Peter: Add a note in 57 download page DONE
- #11962 ICU time zone data updates - ICU 57 → Yoshito\
- Tzdata2016b DONE
- maybe tzdata2016c is coming soon
- BRS
- 57 download page
- ICU / Unicode
- Lawyers are discussing...
- Steven to check the latest status / what’s next.
- ICU4J API coverage from test suite
- Do we have a page with instructions?
- Clover?
- "ICU4J trunk coverage" build bot – parse generated report.xml or report_html.zip file, compare with the ICU API signature file? (API signature files are at icu4j/trunk/tools/build – files like icu4j57.api3.gz)
- Incoming
2016/03/09
- ICU 57 RC
- ICU4J tagged, binaries uploaded
- ICU4C will be tagged soon.
- Reviews
- BRS
- 57 download page
- Known issues
- ICU4J CollationKey breakage on IBM Java 8 (actually, reproduced with 53.1 and newer)
- Incoming
2016/03/02
- ICU 57
- coming milestone dates:
- 2016-03-04 (Fri): Final check-in (response to code review, except some BRS items); final CLDR integration done
- 2016-03-09 (Wed): ICU 57 RC
- Reviews
- Tickets with code changes, not in review state
- ICU4C test failures? - build status
- mac build issue -> environment problem? Mac/ibm-moonlight
- memory leak -> Michael is working on this, Markus still reviewing kazède’s DTPG changes
- BRS
- Heads-up: break iterator data size growth for Emoji (andy) from 4.07 MB to 4.4 MB for all. Individual Line Break data files go from 120k to 156k. Similar across all seven tailorings. Also, Finnish LB tailorings problematic, but not a new problem.
- Build failure on Macs
#ifndef __has_cpp_attribute // Optional of course.
#define __has_cpp_attribute(x) 0 // Compatibility with non-clang compilers.
#endif
(this was done, see platform.h line 435)
see http://clang.llvm.org/docs/LanguageExtensions.html
→ Peter/Andy/Markus/Michael to figure out – done
- API status promotion for 57
- ICU4C
- ICU4J
- time separator APIs marked as @internal, don’t clobber in branch integration
- agreed.
- BRS additions proposed (Markus)
- switch-case fall-through: check that all intended fall-throughs are annotated, see http://bugs.icu-project.org/trac/ticket/12166
- Mark suggests adding this to the build bot configurations - covered by (ii) below
- Andy suggests having the configure script add this automatically for clang - agreed - http://bugs.icu-project.org/trac/ticket/12330 (no need to add to BRS)
- exclude the layout engine code & tests
- every header file should include all other headers if it depends on definitions from them; check internal header files: http://bugs.icu-project.org/trac/ticket/12141 - agreed – added to BRS (template & 57)
- More day period nonsense: (kazède)
- what to do with “midnight = 0:00”
- For now in ICU 57, suppress output of “0:00 midnight”, fall back to 0:00 am or 0:00 at night etc.
- Consensus
- kazède to submit CLDR ticket about this.
- Mark suggests possible future ICU API to request midnight yes/no – Mark to submit ICU ticket.
- day period on its own point to the center of that period, but which day?
- example: in en, NIGHT1 is [21:00, 6:00), so midpoint is 1:30am. Should “Nov 13 at night” parse to 1:30am on Nov 13 or 14?
- should “am” and “pm” parse to 6am / 6pm respectively on its own, when no hour is provided, like flexible day periods do?
- kazède to submit CLDR ticket about b & c.
- ICU/Unicode status (Steven)
- Legal review in progress…
- spam (Steven)
- Any volunteers to update http://bugs.icu-project.org/trac/wiki/BadContent ?
- API-based services are being used as of today - http://stopforumspam.com and http://botscout.com
- (Defensio went down, and BlogSpam changed their API format)
- All inbound spam deleted (thanks to whomever helped)
- Review Unicode break tests
- Incoming (28 non-spam bugs, 78 spam bugs)
2016/02/24
- Reminder: 2016-02-28 (Sun): Final check-in for features/regular bug fixes (Feature Freeze)
- Emoji break iteration, #12081, implementation of Fixing breaking properties for emoji .
The ticket is targeted for ICU 57. It’s taking more time than I originally expected. ICU4C should make the 2/28 check in deadline, but the ICU4J port most likely will not.
Possible choices:
- take it into ICU4J after the deadline - PMC agreed to do this - thanks Andy!
- bump it out of ICU 57.
- take it into ICU4C only.
- ICU to Unicode
- ICU license agreement letter draft was sent to Unicode Consortium, along with draft CLA form - waiting for consortium’s legal team’s review
- √ Sent to Mark, Markus, Peter as FYI. (Steven)
- 57 BRS assignment
- ICU 57 API proposal status
- Incoming Please leave a lot of time for this, many old ones to go through
2016/02/17
- ICU->Unicode
- IP agreement on Unicode should be refined?
- http://www.unicode.org/policies/ipr_policy.html
- Licensing changes related to Unicode migration after ICU 57? -> tentatively agreed.
- Basically, need CLA that all 3 companies can agree to, as well as a copyright policy.
- Markus driving on Google side
- Peter for Apple
- Steven for IBM
- Expected documents for review to be available tonight. Includes a draft CLA akin to the current CLA. (So that would constitute something IBM could agree to) (Steven)
- Choices for @Discouraged [Scott]
- JEP 277 http://openjdk.java.net/jeps/277 - proposes CONDEMNED, DANGEROUS, etc.
- Action: add comments to Scott’s document, will review next week.
- Incoming (many tickets are waiting for initial scan…)
- Make sure to read ticket comments, not just the initial descriptions.
2016/02/10
- ICU 57m1
- tagged
- Reviews
- BRS
- RC/GA 57 dates
- See above
- ICU move to Unicode status (license etc.)
- next update expected next week - still in review. steven
- need to figure out how unicode will handle incoming changes
- New CLA/JCA?
- Apple had a ‘custom’ agreement
- From feb 3: (Steven)
- (FYI: new IBM OSS projects use a process such as this: CONTRIBUTING.md [similar to ICU’s, maybe updated wording])
- (Node.js: Did away with CLA, went with a “shrinkwrap” agreement: CONTRIBUTING.md)
- Action item - take this offline, do homework
- Updates from UTC meeting? [Peter]
- Text break updates for emoji (Unicode 9.0): New properties for Grapheme, Word, Line break; new rules for each
- New rules implementation in progress (andy) – using UnicodeSet ranges in break rules, not yet new Unicode property values
- Treatment of ZWJ is ugly in ICU break rules. Sometimes combining, sometimes not.
- Others?
- Choices for @Discouraged [Scott]
- JEP 277 http://openjdk.java.net/jeps/277 - proposes CONDEMNED, DANGEROUS, etc.
- Action: add comments to Scott’s document, will review next week.
- JUnit for ICU - current status and questions (Stuart)
- JUnitParams - Apache 2.0 license, makes parameterized unit tests cleaner and easier
- We could depend on JUnit & JUnitParams by
- Including .jar files in the repository
- Use Maven
- Prerequisite: Tell users they have to separately download & install ant, JUnit, JUnitParams, ...
- ICU 57 API proposal status
- Erase trailing whitespace (kazède)
- Eclipse project settings -- turn on “erase on save”? – agreed
- Yoshito: Also turn on “organize imports on save” – agreed
- Not everyone uses Eclipse, but can set defaults in text editors (e.g. BBEdit) to strip trailing whitespace
- Same requirement for icu4c? – agreed
- Repo-wide clean-up? Could go together with Unicode copyright changes.
- Needs to wait until the move to Unicode is actually being done.
- +enforcement on checkin, like copyright date check now?
- C++ UTF-16 string literals, have compilers progressed enough for us to use them? (Andy & Markus)
Microsoft finally has them (and has always had 16-bit WCHAR string literals): https://msdn.microsoft.com/en-us/library/69ze775t(v=vs.140).aspx
Feature comparison chart: http://en.cppreference.com/w/cpp/compiler_support
- IBM to collect a list of compilers / support level requirements
- Incoming
2016/02/03
- ICU move to Unicode status (license etc.)
- The Unicode board of directors approved the move of ICU to a Unicode Technical Committee.
- What happens with the Joint Copyright Assignments? [Peter]
- Existing IBM JCA: stays put
- New terms of contributions with Unicode?
- New JCA?
- (FYI: new IBM OSS projects use a process such as this: CONTRIBUTING.md [similar to ICU’s, maybe updated wording])
- (Node.js: Did away with CLA, went with a “shrinkwrap” agreement: CONTRIBUTING.md )
- Future Copyright Statement “text at top of file” (sent around by email)
- Google: OK? [ looks fine ]
- Apple: OK? [yes ]
- ICU 57m1 status
- CLDR 29 integration status - see below (copied from CLDR agenda this morning)
- #9237 Fix uncommented text in Latin-Conjoining Jamo : Mark committed the fix last night
- #9163 Remove non-functional ASCII-Latin transform : caused ICU test failure - needs ICU test case updated???
- revert the change made by #9163
- no ICU test case change
- ICU transliterator does not have implementation for parsing -t- transform ID / Steven committed a quick patch to ICU : ICU bug #12077 - (not assigned).
- Territory containment - SS -> 014 : ICU test case needs to be updated.
- We think translit problems have been fixed - John will proceed with integration activities.
- Reviews - 0 as or now
- Tickets with code changes, not in review status
- BRS
- to do for m1: urename.h update, CLDR 29 preintegration, ...
- Handling new locale key “rg”, #12085 [Peter]
- Already implemented in branch; roll in post-m1? – yes
- Mark: would like to see rgScope added (cldr-dev email) - add for documentation use (maybe tests), not implementation
- use all lowercase in documentation
- Incoming
- spam - anyone want to help add regexes? http://bugs.icu-project.org/trac/wiki/BadContent (Steven)
2016/01/27 - canceled
- At UTC: Steven, Mark, Peter
2016/01/20
- Jan 30 - 57M1 tag
- light weight BRS - checking health?
- John said he would start CLDR-to-ICU integration soon
- Regular check in - Jan 27 (Wed)
- Thu/Fri.. til Feb 3 (Wed)
- Finish all pending reviews
- subset of BRS - yoshito will create BRS worksheet
- ICU/Unicode (Steven)
- Jan 29 Unicode BoD meeting
- ICU git mirror
- https://github.com/icu-project
- authors: https://github.com/icu-project/icu-git/blob/master/scripts/authors.txt
- Use git for main repo? A lot of work to switch workflow, bug tracking, and especially cross-links between tickets and changesets. Not for now.
- Preliminary discussion on mapping usage to units (in API proposal status doc) - Peter
- ICU 57 API proposal status
- Incoming
2016/01/13
- ICU/Unicode (Steven)
- IBM Process: complete. √☑✓✔
- Awaiting Unicode BoD approval / agreement sign off
- license/agreement text by Mon, Jan 25th
- sign off Fri Jan 29th at BoD meeting - http://unicode.org/timesens/calendar.html
- Announcement: Target Mon, Feb 8th?
- Questions:
- Future license text?
- Future source file copyright lines?
- Continue to update copyright date range for first year to last update, or only first year, or only last-update year?
- Which of these should it be:
- © 2011-2015 Unicode, Inc., IBM
- © 2011-2015 Unicode, Inc.
- (© – Cannot use non-ASCII characters in .h/.c/.cpp files.)
- RelativeDateFormatter API issues and plain C APIs [Peter]
- Sent preliminary discussion to icu-core on Jan 11, Markus replied Jan 13
- After feedback will send formal proposal to icu-design
- For #12072, RelativeDateTimeFormatter plain C wrapper API
- Agreed to propose new APIs for J, C++, C that use unified approach: new unified enum for date fields, new enum for style (text vs numeric), and use signed offset to get direction (no direction enum)
- Datetime formatting (kazède): if pattern character count isn’t defined in the spec, what’s the appropriate behavior?
- Currently it’s either no-op or defaults to an arbitrary case.
- Along the same line: what to do with unsupported pattern character in the pattern? (current behavior: treated as a numeric field and padded with zeros.)
- Clarify in CLDR spec (this part)? ICU user guide (this part)?
- Discussion last September, inconclusive so far:
[proposed:2015-09-02] ICU C/J behavior: pattern character fields with too-long lengths in SimpleDateFormat, DecimalFormat
- ICU resource data loading overhaul (Markus)
- consensus - Markus + googlers to continue to work on this transition
- Line Break of R$ (#11556) (andy)
- OK to add rule change separately from Unicode update?
- ICU 57 API proposal status
- Incoming
2016/01/06
- ICU/Unicode (Steven)
- Waiting for one more approval in IBM - almost there on IBM side
- Can we remove UDAT_TIME_SEPARATOR_FIELD in udat.h?
- See details in 2015/12/16 minutes
- Markus wants to make it @internal but will wait for Peter.
- Change of numeric value may be a problem for identifying fields in format/parse (Peter)? - actually it is not
- Related C++ code is #if-ed away via UDAT_HAS_PATTERN_CHAR_FOR_TIME_SEPARATOR
- Peter agreed to make it @internal - so PMC approved.
- DateIntervalFormat.format() thread safety, #11669. (Andy)
- For C++ the format() functions are declared const, and I have brute-force fixed the thread-unsafe behavior with mutexing.
- The corresponding format() functions in Java are also not safe. Should they be fixed, or should we just document the unsafe behavior? Possible precedent from DateFormat: “Date formats are not synchronized. It is recommended to create separate format instances for each thread. If multiple threads access a format concurrently, it must be synchronized externally.” - separate ticket - what to do with ICU4J DateFormat? Make format() thread safe? no changes?
- Should we develop a standardized piece of boilerplate to be included with the API docs of any Java function that is logically const and safe for concurrent use?
- ICU4J marking thread safe methods - http://bugs.icu-project.org/trac/ticket/12057
- Incoming
- Mark: #11905
- [{b}] = [b] // works right now
- [a-{xy}] // will always fail; second part of range must resolve to single code point
- [a-{x}] // would succeed if we do 11905
- [a-\u0062] works
- [a-\x{62}] works
- [{é}-{ë}] // may be unexpected per http://bugs.icu-project.org/trac/ticket/11738 ?
- [{ä}-{z}] // fail
2015/12/30 canceled
2015/12/23 canceled
2015/12/16
- Can we remove UDAT_TIME_SEPARATOR_FIELD in udat.h? (kazède)
- Also in Java: DateFormat.TIME_SEPARATOR
- It’s still in draft status.
- More fields are coming in after it (b & B).
- The enum wants to stay in sync with the string of pattern chars. It does not really work to have a gap in there.
- http://bugs.icu-project.org/trac/ticket/11773 “Delete colon as pattern char”
- Agreed to keep the TIME_SEPARATOR field constants but ok to change their numeric values, so that the supported ones including b/B are contiguous
- Markus wants to make it @internal but will wait for Peter.
- Measurement unit data loading progress (Markus)
- Now handles per-string, per-plural-form parent fallback, sideways aliases, and plural fallback (e.g., “one” -> “other”); both Java & C++
- With infrastructure in place, the data loading & data using code is not much longer.
- Craig has started working on doing the same for relative date/time formatting
- Plan to slog through ICU, change to resource enumeration, handle all fallbacks
- umbrella ticket: http://bugs.icu-project.org/trac/ticket/11584 "Cleaner and less fragile RB access"
- zone names
- done in J: http://bugs.icu-project.org/trac/ticket/11879 “optimize TimeZoneNamesImpl.java”
- C++ TBD: http://bugs.icu-project.org/trac/ticket/11912 “optimize C++ TimeZoneNamesImpl, add & use table resource enumeration”
- measurement patterns - done for ICU 57
- http://bugs.icu-project.org/trac/ticket/11986 “incomplete fallback in MeasureFormat”
- http://bugs.icu-project.org/trac/ticket/12030 “MeasureFormat handle by-plural-form sideways-aliasing”
- relative date/time: http://bugs.icu-project.org/trac/ticket/12018 “en_GB relative time strings missing "other" for some cases”
- interval format: http://bugs.icu-project.org/trac/ticket/12013 “resource enumeration for DateIntervalFormat”
- Markus to create a doc with a list
- Help would be welcome
- ICU 57 schedule
- Dates updated above ↑↑↑
- (ICU-under-Unicode - legal review still in progress [/-\-/-\-…]
- Incoming
2015/12/09
- Meeting schedule over the next few weeks
- FYI: Swift would like ICU regex support (per Apple 23382675) for:
- UREGEX_CANON_EQ
- “language-sensitive regular expression matching” (need more details)
- IBM team requested ‘collation sensitive’ regex support (somewhat like POSIX)
- Need very specific definition of exactly what is requested
- ICU move to Unicode: still under legal review
- Windows XP revisited: Mozilla Firefox would like it to continue. (Andy)
- Markus asked back “for how long?”, no answer yet
- http://windows.microsoft.com/en-us/windows/end-support-help “Windows XP support has ended”
- “As of April 8, 2014, support and updates for Windows XP are no longer available.”
- Andy to ping Jonathan <jonathan@jfkew.plus.com> in support list - and find out what they want / timeframe for dropping XP support in Mozilla, etc.
- Other topics...
- Incoming
2015/12/02
- Drop ICU support for Windows XP? (Andy)
- Peter: Apple is OK with this (our Windows products currently require Windows 7+)
- Yoshito: IBM is OK.
- Agreed to drop Windows XP support in ICU 57
- Drop ICU support for Mac OS X 10.6? (Markus)
- Apple is OK as far as released version, but:
- Problem for build bots, which run OS X 10.5 and 10.6 ?
- Michael: moonlight is running 10.11, other Macs would be removed
- Peter has asked Celia to have Apple consider contributing a new Mac Pro to Unicode which could be used for ICU build bots, as well as Unihan, CLDR Smoketest, etc.
- Yoshito: IBM is OK.
- Agreed to drop 10.6 support in ICU 57
- Steven/Michael to update continuous build systems and drop old Mac OS systems
- ICU resource bundle data loading with fallback (Markus)
- Several tickets with problems & optimizations
- For example, http://bugs.icu-project.org/trac/ticket/11986 “incomplete fallback in MeasureFormat” has two issues, fixing second one now
- Ported ICU 56 Java resource enumeration to C++; was developed for faster time zone names loading, now used to fix measurement unit formatter data loading
- Found problems in relative date/time formatting: http://bugs.icu-project.org/trac/ticket/12018 “en_GB relative time strings missing "other" for some cases”
- For unit data fixes inheritance from parent, but hard to handle sideways inheritance; need to address that in the data (fleshing it out)
- Planning to pull this into more ICU services
- Speak up if you disagree...
- Easy to handle: “one” in en_GB, “other” in en
- Easy to handle: “one”/”other”/plural forms in units, “dn” and/or “per” needs sideways-alias to unitsShort
- Hard to handle: “one” in units, “other” needs sideways-alias to unitsShort
- Markus asked Mark to propose to CLDR that this per-plural-form sideways-aliasing is not needed in code – data would be fleshed out so that plural forms travel as a group within a width
- Need to make CLDRModify minimization match what ICU actually does (once ICU behavior for C and J becomes consistent). Can we test this somehow?
- Note that JSON generation already fully fleshes out the inheritance, can use this for testing
- ICU 57 API proposal status
- ICU4J minimum JRE version to 6
- Markus asked Fredrik to work with Yoshito & srl on instructions & maybe build bot for testing against Android API
- Incoming
2015/11/25 canceled
(Peter, Markus, Yoshito away for 11/25 meeting)
2015/11/18
- Drop ICU support for Windows XP? (Andy)
- Chrome drops support for XP and Vista in April, 2016, which eliminates Google’s need. Dropping XP would allow significant cleanup and simplification of the ICU synchronization primitives. Does anyone else require XP support?
- we would have to ask around our community. Might be more feasible (from a requirements gathering pov) for post 57. (steven)
- Action items
- Andy to send a note to icu-design, ask about both XP & 10.6
- Apple / IBM will check with each internal group - back in 2 weeks (by PMC on Dec 2)
- Peter: Apple is OK dropping XP (our Windows products currently require Windows 7+)
- Drop ICU support for Mac OS X 10.6? (Markus)
- Chrome also drops support for 10.6-10.8. I believe that 10.6 was the last one with an old glibc without C++11. Is it a gating item for certain ICU code paths?
- one could also rebuild gcc for 10.6 (Steven)
- One of our machines -macx [Macmini1,1] is still 10.6 (steven) - System Version: Mac OS X 10.6.8 (10K549) - Apple clang version 1.7 (tags/Apple/clang-77) (based on LLVM 2.9svn)
- For example, drop 10.6 from the ICU 57 version of the supported-platforms list like on http://site.icu-project.org/download/54
- Meeting next week? (day before US Thanksgiving. Peter away). Decided to cancel.
- ICU 57 API proposal status
- Incoming
2015/11/11
- ICU under Unicode (Steven)
- Accepted by Unicode EMG
- Needs IBM review
- Structure: new “ICU-TC”
- needs chair, vice chair
- provisional (just to have something on record) Mark chair, Steven vice chair.
- consensus to propose Yoshito as chair, Markus as vice-chair to Unicode officers
- decisions taken by consensus, same operation (like CLDR-TC)
- PMC should formally vote to accept this (can be by email)
- YES Mark Davis Google
- YES via email John Emmons IBM Corporation
- YES Doug Felt Google
- YES via email Deborah Goldsmith Apple
- YES Steven Loomis IBM Corporation
- YES Markus Scherer Google
- YES Peter Edberg Apple
- YES Yoshito Umaoka IBM Corporation
- Agree that it passed, but want it to be unanimous. So Peter to contact Deborah and Steven/Yoshito to contact John. (done)
- Schedule:
- Unicode officers need to accept chairs (not a blocker)
- Unicode establish TC materials
- Announcement by Dec 15 (?) or so, depending on IBM review.
- Markus and few others to work on the Unicode announcement text. Steven the POC for the IBM announcement
- Change ICU license ownership; Mark as POC for Unicode legal.
- Fix ICU web site & User Guide; API docs??
- branding/copyright
- Fix Unicode web site, mention new TC etc.
- Website fixes don’t have to be timed with the announcement: just news item on each home page.
- May want build option to change the ICU4J package prefix from “com.ibm” to “org.unicode” or something parameterized. (Nice to have, no blocker.)
- Licence will change for v57, but not previous versions. Will need both licence statements.
- Build bots / build lab? [Peter]
- No planned infrastructure changes
- May make it easier to find hardware for this
- IBM not de-committing resources
- Minimum Java runtime
- previous discussion: Java 7 - minus stuff not available in a certain version of Android SDK
- should we really go for Java 6?
- considerations
- Versions
- Java language syntax level - X
- Class file version - Y
- Runtime version - Z
- it must be X <= Y <= Z
- Runtime library vs Test/Tools
- Can use different versions - for now
- core/charset/collate/translit - tests - 5
- locale-spi / locale-spi test - 6
- consensus - java 6 ∩ Jelly Bean
- language syntax/class file version/minimum runtime for ICU 57
- https://developer.android.com/about/dashboards/index.html
- https://en.wikipedia.org/wiki/Android_version_history
- Markus proposes that we try to support Android 4.1[.2] Jelly Bean API level 16 (July 2012). That supports some 92% of current devices according to the Android dashboard.
- Incoming
2015/11/4 - [UTC] / no meeting
2015/10/28 - Unicode conference / no meeting
2015/10/21
- ICU 57 schedule
- CLDR agreed to have data freeze date (final data/tools candidate) of Feb 15, see schedule
- CLDR can still fix data bugs after that if requested by ICU
- CLDR 29 overall final candidate is March 1, release March 15
- ICU release could be Weds Mar 23 or 30 -> agreement : March 23
- Incoming
2015/10/14
- ICU 56
- ICU 56 BRS open items
- Still-open tickets
- roll over to new milestone type? or UNSCH? --> 57m1
- Some team members might close “nice to have” tickets with a new resolution like “unscheduled”, and link to them from a page on, say, the design section of our site, or a new “nicetohave” section.
- ICU layout engine tickets (Markus; see email with this subjec
- tickets with keywords=ParagraphLayout – Steven reviewing whether the keyword is appropriately set
- open layout-but-not-ParagraphLayout tickets – TODO(srl): close with “wontfix”, with comment
- Does it make sense to remove the low-level layout engine code and hard-wire the ParagraphLayout to work only on top of icu-le-hb?
- http://userguide.icu-project.org/layoutengine/paragraph
- Start with by default turning off building layout engine, Steven to file ticket
- ICU 57 schedule
- end of Q1, 2 weeks after CLDR 29
- request CLDR to set ‘data freeze’ date, hopefully early March
- Upgrading minimum Java execution environment
- Java 6
- Java 7, minus APIs not supported by Android SDK - go for this one
- Java 8, minus APIs not supported by Android SDK
- Incoming
2015/10/07
- ICU 56 release
- ICU 56 BRS
- Live updates to timezone data, #11946
- concern (Steven):
- UDate a,b;
UnicodeString str(“1/1/11”);
{
DateFormat f; ...
a = f.parse(str)
}
// -- data reloads here
{
DateFormat f2;
b = f2.parse(str)
}
Problem: ( a - b) != 0
- Andy: “but this might be less bad..”
- Workarounds:
- If the user manually creates the TZ object, can ensure consistency.
- reuse of Formats / Calendar / etc.
- Notification?
- Yoshito: use tz version in the path
- use tz version as resource key
- How often to check?
- not every time creating a DateFormat object – performance
- at most every <interval>, e.g., 5 min?
- Goal to implement without app developers having to change how they do things
- flexible options (Steven)
- callback: UBool callbackHasChanged() returning true/false whether to immediately change new instances
- TimeZone::updateData() - “It’s OK to reset timezones”
- Global (env/compile/runtime flag): TimeZone::allowImmediateUpdate(UBool)
- Scope: what about other default locale changes? (Steven)
- change in default locale id or some component
- change in custom formatting
- change in default time zone
- Incoming
2015/09/30
- ICU 56
- Recent email about security issues: should we fix these in ICU 56? (Markus)
- #11865
- ICU 56 BRS
- Trunks mostly open, except hold off on big structural changes for now.
- ICU structure and ownership (Steven)
- IBM sole corporate steward
- Good technical processes (releases, design & API discussions)
- Might attract more collaborators with more open structure?
- Separate foundation?
- involves a non trivial amount of work - and cost.
- Move under Unicode Consortium “Implementation-TC”? Maybe as a sibling of Unicode-standard release tools?
- Already tightly interlocked with Unicode Standard & Unicode CLDR.
- Pros and cons of TC structure.
- Might be new structure.
- Q: Copyright/License?
- License might be granted to new owner, transfer/single grant probably better than perpetual assignment. Maybe “Portions copyright IBM & others” - in a single file somewhere.
- Going forward: New copyright structure, determined by new owner.
- License in / out no more burdensome than now.
- Make sure that all the pieces of the code & site go with.
- Make sure that the wording of the licence remains as is!
- Unicode Terms & Conditions page: Code x is governed by license y which is substantially the same as the Unicode license.
- org.unicode.icu? (icu4j package name)
- … and https://icu.unicode.org (site)
- Not decrease in involvement by IBM, but rather a more formal process.
- Consider build lab owned by new org. Contributors might sponsor machines & share access.
- Structure going forward (Steven):
- no change to weekly or release technical structure/processes - “icu-core” (oddly similar to CLDR process)
- the “Implementation-TC” would be a parent, governing body (might just approve new subprojects)
- Mark: Works only if we don’t change any processes. Move to Unicode, no real changes, then change only what is necessary. Don’t try to invent new processes/structure ahead of time.
- Timeline: Not a short term change.
- srl would propose in some more detail to Unicode officers on Nov 6 2015, Unicode BoD end of Jan 2016.
- PMC is generally in favor of this, but wants to get the details ironed out.
- Travis will no longer be attending weekly ICU meetings after today. Travis’ email: travis.icu@gmail.com
- Reassign tickets to someone else
- Work in progress: DecimalFormat in branch, Andy aware of status
- Incoming
2015/09/23
- ICU 56 RC status
- ICU 56 BRS
- Under review: Review • reviewfeedback
- Active tickets with trunk changes: http://bugs.icu-project.org/trac/report/24
- ICU4C
- 2022 change test failure on solaris - http://bugs.icu-project.org/trac/changeset/38002
- ICU4J
- A few test failures
- IBM Java 8 - fixed r38008
- format module test
- Peter to fix createGeneric, createRevolution; will need to regenerate API change report; file a ticket for ICU 56 to do this, and one for ICU 57 to add exceptions to generator process; #11929
- cldr
- temperature-generic
- angle-revolution (but in common usage this is not tied to angle, e.g. revolutions per minute, or turn 3 revolutions)
- C MeasureUnit methods
- createGeneric -> createGenericTemperature
- createRevolution -> createRevolutionAngle
- J MeasureUnit constants
- GENERIC -> GENERIC_TEMPERATURE
- REVOLUTION -> REVOLUTION_ANGLE
- Download page
- Incoming
2015/09/16
- API promotion draft
- ICU4C (Michael)
- ICU4J (Scott)
- BRS
- ICU 56 BRS
- Open tickets
- Under review: Review • reviewfeedback
- Active tickets with trunk changes: http://bugs.icu-project.org/trac/report/24
- Other open tickets
- MD: I think http://bugs.icu-project.org/trac/ticket/11898 is important to fix (and a small change). I have to leave now, however. PE: So do you want this ticket?? (Mark said yes) - assigned to Mark as critical/56.1
- 11435 (SmartOS): set to review 56 (everything reverted), fix in 57 in 11881 (assign to srl). Close 11882 as dup.
- 11689 (VS2015): set to review 56 (comp issues fixed, tests todo). fix in 57 in 11822 (assign to srl, reopened)
- Release task tickets
- C: #11917
- J: #11918
- IncomingBugs / Review • Review feedback
2015/09/09
- API Proposals for ICU 56
- CLDR 28 status
- No more data changes anticipated
- Still doing spec updates, spec in beta (in review period for spec until Monday)
- Expect to have draft download page by Monday or so
- Release next Wednesday
- Feature freeze for 56 is planned today (soft freeze*, still finishing some urgent items that may take a few more days) (*emphasizing APIs?)
- Remaining items?
- Markus will try to get one more staticanalysis ticket done
- IncomingBugs / Review • Review feedback
2015/09/02
- Feature freeze next Wednesday: 2015-09-09 (Wed): Final check-in for features/regular bug fixes (Feature Freeze)
- Any items need more time?
- Peter has a few new API items, will try to send proposals to design list today, roll in before API approval then adjust as necessary per API approval
- Steven has one - filter break iterator / promotion
- API status promotion draft
- Target - @draft ICU 54 or before
- ICU4C - Michael
- ICU4J - Scott
- by Sep 14
- Java 6/7 as base for ICU4J (Markus)
- Most of Java 7 (as far as is useful for ICU) should be ok for Android, Google will test frequently, will work with Yoshito to see what we can do for optional Eclipse setup to flag use of APIs not available on Android (need to see which Android SDK level should be the base)
- Want to set Java 7 (& some Android SDK level) as base for ICU4J 57
- Scott to check on Java 7 with Eclipse team
- API Proposals for ICU 56
- IncomingBugs / Review • Review feedback
2015/08/26
- Java 6 please for ICU4J (Markus)
- See team email with this subject aug20: java.text.CollationKey changed from final to abstract
- It looks Eclipse platform team is OK to move up to 6, 7, or even 8 for next release
- Google might have a problem with Java 7 as minimum… - Markus will check (see sep02 meeting)
- Apple is fine with Java 6 and 7 as minimum (but not Java 8)
- “risky” to try to do this for ICU 56
- ICU4J 56 - JDK8 JavaDoc support
- If it’s difficult to maintain two target env - JDK8 and JDK7 or before, we may just support JDK 8+ (and skip building API doc on JDK7 or older)
- Ok to remove unused impl .java files? (Markus)
- E.g., com/ibm/icu/text/BreakCTDictionary.java
- (maybe IntTrie after changing the CharsetSelector)
- easy way to find unused impl classes? testing? code coverage?
- careful with “public impl class” which might be used by CLDR
- API Proposals for ICU 56
- ICU4J UFormat class is wholly @draft, awkward for publishing *Format subclass API docs (Markus)
- Marked as @draft/@provisional (retains this status since 2.8)
- Markus: Make class UFormat and its default constructor @stable but keep its getLocale() method @draft? - agreed
- Markus to file a ticket to track this one. will be included in 56 API status promotion list. → http://bugs.icu-project.org/trac/ticket/11875
- How to safely detect signbit on all platforms? Markus mentioned that <math.h> signbit() may not work on windows, but it fails on solaris too. (Travis) uprv_isNegative()
- What’s wrong with uprv_isNegative? [George]
- CLDR decided to deprecate colon as a date pattern character [Peter], relates to #11773
- Will keep the time separator symbol/structure/mechanism for possible future use
- May use a different character in the future as pattern char for time separator (something that would not normally occur in a date/time pattern); the problem was with using colon
- Keep the time separator field as a date format field but just have no pattern char for it - agreed
- Peter to send something to icu-design, update #11773 to adopt this solution, have something in readme
- incomingBugs / Review • reviewfeedback
2015/08/19
- API Proposals for ICU 56
- Coverity / source code scan problem fixes
- Michael to take the ownership
- Trac ticket keyword “staticanalysis”
- ICU readonly git mirror (Steven)
- lots of mirrors on github
- readonly - would not accept bug/issue reports nor ‘pull requests’
- although, PRs could be a good way for users to document patches.
- source would be on icu-project.org but not hosted (via http) on our server
- would make it easier for downstream users using git to manage their own patches against ICU
- proposal: one org (github.com/icu-project) several repos (data icu[4c] icu4j icu4jni icuapps icuhtml tools)
- non-goal: “move to git”
- Agreed : Steven to work on this.
- store authors map in svn repo
- srl -> <someemailaddress@...>
- default: srl@<UUID>
- repo: github.com/icu-project
- (Travis) Addendum to DTPNG::staticGetSkeleton and staticGetBaseSkeleton proposal: Advertise that callers can pass NULL for the DTPNG handle to the corresponding C API versions of these methods – rather than add new C APIs corresponding to the new static C++ methods. (#11779)
- int32_t udatpg_getSkeleton ( UDateTimePatternGenerator * dtpg, const UChar * pattern, int32_t length, UChar * skeleton, int32_t capacity, UErrorCode * pErrorCode )
- also udatpg_getBaseSkeleton(dtpg, ...)
- update API docs that the first param can be NULL (or simply state first param is not used for now)
- PMC agreed.
- ICU4J in Android (Markus)
- In the system, in AOSP (Android Open Source Project) (browse ICU source)
- jarjar’ed from com.ibm.icu.* to android.icu.* in order to avoid conflicts with apps that carry their own copy of ICU4J
- Investigating exposing parts of the ICU4J API as part of the Android SDK
- Will probably hide draft/deprecated/...?
- This would include publishing relevant parts of the ICU4J API docs as part of the Android SDK documentation
- Peter: webkit has a directory with some ICU headers, not sure they count as API; some webkit apps use some of them
- Steven: Put this on the project page or FAQ, e.g., how to build ICU on Android, in future (if this works out) using Android’s version instead
- Yoshito: need to do something for ICU4J development with IntelliJ?
- Incoming bugs
- #11773, Peter to put discussion on CLDR agenda
- Added for 2015-08-26, see CLDR ticket #8905
2015/08/12
- ICU 56 RC/GA dates (approved)
- 2015-09-09 (Wed): Final check-in for features/regular bug fixes (Feature Freeze)
- 2015-09-14 (Mon): API change report updated for review (new APIs, status changes)
- 2015-09-16 (Wed): Final check-in (response to code review, except some BRS items)
- 2015-09-23 (Wed): ICU 56 RC
- 2015-10-07 (Wed): ICU 56 GA
- Indic search behavior (Peter)
- http://bugs.icu-project.org/trac/ticket/11750 “Search should allow match end in middle of combining seq before char with primary weight”
- http://www.unicode.org/reports/tr10/#Searching
- Test for normalization boundary: If character before has normalization boundary-after, or character after has normalization boundary-before, then it’s ok. (Use Normalizer2.)
- Summary: When break iterator is not provided by user - search match can return index in the middle of character grapheme as long as it’s normalization boundary.
- Adding new RBNF syntax for Infinity, NaN and alternate decimal points (George)
- http://bugs.icu-project.org/trac/ticket/11760
- George proposed new syntax on aug08 “[icu-design] Add syntax to RuleBasedNumberFormat for Infinity, NaN and alternate decimal points”
- ICU PMC approved the proposal - George should alert CLDR again / this change will be merged into CLDR soon.
- Metazone & test updates for tzdata2015f (Uruguay no more DST, Moldova DST transition at 0:00 not 1:00, North Korea to +0830) [Peter]
- CLDR decision - just remove North Korea from current “Korea” metazone, but don’t yet add a new metazone for North Korea (so will get fallback formatting)
- API Proposals for ICU 56
- Travis to submit followup ticket for staticGet[Base]Skeleton() in Java.
- http://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
- DecimalFormat update (Travis) - Updated version implementing Mark’s VisibleDigits class. Much better performance than previously. We want this version to go to the trunk. https://codereview.appspot.com/256440043
- Characters for day periods:
- We currently use [aA c dD eE F gG hH jJ kK lL mM O qQ r sS uU vV wW xX yY zZ]
- Java also uses [nN p] (nanoseconds & padding)
- Unused: [bB C f iI o P R tT]
- Possible (see CLDR #8862)
- b - am/pm/noon/midnight
- B - dayperiods (fallback to am/pm)
- C - preferred form of [a,b,B] for locale, like j for h/k/H/K
Rule syntax for formatting and parsing alternate decimal points are being updated so that 0.x, x.0 and x.x remain unaffected and the default, but when the decimal point matches the DecimalFormatSymbols value for the decimal point, that will be used instead of the default one with the full stop.
Inf: infinite;
NaN: not a number;
x.x: << point >>;
x,x: << comma >>;
[steven] with the same rbnf rule but in locales w/ different decimal format symbol for decimal point
((float)123456/1000f) in “en_US” -> One hundred twenty-three point four five six
((float)123456/1000f) in “en_150” -> One hundred twenty-three comma four five six
2015/08/05
(Peter out, on vacation)
UnicodeSet syntax for range of strings (Mark)
- http://unicode.org/cldr/trac/ticket/8616#comment:2
- Markus: “{ab}-d” seems too confusing, better require len(X)=len(Y)
- http://www.unicode.org/repos/cldr/trunk/common/validity/language.xml
- {ab}-{ad}
- {abc}-{cd} <- bad syntax. throw exception?
- Markus: I am not sure UnicodeSet throws exceptions for bad syntax; this should handle any bad syntax like other bad syntax.
- http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%3Aemoji%3A%5D
- {x`}-{x’} (but with NSM) ?
- Agreed, if the lengths are defined to be the same (otherwise syntax error).
- DecimalFormat rewrite (Travis) - Go / no go?
- team email “Memory map of new DecimalFormat class”
- team email “Heap usage exercise with DateFormat”
- Peter (last week) and Steven (today) both replied affirmative
- ICU PMC agree to merge this to ICU4C trunk
- Numbering systems outside BMP? (Steven)
- http://unicode.org/cldr/trac/ticket/8837 - CLDR
- http://bugs.icu-project.org/trac/ticket/9488 - Yoshito has a ticket on this? updated
- related to http://bugs.icu-project.org/trac/ticket/10368
- http://bugs.icu-project.org/trac/ticket/9489 - “DecimalFormatSymbols currently cannot handle decimal digits out of Unicode BMP. ICU4J implementation currently detect this and use Latin digits as the fallback. ICU4C implementation should also do the same.” - Yoshito’s
- Consensus:
- CLDR should remove draft=provisional from relevant data
- ICU4J falls back to ASCII digits until fixed
- We should document that, repurpose ticket #9489 for this (rather than changing C) done
- Fix of ICU4J would support supplementary digits, would add “List<String> getDecimalDigits()” or similar, and char-returning getDigits() and getZeroDigit() would fall back to ASCII -> #9488
- Travis to check ICU4C - (Travis) ICU4C does support non BMP digits as DecimalFormatSymbols represents the symbols (including digits) as an array of UnicodeString.
- Filtered (ULI) break (Steven)
- improvements merged on C http://bugs.icu-project.org/trac/changeset/37721 - forward/back, passes tests
- <locale en@x-uli=true&ss=standard>
- C todo: perf, thread safety
- J todo
- coverity (Steven)
- need help to triage issues within coverity
- alejandro.joya.cruz at intel.com wanted to join our ‘coverity’ project
- https://www.youtube.com/watch?v=8cwWgxbqah0
2015/07/29
(UTC #144) – participation of Mark & Peter in ICU meeting depends on UTC schedule
- Meeting cancelled, but will discuss go/no go on merging DecimalFormat #11740 by email.
2015/07/22
- DecimalFormat rewrite (Travis) - We have a rewrite of the DecimalFormat class in a branch. The new code is C++ only.
- http://bugs.icu-project.org/trac/ticket/11740
- branch: http://bugs.icu-project.org/trac/review/11740#icu/branches/tkeep/11740
- review link: https://codereview.appspot.com/238210043/
- This new code offers the following advantages over the old legacy code.
- Const methods are actually const and thread safe
- Code broken into small independent modules for easy testing and maintenance
- Formatting small ints over 3X faster than old code
- Many other formatting use cases faster as well
- Caveat:
- Memory footprint increase of just over 50% per object
- what are the actual byte sizes, old and new? -Peter
- 4kB (5 memory blocks) → 6kB (2 memory blocks)
- no heap allocation during format() except internal to UnicodeString etc.
- Would be good to know the memory footprint impact on SimpleDateFormat which has several NumberFormat objects (Peter)
- first SimpleDateFormat alloc in a process
- memory use after first format with that SimpleDateFormat
- memory use after first parse operation with that SimpleDateFormat
- Not just size of the SimpleDateFormat object itself, need to measure total heap use to account for caching
- Peter: On MacOS X try “man 1 heap” tool, in the test code use sleep(10) etc.
- e.g. program launches, then calls sleep(10) and prints message to check initial heap; then allocs a SimpleDateFormat and calls sleep(10) again and prints message; then uses the SimpleDateFormat to format, calls sleep(10) again, etc.
- At each sleep(10) and message, run “heap <procname>” from another Terminal window, use info to track increase in heap.
- Do before and after the changes for new code.
- Results of this exercise explained here: https://docs.google.com/document/d/1cwcKmn6xRUVfteAs9s0N4i4YWsBMVHngxlcacSscDgk/edit?usp=sharing
- Spreadsheet with all the metrics:
- https://docs.google.com/spreadsheets/d/1ALIOzYyhXaCGgWj1VsRVfI6-VaFO0F7qS4pAAfwaZpA/edit?usp=sharing
- Ok to merge into trunk after review?
- Mark & Andy are reviewing now.
- Steven wants to look too.
- Ok to fix the memory footprint after trunk merge, possibly after ICU 56?
- Ideas: caching and shared objects for things like DecimalFormatSymbols & maybe NumberingSystem
- TODO: Check SimpleDateFormat memory usage before merging into the trunk (requested by Steven & Peter) – see details above under “Caveat”
- TODO: Steven wants to look at the DecimalFormat memory usage before the ICU 56 release (can be after merging into the trunk)
- Note: We will wait with a Java port until the C++ code has had some more work to make it easier to port.
- IncomingBugs / Review • reviewfeedback
- Meeting next week during UTC?
2015/07/15
- Security patch policy
- IBM wants to apply security patches back to latest GA version - 2
- For the latest - official maintenance update
- For backlevel streams / merge the fix if necessary + tag the version + source patch (trac diff link) posted in ICU version download page, but no binary release (by default)
- IUC presentations due next Friday
- Schedule for CLDR data integration, late August [Peter]
- Data freeze is Aug 17, integration takes around a week or so after that
- IncomingBugs
- #11773, Peter to first check with CLDR about withdrawing colon as pattern char; else consider something like “colon mode”
2015/07/08
- BCP47 keywords to control use of ULI segmentation suppression, and to select CSS word-break options for line break [Peter]
- Proposal
- CLDR locale keys/values
- Implementation issues
- uli (filtered break)
- 11248 (forward/backward)
- 11769 (Move FilteredBreak into draft, maybe move to common)
- IncomingBugs
- build failures
- C data in J failing since http://bugs.icu-project.org/trac/changeset/37644 - collation failures – fixed in r37654
- data port / trunk win - ‘assert()’ added in http://bugs.icu-project.org/trac/changeset/37649 – fixed in r37653
2015/07/01
- ICU 56m1
- http://site.icu-project.org/download/56m1
- active tickets - http://bugs.icu-project.org/trac/report/24
- Review
- ICU4C api change report - not updated yet
- regenerate
- re-tag milestone-56-0-1 - steven will work with michael
- IncomingBugs
2015/06/24 (deadline for m1 checkins)
New meeting time: 10-11am (Pacific Time) / 1-2pm (Eastern Time)
- ICU 56m1
- Download page: https://sites.google.com/site/icusite/download/56m1
- ICU 56 BRS: https://docs.google.com/spreadsheets/d/1y4vdAjBZ7tHtZ6FRwKJ4CuHldEK92eN_Y2plFr4dKbI/edit#gid=0
- IncomingBugs / Review • reviewfeedback
2015/06/17
- Move off of sourceforge
- http://fossforce.com/2015/06/sourceforge-not-making-a-graceful-exit/
- issue: sourceforge was wrapping downloads in “junkware”/malware with and without permission from owners
- Could use google groups for email lists
- Make sure we have copies of the mailing list archives
- downloads as a CDN? (not a completely turnkey process, but it does save a lot of server load.)
- Actions: Mark to create a few groups, Fredrik to try to import existing archive
- Adjust CLDR vs ICU meeting times - add 15 min for CLDR, remove 15 min from ICU (start later)? [Peter E]
- will discuss in next CLDR meeting
- Latest CLDR svn data is in ICU
- IncomingBugs / Review • reviewfeedback
2015/06/10
- ICU4J locale spi problem on Java 8
- http://bugs.icu-project.org/trac/ticket/11733
- Impacts - running ICU4J as locale provider on Java 8 and use DateFormat (DateFormatSymbols) throws NPE
- Root cause - Java DateFormatSymbols constructor calls this.clone() and cache a copy. ICU’s JDK class wrapper (com.ibm.icu.impl.jdkadapter.DateFormatSymbolsICU) has a field ‘fIcuDfs’ initialized by the constructor, but when clone() method is called, fIcuDfs is not yet assigned. [http://bugs.icu-project.org/trac/changeset/37501]
- Filed a bug in the Java bug database, also discussed the issue in java-i18n ML - and Oracle folks agreed that JDK implementation is problematic.
- The fix is only in locale-spi module, not ICU4J core jar. The fix prevent NPE when fIcuDfs is null. The fix is good enough for the current Java 8 implementation.
- Actions:
- merge the fix in maintenance branches
- post locale-spi jar for 55.1 and a few older releases? Because this has no impacts to majority of ICU4J users, we might not want to bump ICU version - but how?
- IncomingBugs / Review • reviewfeedback
{ab} - {bc} -> {ab} {ac} {az} {ba} {bc}, but not including {aa} {bd} -> does not work
{abc} - {abe} -> {abc} {abd} {abe}
{ab[c-d]}
{ab[c-d{Andy}]}
{abc} {abd} {abAndy}
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%3Aemoji%3A
2015/06/03
- ICU4C trunk build
- root cause of the TestNumberFormat was resolved - but why this suddenly showed up?
- trunk memory leak - caused by UnicodeString change - Markus will resolve the issue.
- Non-member swap (Markus)
- Ok to move inside classes?
- In-class “friend” definition, more compiler-friendly than definition outside class
- See addendum email June 1 to “ICU4C API proposal: C++ move/swap LocalPointer & UnicodeString” on icu-design
- ICU 56 GA date - agreed on following
- CLDR - planned GA - Sep 15 (16?)
- ICU 56 RC: Sep 23
- ICU 56 GA: Oct 7
- ICU data update
- desired to import the latest structure change as soon as possible
- for M1 (John / Peter?) - next 2-3 weeks
- IncomingBugs
2015/05/27
- ICU4C trunk build - intermittent failure
- /tsformat/cnumtst/TestNumberFormat
- since #11665 / r37448
- UNUM_GROUPING_SIZE set by unum_setAttribute() might not be returned by unum_getAttribute() - either test case or getAttribute() should be changed (file a new ticket)
- Andy suspect ctest_resetICU() / u_cleanup() does something with ICU globals - NumberFormat cache?
- Michael to try commenting out ctest_restICU() to see if the problem is reproducible on the Solaris system.
- API Proposals for ICU 56
- Deprecate RBNF durations, and mention DurationFormat as its replacement? #10587 (George)
- Look into MeasureFormat instead as the replacement.
- Propose to icu-design and add to the API proposal document.
- IncomingBugs
2015/05/20
- Only Peter and myself, therefore, no meeting today.
- ICU4C trunk build failure
cnumtst {
TestNumberFormat {
!! Fail: error in setting and getting attributes for UNUM_GROUPING_SIZE
} ---[1 ERRORS in /tsformat/cnumtst/TestNumberFormat] (12ms)
2015/05/13
- ICU Trac (Markus)
- Obsolete fields (OS, Java Version, Version, Load): deleted values, Steven to remove fields
- Maybe-obsolete tickets - steven to review, close
- Policy for fixing a security bug (Yoshito)
- notification
- back level releases
- sensitive flag ‘removal’ after fix?
- closed tickets with sensitive=yes
- API Proposals for ICU 56
- IncomingBugs
2015/05/06 - cancelled due to UTC
2015/04/29
- Unicode 8 in ICU (Markus)
- Ticket #11574 → tools trunk, C & J branches; all tests pass
- Want to get it into milestone 1
- Ok to merge into trunk now, keep ticket open for final update after May UTC meeting?
- trac: “new” with owner moved to “accepted”. (Steven)
- IncomingBugs ( new simpler query: ‘status=new’ )
- [quarterly question] Schedule during UTC next week?
2015/04/22
- ICU 56m1
- schedule - July 1 - confirmed
- CLDR new structure / sync’ed
- Trac (Markus & Steven)
- Use & track status=reviewfeedback: “ball is back in the ticket owner’s court”
- When a reviewer finishes review and looks good -
- fix in branch - reviewfeedback with comment LGTM - and owner can merge into trunk and close the ticket as fixed
- fix in trunk - reviewer LGTM: can directly close the ticket
- Reviewer sets this for LGTM (so that the owner can merge into the trunk) or to request further changes – say in the notes what the owner should do
- API Proposals for ICU 56 (DigitXxx proposals on hold for now)
- IncomingBugs
- A note on deprecation: Use of ULOC_REQUESTED_LOCALE with ucol_getLocaleByType has been deprecated since ICU 2.8 (2004). Recently ucol_getLocaleByType started returning an error for ULOC_REQUESTED_LOCALE. This broke some apps that used third-party Qt framework, which has a QtWebKit subframework (built against old ICU headers) that used this...
- ICU 54 ticket #10477 “drop support for ULOC_REQUESTED_LOCALE”
2015/04/15
Schedule
- Google no longer requests that fall 2015 release be moved earlier
- Mark: We should get to a new design for decimal formatting classes, and then map old API to new API
- Travis: Have new classes in branch, but having trouble mapping old to new
- getPositivePrefix() is @stable ICU 2.0, cannot change its behavior so significantly; should document its behavior more clearly, and design better new API
- U+00A4 CURRENCY SIGN http://en.wikipedia.org/wiki/Currency_sign_%28typography%29
- Bug in http://www.unicode.org/reports/tr35/tr35-numbers.html#Special_Pattern_Characters “If doubled, replaced by the international currency symbol (U+00A4).”
- (Travis Keep) DecimalFormat::get/setCurrencyPluralInfo - This API has poor test coverage and seems completely broken. See http://bugs.icu-project.org/trac/ticket/11626. I would like to see this API removed because I don’t believe anybody could be using it effectively.
- CurrencyPluralInfo - http://bugs.icu-project.org/trac/ticket/6433 - xji, 2008
- Resolution: take offline. Consider redesign, which may not include this class.
- API Proposals for ICU 56
- IncomingBugs
- http://bugs.icu-project.org/trac/ticket/11635
2015/04/08
- ICU 56 planning
- Milestone doc: 56.0.1 (m1)
- CLDR fall release schedule is not yet decided
- Any inputs for release date? Sep 30 or Oct 7?
- Fall schedule is not critical for Apple, Apple wants spring release a little bit earlier (mid March)
- Google: want both spring/fall release earlier / this fall : Sep 30 or 23?
- 55 BRS
- Collation demo - Michael updated to 55 last night
- http://bugs.icu-project.org/trac/ticket/5456
- IncomingBugs
2015/04/01
- ICU 55 release!
- BRS
- Download page
- Michael to check ICU version used for demos on the ICU site. For example, refresh the http://demo.icu-project.org/icu-bin/collation.html index page. (r37302)
- #11595 Locale Matcher - send back to review
- active tickets with code on trunk
- other open tickets for ICU 55.1, Yoshito will move to 56
- Unicode conference proposed submissions from ICU project members
- abstract deadline in two days: 2015-apr-03
- http://www.unicodeconference.org/abstracts.htm
- ICUers IUC 39 doc
- All past conferences - http://www.unicode.org/conference/past-conf.html
- IncomingBugs
2015/03/25
(Peter away for this one)
- CLDR ticket #8297, ICU ticket #11595
- CLDR data update - 27.0.1?
- proposed to merge the changes if the change is confirmed in a branch (trunk?)
- This is a regression because fallback data was defective & basically unused, but got fixed in CLDR 27 which makes ICU worse.
- Mark/John will prepare the fix by end of Thursday / in a branch - if verified, merge it into 55 GA
- BRS
- Download page
- Tickets fixed in ICU 55
- note impact and/or benefits and/or migration issues - mark to put initial contents by end of Friday / other people add contents there on next week by Wed
- IncomingBugs
2015/03/18
- ICU 55 status
- CLDR ticket#8288
- Mark tried to fix it in CLDR
- John tried the modified data imported to ICU - and it causes a few test failures in ICU
- CLDR TC in this morning, we agreed following:
- Revert the changes for CLDR 27
- ICU 55 RC to use release-27-d05 (not including the changes for CLDR#8288)
- Continue to investigate the issues / implication
- If we identified the whole issue - what’s wrong / what need to be fixed, then we may publish the fix as CLDR 27.1. And if it is before ICU 55.1 release date, then we will integrate the fix. Otherwise, defer to ICU 55.1.1 (or 55.2).
- BRS
- Download page
- Unicode conference proposed submissions from ICU project members
- ICU demos link broken: clicking “ICU4C Demos” in home page sidebar produces:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, icuproj@icu-project.org and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Apache/2.2.17 (Fedora) Server at demo.icu-project.org Port 80
- IncomingBugs
2015/03/11
- ICU 55 code freeze
- Today last commits for code review feedback
- #11568 ok, Fredrik committing now
- can still submit fixes for docs, BRS items
- Reviews (srl’s done)
- C++ @draft API promotions
- Peter’s email “Draft ICU4C 55 API promotions, issues”
- Spreadsheet
- Java @draft API promotions
- Yoshito’s email “ICU4J 55 API promotion draft”
- Spreadsheet
- BRS
- IncomingBugs
- Tickets with trunk code http://bugs.icu-project.org/trac/report/24
2015/03/04
- ICU 55 feature freeze
- Trunk status
- http://bugs.icu-project.org/trac/build/icu4c_trunk_memory_leak
- intltest unable to open any test data text files – seems flaky now, may be environment issue, keep watching
- http://bugs.icu-project.org/trac/build/icu4j-p-win flaky, div by 0 in Perl script
- Last check-in (except for code review feedback/BRS tasks)
- EOD today/Wednesday
- Roll remaining tickets to 56 or UNSCHeduled
- Reviews
- BRS
- script code update problems (Markus)
- Support all (new) ISO script codes via enum UScriptCode vs. stable enum constant names that match Unicode script property value aliases
- See email “ICU script code update problems” mar02, see recommendations at the end of Markus’ email
- http://bugs.icu-project.org/trac/ticket/11561
- Mark replied: I have never thought that any of the ISO script codes were of much (if any) value until they are in Unicode. So I'm all in favor of only putting them in when we need to.
- Peter replied: I agree with your recommendations. I don’t think the constants are very useful significantly before the scripts are encoded.
- Consensus: Now and in the future, add script codes only when they are encoded in Unicode (past version or known to go into next version). Markus will update UScriptCode API docs.
- Try to get version numbers updated soon (helps with various other tasks)
- Draft API promotion by end of this week, review in next week’s meeting
- (Travis) - Avoid calling UnicodeString::append() in a loop in performance critical code. If you know ahead of time that you will be appending fewer than N UChars, it is much faster to stack allocate a UChar[N], write the UChars there and then append the entire array all at once with one call to UnicodeString::append. I learned this the hard way.
- Probably equally fast or better: getBuffer(minCapacity) – write into its buffer – releaseBuffer(new length)
- (Travis) function template for deep copying optional pointer field within assignment operator?
- new templatized ‘smart pointer’ class?
- Travis will come up with more concrete proposal - revisit it later, after ICU 55
- (Travis) Do we really want to have polymorphic cache keys in our unified cache? We had decided to support polymorphic keys about 1 year ago because that way we could store data under any type of key, not just locale. However, as best as I can tell the only type of cache key ever used is locale. Nobody is inventing their own key types yet. Polymorphic keys do come at a price. My original cache design that used plain old char * as a key (which supports locale easily enough) took about 270ns for retrieval. Retrieving from the cache now takes 400-450ns. This extra time for cache retrieval can add up considering that to build a complicated object like DecimalFormat correctly will either require multiple cache retrievals or storing redundant data in the cache to avoid the multiple lookups.
- Might need non-locale strings for Transliterator
- Maybe do profiling to find out which piece makes “polymorphic” more expensive
- Maybe limit polymorphism to fewer cases, only what we need (e.g., Locale-or-string)
- API Proposals for ICU 55
- IncomingBugs
2015/02/25
- ICU server status? - mostly checkout failed
- Longstanding ICU4C trunk data in ICU4J failure understood, due to RELATED_YEAR Calendar field addition in J, not C; there is a bug to remove from J (#11539)
- Spoof / Confusable data update. Remove SL, SA, ML tables. (Andy & Mark)
Ticket #11446
Additional background information here: Document - Schedule - regular check-ins by next Wed (March 4) - are we ready?
- API Proposals for ICU 55
- 55 BRS task assignment
- promotion candidates by end of next week - through ICU 53
- IncomingBugs * Reviews
2015/02/18
- Yoshito is out (in Japan)
- ICU release schedule (Markus)
- Would like to move future releases earlier by 2 weeks.
- CLDR: OK starting spring 2016 release, may be too cramped for this fall
- ICU: Ok to pull in starting with 2016 spring release as well, look more into fall release
- Peter: Parameterized linebreak status - CLDR #4931, ICU #9379, proposal status
- Ok to add all variants to ICU 55
- Users who care about size will need to prune data
- Peter to submit ticket for ICU 56 to support multiple types with smaller data: -> #11530
- Andy idea: One set of rules for all types together, distinguish by rule status value
- Andy: Important to get monkey test to work with new rules
- Peter to submit another ticket for this: -> #11531
- API Proposals for ICU 55 (none for this week)
- IncomingBugs * Reviews
- Buildbot failures
- ibm-rh1 svn checkout failure - seems to have been restarted?
- icu4j trunk, Mac/ibm-macx (-e) - system problems? Errors are strange, e.g.
- Warning: (CoverageTest.java:186) coverage of com.ibm.icuimpl.CalendarAstronomer$2: java.lang.ClassNotFoundException: com.ibm.icuimpl.CalendarAstronomer$2
- Error: (CoverageTest.java:217) Unsupported URL: jar:file:main/tests/translit/out/lib/icu4j-translit-tests.jar!/com/ibm/icu
- memory leak- Michael will use C release ticket
- Sourceforge mirror (Steven)
- FYI - mirroring is off.
2015/02/11
- A common library for managing plural variants (Travis Keep) See PluralMap design doc.
- Add comments, take offline.
- As per PMC request for ticket#11230 - C vs. J difference when parsing ' 9 9 ' in lenient mode (Scott)
I tested C & J with various inputs. (English)
C
parsing[ 9 9 ] with pattern[###] parsed as[9]
parsing[9 9] with pattern[###] parsed as[9]
parsing[ 9 999 ] with pattern[###] parsed as[9]
parsing[9 999] with pattern[###] parsed as[9]
Java
testing ICU…
parsing[ 9 9 ] with pattern[###] parsed as[99]
parsing[9 9] with pattern[###] parsed as[99]
parsing[ 9 999 ] with pattern[###] parsed as[9999]
parsing[9 999] with pattern[###] parsed as[9999]
testing JDK…
parsing[ 9 9 ] with pattern[###] number parse failure: Unparseable number: " 9 9 "
parsing[9 9] with pattern[###] parsed [9]
parsing[ 9 999 ] with pattern[###] number parse failure: Unparseable number: " 9 999 "
parsing[9 999] with pattern[###] parsed as[9]
- Mark: Space is parsed as grouping separator if space or nbsp is one. Should behave like comma if that is a grouping separator. Test with comma too.
- Mark:
- Test “9 9”, “9 999”, “9,9”, “9,999”
- In two locales: one that has , as grouping separator and space-like as grouping separator.
- Test in both strict and lenient.
- Test with grouping separator on and off.
- Test in C, J, and JDK.
- Mark’s expectations
- Allow leading spaces always.
- Allow trailing spaces in the APIs that don’t take a ParsePosition. - Yoshito believes that number format internally stops at trailing space, but not return any error as long as a part of input is consumed. => Scott to check
- Don’t eat trailing spaces in the APIs that do take a ParsePosition.
- Think that in strict mode we require grouping-separators to be in the right positions, but not in lenient. Need to test.
- API Proposals for ICU 55
- IncomingBugs * Reviews
2015/02/04
- Likely a short meeting because of UTC; have ICU room (Crane) near UTC room (Bashir).
- Peter: Won’t be able to participate in this ICU mtg due to UTC activity
- Known discrepancies between JDK and ICU DecimalFormat (Travis). Do we still want to behave like the JDK when possible? Will fixing ICU DecimalFormat to behave like JDK when possible break our users? See the full details in the linked doc. http://bugs.icu-project.org/trac/browser/icu4j/branches/tkeep/10458/main/tests/core/src/com/ibm/icu/dev/test/format/DataDrivenNumberFormatTestSuite.java
http://bugs.icu-project.org/trac/browser/icu4j/branches/tkeep/10458/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java
private DataDrivenNumberFormatTestSuite.CodeUnderTest ICU = |
new DataDrivenNumberFormatTestSuite.CodeUnderTest() { |
public String format(NumberFormatTestTuple tuple) { |
ULocale en = new ULocale("en"); |
DecimalFormat fmt = new DecimalFormat( |
tuple.pattern.getValue("0"), |
new DecimalFormatSymbols(tuple.locale.getValue(en))); |
if (tuple.minIntegerDigits.isValue()) { |
fmt.setMinimumIntegerDigits(tuple.minIntegerDigits.getValue()); |
} |
if (tuple.maxIntegerDigits.isValue()) { |
fmt.setMaximumIntegerDigits(tuple.maxIntegerDigits.getValue()); |
} |
if (tuple.minFractionDigits.isValue()) { |
fmt.setMinimumFractionDigits(tuple.minFractionDigits.getValue()); |
} |
if (tuple.maxFractionDigits.isValue()) { |
fmt.setMaximumFractionDigits(tuple.maxFractionDigits.getValue()); |
} |
if (tuple.currency.isValue()) { |
fmt.setCurrency(tuple.currency.getValue()); |
} |
if (tuple.minGroupingDigits.isValue()) { |
// Oops we don't support this. |
} |
String actual = fmt.format(new BigDecimal(tuple.format.getValue())); |
String expected = tuple.output.getValue(); |
if (!expected.equals(actual)) { |
return "Expected " + expected + ", got " + actual; |
} |
return null; |
} |
}; |
|
private DataDrivenNumberFormatTestSuite.CodeUnderTest JDK = |
new DataDrivenNumberFormatTestSuite.CodeUnderTest() { |
public String format(NumberFormatTestTuple tuple) { |
ULocale en = new ULocale("en"); |
java.text.DecimalFormat fmt = new java.text.DecimalFormat( |
tuple.pattern.getValue("0"), |
new java.text.DecimalFormatSymbols(tuple.locale.getValue(en).toLocale())); |
if (tuple.minIntegerDigits.isValue()) { |
fmt.setMinimumIntegerDigits(tuple.minIntegerDigits.getValue()); |
} |
if (tuple.maxIntegerDigits.isValue()) { |
fmt.setMaximumIntegerDigits(tuple.maxIntegerDigits.getValue()); |
} |
if (tuple.minFractionDigits.isValue()) { |
fmt.setMinimumFractionDigits(tuple.minFractionDigits.getValue()); |
} |
if (tuple.maxFractionDigits.isValue()) { |
fmt.setMaximumFractionDigits(tuple.maxFractionDigits.getValue()); |
} |
if (tuple.currency.isValue()) { |
fmt.setCurrency(java.util.Currency.getInstance(tuple.currency.getValue().toString())); |
} |
if (tuple.minGroupingDigits.isValue()) { |
// Oops we don't support this. |
} |
String actual = fmt.format(new BigDecimal(tuple.format.getValue())); |
String expected = tuple.output.getValue(); |
if (!expected.equals(actual)) { |
return "Expected " + expected + ", got " + actual; |
} |
return null; |
} |
}; |
public void TestDataDrivenICU() { |
DataDrivenNumberFormatTestSuite.runSuite( |
this, "numberformattestspecification.txt", ICU, 'J'); |
} |
|
public void TestDataDrivenJDK() { |
DataDrivenNumberFormatTestSuite.runSuite( |
this, "numberformattestspecification.txt", JDK, 'K'); |
} |
- API Proposals for ICU 55
- IncomingBugs
2015/01/28
- UTC meeting next week - for now, as scheduled
- API Proposals for ICU 55
- IncomingBugs * Reviews
- CLDR vs. ICU capitalization context
- spreadsheet: Extracted Casing Info
2015/01/21
- ICU 55 RC/GA dates - agreed
- 2014-03-04 (Wed): Final check-in for features/regular bug fixes (Feature Freeze)
- 2014-03-09 (Mon): API change report updated for review (new APIs, status changes)
- 2014-03-11 (Wed): Final check-in (response to code review, except some BRS items)
- 2014-03-18 (Wed): ICU 55 RC
- 2014-04-01 (Wed): ICU 55 GA
- ICU4J CharsetProvider - canonical name issue
- Original ticket: #11479 do not rely on Charset.forName() recursion detection
- Test failure on Apple Java 6
- Yoshito’s proposal : remove the code trying to use a same canonical name with JRE [see icu core list posting this morning]
- Charset.name() (“Java canonical name”) must be the MIME-preferred name, or an IANA name, or else have an “x-” prefix.
- Charset.equals(other): “Two charsets are equal if, and only if, they have the same canonical names.”
- Scenario: Let’s say...
- JDK has Charset C which implements MIME name “ISO-8859-2”.
- ICU has Charset D which implements MIME name “ISO-8859-2” but with some mappings different from those in C.
- ICU has Charset E which implements MIME name “ISO-8859-2” but with some mappings different from those in C and D.
- C, D, and E must have different canonical names. What should D.name() and E.name() be?
- Can CharsetICU have an extra method - #mimeName()?
- Its .name() is already the MIME-preferred name, if there is one.
- conclusion
- ICU Charset implementation relies on preferred MIME name from our converter alias data (in ticket #11479)
- Document ‘equals’ does not work when two or more different charset implementations are available with the same preferred MIME name (Markus submitted new ticket #11493)
- IncomingBugs * Reviews
- deleting spam that got through - please also update regexes at http://bugs.icu-project.org/trac/wiki/BadContent and delete-as-spam in http://bugs.icu-project.org/trac/admin/spamfilter/monitor (srl)
2015/01/14
- Tool to ensure that closed tickets marked as fixed (as opposed to won’t fix, duplicate etc.) include changes to the trunk. Maybe trac can enforce this. (Travis)
- one idea is that when a trunk commit happens, a field is updated in trac (setting the ‘has commits’ bit on). could be used for reports etc. srl
- Some tickets close without trunk changes - docs, failed experiments, etc
- -> after branch review, the ticket will be moved to review-feedback state
- ICU4J 52 maintenance update for eclipse (Yoshito)
- Korean word break fix [http://bugs.icu-project.org/trac/ticket/11466]
- eclipse team wants it to be version 52.1.1
- publish the version as ICU4J 52.1.1 also for non-eclipse users.
- ICU4J 52.1.1 ticket
- -> Yoshito will post ICU4J 52.1.1 files and update the 52 download page later in this week.
- ICU4C SimpleDateFormat malloc optimization [#11457] (Yoshito)
- avoid malloc as much as possible [#11294] / matchString (case insensitive substring match, currently case folding in a copy - which triggers malloc), UnicodeString assignment in some timezone formatting code
- Proposed fix in yoshito’s branch
- Similar change in ICU 4.4 improved our client code’s performance about 20 times
- DB2 query which triggers a lot of date formatting in a tight loop
- DB2 overrides ICU malloc - because ICU does not provide thread local/global memory model distinction, their malloc locks global memory pool and affecting other theads.
- A new issue [#11457] recently introduced
- Fixed threading problem in SimpleDate::format()
- Root cause: SimpleDateFormat mutate NumberFormat by setMaximumIntegerDigits / setMinimumIntegerDigits to format each numeric field. e.g. “y-MM-dd” (y: min=1, MM: min=2/max=2, dd: min=2/max=2)
- Proposed solution (yoshito)
- Create an internal simple subclass of NumberFormat supporting functionalities necessary for DateFormat’s use. (no currency, no grouping, etc.) - DateNumberFormat
- DateNumberFormat implements a const format method taking minimum/maximum integer digits.
- By default, SimpleDateFormat constructor creates a DateNumberFormat for a given locale unless it requires “complex” numbering system.
- SimpleDateFormat::format() to check the type of NumberFormat at runtime. If it is a DateNumberFormat, using the format method taking mix/max digits for formatting numeric field (so you do not need to lock / clone a NumberFormat instance), otherwise, mutex-lock the NumberFormat instance / or clone per thread.
- Consensus: Sounds good
- API Proposals for ICU 55
- Check date symbol enums C vs J - related year missing in J?
- IncomingBugs * Reviews
2015/01/07
- Collation (Markus)
- Done: Normal Hiragana letters have common tertiary weights, small Hiragana have below-common weights in root.
- Done: Script reordering reorders single scripts, not groups.
- Windows build failure reported from unmodified toolutil.vcxproj?? http://bugs.icu-project.org/trac/build/icu4c-b-win/38126#step_build
- #includes changed.. (Steven)
- Copied download/55m1 page to download/55 and added script reordering.
- API Proposals for ICU 55
- IncomingBugs * Reviews
Past Meetings