Re: New committers?

2012-09-01 Thread Martin Sebor

On 08/31/2012 02:38 PM, Liviu Nicoara wrote:

My input below.

On 08/31/12 09:42, Wojciech Meyer wrote:

The two significant ones (as far as I can understand):

- as I heard from Christopher Bergström that it's hard to push the
   stdcxx to FreeBSD ports repository (I can understand it and that
   sounds pretty bad, if that's the case then the board should consider
   re-licensing as advised; I agree in general it's a hard decision for
   the board, but imagine the project would benefit, IANAL tho)


Christopher's wishes and goals may be different from others'. I do not
believe he has ulterior motives that would be detrimental to the rest of
us but AFAICT he has not made a compelling argument. Even with one, it
stretches the imagination what could possibly convince Apache to give up
on STDCXX ownership.


Just a point of clarity: the ASF doesn't "own" stdcxx. They license
it from Rogue Wave which still has the copyright. (Not that anyone
there realizes it or would know what to do with it if they did.)
IIUC, that's also why they can't relicense it under different terms.

Martin



Re: Branching policy, 4.3.x, 5.0.0, etc.

2012-09-01 Thread Martin Sebor

On 08/31/2012 12:52 PM, Stefan Teleman wrote:

On Fri, Aug 31, 2012 at 2:46 PM, Liviu Nicoara  wrote:

On 08/31/12 14:15, Stefan Teleman wrote:



My understanding is that 4.2.x and 4.3.x are bugfix/rfe releases while
5.x would become C++2011.



There is an implicitly stated binary incompatibility between 4.2 and 4.3.
Are you privy to what prompted 4.3.x? I could look it up, I just didn't get
that far.


Nope, don't know what prompted 4.3.x - Martin probably knows.


Most likely the first forward incompatible change. The ChangeLog
should say which. 4.3 is source and backward binary compatible
with 4.2, and 5.0 isn't necessarily either. All 4.2.x releases
are backward and forward binary compatible with one another.

The goal of 4.2.2 is to contain trivial bug fixes for 4.2.1, 4.3
is for somewhat bigger bug fixes. 5.0 meant for is C++ 11 as Stefan
says where we can break binary (and even source) compatibility.

Martin



--Stefan





Re: STDCXX forks

2012-09-01 Thread Liviu Nicoara

On Sep 1, 2012, at 1:52 PM, Stefan Teleman wrote:

> On Sat, Sep 1, 2012 at 12:15 PM, Liviu Nicoara  wrote:
>> [...]
>> This pretty much sums up my first impression.
> 
> [...]
> To begin with: the compiler flags/GNUmakefile changes are very
> specific to the SunPro compilers and to our internal build system.
> These changes are most likely not suitable for inclusion in the
> canonical stdcxx, except maybe for the sunpro.config changes, in case
> someone would like to be able to replicate our builds. I'd like to
> mention that, in Solaris, Apache stdcxx is a "system library".

Good point. 

> 
> About the Standard C Library forwarding header files: these changes
> are specfic to Solaris. The reason behind them is: the Solaris
> architectural rules, which can be best summarized as: "there can be
> only one of each". In other words, it is Verboten, in Solaris, to
> duplicate the Standard C Library header files (or any other header
> file for that matter). The Solaris Standard C Library header files are
> C++-clean - they are required to be so, by the same architectural
> rules. Again, these changes are specific to Solaris, and are probably
> not portable across other implementations. I know for a fact that they
> are not portable for either the GCC or Intel compilers (with which I
> test regularly on Linux, in addition to SunPro).
> 
> So these two groups of changesets can be ignored.

Got it.

> 
> I opened yesterday STDCXX-1066:
> 
> https://issues.apache.org/jira/browse/STDCXX-1056
> 
> about the pthread_mutex_t/pthread_cond_t alignment on SPARCV8. I'll
> have patches done this weekend. Achtung: the patchset is very large
> and touches a very large number of files. It's strange that I didn't
> get an email about STDCXX-1066.

Acknowledged. I have seen the individual patches on those two websites.

> 
> I'd also like to talk about STDCXX-1056:
> 
> https://issues.apache.org/jira/browse/STDCXX-1056
> 
> which has already had an initial discussion, and for which I have
> attached  a patch. This issue also addresses (indirectly) linkage when
> building with GCC. On the recent versions of GCC that I have tested
> with, passing -supc++ on link line automatically links with the GNU
> libstdc++6.so (on top of linking with stdcxx), and that just bad.

I briefly looked at it, will delve into it later.

> 
> And then I'll have to cross reference the patches which refer to our
> internal bug numbers because most of them are quite old and right now,
> off the top of my head, I can't remember what they are. :-)

Thanks!

Liviu



Re: STDCXX forks

2012-09-01 Thread Stefan Teleman
On Sat, Sep 1, 2012 at 12:15 PM, Liviu Nicoara  wrote:

> Hi Stefan, I have went through the patches. Specifically, I have spent more
> time looking in the mutex alignment changes and the C++ C library headers
> patches, and I only read the others. In order:
>
> The test extensions seem to be genuine by and large, but I would further
> analyze them after I find out what is it they are addressing (test cases?).
>
> The regression tests whose names contain references to internal bug numbers
> require a bit more analysis as to their usefulness. Of course an explanation
> attached to each would alleviate duplicating your work. I have not
> cross-checked them to JIRA.
>
> Some of the compiler characterizations changes, as well as the associated
> GNUmakefile's, seem to be specific to your port, e.g., GNUmakefile,
> GNUmakefile.cfg changes. I may have spotted other issues but I would wait
> for your feed-back first.
>
> The C++ C library headers seem to have been re-written to your port. I am
> unsure why you needed this, but it surely breaks the original intent for
> these headers' structure. I have also noticed that you stripped the Apache
> notice and added an Oracle copyright notice on them.
>
> This pretty much sums up my first impression.

Hi

Yes, you are correct. :-)

To begin with: the compiler flags/GNUmakefile changes are very
specific to the SunPro compilers and to our internal build system.
These changes are most likely not suitable for inclusion in the
canonical stdcxx, except maybe for the sunpro.config changes, in case
someone would like to be able to replicate our builds. I'd like to
mention that, in Solaris, Apache stdcxx is a "system library".

About the Standard C Library forwarding header files: these changes
are specfic to Solaris. The reason behind them is: the Solaris
architectural rules, which can be best summarized as: "there can be
only one of each". In other words, it is Verboten, in Solaris, to
duplicate the Standard C Library header files (or any other header
file for that matter). The Solaris Standard C Library header files are
C++-clean - they are required to be so, by the same architectural
rules. Again, these changes are specific to Solaris, and are probably
not portable across other implementations. I know for a fact that they
are not portable for either the GCC or Intel compilers (with which I
test regularly on Linux, in addition to SunPro).

So these two groups of changesets can be ignored.

I opened yesterday STDCXX-1066:

https://issues.apache.org/jira/browse/STDCXX-1056

about the pthread_mutex_t/pthread_cond_t alignment on SPARCV8. I'll
have patches done this weekend. Achtung: the patchset is very large
and touches a very large number of files. It's strange that I didn't
get an email about STDCXX-1066.

I'd also like to talk about STDCXX-1056:

https://issues.apache.org/jira/browse/STDCXX-1056

which has already had an initial discussion, and for which I have
attached  a patch. This issue also addresses (indirectly) linkage when
building with GCC. On the recent versions of GCC that I have tested
with, passing -supc++ on link line automatically links with the GNU
libstdc++6.so (on top of linking with stdcxx), and that just bad.

And then I'll have to cross reference the patches which refer to our
internal bug numbers because most of them are quite old and right now,
off the top of my head, I can't remember what they are. :-)

--Stefan

-- 
Stefan Teleman
KDE e.V.
stefan.tele...@gmail.com


Re: STDCXX forks

2012-09-01 Thread Liviu Nicoara

On 08/31/12 08:58, "C. Bergström" wrote:

On 08/31/12 07:40 PM, Liviu Nicoara wrote:

Please correct me if I am wrong.

I have seen two forks on github, one belonging to C. Bergstrom/Pathscale and 
the other to Stefan Teleman.

The first one contains a number of genuine code changes outside the Apache 
repository, but without canonical and meaningful commit comments, and without 
accompanying test cases.

We can help clean this up if it makes a real difference

Some carry what seem to be bug id's from a private bug database. Some of the 
changes, e.g., 84d01405124b8c08bb43fdc3755ada2592449727

iirc we renamed the files because of some problem with cmake - it was trying to 
compile those files instead of treating them like headers.

, fa9a45fb36e45b71ba6b4ae93b50bd6679549420, seem odd.

I forget why we did this tbh - I'll try to get an answer in case it comes up 
again as a question

Are you guys dropping support for any  platforms?

Not intentionally - We are using/testing this on Solaris, FBSD and Linux - We 
may add OSX/Win to that list soon, but I can't promise at this point.  For 
targets we only are able to test x86 and x86_64


Hi Christopher,

I finished looking though the github changes. If you are interested in 
contributing some of those changes back, as complete patches [1], I would 
volunteer my time to promptly review them and work with you to get them in, as 
needed.

In the meantime, if you will, could you please elaborate on the two changes 
mentioned above? The first one changes the traditional file extension on the 
template implementation files, the second affects the library building on 
platforms like I mentioned in another post. AFAIK STDCXX does not implement or 
follow Boost conventions and/or library file structure.

HTH.

Thanks!

Liviu

[1] http://stdcxx.apache.org/bugs.html#patch_format


Re: [PATCH] Trivial test fix

2012-09-01 Thread Stefan Teleman
On Sat, Sep 1, 2012 at 10:49 AM, Liviu Nicoara  wrote:
> Would someone please apply the patch on 4.2.x branch? (I have not yet
> regained access to my Apache account.)
>
>
> 2012-09-01  Liviu Nicoara  
>
> * tests/containers/23.bitset.cpp: swapped lines to avoid compiler
> bug
> (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54442)
>
>
> Index: tests/containers/23.bitset.cpp
> ===
> --- tests/containers/23.bitset.cpp  (revision 1379762)
> +++ tests/containers/23.bitset.cpp  (working copy)
> @@ -278,8 +278,8 @@ test_synopsis (std::bitset<0>*)
>  MEMFUN (Bitset&, flip, ());
>  MEMFUN (Bitset&, flip, (std::size_t));
>  -MEMFUN (Bitset::reference, operator[], (std::size_t));
>  MEMFUN (bool, operator[], (std::size_t) const);
> +MEMFUN (Bitset::reference, operator[], (std::size_t));
>   MEMFUN (unsigned long, to_ulong, () const);

Done - revision 1379813.

--Stefan

-- 
Stefan Teleman
KDE e.V.
stefan.tele...@gmail.com


Re: STDCXX forks

2012-09-01 Thread Liviu Nicoara

On 08/31/12 12:20, Stefan Teleman wrote:

On Fri, Aug 31, 2012 at 8:40 AM, Liviu Nicoara  wrote:


Stefan's seem like a complete git-ification of the whole Apache repository
but with no changes I could detect.


Not quite. :-)
[...]
The official Oracle port for Solaris 10 and 11, which I maintain, is here:

http://src.opensolaris.org/source/xref/userland/gate/components/stdcxx/


Hi Stefan, I have went through the patches. Specifically, I have spent more 
time looking in the mutex alignment changes and the C++ C library headers 
patches, and I only read the others. In order:

The test extensions seem to be genuine by and large, but I would further 
analyze them after I find out what is it they are addressing (test cases?).

The regression tests whose names contain references to internal bug numbers 
require a bit more analysis as to their usefulness. Of course an explanation 
attached to each would alleviate duplicating your work. I have not 
cross-checked them to JIRA.

Some of the compiler characterizations changes, as well as the associated 
GNUmakefile's, seem to be specific to your port, e.g., GNUmakefile, 
GNUmakefile.cfg changes. I may have spotted other issues but I would wait for 
your feed-back first.

The C++ C library headers seem to have been re-written to your port. I am 
unsure why you needed this, but it surely breaks the original intent for these 
headers' structure. I have also noticed that you stripped the Apache notice and 
added an Oracle copyright notice on them.

This pretty much sums up my first impression.

If you were willing to submit them one by one (*), complete with test cases and 
complete patches (ChangeLog entries and all) I would put in the necessary 
review time and provide feed-back asap. Please let me know if I missed anything.

I sincerely hope this helps.

Thanks!

Liviu

 
(*) As in issue by issue, not file by file.


Re: New committers?

2012-09-01 Thread Jim Jagielski

On Aug 31, 2012, at 5:24 PM, Wojciech Meyer  
wrote:

> Libstc++
> is LGPL therefore can link with GPL project, and can link with ALv2
> project, but stdcxx is ALv2 and cannot link with GPL project.
> 
> That's basically what LGPL was designed for, to solve this problem.
> 

Nope... LGPL was designed as a counterpoint to the GPL,
NOT to other-licensed libs.



Re: New committers?

2012-09-01 Thread Jim Jagielski

On Aug 31, 2012, at 5:24 PM, Wojciech Meyer  
wrote:

> Jim Jagielski  writes:
> 
>> On Aug 31, 2012, at 2:27 PM, "C. Bergström"  wrote:
>> 
>>> On 09/ 1/12 01:25 AM, Jim Jagielski wrote:
 Are you suggesting that FreeBSD does not allow the inclusion of ANY
 ALv2 library under its ports directory?
>>> I'll give you the benefit of the a doubt one more time...
>>> 
>>> stdcxx ends up linking against *EVERY* C++ application if it's used
>>> in the default compiler setup.  (Which is what I was trying to
>>> achieve) That includes ***GPLv2 software in ports.  Get
>>> it?
>>> 
>> 
>> I notice you did not answer my question... It's a simply question
>> and requires a simple yes or no. Are you suggesting that FreeBSD does
>> not allow the inclusion of ANY ALv2 library under its ports directory?
>> 
>> Thx.
> 
> Hi again,
> 
> the point is that the stdcxx is rudimentary for the C++ applications,
> and if they are GPL then can't use stdcxx as a standard C++
> library.

Again, this is simply untrue. GPLv2 and GPLv3 have exceptions for
system libraries... 

Considering that the entire argument is based on the above false
assumption, everything else is moot.

[PATCH] Trivial test fix

2012-09-01 Thread Liviu Nicoara

Would someone please apply the patch on 4.2.x branch? (I have not yet regained 
access to my Apache account.)


2012-09-01  Liviu Nicoara  

* tests/containers/23.bitset.cpp: swapped lines to avoid compiler bug
(see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54442)


Index: tests/containers/23.bitset.cpp
===
--- tests/containers/23.bitset.cpp  (revision 1379762)
+++ tests/containers/23.bitset.cpp  (working copy)
@@ -278,8 +278,8 @@ test_synopsis (std::bitset<0>*)
 MEMFUN (Bitset&, flip, ());
 MEMFUN (Bitset&, flip, (std::size_t));
 
-MEMFUN (Bitset::reference, operator[], (std::size_t));

 MEMFUN (bool, operator[], (std::size_t) const);
+MEMFUN (Bitset::reference, operator[], (std::size_t));
 
 MEMFUN (unsigned long, to_ulong, () const);