Re: gcc- 4.6.0 20100416 rtmutex.c:1138:1: internal compiler error

2010-04-19 Thread Justin P. Mattock

On 04/18/2010 11:57 PM, Jie Zhang wrote:

On 04/19/2010 02:43 PM, Justin P. Mattock wrote:

I couldn't resist..(had to play),
anyways I looked through the reports
but didn't see anything that was
familiar. so I went and created an entry:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43791


Thanks. Please add a preprocessed source file so people can reproduce
your issue.





as for the preprocessed source file,
not that yet skilled at code.(one day)
I added my .config, and the CFLAGS
I used for building gcc.

In regards to 4.6.0 everything seems
o.k. i.g. glibc builds with no errors
all of the xserver no errors, even firefox
builds.. seems the kernel was the only real
problem I ran into(which isn't really a problem
given this version of gcc is experimental).

maybe something todo with building modules
(but could be wrong).

Justin P. Mattock


Re: GCC 4.5.0 Released

2010-04-19 Thread Richard Guenther
On Mon, Apr 19, 2010 at 7:04 AM, Basile Starynkevitch
 wrote:
> Mark Mitchell wrote:
>>
>> The Free Software Foundation and the GNU Compiler Collection (GCC)
>> development team have released GCC 4.5.0.  [...]
>
>
> It is really unfortunate the annoucement did not mention plugins, another
> major feature of GCC. Why ?

I see plugins as a new feature for GCC developers.  There is little
value in announcing "we have plugin support" to our users if
you can't name at least one that is supported out-of-the-box
(and obviously we don't support plugins at all).

How would you have announced the plugin parts to GCC users?

Richard.


Re: GCC 4.5.0 Released

2010-04-19 Thread Basile Starynkevitch
On Mon, Apr 19, 2010 at 10:50:48AM +0200, Richard Guenther wrote:
> On Mon, Apr 19, 2010 at 7:04 AM, Basile Starynkevitch
>  wrote:
> > Mark Mitchell wrote:
> >>
> >> The Free Software Foundation and the GNU Compiler Collection (GCC)
> >> development team have released GCC 4.5.0.  [...]
> >
> >
> > It is really unfortunate the annoucement did not mention plugins, another
> > major feature of GCC. Why ?
> 
> I see plugins as a new feature for GCC developers.  There is little
> value in announcing "we have plugin support" to our users if
> you can't name at least one that is supported out-of-the-box

I respectfully but strongly disagree with that statement. There is a
lot of value in announcing we have plugin support, because that simple
fact enable GCC users (at least those who use GCC to compile code
there are contributing to develop) to develop their simple plugins or
ask somebody else to develop plugins for them. This makes a major
difference for the few power users needing extra features in their GCC
Compiler (previously, the only way was to fork their own private
branch, a much larger and fragile effort than developping a plugin,
with the tremendous burden that users of such a branch have to build
it by their own).

> (and obviously we don't support plugins at all).

I also disagree with and even don't understand that sentence. GCC 4.5
does support plugins (since plugins exist in 4.5 but not in previous
releases), and I am sure that several companies selling GCC support
will be delighted to be suitably paid to develop plugins.

Besides, GCC users have a pecularity. Since they are using a compiler
(obviously GCC), they understand better than others what software
source code is, and probably what software development means. So there
are more chances that some GCC power users would want to develop a
plugin.

Of course, plugins development from outside the GCC community will
increase very progressively. But plugin is a *major* feature of 4.5,
[in my eyes] as important as link-time-optimization.


> 
> How would you have announced the plugin parts to GCC users?

I am not a native english speaker, but something like the following
paragraph [to be added after the paragraph: GCC 4.5.0 is now capable
of "link-time optimization". ... and equally significant reductions in
code size.]

   GCC 4.5.0 accept plugins (on some host systems, in particular
   Linux, if configured appropriately). This permits advanced users to
   customize or extend their GCC compiler with specific code provided
   in plugins enabling extra features -such as new specific
   optimization or diagnostic passes, etc.- suitable for their
   particular needs. Plugins should be GPLv3 compatible.

Also, in practice, at least in the Linux and some embedded software
worlds, new releases of GCC diffuse very slowly... So it is ok if some
power users just start developping their plugin now.

Cheers.

-- 
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basilestarynkevitchnet mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***


Re: Is this maybe PR43776 again?

2010-04-19 Thread Jakub Jelinek
On Mon, Apr 19, 2010 at 02:13:52AM +0100, Dave Korn wrote:
> > /gnu/gcc/gcc/libjava/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java:483:0:
> >  note: variable tracking size limit exceeded with 
> > -fvar-tracking-assignments, retrying without
> 
>   Re-running the build command manually spins CPU quite hard for about a
> minute or just over before it gives up on vta and then takes about another ten
> seconds to complete.  Comment #2 in the PR talks about some "usual KDE
> var-tracking issue", but this suggests it's a more general problem, perhaps?

This is just to inform you that due to very large size of the routine
the debug info for it will be less precise.  It is not a warning nor
error, just a note.

Jakub


Combine or peephole?

2010-04-19 Thread Frank Isamov
Hi,

My architecture supports instructions with two parallel side effects.
For example, addition and subtraction can be done in parallel:

(define_insn "assi6"
  [(parallel [
 (set (match_operand:SI 0 "register_operand" "=r")
  (minus:SI (match_operand:SI 1 "register_operand" "r")
(match_operand:SI 2 "register_operand" "r")))
 (set (match_operand:SI 3 "register_operand" "=r")
  (plus:SI (match_operand:SI 4 "register_operand" "r")
   (match_operand:SI 5 "register_operand" "r")))
  ])]
  ""
  "as\t%5, %4, %3, %2, %1, %0 %!"
)

This instruction is not chosen at ‘combine’ time even if ‘plus’ and
‘minus’ instructions are located one after other. That it is,
probably, there is no data dependency between them.

In attempt to resolve the problem, I am providing a peephole optimization:

(define_peephole2
  [
 (set (match_operand:SI 0 "register_operand")
  (minus:SI (match_operand:SI 1 "register_operand")
(match_operand:SI 2 "register_operand")))
 (set (match_operand:SI 3 "register_operand")
  (plus:SI (match_operand:SI 4 "register_operand")
   (match_operand:SI 5 "register_operand")))
  ]
  ""
  [(parallel [
 (set (match_dup 0)
  (minus:SI (match_dup 1)
(match_dup 2)))
 (set (match_dup 3)
  (plus:SI (match_dup 4)
   (match_dup 5)))
  ])]
  ""
)

This works for some cases, but I wanted to ask experts whether this is
the way to go. Repeating the same pattern for a peephole might be not
the best way to resolve the problem.

Did you observe something similar? What would be the best way to
resolve such situation?

Thank you,
Frank


finding an original typedef decl from a reference

2010-04-19 Thread IainS


consider :

typedef int INT1 ;

int func (INT1 x) ;



now if I am in grokparms()  parsing "INT1 x " and I want to issue a  
nice diagnostic for x...


I can't seem to find the right magic that gets me back to that DECL  
for INT1

(I actually want any attributes attached to it and an expand_location)..

any pointers to the correct macro or chain to follow...?

Iain



Re: finding an original typedef decl from a reference

2010-04-19 Thread Richard Guenther
On Mon, Apr 19, 2010 at 3:03 PM, IainS  wrote:
>
> consider :
>
> typedef int INT1 ;
>
> int func (INT1 x) ;
>
> 
>
> now if I am in grokparms()  parsing "INT1 x " and I want to issue a nice
> diagnostic for x...
>
> I can't seem to find the right magic that gets me back to that DECL for INT1
> (I actually want any attributes attached to it and an expand_location)..
>
> any pointers to the correct macro or chain to follow...?

TYPE_NAME will be a TYPE_DECL.

Richard.

> Iain
>
>


Re: finding an original typedef decl from a reference

2010-04-19 Thread Manuel López-Ibáñez
On 19 April 2010 15:03, IainS  wrote:
>
> consider :
>
> typedef int INT1 ;
>
> int func (INT1 x) ;
>
> 
>
> now if I am in grokparms()  parsing "INT1 x " and I want to issue a nice
> diagnostic for x...

Can I ask what you mean by a nice diagnostic? and what you want to use this for?

Just out of curiosity.

Manuel.


Re: GCC 4.5.0 Released

2010-04-19 Thread Jack Howarth
On Mon, Apr 19, 2010 at 11:23:35AM +0200, Basile Starynkevitch wrote:
> 
...

> I am not a native english speaker, but something like the following
> paragraph [to be added after the paragraph: GCC 4.5.0 is now capable
> of "link-time optimization". ... and equally significant reductions in
> code size.]
> 
>GCC 4.5.0 accept plugins (on some host systems, in particular
>Linux, if configured appropriately). This permits advanced users to
>customize or extend their GCC compiler with specific code provided
>in plugins enabling extra features -such as new specific
>optimization or diagnostic passes, etc.- suitable for their
>particular needs. Plugins should be GPLv3 compatible.
> 

Basile,
   The annoucement should probably note that targets which lack
objdump currently can't build plugins. I've had about as much
luck getting the patch to fix this...

http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00610.html

...reviewed as you are likely to get this feature announced.
>From the responses in the "dragonegg in FSF gcc?" thread, it
is clear that the plugin feature is viewed more as a necessary
evil than a clear win for FSF gcc in some quarters.
Jack

...

> 
> -- 
> Basile STARYNKEVITCH http://starynkevitch.net/Basile/
> email: basilestarynkevitchnet mobile: +33 6 8501 2359
> 8, rue de la Faiencerie, 92340 Bourg La Reine, France
> *** opinions {are only mines, sont seulement les miennes} ***
> 


Re: finding an original typedef decl from a reference

2010-04-19 Thread IainS


On 19 Apr 2010, at 14:18, Manuel López-Ibáñez wrote:

On 19 April 2010 15:03, IainS   
wrote:


consider :

typedef int INT1 ;

int func (INT1 x) ;



now if I am in grokparms()  parsing "INT1 x " and I want to issue a  
nice

diagnostic for x...


Can I ask what you mean by a nice diagnostic? and what you want to  
use this for?


nice ; including the expand_loc for INT1 and any attributes attached  
to the decl.


use ; I'm working on __attribute__((deprecated)) issues ...

(at the moment the diagnostic for x does not include the declaration  
location).


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43778 and
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43797
and the earlier thread on patches.
http://gcc.gnu.org/ml/gcc-patches/2010-04/msg01037.html
and a followup:
http://gcc.gnu.org/ml/gcc-patches/2010-04/msg01092.html

All this as a prelude to trying to introduce  
__attribute__((unavailable)) which is needed to progress ObjC to  
Version 1.


Iain


Re: GCC 4.5.0 Released

2010-04-19 Thread Mark Mitchell
Basile Starynkevitch wrote:

> It is really unfortunate the annoucement did not mention plugins,
> another major feature of GCC. Why ?

I consider plug-ins an important feature for the future of GCC.  I gave
a talk this past week as the Linux Foundation Collaboration Summit in
which I made the case for modularity of GCC, including plug-ins.  I
(assisting David Edelsohn, who lead the effort) worked with the FSF to
get acceptance for plug-ins for a long time.  So, it's not that I don't
like plug-ins.

But, I don't think that plug-ins are yet a useful thing to announce in
what is essentially a "marketing" context.  Most users won't be able to
use them yet.  We have some infrastructure; we don't have a lot of use
of that infrastructure yet.

More broadly, there are lots of things that didn't make the
announcement.  There have been many important improvements since GCC
4.4.x; they don't all fit in an announcement.  Of course, you're
entirely free to publicize plug-ins as you like in any forum you find
appropriate.

-- 
Mark Mitchell
CodeSourcery
m...@codesourcery.com
(650) 331-3385 x713


Plan for gc-improv merge

2010-04-19 Thread Laurynas Biveinis
Hi,

Now that GCC is in the stage1 and gc-improv branch work is finished as
I see it, I propose to merge it to mainline.

The goal of the branch is to make the type of GC-allocated objects
known to GC at allocation time, by changing the allocation interface
from
foo *x = (foo *)ggc_alloc (sizeof (x));
to
foo *x = ggc_alloc_foo ();

Having this enables further work on GC. Note that it has been prototyped before:
http://gcc.gnu.org/ml/gcc/2004-01/msg01081.html

It should not cause any changes in the compiler behavior whatsoever
(except some ggc-zone fixes, see below), except perhaps that
GC-to-obstack changes might improve data locality by a tiny epsilon.

It comes with a few free extras:
1) Completes the ggc_alloc* to GGC_NEW* interface transition by moving
away from both.
2) Partly fixes zone allocator, especially in the presence of PCH. I
am content with "partly" here as I didn't break it and apparently
nobody uses it anyway.
2) It shakes out a few places where GC shouldn't have been used in the
first place, replaced with obstack allocation.
3) A few ggc.h and gengtype cleanups.

A few points of note:
1) For some types (tree, rtx) it is required to specify allocation
size explicitly. I have introduced a new GTY attribute variable_size
for that.
2) To handle param_is options, libiberty needs to know how to allocate
using GC interface. Thus I have extended a few libiberty functions to
accept additional memory allocator callback parameters.

So, if this work is accepted in principle, I will submit to mainline as follows:

First the independent parts, which are beneficial without the rest
merged. I will submit them shortly.

1) In the loop optimizer, move from GC to obstrack the types struct
lambda_loop_s, lambda_body_vector, lambda_matrix, lambda_trans_matrix.
Needs loop maintainer review.
2) In the C parser, use obstack for braced initializer list parsing,
moving structs constructor_range_stack, init_node out of GC. Needs C
frontend maintainer review..
3) Debugging dump of the structures that gengtype builds and some
minor gengtype cleanups. Right now it is a debugging aid, later it
could be used to do gengtype dump/load that Basile wants for plugins.
Needs global maintainer review.

And the merge itself. None of the following makes sense without the rest.

1) New API in libiberty for creating of hash tables and splay trees
with user-specified callbacks for allocation. Needs libiberty
maintainer review.
2) Make gengtype accept variable_size GTY option and output typed GC
allocators to gtype-desc.h. Needs global maintainer review.
3) Split ggc.h into ggc.h and ggc-internal.h, introduce internal
interface for gengtype output to use, fix MEM_STAT accounting, partly
fix zone allocator, partly fix zone allocator interaction with PCH,
and related minor ggc-*.c and stringpool.c changes. It is basically a
ggc.h rewrite from scratch. Needs global, or, I dunno, middle-end
maintainer review.
4) Annotate several types with variable_size option. Needs all the
front-end maintainers' and middle-end maintainer review, or, maybe
easier, global maintainer review together with the next patch.
5) Change all the allocation sites. Touches all the frontends,
significant parts of middle ends, and probably all the backends too.
The changes here are mechanical, so it would be easiest to get a
global approval from a global maintainer instead of specific area
maintainers.
6) GTY documentation update in GCC internals manual.

Comments? Thanks.
-- 
Laurynas


Re: Combine or peephole?

2010-04-19 Thread Jeff Law

On 04/19/10 06:58, Frank Isamov wrote:

Hi,

My architecture supports instructions with two parallel side effects.
For example, addition and subtraction can be done in parallel:

(define_insn "assi6"
   [(parallel [
  (set (match_operand:SI 0 "register_operand" "=r")
   (minus:SI (match_operand:SI 1 "register_operand" "r")
 (match_operand:SI 2 "register_operand" "r")))
  (set (match_operand:SI 3 "register_operand" "=r")
   (plus:SI (match_operand:SI 4 "register_operand" "r")
(match_operand:SI 5 "register_operand" "r")))
   ])]
   ""
   "as\t%5, %4, %3, %2, %1, %0 %!"
)

This instruction is not chosen at ‘combine’ time even if ‘plus’ and
‘minus’ instructions are located one after other. That it is,
probably, there is no data dependency between them.
   
combine requires a data dependency, so for this situation, combine isn't 
going to help.  The easy solution is to create a peephole.You can 
also create a machine dependent reorg pass to detect more of these 
opportunities.

Jeff


Re: Plan for gc-improv merge

2010-04-19 Thread Basile Starynkevitch

Laurynas Biveinis wrote:

Hi,

Now that GCC is in the stage1 and gc-improv branch work is finished as
I see it, I propose to merge it to mainline.

The goal of the branch is to make the type of GC-allocated objects
known to GC at allocation time, by changing the allocation interface
from
foo *x = (foo *)ggc_alloc (sizeof (x));
to
foo *x = ggc_alloc_foo ();


Will the name of the marking routines, such as gt_ggc_mx_tree_node for 
tree, change?


The MELT branch needs to know them (but can adapt easily to a name 
change). And any other plugins using PLUGIN_GGC_MARKING probably wants 
to know the naming convention (& the signature) for the marking routine, 
so we might also document it.


Also, I believe that
   foo* y = ggc_alloc_foo ();
should behave like the 4.5.0
  foo* y = (foo *)ggc_alloc_cleared(sizeof(foo));
that it, that it should *clear* allocated memory. Clearing memory is 
cheap, and allocating uninitialized memory could lead to hard to find bugs.






Having this enables further work on GC. Note that it has been prototyped before:
http://gcc.gnu.org/ml/gcc/2004-01/msg01081.html

It should not cause any changes in the compiler behavior whatsoever
(except some ggc-zone fixes, see below), except perhaps that
GC-to-obstack changes might improve data locality by a tiny epsilon.

It comes with a few free extras:
1) Completes the ggc_alloc* to GGC_NEW* interface transition by moving
away from both.
2) Partly fixes zone allocator, especially in the presence of PCH. I
am content with "partly" here as I didn't break it and apparently
nobody uses it anyway.
2) It shakes out a few places where GC shouldn't have been used in the
first place, replaced with obstack allocation.
3) A few ggc.h and gengtype cleanups.

A few points of note:
1) For some types (tree, rtx) it is required to specify allocation
size explicitly. I have introduced a new GTY attribute variable_size
for that.


How is that handled by their ggc_alloc_tree? As a size argument?

Also, it would be nice if the new ggc.h could define some preprocessor 
flags specific to the change, eg #define GGC_ALLOC_IS_TYPED 1, to enable 
coding plugins which could work on both 4.5 & 4.6



2) To handle param_is options, libiberty needs to know how to allocate
using GC interface. Thus I have extended a few libiberty functions to
accept additional memory allocator callback parameters.

So, if this work is accepted in principle, I will submit to mainline as follows:


I like it very much...


First the independent parts, which are beneficial without the rest
merged. I will submit them shortly.

1) In the loop optimizer, move from GC to obstrack the types struct
lambda_loop_s, lambda_body_vector, lambda_matrix, lambda_trans_matrix.
Needs loop maintainer review.
2) In the C parser, use obstack for braced initializer list parsing,
moving structs constructor_range_stack, init_node out of GC. Needs C
frontend maintainer review..
3) Debugging dump of the structures that gengtype builds and some
minor gengtype cleanups. Right now it is a debugging aid, later it
could be used to do gengtype dump/load that Basile wants for plugins.
Needs global maintainer review.


It is hopefully not only me. As Diego wrote once, the current gengtype 
for plugins is quite a hack, and we need to improve that.



And the merge itself. None of the following makes sense without the rest.

1) New API in libiberty for creating of hash tables and splay trees
with user-specified callbacks for allocation. Needs libiberty
maintainer review.
2) Make gengtype accept variable_size GTY option and output typed GC
allocators to gtype-desc.h. Needs global maintainer review.
3) Split ggc.h into ggc.h and ggc-internal.h, introduce internal
interface for gengtype output to use, fix MEM_STAT accounting, partly
fix zone allocator, partly fix zone allocator interaction with PCH,
and related minor ggc-*.c and stringpool.c changes. It is basically a
ggc.h rewrite from scratch. Needs global, or, I dunno, middle-end
maintainer review.
4) Annotate several types with variable_size option. Needs all the
front-end maintainers' and middle-end maintainer review, or, maybe
easier, global maintainer review together with the next patch.
5) Change all the allocation sites. Touches all the frontends,
significant parts of middle ends, and probably all the backends too.
The changes here are mechanical, so it would be easiest to get a
global approval from a global maintainer instead of specific area
maintainers.
6) GTY documentation update in GCC internals manual.


Yes, these are important, especially since the plugin interface expose a 
bit more of ggc.h ...



Thanks for the good work!

Cheers
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basilestarynkevitchnet mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***


Re: Plan for gc-improv merge

2010-04-19 Thread Laurynas Biveinis
2010/4/19 Basile Starynkevitch :
> Laurynas Biveinis wrote:
>> The goal of the branch is to make the type of GC-allocated objects
>> known to GC at allocation time, by changing the allocation interface
>> from
>> foo *x = (foo *)ggc_alloc (sizeof (x));
>> to
>> foo *x = ggc_alloc_foo ();
>
> Will the name of the marking routines, such as gt_ggc_mx_tree_node for tree,
> change?

No. At this time, only the allocation interface changes. The markers
remain the same.

> Also, I believe that
>   foo* y = ggc_alloc_foo ();
> should behave like the 4.5.0
>  foo* y = (foo *)ggc_alloc_cleared(sizeof(foo));
> that it, that it should *clear* allocated memory. Clearing memory is cheap,
> and allocating uninitialized memory could lead to hard to find bugs.

There are separate ggc_alloc_cleared_foo () allocators too. I am not
sure about clearing everything though. As I did the conversion I was
looking for alloc followed by memset to 0 patterns or struct fields
that were forgotten to unitialize, but did not find any bugs of this
kind. Clearing memory could be expensive for large blocks of memory,
if allocator does not page them in, but GCC does not have anything
approaching that, I think.

>> A few points of note:
>> 1) For some types (tree, rtx) it is required to specify allocation
>> size explicitly. I have introduced a new GTY attribute variable_size
>> for that.
>
> How is that handled by their ggc_alloc_tree? As a size argument?

Yes, reusing the same size argument that is passed currently.

> Also, it would be nice if the new ggc.h could define some preprocessor flags
> specific to the change, eg #define GGC_ALLOC_IS_TYPED 1, to enable coding
> plugins which could work on both 4.5 & 4.6

Why?

Thank you for your comments and support,

-- 
Laurynas


Re: GCC 4.5.0 Released

2010-04-19 Thread Basile Starynkevitch

Mark Mitchell wrote:

Basile Starynkevitch wrote:


It is really unfortunate the annoucement did not mention plugins,
another major feature of GCC. Why ?


I consider plug-ins an important feature for the future of GCC.  I gave
a talk this past week as the Linux Foundation Collaboration Summit in
which I made the case for modularity of GCC, including plug-ins.  I
(assisting David Edelsohn, who lead the effort) worked with the FSF to
get acceptance for plug-ins for a long time.  So, it's not that I don't
like plug-ins.

But, I don't think that plug-ins are yet a useful thing to announce in
what is essentially a "marketing" context.  Most users won't be able to
use them yet.  We have some infrastructure; we don't have a lot of use
of that infrastructure yet.


My feeling is that the simple availability of this plugin infrastructure 
is a significant *marketing* argument for GCC. We don't need useful 
plugin to reliably exist to use that advertising argument.


And while I agree that most ordinary users won't be able to use plugins 
[*] they will probably be able to ask for plugins (e.g. to pay 
consultant or GCC centered companies to do so).
I am not sure that as soon as modules or plugins have been added to 
other big software projects (like Linux Kernel, GTK, ...), most users of 
these projects have been able to use plugins immediately. Plugins are 
always a long term effort, because they are an invitation for people 
*outside* the community to participate in development, and this takes 
time & effort.


Note [*]: are we sure that other announced features, like Link Time 
Optimization, are *easily* usable by *ordinary* GCC users? I don't know, 
and I am not sure... Perhaps most ordinary users only know about -O1 or 
-O3...


Cheers.

--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basilestarynkevitchnet mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***


Re: GCC 4.5.0 Released

2010-04-19 Thread Jonathan Wakely
On 19 April 2010 18:34, Basile Starynkevitch wrote:
>
> Note [*]: are we sure that other announced features, like Link Time
> Optimization, are *easily* usable by *ordinary* GCC users? I don't know, and
> I am not sure... Perhaps most ordinary users only know about -O1 or -O3...

Well, yes, because they can enable it by passing an extra command-line
flag. To use plugins they need to write a plugin.  That is more useful
in the long-term, once useful plugins are available.

You spend a lot of time on this mailing list saying "maybe this will
happen" or "perhaps most users only know" ... stop speculating.

Besides which, the full "changes" page explains that plugins are now
supported, so users who want to dig further than the release
announcement will find out about it.  Do we really need to have a long
discussion on this mailing list about what should have been in the
announcement?  Can I complain that my contributions weren't announced?
 I feel they were significant, and noone consulted me on the release
announcement.

Let's move on.


Re: gcc- 4.6.0 20100416 rtmutex.c:1138:1: internal compiler error

2010-04-19 Thread Jonathan Wakely
On 19 April 2010 08:20, Justin P. Mattock wrote:
> On 04/18/2010 11:57 PM, Jie Zhang wrote:
>>
>> On 04/19/2010 02:43 PM, Justin P. Mattock wrote:
>>>
>>> I couldn't resist..(had to play),
>>> anyways I looked through the reports
>>> but didn't see anything that was
>>> familiar. so I went and created an entry:
>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43791
>>>
>> Thanks. Please add a preprocessed source file so people can reproduce
>> your issue.
>>
>>
>
>
> as for the preprocessed source file,
> not that yet skilled at code.(one day)

See the "how to report" link on the gcc front page:
http://gcc.gnu.org/bugs/
It's not hard.


Re: gcc- 4.6.0 20100416 rtmutex.c:1138:1: internal compiler error

2010-04-19 Thread Justin P. Mattock

On 04/19/2010 02:17 PM, Jonathan Wakely wrote:

On 19 April 2010 08:20, Justin P. Mattock wrote:

On 04/18/2010 11:57 PM, Jie Zhang wrote:


On 04/19/2010 02:43 PM, Justin P. Mattock wrote:


I couldn't resist..(had to play),
anyways I looked through the reports
but didn't see anything that was
familiar. so I went and created an entry:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43791


Thanks. Please add a preprocessed source file so people can reproduce
your issue.





as for the preprocessed source file,
not that yet skilled at code.(one day)


See the "how to report" link on the gcc front page:
http://gcc.gnu.org/bugs/
It's not hard.




the info from jie, worked, as well
as: make kernel/rtmutex.i
(from joe perches)

Justin P. Mattock


Re: GCC 4.5.0 Released

2010-04-19 Thread Dave Korn
On 19/04/2010 15:31, Mark Mitchell wrote:

> But, I don't think that plug-ins are yet a useful thing to announce in
> what is essentially a "marketing" context.  Most users won't be able to
> use them yet.  We have some infrastructure; we don't have a lot of use
> of that infrastructure yet.

  Well, to be fair, LTO is in somewhat the same position: works, but isn't a
great deal of use /yet/, until people start getting to grips with and using
the _potential_ it provides.

> More broadly, there are lots of things that didn't make the
> announcement.  There have been many important improvements since GCC
> 4.4.x; they don't all fit in an announcement.  

  But I agree with this: a release announcement is just an email someone sends
out after a new release is uploaded, it is not a major PR effort nor a
statement of policy nor even something from which to attempt to infer the
relative priority of different features.  It's just a non-comprehensive brief
precis.  So if there's a discussion to be had here, it's about how GCC should
be "marketed", and the extent to which a release announcement should be part
of that effort.

cheers,
  DaveK