Re: Atomic increment/decrement
George Rhoten <[email protected]> Tue, 16 Nov 2004 16:36:59 -0800
| Newsgroups | gmane.comp.lib.icu.general |
|---|---|
| Message-ID | <OFCDC343B6.DB023034-ON86256F4F.0001C75A-88256F4F.00036177@us.ibm.com> |
Hopefully, this e-mail will get through to the icu mailing list. IBM e-mails don't seem to work with the mailing lists today. I do not agree with this proposal. ICU should work on older versions of an operating system. We try our very best to allow ICU binaries built on a new version of an operating system to work on older operating systems too. This is mainly with regards to the core library code. The test code doesn't count. Some non-core Apple people do distribute ICU binaries to older versions of Mac OS X. Open Office and several other groups would have to know about this versioning problem, if this feature was added. Most people want ICU to work, and they don't want to know the details :-/ The default should be to use all functions that are available to all recent versions of Darwin, and not the ones that may be occasionally there. This doesn't mean that you can't turn on this feature. It just means that the default is to use the standard way of doing things. If you want to add something like -DU_USE_MACOSX_ATOMIC_INCREMENT or something like that to Apple's build script to enable this in ICU, that would be fine to add. Configure should not be used to detect this feature, since you really have to know what you're doing to use this feature (I believe this includes you). So to summarize... It's okay to add this code to ICU, but it's not okay to use it by default. George Rhoten IBM Globalization Center of Competency/ICU San José, CA, USA Deborah Goldsmith <[email protected]> Sent by: [email protected] 11/16/2004 04:11 PM To icu list <[email protected]> cc Subject Atomic increment/decrement I'd like to have umutex.c take advantage of built-in atomic increment/decrement functions on Darwin. The Darwin-specificity can be taken care of by using a U_DARWIN conditional compile. The sticky issue is that they are not available on all versions of Darwin (just as ICU has new functions added each release). On top of that, Darwin does not have a global "version of Darwin" preprocessor variable defined. So it looks like this will require adding something to configure_in to test for the presence of these particular functions, or ICU won't compile on a version of Darwin lacking these functions. Beyond that, does there need to be a runtime test, to allow a version of ICU built on a version of Darwin that has the functions, to run on a version of Darwin that doesn't have the functions? In general ICU doesn't seem to go that far in terms of testing for availability: it only checks for what's on the system you're building on. Apple doesn't particularly have a need for this, either: for us it's OK for a version of ICU built on Darwin version A to only run on A or later. I'd be curious to hear people's thoughts on the best way of doing this. I already had a private exchange with Steven about this. Deborah _______________________________________________ icu mailing list [email protected] http://oss.software.ibm.com/developerworks/oss/mailman/listinfo/icu