Using the Solaris SunPro Compiler and the native C++ Standard Library
When using the Solaris SunPro compiler and the native C++ Standard Library, the number of bytes counted by an RWAuditStreamBuffer cannot be printed without forcing the compiler to invoke the member conversion operator. The following code demonstrates the issue:
RWAuditStreamBuffer buf; RWbostream bcount(&buf); std::cout << buf << std::endl; |
This problem affects the Essential Tools examples manual/auditbuf and manual/auditbufx. The problem is not observed when using the STLPort C++ Standard Library.
On HP-UX, using other than C Locales with the C++ Standard Library
The C++ Standard Library that comes with the HP-UX C++ compiler has problems with locales other than the "C" locale. This can cause failures in RWAnsiLocale::stringToDate(). (SP-10843 / HP CR# QXCR1000990079).]
The Internationalization Module depends on the International Components for Unicode (ICU), a set of open-source C and C++ libraries developed and maintained by IBM. The ICU is included in binary form with the Internationalization Module. When building the Internationalization Module via RCB, you may use the provided binary (by default), or an installation of ICU already existing on your system.
The installer always copies the ICU onto your disk if you choose to install the Internationalization Module. You may simply remove it if it is not needed.
This release of the Internationalization Module was certified using version 4.4.1 of the ICU:
Here is the version 4.4.1 readme: http://source.icu-project.org/repos/icu/icu/tags/release-4-4-1/readme.html
Here is the download site: http://download.icu-project.org/files/icu4c/4.4.1/
Unicode Regular Expression support, via RWURegularExpression, is currently supported at Levels 1,2 and 3 as presented in version 5.1 of the Unicode Technical Report number 18. This technical report contains suggested features and syntax for a Unicode Regular Expression solution. The technical report is available online at: http://www.unicode.org/reports/tr18/tr18-5.1.html.
At Level 1, string character comparisons are performed based on the bitpatterns of the characters in the pattern and search strings; canonical equivalents are not matched. No locale-dependent features are currently supported, with the exception of the detection of breaks in the text (character, word, line, and sentence breaks). In the Internationalization Module, this level is called "Basic Conformance Level."
At levels 2 and 3, character comparisons are done with locale-specific knowledge, cannonically equivalent character sequences match, and surrogate pairs are correctly handled. In the Internationalization Module, this level is called "Tailored Conformance Level."
Please note that, although version 5.1 of UTR 18 was used to direct the development of RWURegularExpression, UTR 18 has since been updated. The latest version of this technical report is changed in two notable ways:
First, direct support for surrogates is now recommended at Level 1, whereas it had previously been recommended for Level 2 and higher.
Second, the suggested syntax for the construction of Unicode Regular Expression patterns has been changed to a more PERL-like syntax.
At this time, RWURegularExpression conforms to the earlier version of UTR 18.
Memory tools (specifically Purify and Valgrind) report that the ICU holds some amount of memory at program termination. This memory will be released by a call to u_cleanup (found in <unicode/uclean.h>), which restores ICU to its initial state.
Threading Package:
RWThreadPool::stop() does not ensure that threads that have already removed themselves from the queue (but which haven't completed executing) are joined before returning. These threads may attempt to access members of RWThreadPool after it has gone out of scope, resulting in abnormal terminations or assertions.
As a general workaround, a short sleep (1 second) after the call to RWThreadPool::stop() should allow any outstanding threads to stop and join on their own.
We are investigating this issue and will attempt to resolve it in a future release. (SP-10213)
The Threads Platform Guide documents that user-defined stack attributes are supported on Linux. This is not currently the case. We continue to investigate providing stack attribute support on this platform; however, we are unable to do so at this time. (SP-13419)
Smart Pointers Package:
The RWTOnlyPointer copy constructor and assignment operator take const RWTOnlyPointer references, but casts away const on the parameter in order to invalidate it.
The parameters should be changed to non-const references to be correct, but this could potentially break user code which depends on being able to pass a const parameter. This issue will be fixed in the future.
Do not use RWTOnlyPointer instances in containers that expect assignability and copy constructability. This could cause issues because the value passed to the copy constructor or assignment operator will be invalidated. (SP-10222)
Copyright © Rogue Wave Software, Inc. All Rights Reserved.
The Rogue Wave name and logo, and SourcePro, are registered trademarks of Rogue Wave Software. All other trademarks are the property of their respective owners.
Provide feedback to Rogue Wave about its documentation.