Re: Power/PowerPC RIOS/RIOS2 obsolescence

2010-07-04 Thread Kevin Bowling
On Fri, Jul 2, 2010 at 9:55 AM, Segher Boessenkool
 wrote:
> [I proposed removing RIOS support, since it heavily gets in the way
> for my project exposing the XER[CA] flag].
>
>> My argument is simply this, sorry if it wasn't clear in the last
>> email, bottom line up front:
>> - It can just as easily be removed in the future if it is broken for
>> more than one release rather than evicting support.
>
> I can guarantee you that the changes I am trying to make _will_ break
> RIOS support.  RIOS handles the carry flag quite differently from
> PowerPC and Power Architecture, and I have no way to test RIOS either.
> Since there is no significant community using these chips anymore,
> removing RIOS support seemed like the best course of action.
>
>> - It shouldn't add unwieldy maintenance overhead.
>
> It already HAS been unwieldy maintenance overhead for years.
>
>>  The old stuff can
>> be walled off, conditionally built, and otherwise removed from the
>> main focus.
>
> You obviously haven't looked at the code in detail, if you think this.
>
>> - The code is already written and just needs a maintainer.
>> - I have the hardware and desire to maintain it.
>
> Feel free to split off a new backend then.  The current intertwined
> mess cannot be maintained properly.
>
>
> Segher
>

Hi Segher,

David explained some of his points in an off-list email.  For whatever
it's worth I withdraw my objections.  Per David and your suggestion, I
will attempt to import the older back end code in my own private tree
as newer front ends become desirable for building common applications.
 I don't think this is ideal but it is clear there is mutual exclusion
between the work you need to do (which has greater impact) and my
limited hobby interests.

Although my usage is impractical and merely for fun, the
current back ends seem intuitively fragile.  By being vertically
intertwined in a giant c file to the OS and species of arch, I can't
help but feel this may cause continued headaches in the future.  There
may be more legitimate reasons for supporting older platforms,
especially with heavy embedded use of archs with vastly different
species like mips, ppc, and i386.  Of course, this may be well known
(I'm sure there is historical background) and I have no solution to
offer.

Regards,
Kevin Bowling


How to use __versa_string as std::string implementation?

2010-07-04 Thread nielsdek...@xs4all.nl
Do I understand correctly that the current GCC implementation of 
std::string is non-conforming, because it does ref-counting + copy-on-write?


If so, is there some compiler flag to switch to a conforming 
(non-ref-counting) std::string implementation?


If I understand well, the Versatile String, __versa_string from 
 provides such an implementation, right?  Is there an 
easy way to recompile existing user code that uses std::string, in order 
to switch to a non-ref-counting implementation?



Apologies for my ignorance,

Kind regards,

  Niels
--
Niels Dekker
http://www.xs4all.nl/~nd/dekkerware
Scientific programmer at LKEB, Leiden University Medical Center


Re: How to use __versa_string as std::string implementation?

2010-07-04 Thread Paolo Carlini
On 07/04/2010 04:19 PM, nielsdek...@xs4all.nl wrote:
> Do I understand correctly that the current GCC implementation of
> std::string is non-conforming, because it does ref-counting +
> copy-on-write?
If you mean by non-conforming "non-conforming to the not existing yet
new C++ standard, so far known as C++0x", the answer is yes.
> If so, is there some compiler flag to switch to a conforming
> (non-ref-counting) std::string implementation?
Nope.
> If I understand well, the Versatile String, __versa_string from
>  provides such an implementation, right?  Is there an
> easy way to recompile existing user code that uses std::string, in
> order to switch to a non-ref-counting implementation?
Nothing special, no. And of course that code is just a starting point.
Before advertising is a "conforming" (in the sense above) implementation
has to be reviewed, some optimizations added, etc...

Paolo.


Re: How to use __versa_string as std::string implementation?

2010-07-04 Thread Niels Dekker - address until 2010-10-10
[Oops, I shot myself in the foot by using a mail address that I'd rather 
keep spam free, in my previous message! I'm surprised the message was 
forwarded straight to the mailing list, because it wasn't the address I 
used when I subscribed.]



Do I understand correctly that the current GCC implementation of
std::string is non-conforming, because it does ref-counting +
copy-on-write?


Paolo Carlini wrote:

If you mean by non-conforming "non-conforming to the not existing yet
new C++ standard, so far known as C++0x", the answer is yes.


Thanks, that's what I meant indeed. (In fact I got the word "conforming" 
from gcc.gnu.org/gcc-4.1/changes.html which says that __versa_string 
provides "facilities conforming to the standard requirements for 
basic_string". But indeed, C++03 does allow COW implementations of 
std::string.)



If I understand well, the Versatile String, __versa_string from
  provides such an implementation, right?  Is there an
easy way to recompile existing user code that uses std::string, in
order to switch to a non-ref-counting implementation?



Nothing special, no. And of course that code is just a starting point.
Before advertising is a "conforming" (in the sense above) implementation
has to be reviewed, some optimizations added, etc...


Okay, so basically __versa_string is a starting point for the 
std::string implementation of the future, right? Is there any target 
date or target GCC release version for this new implementation to be 
included as the new std::basic_string?


Thanks again,

  Niels
--
Niels Dekker
http://www.xs4all.nl/~nd/dekkerware
Scientific programmer at LKEB, Leiden University Medical Center


Re: How to use __versa_string as std::string implementation?

2010-07-04 Thread Paolo Carlini
On 07/04/2010 10:02 PM, Niels Dekker - address until 2010-10-10 wrote:
> Thanks, that's what I meant indeed. (In fact I got the word
> "conforming" from gcc.gnu.org/gcc-4.1/changes.html which says that
> __versa_string provides "facilities conforming to the standard
> requirements for basic_string". But indeed, C++03 does allow COW
> implementations of std::string.)
As a matter of fact, if you really meant the very old 4.1 release
series, back in those times the C++0x working paper still allowed
reference counting. If I remember correctly the decision dates circa the
Sophia Antipolis meeting.
> Okay, so basically __versa_string is a starting point for the
> std::string implementation of the future, right? Is there any target
> date or target GCC release version for this new implementation to be
> included as the new std::basic_string?
Not yet, I'm sorry. As far as I can see - but I know somebody is still
trying to figure out alternate strategies - rolling in a new
implementation means breaking the ABI. Nasty issues.

Paolo.


Re: [x86]: Allow @GOTOFF in non-memory context?

2010-07-04 Thread Uros Bizjak
On Fri, 2010-06-25 at 10:48 -0700, Richard Henderson wrote:

> > ; Current assemblers are broken and do not allow @GOTOFF in
> > ; ought but a memory context.
> > 
> > Code, following this comment disables or special-cases 
> > "pic_symbolic_operands".
> > 
> > I'm investigating, which "current assemblers" are broken, since my
> > assembler from binutils-2.20 happily assembles:
> > 
> > addl x...@gotoff(%ebx), %eax
> > 
> > in 32bit mode, as well as
> > 
> > addq x...@gotpcrel(%rip), %rax
> > 
> > in 64bit mode.
> 
> Note that this *is* a memory context.  The problematic cases were
> 
>   addl $...@gotoff, %eax
> 
> which needed to be written as
> 
>   lea x...@gotoff(%eax), %eax
> 
> to satisfy the memory context requirement of the broken assemblers.

gas 2.13.1 (the oldest supported version as required by documentation)
also handles the first form without problems.

Uros.




gcc-4.3-20100704 is now available

2010-07-04 Thread gccadmin
Snapshot gcc-4.3-20100704 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.3-20100704/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.3 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_3-branch 
revision 161812

You'll find:

gcc-4.3-20100704.tar.bz2  Complete GCC (includes all of below)

gcc-core-4.3-20100704.tar.bz2 C front end and core compiler

gcc-ada-4.3-20100704.tar.bz2  Ada front end and runtime

gcc-fortran-4.3-20100704.tar.bz2  Fortran front end and runtime

gcc-g++-4.3-20100704.tar.bz2  C++ front end and runtime

gcc-java-4.3-20100704.tar.bz2 Java front end and runtime

gcc-objc-4.3-20100704.tar.bz2 Objective-C front end and runtime

gcc-testsuite-4.3-20100704.tar.bz2The GCC testsuite

Diffs from 4.3-20100627 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.3
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.