[jira] Updated: (STDCXX-511) locale tests crash if unable to get at least one user provided locale
[ https://issues.apache.org/jira/browse/STDCXX-511?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Travis Vitek updated STDCXX-511: Attachment: fix.patch 2007-09-4 Travis Vitek [EMAIL PROTECTED] STDCXX-511 22.locale.numpunct.mt.cpp (run_test): fatal assert if unable to create at least one locale 22.locale.ctype.mt.cpp (run_test): ditto locale tests crash if unable to get at least one user provided locale - Key: STDCXX-511 URL: https://issues.apache.org/jira/browse/STDCXX-511 Project: C++ Standard Library Issue Type: Bug Components: Tests Affects Versions: trunk Reporter: Travis Vitek Assignee: Travis Vitek Priority: Minor Fix For: 4.2 Attachments: fix.patch Running a locale test with the '--locale' option that has no valid locale names will cause the test to crash. An example... C:\build\stdcxx\win32.vc8\msvc-8.0\15d\tests22.locale.time.put.mt.exe --locales=x # INFO (S1) (10 lines): # TEXT: # COMPILER: MSVC, _MSC_VER = 1400 # ENVIRONMENT: i86 running win32 # FILE: 22.locale.time.put.mt.cpp # COMPILED: Aug 3 2007, 13:55:51 # COMMENT: thread safety # CLAUSE: lib.locale.time.put # INFO (S1) (3 lines): # TEXT: testing std::time_putcharT with 2 threads, 10 iterations each, in locales { x } # CLAUSE: lib.locale.time.put # INFO (S1) (3 lines): # TEXT: exercising std::time_putchar # CLAUSE: lib.locale.time.put This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Assigned: (STDCXX-542) message catalog assert/crash after opening multiple
[ https://issues.apache.org/jira/browse/STDCXX-542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Travis Vitek reassigned STDCXX-542: --- Assignee: Travis Vitek message catalog assert/crash after opening multiple --- Key: STDCXX-542 URL: https://issues.apache.org/jira/browse/STDCXX-542 Project: C++ Standard Library Issue Type: Bug Components: 22. Localization Environment: Windows Reporter: Travis Vitek Assignee: Travis Vitek The below code asserts/crashes reliably on windows, but runs to completion on at least one other platform. Note that I copied the rwstdmessages.dll from the examples directory to simplify the testcase. C:\build\stdcxx\build\msvc-8.0\15d\teststype t.cpp #include iostream #include locale #include cassert // note same problem occurs even if catalog files are // different. #ifdef _WIN32 # define CATALOG0 rwstdmessages.dll # define CATALOG1 rwstdmessages.dll #else # define CATALOG0 ./rwstdmessages.cat # define CATALOG1 ./rwstdmessages.cat #endif int main (int argc, char *argv[]) { typedef std::messageschar messagesT; const std::locale loc; const messagesT msgs = std::use_facetmessagesT(loc); const messagesT::catalog cat0 = msgs.open (CATALOG0, loc); assert(! (cat0 0)); // ensure open succeeded const messagesT::catalog cat1 = msgs.open (CATALOG1, loc); assert(! (cat1 0)); // ensure open succeeded msgs.close (cat1); // crash/assert here msgs.close (cat0); return 0; } C:\build\stdcxx\build\msvc-8.0\15d\testst C:\build\stdcxx\include\rw/_iterbase.h:436: class __rw::__rw_cat *__thiscall __rw::__rw_debug_iterclass std::vectorclass __rw::__rw_cat *,class std::allocatorclass __rw::__rw_cat * ,class __rw::__rw_cat * *,class __rw::__rw_cat * *::operator *(void) const: Assertion '_C_is_dereferenceable ()' failed. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (STDCXX-542) message catalog assert/crash after opening multiple
[ https://issues.apache.org/jira/browse/STDCXX-542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Travis Vitek updated STDCXX-542: Fix Version/s: 4.2.1 Affects Version/s: 4.1.2 4.1.3 4.1.4 2007-09-04 Travis Vitek [EMAIL PROTECTED] STDCXX-542 catalog.cpp (catclose): check bounds before index to avoid out of bound access Index: catalog.cpp === --- catalog.cpp (revision 570205) +++ catalog.cpp (working copy) @@ -134,7 +134,7 @@ delete __rw_catlist[i]; __rw_catlist[i] = 0; CatVector::size_type j; -for (j = i+1; __rw_catlist[j] j __rw_catlist.size(); j++) +for (j = i+1; j __rw_catlist.size() __rw_catlist[j]; j++) __rw_catlist[j-1] = __rw_catlist[j]; if (j __rw_catlist.size()) __rw_catlist[j] = 0; message catalog assert/crash after opening multiple --- Key: STDCXX-542 URL: https://issues.apache.org/jira/browse/STDCXX-542 Project: C++ Standard Library Issue Type: Bug Components: 22. Localization Affects Versions: 4.1.2, 4.1.3, 4.1.4 Environment: Windows Reporter: Travis Vitek Assignee: Travis Vitek Fix For: 4.2.1 The below code asserts/crashes reliably on windows, but runs to completion on at least one other platform. Note that I copied the rwstdmessages.dll from the examples directory to simplify the testcase. C:\build\stdcxx\build\msvc-8.0\15d\teststype t.cpp #include iostream #include locale #include cassert // note same problem occurs even if catalog files are // different. #ifdef _WIN32 # define CATALOG0 rwstdmessages.dll # define CATALOG1 rwstdmessages.dll #else # define CATALOG0 ./rwstdmessages.cat # define CATALOG1 ./rwstdmessages.cat #endif int main (int argc, char *argv[]) { typedef std::messageschar messagesT; const std::locale loc; const messagesT msgs = std::use_facetmessagesT(loc); const messagesT::catalog cat0 = msgs.open (CATALOG0, loc); assert(! (cat0 0)); // ensure open succeeded const messagesT::catalog cat1 = msgs.open (CATALOG1, loc); assert(! (cat1 0)); // ensure open succeeded msgs.close (cat1); // crash/assert here msgs.close (cat0); return 0; } C:\build\stdcxx\build\msvc-8.0\15d\testst C:\build\stdcxx\include\rw/_iterbase.h:436: class __rw::__rw_cat *__thiscall __rw::__rw_debug_iterclass std::vectorclass __rw::__rw_cat *,class std::allocatorclass __rw::__rw_cat * ,class __rw::__rw_cat * *,class __rw::__rw_cat * *::operator *(void) const: Assertion '_C_is_dereferenceable ()' failed. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Resolved: (STDCXX-542) message catalog assert/crash after opening multiple
[ https://issues.apache.org/jira/browse/STDCXX-542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Travis Vitek resolved STDCXX-542. - Resolution: Fixed message catalog assert/crash after opening multiple --- Key: STDCXX-542 URL: https://issues.apache.org/jira/browse/STDCXX-542 Project: C++ Standard Library Issue Type: Bug Components: 22. Localization Affects Versions: 4.1.2, 4.1.3, 4.1.4 Environment: Windows Reporter: Travis Vitek Assignee: Travis Vitek Fix For: 4.2.1 The below code asserts/crashes reliably on windows, but runs to completion on at least one other platform. Note that I copied the rwstdmessages.dll from the examples directory to simplify the testcase. C:\build\stdcxx\build\msvc-8.0\15d\teststype t.cpp #include iostream #include locale #include cassert // note same problem occurs even if catalog files are // different. #ifdef _WIN32 # define CATALOG0 rwstdmessages.dll # define CATALOG1 rwstdmessages.dll #else # define CATALOG0 ./rwstdmessages.cat # define CATALOG1 ./rwstdmessages.cat #endif int main (int argc, char *argv[]) { typedef std::messageschar messagesT; const std::locale loc; const messagesT msgs = std::use_facetmessagesT(loc); const messagesT::catalog cat0 = msgs.open (CATALOG0, loc); assert(! (cat0 0)); // ensure open succeeded const messagesT::catalog cat1 = msgs.open (CATALOG1, loc); assert(! (cat1 0)); // ensure open succeeded msgs.close (cat1); // crash/assert here msgs.close (cat0); return 0; } C:\build\stdcxx\build\msvc-8.0\15d\testst C:\build\stdcxx\include\rw/_iterbase.h:436: class __rw::__rw_cat *__thiscall __rw::__rw_debug_iterclass std::vectorclass __rw::__rw_cat *,class std::allocatorclass __rw::__rw_cat * ,class __rw::__rw_cat * *,class __rw::__rw_cat * *::operator *(void) const: Assertion '_C_is_dereferenceable ()' failed. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Resolved: (STDCXX-531) create test 22.locale.messages.mt.cpp
[ https://issues.apache.org/jira/browse/STDCXX-531?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Travis Vitek resolved STDCXX-531. - Resolution: Fixed Ready for review. create test 22.locale.messages.mt.cpp -- Key: STDCXX-531 URL: https://issues.apache.org/jira/browse/STDCXX-531 Project: C++ Standard Library Issue Type: Sub-task Components: 22. Localization, Thread Safety Affects Versions: 4.1.2, 4.1.3, 4.1.4 Reporter: Travis Vitek Assignee: Travis Vitek Fix For: 4.2 Attachments: 22.locale.messages.mt.cpp -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Assigned: (STDCXX-542) message catalog assert/crash after opening multiple
[ https://issues.apache.org/jira/browse/STDCXX-542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Sebor reassigned STDCXX-542: --- Assignee: Farid Zaripov (was: Travis Vitek) This looks related to STDCXX-508. Assigned to Farid. Farid, if it's basically the same thing it might make sense to fix it for 4.2. message catalog assert/crash after opening multiple --- Key: STDCXX-542 URL: https://issues.apache.org/jira/browse/STDCXX-542 Project: C++ Standard Library Issue Type: Bug Components: 22. Localization Affects Versions: 4.1.2, 4.1.3, 4.1.4 Environment: Windows Reporter: Travis Vitek Assignee: Farid Zaripov Fix For: 4.2.1 The below code asserts/crashes reliably on windows, but runs to completion on at least one other platform. Note that I copied the rwstdmessages.dll from the examples directory to simplify the testcase. C:\build\stdcxx\build\msvc-8.0\15d\teststype t.cpp #include iostream #include locale #include cassert // note same problem occurs even if catalog files are // different. #ifdef _WIN32 # define CATALOG0 rwstdmessages.dll # define CATALOG1 rwstdmessages.dll #else # define CATALOG0 ./rwstdmessages.cat # define CATALOG1 ./rwstdmessages.cat #endif int main (int argc, char *argv[]) { typedef std::messageschar messagesT; const std::locale loc; const messagesT msgs = std::use_facetmessagesT(loc); const messagesT::catalog cat0 = msgs.open (CATALOG0, loc); assert(! (cat0 0)); // ensure open succeeded const messagesT::catalog cat1 = msgs.open (CATALOG1, loc); assert(! (cat1 0)); // ensure open succeeded msgs.close (cat1); // crash/assert here msgs.close (cat0); return 0; } C:\build\stdcxx\build\msvc-8.0\15d\testst C:\build\stdcxx\include\rw/_iterbase.h:436: class __rw::__rw_cat *__thiscall __rw::__rw_debug_iterclass std::vectorclass __rw::__rw_cat *,class std::allocatorclass __rw::__rw_cat * ,class __rw::__rw_cat * *,class __rw::__rw_cat * *::operator *(void) const: Assertion '_C_is_dereferenceable ()' failed. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Reopened: (STDCXX-542) message catalog assert/crash after opening multiple
[ https://issues.apache.org/jira/browse/STDCXX-542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Sebor reopened STDCXX-542: - An issue is not Resolved until a fix for it has been committed. Reopened. message catalog assert/crash after opening multiple --- Key: STDCXX-542 URL: https://issues.apache.org/jira/browse/STDCXX-542 Project: C++ Standard Library Issue Type: Bug Components: 22. Localization Affects Versions: 4.1.2, 4.1.3, 4.1.4 Environment: Windows Reporter: Travis Vitek Assignee: Farid Zaripov Fix For: 4.2.1 The below code asserts/crashes reliably on windows, but runs to completion on at least one other platform. Note that I copied the rwstdmessages.dll from the examples directory to simplify the testcase. C:\build\stdcxx\build\msvc-8.0\15d\teststype t.cpp #include iostream #include locale #include cassert // note same problem occurs even if catalog files are // different. #ifdef _WIN32 # define CATALOG0 rwstdmessages.dll # define CATALOG1 rwstdmessages.dll #else # define CATALOG0 ./rwstdmessages.cat # define CATALOG1 ./rwstdmessages.cat #endif int main (int argc, char *argv[]) { typedef std::messageschar messagesT; const std::locale loc; const messagesT msgs = std::use_facetmessagesT(loc); const messagesT::catalog cat0 = msgs.open (CATALOG0, loc); assert(! (cat0 0)); // ensure open succeeded const messagesT::catalog cat1 = msgs.open (CATALOG1, loc); assert(! (cat1 0)); // ensure open succeeded msgs.close (cat1); // crash/assert here msgs.close (cat0); return 0; } C:\build\stdcxx\build\msvc-8.0\15d\testst C:\build\stdcxx\include\rw/_iterbase.h:436: class __rw::__rw_cat *__thiscall __rw::__rw_debug_iterclass std::vectorclass __rw::__rw_cat *,class std::allocatorclass __rw::__rw_cat * ,class __rw::__rw_cat * *,class __rw::__rw_cat * *::operator *(void) const: Assertion '_C_is_dereferenceable ()' failed. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[FYI] Jira issue life cycle
FYI: Here's a workflow diagram showing the life cycle of Jira issues: http://www.atlassian.com/software/jira/docs/latest/default_workflow.html The life cycle of most stdcxx issues goes something like this: (Create) | V +-+ |Open | +-+ | ^ | | | (Stop Progress when not actively working on the issue.) | | (Start Progress when you start actively working on the issue.) | | V | +---+ |In Progress| +---+ | | | | | (Resolve after committing a patch and successfully testing | it on a subset of platforms.) | | | V | ++ | |Resolved| | ++ | | | | (Close after a test for the bug has been committed and confirmed to pass on available platforms.) | | V V +--+ |Closed| +--+ Note that most issues shouldn't be Resolved as Fixed until a patch for them has been committed and verified. They can be closed after a test for the bug has been added to test suite (if it doesn't exist at the time the issue is created) and after nightly builds have confirmed that the test passes. Martin
[jira] Reopened: (STDCXX-413) 22.locale.money.get.cpp doesn't test international monetary formats
[ https://issues.apache.org/jira/browse/STDCXX-413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Sebor reopened STDCXX-413: - Reopened until the patch has been committed. I have rerun the test with the patch and I see twice as many active assertions as before but I note that the test simply runs the same number of test cases twice (toggling the Intl flag between the runs). Travis, can you confirm that with the patch applied the test exercises STDCXX-412? 22.locale.money.get.cpp doesn't test international monetary formats --- Key: STDCXX-413 URL: https://issues.apache.org/jira/browse/STDCXX-413 Project: C++ Standard Library Issue Type: Bug Components: Tests Affects Versions: 4.1.3 Reporter: Mark Brown Assignee: Travis Vitek Fix For: 4.2 Attachments: money.get.patch The test 22.locale.money.get.cpp doesn't exercise international monetary formats. See: -Original Message- From: [EMAIL PROTECTED] Sent: Sat, 12 May 2007 15:42:16 -0600 To: stdcxx-dev@incubator.apache.org Subject: Re: svn commit: r537492 - /incubator/stdcxx/trunk/doc/stdlibref/money-get.html Mark Brown wrote: -Original Message- From: [EMAIL PROTECTED] Sent: Sat, 12 May 2007 14:09:34 -0600 To: stdcxx-dev@incubator.apache.org Subject: Re: svn commit: r537492 - /incubator/stdcxx/trunk/doc/stdlibref/money-get.html Mark Brown wrote: Martin, Thanks for fixing it! I have a question about the new code: Could you show an example of an international monetary string that would be correctly parsed by the facet? I tried a few but none of them could be parsed. For instance, USD 1234 gives this output: USD 1234 -- -- 0 The same happens with g++ and STLport so I suspect I must be doing something wrong. Removing the space between the currency symbol and the number didn't make a difference. Hmm, I guess I should have tested the internationalized behavior before I put it in. I think the code is correct as is and your input should be correctly parsed by the facet (and produce 1234 on output). I'm not sure what's going on. Stepping through the code it looks like the money_get facet ends up retrieving the wrong specialization of moneypunct, i.e., moneypunctchar, false when it needs moneypunctchar, true. What's puzzling is that both libstdc++ and STLport behave the same. It seems like too much of a coincidence for all three implementations to suffer from the same bug. In any event, thanks for bringing it to our attention! Can you open an issue for this as well so we don't forget to investigate it in case I don't get around to it soon? I can certainly do that. I should also mention that while investigating this problem I found a test that's supposed to test this functionality: 22.locale.money.get.cpp. The test fails 20 out of 1934 assertions but none of them look like they have anything to do with parsing international monetary values. It doesn't look like they are being tested at all... Yeah, I noticed it too. I'm in the process of enhancing the test to exercise the international formats as well. If you don't mind creating another issue for the test, just for tracking purposes, that would be swell! Martin -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Reopened: (STDCXX-532) create test 22.locale.codecvt.mt.cpp
[ https://issues.apache.org/jira/browse/STDCXX-532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Sebor reopened STDCXX-532: - The attached test has some C++ conformance issues and doesn't compile with gcc. See the errors below. Reopened until the problems have been resolved and until the corrected test has been committed. 22.locale.codecvt.mt.cpp: In function `void test_codecvt(const std::locale, const MyBufferinternT, const MyBufferchar, const MyCodecvtData_TinternT, MyCodecvtData::CvtId)': 22.locale.codecvt.mt.cpp:211: error: expected initializer before result 22.locale.codecvt.mt.cpp:217: error: `result' was not declared in this scope 22.locale.codecvt.mt.cpp:235: error: expected initializer before result 22.locale.codecvt.mt.cpp:242: error: `result' was not declared in this scope 22.locale.codecvt.mt.cpp:264: error: expected initializer before result 22.locale.codecvt.mt.cpp:270: error: `result' was not declared in this scope 22.locale.codecvt.mt.cpp: In function `void test_codecvt(const std::locale, const MyBufferinternT, const MyBuffer char, const MyCodecvtData_TinternT, MyCodecvtData::CvtId) [with internT = char]':22.locale.codecvt.mt.cpp:331: instantiated from here 22.locale.codecvt.mt.cpp:201: warning: unused variable 'from' 22.locale.codecvt.mt.cpp:202: warning: unused variable 'from_end' 22.locale.codecvt.mt.cpp:203: warning: unused variable 'from_next' 22.locale.codecvt.mt.cpp:206: warning: unused variable 'to_limit' 22.locale.codecvt.mt.cpp:230: warning: unused variable 'to_limit' 22.locale.codecvt.mt.cpp:254: warning: unused variable 'from' 22.locale.codecvt.mt.cpp:255: warning: unused variable 'from_end' 22.locale.codecvt.mt.cpp:256: warning: unused variable 'from_next' 22.locale.codecvt.mt.cpp:259: warning: unused variable 'to_limit' 22.locale.codecvt.mt.cpp:289: warning: comparison between signed and unsigned integer expressions 22.locale.codecvt.mt.cpp: In function `void test_codecvt(const std::locale, const MyBufferinternT, const MyBuffer char, const MyCodecvtData_TinternT, MyCodecvtData::CvtId) [with internT = wchar_t]': 22.locale.codecvt.mt.cpp:336: instantiated from here 22.locale.codecvt.mt.cpp:201: warning: unused variable 'from' 22.locale.codecvt.mt.cpp:202: warning: unused variable 'from_end' 22.locale.codecvt.mt.cpp:203: warning: unused variable 'from_next' 22.locale.codecvt.mt.cpp:206: warning: unused variable 'to_limit' 22.locale.codecvt.mt.cpp:336: instantiated from here 22.locale.codecvt.mt.cpp:230: warning: unused variable 'to_limit' 22.locale.codecvt.mt.cpp:254: warning: unused variable 'from' 22.locale.codecvt.mt.cpp:255: warning: unused variable 'from_end' 22.locale.codecvt.mt.cpp:256: warning: unused variable 'from_next' 22.locale.codecvt.mt.cpp:259: warning: unused variable 'to_limit' 22.locale.codecvt.mt.cpp:289: warning: comparison between signed and unsigned integer expressions create test 22.locale.codecvt.mt.cpp - Key: STDCXX-532 URL: https://issues.apache.org/jira/browse/STDCXX-532 Project: C++ Standard Library Issue Type: Sub-task Reporter: Travis Vitek Assignee: Travis Vitek Attachments: 22.locale.codecvt.mt.cpp -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Closed: (STDCXX-529) create test 22.locale.time.get.mt.cpp
[ https://issues.apache.org/jira/browse/STDCXX-529?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Sebor closed STDCXX-529. --- Test committed thus: http://svn.apache.org/viewvc?view=revrevision=570286 Closed. create test 22.locale.time.get.mt.cpp - Key: STDCXX-529 URL: https://issues.apache.org/jira/browse/STDCXX-529 Project: C++ Standard Library Issue Type: Sub-task Components: 22. Localization, Thread Safety Affects Versions: 4.1.2, 4.1.3, 4.1.4 Reporter: Travis Vitek Assignee: Travis Vitek Fix For: 4.2 Attachments: 22.locale.time.get.mt.cpp -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
Re: [PATCH] Use __rw_atomic_xxx() on Windows
What's the status of this? We need to decide if we can put this in 4.2 or defer it for 4.2.1. To put it in 4.2 we need to make sure the new functions don't cause a performance regression in basic_string. I.e., we need to see the before and after numbers. Martin Martin Sebor wrote: One concern I have is performance. Does replacing the intrinsics with out of line function call whose semantics the compiler has no idea about have any impact on the runtime efficiency of the generated code? I would be especially interested in real life scenarios such as the usage of the atomic operations in basic_string. It would be good to see some before and after numbers. If you don't have all the platforms to run the test post your benchmark and Travis can help you put them together. FYI, in case you're not aware of this (it's not immediately obvious), even though we define the full set of atomic operations (i.e., for all integer types) the library only uses the overloads for int and long. Martin Farid Zaripov wrote: Attached is a patch, adding __rw_atomic_{add|xchg}xx() functions on Win32/Win64 platforms. ChangeLog: * msvc-7.0.config: Added AS config variable. * msvc-8.0-x64.config: Ditto. * filterdef.js: Added definition of the CustomFileDef class * projectdef.js (InitAsmTool): New function to init custom build rule for .asm files. * projects.js: Added definitions of the platform dependent files. * utilities.js: Read AS configuration variable from the .config file. * i86/atomic.asm: New file with definitions of the __rw_atomic_xxx() for Win32 platform. * i86_64/atomic.asm: New file with definitions of the __rw_atomic_xxx() for Windows/x64 platform. * _mutex.h: Removed all dependencies on InterlockedXXX() API functions. Use new __rw_atomic_xxx() functions instead of InterlockedXXX(). * once.cpp [_WIN32 _DLL]: Tell linker to export __atomic_xxx() functions, defined in .asm files. Farid. Index: etc/config/windows/filterdef.js === --- etc/config/windows/filterdef.js(revision 570339) +++ etc/config/windows/filterdef.js(working copy) @@ -25,7 +25,7 @@ var sourceFilterName = Source Files; var sourceFilterUuid = {4FC737F1-C7A5-4376-A066-2A32D752A2FF}; -var sourceFilterExts = .cpp;.cxx;.s; +var sourceFilterExts = .cpp;.cxx;.s;.asm; var headerFilterName = Header Files; var headerFilterUuid = {93995380-89BD-4b04-88EB-625FBE52EBFB}; @@ -56,6 +56,21 @@ return str; } +// +// CustomFileDef class +// + +// CustomFileDef .ctor +function CustomFileDef(filepath, platform, initfun) +{ +this.filepath = filepath; +this.platform = platform; +this.initfun = initfun; +} + +// global array with platform dependent files definitions +var customFileDefs = new Array(); + // common macros var cmnMacros = new Array(); @@ -126,7 +141,29 @@ var VCFile = filter.AddFile(filename); if (null != filetype typeof(VCFile.FileType) != undefined) VCFile.FileType = filetype; -+ +var customFileDef = null; + +if (!exclude) +{ +// find the platform dependent file definition +for (var i = 0; i customFileDefs.length; ++i) +{ +var custFileDef = customFileDefs[i]; +var pos = VCFile.FullPath.length - custFileDef.filepath.length; +if (0 = pos pos == VCFile.FullPath.indexOf(custFileDef.filepath)) +{ +customFileDef = custFileDef; +break; +} +} + +// exclude this file from build if current platform +// is not custom file target platform +if (null != customFileDef customFileDef.platform != PLATFORM) +exclude = true; +} + if (exclude) { var cfgs = VCFile.FileConfigurations; @@ -144,6 +181,12 @@ cfg.ExcludedFromBuild = exclude; } } +else if (null != customFileDef + undefined != typeof(customFileDef.initfun)) +{ +// init +customFileDef.initfun(VCFile); +} } // create VCFilter object from the FilterDef definition Index: etc/config/windows/msvc-7.0.config === --- etc/config/windows/msvc-7.0.config(revision 570339) +++ etc/config/windows/msvc-7.0.config(working copy) @@ -38,6 +38,7 @@ CXX=cl LD=cl AR=lib +AS=ml // Use singlethreaded or mutlithreaded CRT in 11s, 11d solution configurations // 0 for MS VisualStudio .NET and MS VisualStudio .NET 2003 Index: etc/config/windows/msvc-8.0-x64.config === --- etc/config/windows/msvc-8.0-x64.config(revision 570339) +++ etc/config/windows/msvc-8.0-x64.config(working copy) @@ -1,2 +1,3 @@
Re: svn commit: r569152 - /incubator/stdcxx/branches/4.2.0/etc/config/src/LIMITS.cpp
Mark Brown wrote: -Original Message- From: [EMAIL PROTECTED] Sent: Sun, 26 Aug 2007 17:37:02 -0600 To: stdcxx-dev@incubator.apache.org Subject: Re: svn commit: r569152 - /incubator/stdcxx/branches/4.2.0/etc/config/src/LIMITS.cpp Mark Brown wrote: -Original Message- From: [EMAIL PROTECTED] Sent: Fri, 24 Aug 2007 09:29:36 -0600 To: stdcxx-dev@incubator.apache.org Subject: Re: svn commit: r569152 - /incubator/stdcxx/branches/4.2.0/etc/config/src/LIMITS.cpp Andrew, please be sure to observe the 78 characters/line limit in Change Log entries as documented in bullet (3) of the Patch Format section on the Bugs page: http://incubator.apache.org/stdcxx/bugs.html#patch_format The reason for this limit in both ChangeLogs and source files is that they all need to be readable on traditional VT100 text terminals. I have seen coding styles with a 79 character limit (for instance Python) but I am curious what the rationale for the 78 character limit is when even the VT100 displays have 80 columns? Opening a file with 80 characters per line in emacs with a buffer width set to 80 columns will wrap the last character of the next line. So if all you have to work with is an 80x24 text terminal and want to run emacs in it you want files to have no more than 79 characters per line. You can recreate this experience in an xterm or similar terminal by setting it to 80 characters and starting emacs with the -nw option. If I understand correctly what you're describing, emacs -nw will display lines with up to 79 characters in a 80 column frame without wrapping. What, then, is the rationale for at most 78 characters? You're right, that was a thinko on my part. Sounds like 79 should work, but... I've done some searching online to see what coding standards there are out there and what rationale they give for imposing which limit. What I've found is there are standards that impose a limit of 80 characters, others that call for no more than 79 characters, and others still that require at most 78 characters. However, not all of them are explicit about what these characters are, specifically whether the newline separator is or isn't part of the limit. The killer argument (IMO) in favor of the 78 character limit (not including the newline, or 79 character limit including it), is the fact the Unified diff format prepends a character to every line to indicate whether it is being added ('+') or removed ('-') or neither. So with at most 78 character lines, diffs still display correctly on an 80 column display, but at 79 characters they warp around to the next line. Here's a reference: http://amis.sourceforge.net/devel/CppCodingStandard.html#linelen Martin
[jira] Commented: (STDCXX-511) locale tests crash if unable to get at least one user provided locale
[ https://issues.apache.org/jira/browse/STDCXX-511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12524950 ] Martin Sebor commented on STDCXX-511: - Travis, remember the Change Log format introduces each file name with an asterisk. That makes it possible to find the names of all files in a ChangeLog (and only those) using a simple regular expression. locale tests crash if unable to get at least one user provided locale - Key: STDCXX-511 URL: https://issues.apache.org/jira/browse/STDCXX-511 Project: C++ Standard Library Issue Type: Bug Components: Tests Affects Versions: trunk Reporter: Travis Vitek Assignee: Travis Vitek Priority: Minor Fix For: 4.2 Attachments: fix.patch Running a locale test with the '--locale' option that has no valid locale names will cause the test to crash. An example... C:\build\stdcxx\win32.vc8\msvc-8.0\15d\tests22.locale.time.put.mt.exe --locales=x # INFO (S1) (10 lines): # TEXT: # COMPILER: MSVC, _MSC_VER = 1400 # ENVIRONMENT: i86 running win32 # FILE: 22.locale.time.put.mt.cpp # COMPILED: Aug 3 2007, 13:55:51 # COMMENT: thread safety # CLAUSE: lib.locale.time.put # INFO (S1) (3 lines): # TEXT: testing std::time_putcharT with 2 threads, 10 iterations each, in locales { x } # CLAUSE: lib.locale.time.put # INFO (S1) (3 lines): # TEXT: exercising std::time_putchar # CLAUSE: lib.locale.time.put This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Closed: (STDCXX-511) locale tests crash if unable to get at least one user provided locale
[ https://issues.apache.org/jira/browse/STDCXX-511?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Sebor closed STDCXX-511. --- Resolution: Fixed Patch committed thus: http://svn.apache.org/viewvc?rev=572853view=rev. Closed. locale tests crash if unable to get at least one user provided locale - Key: STDCXX-511 URL: https://issues.apache.org/jira/browse/STDCXX-511 Project: C++ Standard Library Issue Type: Bug Components: Tests Affects Versions: trunk Reporter: Travis Vitek Assignee: Travis Vitek Priority: Minor Fix For: 4.2 Attachments: fix.patch Running a locale test with the '--locale' option that has no valid locale names will cause the test to crash. An example... C:\build\stdcxx\win32.vc8\msvc-8.0\15d\tests22.locale.time.put.mt.exe --locales=x # INFO (S1) (10 lines): # TEXT: # COMPILER: MSVC, _MSC_VER = 1400 # ENVIRONMENT: i86 running win32 # FILE: 22.locale.time.put.mt.cpp # COMPILED: Aug 3 2007, 13:55:51 # COMMENT: thread safety # CLAUSE: lib.locale.time.put # INFO (S1) (3 lines): # TEXT: testing std::time_putcharT with 2 threads, 10 iterations each, in locales { x } # CLAUSE: lib.locale.time.put # INFO (S1) (3 lines): # TEXT: exercising std::time_putchar # CLAUSE: lib.locale.time.put This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (STDCXX-532) create test 22.locale.codecvt.mt.cpp
[ https://issues.apache.org/jira/browse/STDCXX-532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Travis Vitek updated STDCXX-532: Attachment: (was: 22.locale.codecvt.mt.cpp) create test 22.locale.codecvt.mt.cpp - Key: STDCXX-532 URL: https://issues.apache.org/jira/browse/STDCXX-532 Project: C++ Standard Library Issue Type: Sub-task Reporter: Travis Vitek Assignee: Travis Vitek -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (STDCXX-531) create test 22.locale.messages.mt.cpp
[ https://issues.apache.org/jira/browse/STDCXX-531?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Travis Vitek updated STDCXX-531: Attachment: (was: 22.locale.messages.mt.cpp) create test 22.locale.messages.mt.cpp -- Key: STDCXX-531 URL: https://issues.apache.org/jira/browse/STDCXX-531 Project: C++ Standard Library Issue Type: Sub-task Components: 22. Localization, Thread Safety Affects Versions: 4.1.2, 4.1.3, 4.1.4 Reporter: Travis Vitek Assignee: Travis Vitek Fix For: 4.2 Attachments: 22.locale.messages.mt.cpp -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (STDCXX-413) 22.locale.money.get.cpp doesn't test international monetary formats
[ https://issues.apache.org/jira/browse/STDCXX-413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12524967 ] Travis Vitek commented on STDCXX-413: - The patched test sets the moneypunct facet formatting information to a known state [for both local and international], and then attempts to extract values out of fixed strings for which the result is known. This is exactly what was being done previously for local money data. This patch just adds the ability to verify the international formatted data. i.e. the test essentially does this 1. set currency symbol for local to YEN 2. set currency symbol for international to NULL 3. attempt to read local money from YEN 10 4. set currency symbol for international to YEN 5. set currency symbol for local to NULL 6. attempt to read international money from YEN 10 If you would like me to add a new test, or expand the existing test, to do a round trip for money values for user provided locales, I would be happy to. 22.locale.money.get.cpp doesn't test international monetary formats --- Key: STDCXX-413 URL: https://issues.apache.org/jira/browse/STDCXX-413 Project: C++ Standard Library Issue Type: Bug Components: Tests Affects Versions: 4.1.3 Reporter: Mark Brown Assignee: Travis Vitek Fix For: 4.2 Attachments: money.get.patch The test 22.locale.money.get.cpp doesn't exercise international monetary formats. See: -Original Message- From: [EMAIL PROTECTED] Sent: Sat, 12 May 2007 15:42:16 -0600 To: stdcxx-dev@incubator.apache.org Subject: Re: svn commit: r537492 - /incubator/stdcxx/trunk/doc/stdlibref/money-get.html Mark Brown wrote: -Original Message- From: [EMAIL PROTECTED] Sent: Sat, 12 May 2007 14:09:34 -0600 To: stdcxx-dev@incubator.apache.org Subject: Re: svn commit: r537492 - /incubator/stdcxx/trunk/doc/stdlibref/money-get.html Mark Brown wrote: Martin, Thanks for fixing it! I have a question about the new code: Could you show an example of an international monetary string that would be correctly parsed by the facet? I tried a few but none of them could be parsed. For instance, USD 1234 gives this output: USD 1234 -- -- 0 The same happens with g++ and STLport so I suspect I must be doing something wrong. Removing the space between the currency symbol and the number didn't make a difference. Hmm, I guess I should have tested the internationalized behavior before I put it in. I think the code is correct as is and your input should be correctly parsed by the facet (and produce 1234 on output). I'm not sure what's going on. Stepping through the code it looks like the money_get facet ends up retrieving the wrong specialization of moneypunct, i.e., moneypunctchar, false when it needs moneypunctchar, true. What's puzzling is that both libstdc++ and STLport behave the same. It seems like too much of a coincidence for all three implementations to suffer from the same bug. In any event, thanks for bringing it to our attention! Can you open an issue for this as well so we don't forget to investigate it in case I don't get around to it soon? I can certainly do that. I should also mention that while investigating this problem I found a test that's supposed to test this functionality: 22.locale.money.get.cpp. The test fails 20 out of 1934 assertions but none of them look like they have anything to do with parsing international monetary values. It doesn't look like they are being tested at all... Yeah, I noticed it too. I'm in the process of enhancing the test to exercise the international formats as well. If you don't mind creating another issue for the test, just for tracking purposes, that would be swell! Martin -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.