RE: svn commit: r597111 - /incubator/stdcxx/branches/4.2.x/etc/config/src/

2007-11-27 Thread Farid Zaripov
 -Original Message-
 From: Martin Sebor [mailto:[EMAIL PROTECTED] 
 Sent: Monday, November 26, 2007 10:29 PM
 To: stdcxx-dev@incubator.apache.org
 Subject: RE: svn commit: r597111 - 
 /incubator/stdcxx/branches/4.2.x/etc/config/src/

 For the first level of headers it might be doable. I suspect 
 a recursive implementation would be more involved. But then 
 again, maybe not.
 Care to prototype it?

  I can start from windows scripts, and then implement the
identical algorithm in unix makefile.

Farid.


RE: [PING] Re: library and build sizes on Windows

2007-11-27 Thread Farid Zaripov
 -Original Message-
 From: Martin Sebor [mailto:[EMAIL PROTECTED] 
 Sent: Thursday, November 22, 2007 2:19 AM
 To: stdcxx-dev@incubator.apache.org
 Subject: [PING] Re: library and build sizes on Windows
 
 So would be it possible to change the Windows build 
 infrastructure to spit out the date and time in the same 
 format as on UNIX? I.e.,
 
  ### date:
  Wed Oct 31 09:38:50 UTC 2007
 
 Including the ### date: part. The exact format of the 
 timestamp itself doesn't have to be exactly the same just as 
 long as it includes the time as well as the date, and it's 
 all on the same line.

  Done:  http://svn.apache.org/viewvc?rev=598697view=rev

Farid.


RE: question on the examples for the source/forward/backward incompatible changes

2007-11-27 Thread Farid Zaripov
 -Original Message-
 From: Martin Sebor [mailto:[EMAIL PROTECTED] On Behalf Of Martin Sebor
 Sent: Saturday, November 24, 2007 8:29 PM
 To: stdcxx-dev@incubator.apache.org
 Subject: Re: question on the examples for the 
 source/forward/backward incompatible changes
 
 This is an interesting example because it doesn't actually 
 break programs at compile time but rather changes their 
 runtime behavior, something that typically is associated with 
 binary compatibility.

  Why with binary compatibility? From the current document:
Source compatibility also implies functional compatibility, although it
does not necessarily imply binary compatibility.

  In this case if program already compiled this change is binary
compatible, because the
program don't knows about new overload of the existing function. At the
same time this
change is not source compatible because it's changes functionality of
the program,
compiled with the library with new overload function.


 Incidentally, we even have an enhancement request for this 
 new inserter (maybe you've seen it):
  http://issues.apache.org/jira/browse/STDCXX-296
 
 But there certainly are cases where adding an overload can 
 break programs by introducing an ambiguity where there 
 previously was none.
 
 Martin


RE: [RFC] stdcxx release process, second draft

2007-11-27 Thread Farid Zaripov
 Martin Sebor wrote:
  
  I've incorporated everyone's feedback and committed an 
 updated version 
  with a number of enhancements of my own. Among the most 
 important are 
  the new Goals section with suggested frequencies of 
 releases, and the 
  integration of the Version Policy (I plan to delete versions.html). 
  Let me know what you think.
  
  http://incubator.apache.org/stdcxx/releases.html
  
  
  I have no objections on this document.


  Here the some examples (the only source incompatible changes):

1. Source incompatible changes

1.1. Merging two or more overloaded functions/methods in one using
default parameters:
  I.e. replacing void std::vector::resize (size_type) and void
std::vector::resize (size_type, value_type)
with void std::vector::resize (size_type, value_type = value_type()).

1.2. Implementing the additional overloads (extensions) of the standard
functions/methods:
  I.e. adding std::ostream std::ostream::operator (std::ostream,
const wchar*).

1.3. Adding some function/class in global namespace, that may interfere
with user-defined function/class
  (i.e without using '__; prefix):
  I.e. adding function void print (const char* str) { std::cout 
str  std::endl; } may conflict with user defined
  void print (const char* str) { std::printf (%s, str); } due to
multiple function definition.

1.4. Adding some public/protected methods not specified by standard,
that may interfere with user-defined
  methods in classes, inherited from the library class.

1.5. Adding some macros that may accidentally modify the user code: i.e.
#define new(p) malloc (p).

1.6. Moving some declarations from one header file to another without
#including the second one in the first
  may cause unknown identifier compiler error.


Farid.


Re: svn commit: r597111 - /incubator/stdcxx/branches/4.2.x/etc/config/src/

2007-11-27 Thread Martin Sebor

Farid Zaripov wrote:

-Original Message-
From: Martin Sebor [mailto:[EMAIL PROTECTED] 
Sent: Monday, November 26, 2007 10:29 PM

To: stdcxx-dev@incubator.apache.org
Subject: RE: svn commit: r597111 - 
/incubator/stdcxx/branches/4.2.x/etc/config/src/


For the first level of headers it might be doable. I suspect 
a recursive implementation would be more involved. But then 
again, maybe not.

Care to prototype it?


  I can start from windows scripts, and then implement the
identical algorithm in unix makefile.


On second thought, this seems like a fairly low priority enhancement
in comparison to some of the other features we've been talking about
or have scheduled (such as the test suite cleanup and the expected
failures/unexpected passes extension). I suggest to open a Jira for
it and decide on the priority WRT the rest of our tasks.

Martin


[jira] Commented: (STDCXX-336) allow multiple config.h files in the same installation directory

2007-11-27 Thread Martin Sebor (JIRA)

[ 
https://issues.apache.org/jira/browse/STDCXX-336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12546110
 ] 

Martin Sebor commented on STDCXX-336:
-

Not sure renaming the generated $BUILDDIR/include/config.h to include the name 
(and possibly version) of the compiler along with the build type would be a 
forward compatible change...

 allow multiple config.h files in the same installation directory
 

 Key: STDCXX-336
 URL: https://issues.apache.org/jira/browse/STDCXX-336
 Project: C++ Standard Library
  Issue Type: Improvement
  Components: Configuration
Affects Versions: 4.1.2, 4.1.3, 4.1.4
 Environment: all
Reporter: Andrew Black
Priority: Critical
 Fix For: 4.2.1


 A useful enhancement could be the ability to install multiple versions of the 
 standard library into the same location.  While there is nothing in the 
 makefiles that would prevent such an installation, a problem arises with the 
 config.h file in the include sub directory of the install directory.  Only 
 one config.h file can reside in this location at a time, and different 
 versions (such as those generated when characterizations are run with 
 different compilers) may differ.
 One problem that needs to be considered in implementing (or deciding not to 
 implement) this request is the situation where a config.h file hasn't been 
 generated for a particular os/compiler/buildtype/buildtag.
 Another problem to consider is when you have the same os/buildtype/buildtag, 
 but different compilers, and one or both compilers support features that the 
 other doesn't.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: [RFC] stdcxx release process, second draft

2007-11-27 Thread Martin Sebor

So here's a question: do we think STDCXX-336 doable for 4.2.1?

Martin

Farid Zaripov wrote:

Martin Sebor wrote:
I've incorporated everyone's feedback and committed an 
updated version 
with a number of enhancements of my own. Among the most 
important are 
the new Goals section with suggested frequencies of 
releases, and the 
integration of the Version Policy (I plan to delete versions.html). 
Let me know what you think.


http://incubator.apache.org/stdcxx/releases.html

  
  I have no objections on this document.



  Here the some examples (the only source incompatible changes):

1. Source incompatible changes

1.1. Merging two or more overloaded functions/methods in one using
default parameters:
  I.e. replacing void std::vector::resize (size_type) and void
std::vector::resize (size_type, value_type)
with void std::vector::resize (size_type, value_type = value_type()).

1.2. Implementing the additional overloads (extensions) of the standard
functions/methods:
  I.e. adding std::ostream std::ostream::operator (std::ostream,
const wchar*).

1.3. Adding some function/class in global namespace, that may interfere
with user-defined function/class
  (i.e without using '__; prefix):
  I.e. adding function void print (const char* str) { std::cout 
str  std::endl; } may conflict with user defined
  void print (const char* str) { std::printf (%s, str); } due to
multiple function definition.

1.4. Adding some public/protected methods not specified by standard,
that may interfere with user-defined
  methods in classes, inherited from the library class.

1.5. Adding some macros that may accidentally modify the user code: i.e.
#define new(p) malloc (p).

1.6. Moving some declarations from one header file to another without
#including the second one in the first
  may cause unknown identifier compiler error.


Farid.





[jira] Closed: (STDCXX-623) add cumulative times to the output of the exec utility

2007-11-27 Thread Martin Sebor (JIRA)

 [ 
https://issues.apache.org/jira/browse/STDCXX-623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Sebor closed STDCXX-623.
---

Resolution: Fixed
  Assignee: Martin Sebor

Done with http://svn.apache.org/viewvc?view=revrevision=594730.
Merged to 4.2.x with http://svn.apache.org/viewvc?view=revrevision=598869.
Closing.

 add cumulative times to the output of the exec utility
 --

 Key: STDCXX-623
 URL: https://issues.apache.org/jira/browse/STDCXX-623
 Project: C++ Standard Library
  Issue Type: New Feature
  Components: Utilities
Affects Versions: 4.2.0
Reporter: Martin Sebor
Assignee: Martin Sebor
 Fix For: 4.2.1


 As discussed in the post below, it would be useful to know the cumulative 
 amount of time (user, system, and wall clock) used up by the programs run by 
 the exec utility.
 http://www.nabble.com/Intel-C%2B%2B-9.1-Win-XP-build-timeouts-tf4699975.html
 This affects version 4.2.0 (there's no exec utility in previous releases) and 
 can be easily implemented in 4.2.1.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Assigned: (STDCXX-443) [IBM XLC++] should avoid using -qinline or -Q in C++ code

2007-11-27 Thread Martin Sebor (JIRA)

 [ 
https://issues.apache.org/jira/browse/STDCXX-443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Sebor reassigned STDCXX-443:
---

Assignee: Travis Vitek

 [IBM XLC++] should avoid using -qinline or -Q in C++ code
 -

 Key: STDCXX-443
 URL: https://issues.apache.org/jira/browse/STDCXX-443
 Project: C++ Standard Library
  Issue Type: Improvement
  Components: Configuration
Affects Versions: 4.1.3
 Environment: IBM VisualAge C++ 6.0, 7.0, and XLC++ 8.0
Reporter: Martin Sebor
Assignee: Travis Vitek
 Fix For: 4.2.1


 Quoting from the XLC++ 8.0 Compiler Reference, page 249 (-Q option):
 To maximize inlining: 
 *  for C programs, specify optimization (-O) and also specify the appropriate 
 -Q options for the C language.
 *  for C++ programs, specify optimization (-O) but do not specify the -Q 
 option.
 We should review whether our use of -Q in optimized builds is called for.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (STDCXX-240) #define _RWSTD_NO_EXCEPTIONS when exceptions are disabled via command line option

2007-11-27 Thread Martin Sebor (JIRA)

 [ 
https://issues.apache.org/jira/browse/STDCXX-240?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Sebor updated STDCXX-240:


Priority: Minor  (was: Major)
 Summary: #define _RWSTD_NO_EXCEPTIONS when exceptions are disabled via 
command line option  (was: [HP aCC] #define _RWSTD_NO_EXCEPTIONS when 
__HPACC_NOEH is on)

gcc #defines the macro __EXCEPTIONS when C++ exceptions are enabled. The macro 
is #undefined when -fno-exceptions is used on the command line. See: 
http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html

When using gcc we should key in on this macro, similarly to checking 
__HPACC_NOEH when using HP aCC. It's likely that other compilers have similar 
macros that we might want to treat similarly.

Making this a general enhancement (as opposed to one specific to just HP aCC) 
but bumping down Priority to Minor.

 #define _RWSTD_NO_EXCEPTIONS when exceptions are disabled via command line 
 option
 -

 Key: STDCXX-240
 URL: https://issues.apache.org/jira/browse/STDCXX-240
 Project: C++ Standard Library
  Issue Type: Improvement
  Components: Build
Affects Versions: 4.1.2, 4.1.3, 4.1.4
Reporter: Martin Sebor
Assignee: Travis Vitek
Priority: Minor
 Fix For: 4.2.1


 Moved from the Rogue Wave bug tracking database:
 Class/File: stdcomp.h
 Fix Priority: Can Fix
 Long Description: 
   *** Dec 1 1999 6:03PM *** sebor ***
 A request for enhancement.
 Subject: define RWSTD_NO_EXCEPTIONS when __HPACC_NOEH is
 Date: Wed, 01 Dec 1999 17:11:36 -0800
 From: Chichiang Wan [EMAIL PROTECTED]
 Organization: California Language Labs
 To: oemsupport [EMAIL PROTECTED]
 CC: [EMAIL PROTECTED], wanc_at_hp [EMAIL PROTECTED]
 aCC has an option +noeh.  When it is provided, __HPACC_NOEH will be
 defined.  It would be nice for users to need to only use +noeh.  For
 that,  
 RWSTD_NO_EXCEPTIONS needs to be defined conditionally. 
 =
 $ cat test.C
 #include string
 $ aCC +noeh -c test.C
 Error 46: /opt/aCC/include/memory, line 493 # Exception handling is 
 not
 enabled (do not use the +noeh flag to aCC).
   RWSTD_THROW_NO_MSG(tmp == 0, bad_alloc);
 -- Chichiang
 Modified By: sebor @ May 29, 2000 10:28:25 PM
 We should do this AND test it -- not just on aCC but in general with all 
 compilers that support this feature.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (STDCXX-408) make use of __declspec(dll{export,import}) on all platforms

2007-11-27 Thread Martin Sebor (JIRA)

 [ 
https://issues.apache.org/jira/browse/STDCXX-408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Sebor updated STDCXX-408:


   Severity: Inefficiency
Environment: HP aCC 3.37 and beyond, gcc/Linux  (was: HP aCC 3.37 and 
beyond)
Summary: make use of __declspec(dll{export,import}) on all platforms  
(was: [HP aCC 3.37] use __declspec(dll{export,import}))

gcc also implements the __declspec(dll{im,ex}port) feature as an alternative to 
__attribute__((dll{ex,im}port):
http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Function-Attributes.html

We might as well implement this enhancement across all platforms.

 make use of __declspec(dll{export,import}) on all platforms
 ---

 Key: STDCXX-408
 URL: https://issues.apache.org/jira/browse/STDCXX-408
 Project: C++ Standard Library
  Issue Type: Improvement
  Components: Build
Affects Versions: 4.1.3
 Environment: HP aCC 3.37 and beyond, gcc/Linux
Reporter: Martin Sebor
 Fix For: 4.2.1


 Starting with HP aCC 3.37 the compiler supports the __declspec(dllexport) and 
 __declspec(dllimport) decorators on declarations of symbols with external 
 linkage. According to the Release Notes for the compiler, Support of these 
 keywords enhances the performance of shared libraries and relieves the usage 
 of HP_DEFINED_EXTERNAL pragmas and +Oextern= list to hide the non-exported 
 symbols. See http://docs.hp.com/en/2212/A-03-37relnotes.html.
 We should enable this in our builds.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (STDCXX-646) [MSVC] rw_putenv() limitations

2007-11-27 Thread Martin Sebor (JIRA)

 [ 
https://issues.apache.org/jira/browse/STDCXX-646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Sebor updated STDCXX-646:


Summary: [MSVC] rw_putenv() limitations  (was: [MSVC] rw_putenv() have a 
limitations)

Corrected bad grammar in Summary.

 [MSVC] rw_putenv() limitations
 --

 Key: STDCXX-646
 URL: https://issues.apache.org/jira/browse/STDCXX-646
 Project: C++ Standard Library
  Issue Type: Bug
  Components: Test Driver
Affects Versions: 4.2.0
 Environment: MSVC, ICC/Windows
Reporter: Farid Zaripov
 Fix For: 4.2.1


 In 0.printf.cpp test the rw_putenv() is used to define variable to null and 
 to undefine variable.
 ---
 1.rw_putenv (NULL=);   // define to null (empty string)
 2.rw_putenv (UNSET);   // undefine if defined
 ---
   But on MSVC putenv() could not define variable to null, so:
 1. rw_putenv (NULL=); undefines the NULL variable instead defining it to 
 null;
 2. rw_putenv (UNSET); does nothing instead of undefining variable

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: [RFC] stdcxx release process, second draft

2007-11-27 Thread Martin Sebor

Martin Sebor wrote:

So here's a question: do we think STDCXX-336 doable for 4.2.1?


Also, what's your take on STDCXX-242 and STDCXX-343? I think there
might be others where it's not completely clear (at least to me)
what is forward compatible and what's not.



Martin

Farid Zaripov wrote:

Martin Sebor wrote:
I've incorporated everyone's feedback and committed an 

updated version
with a number of enhancements of my own. Among the most 

important are
the new Goals section with suggested frequencies of 

releases, and the
integration of the Version Policy (I plan to delete versions.html). 
Let me know what you think.


http://incubator.apache.org/stdcxx/releases.html


I have no objections on this document.


  Here the some examples (the only source incompatible changes):

1. Source incompatible changes

1.1. Merging two or more overloaded functions/methods in one using
default parameters:
  I.e. replacing void std::vector::resize (size_type) and void
std::vector::resize (size_type, value_type)
with void std::vector::resize (size_type, value_type = value_type()).

1.2. Implementing the additional overloads (extensions) of the standard
functions/methods:
  I.e. adding std::ostream std::ostream::operator (std::ostream,
const wchar*).

1.3. Adding some function/class in global namespace, that may interfere
with user-defined function/class
  (i.e without using '__; prefix):
  I.e. adding function void print (const char* str) { std::cout 
str  std::endl; } may conflict with user defined
  void print (const char* str) { std::printf (%s, str); } due to
multiple function definition.

1.4. Adding some public/protected methods not specified by standard,
that may interfere with user-defined
  methods in classes, inherited from the library class.

1.5. Adding some macros that may accidentally modify the user code: i.e.
#define new(p) malloc (p).

1.6. Moving some declarations from one header file to another without
#including the second one in the first
  may cause unknown identifier compiler error.


Farid.








[jira] Assigned: (STDCXX-605) [IBM XLC++] errors compiling dynatype.cpp

2007-11-27 Thread Martin Sebor (JIRA)

 [ 
https://issues.apache.org/jira/browse/STDCXX-605?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Sebor reassigned STDCXX-605:
---

Assignee: Travis Vitek

 [IBM XLC++] errors compiling dynatype.cpp
 -

 Key: STDCXX-605
 URL: https://issues.apache.org/jira/browse/STDCXX-605
 Project: C++ Standard Library
  Issue Type: Bug
  Components: Examples
Affects Versions: 4.2.0
 Environment: XLC++ 6.0 through 9.0/AIX 5.3
Reporter: Martin Sebor
Assignee: Travis Vitek
 Fix For: 4.2.1


 The dynatype.cpp example program fails to compile with IBM XLC++ 9.0 on AIX 
 with ethe following errors:
 xlCcore_r -c -I$(TOPDIR)/include/ansi-I$(TOPDIR)/include 
 -I$(BUILDDIR)/include -I$(TOPDIR)/examples/include  -O -Q 
 -qtemplateregistry=dynatype.ti $(TOPDIR)/examples/tutorial/dynatype.cpp
 $(TOPDIR)/examples/tutorial/dynatype.cpp, line 203.27: 1540-0216 (S) An 
 expression of type dynatype cannot be converted to type int.
 $(TOPDIR)/examples/tutorial/dynatype.cpp, line 209.30: 1540-0216 (S) An 
 expression of type dynatype cannot be converted to type double.
 $(TOPDIR)/examples/tutorial/dynatype.cpp, line 215.30: 1540-0216 (S) An 
 expression of type dynatype cannot be converted to type double.
 $(TOPDIR)/examples/tutorial/dynatype.cpp, line 222.35: 1540-0216 (S) An 
 expression of type dynatype cannot be converted to type const char *.
 $(TOPDIR)/examples/tutorial/dynatype.cpp, line 228.35: 1540-0216 (S) An 
 expression of type dynatype cannot be converted to type const char *.
 $(TOPDIR)/examples/tutorial/dynatype.cpp, line 238.28: 1540-0216 (S) An 
 expression of type dynatype cannot be converted to type char.
 gmake: *** [dynatype.o] Error 1

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (STDCXX-563) split up rw/_mutex.h

2007-11-27 Thread Martin Sebor (JIRA)

[ 
https://issues.apache.org/jira/browse/STDCXX-563?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12546124
 ] 

Martin Sebor commented on STDCXX-563:
-

A few things to consider:

1. The long term goal should be to eliminate the dependency of our headers on 
any particular implementation of the thread library and abstract everything 
under a common (stdcxx-only) interface.

2. Another long term goal should be to eliminate the binary incompatibility 
between reentrant (thread-safe) and ordinary builds.

3. In the meantime, does it make sense to introduce platform-specific 
subdirectories into the include directory (along the same lines as what we have 
under src/) or should we follow the _config.h approach taken in rev 382600 
(i.e., append a suffix to the basename of the _mutex.h header)?

 split up rw/_mutex.h
 

 Key: STDCXX-563
 URL: https://issues.apache.org/jira/browse/STDCXX-563
 Project: C++ Standard Library
  Issue Type: Improvement
  Components: Build
Affects Versions: 4.2.0
Reporter: Martin Sebor
 Fix For: 4.2.1


 The internal header rw/_mutex.h has become too big and hard to maintain. It 
 would be an improvement to split it up into multiple headers, one for each 
 supported implementation of threads, along the lines of what was done with 
 the rw/_config.h header in 
 http://svn.apache.org/viewvc?view=revrevision=382600. This is too big to do 
 for 4.2 but simple enough that it could go in 4.2.1.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.