Re: Adding to G++: Adding a warning on throwing unspecified exceptions.

2008-09-24 Thread Simon Hill
Thanks for all the links. I knew there were people wanting this but I
didn't quite get how big an issue it was.


Brain Dessent wrote:
> You're essentially trusting that all
> exception specifiers for every function in the program and *all* library
> code are always present and always correct which is a huge leap of faith
> that I don't think is supported by reality.

I agree that it won't be very useful initially due to lots of third
party code like boost neither defining nor adhering exception
restrictions 100% of the time (STL may be guilty also). However, this
is a catch 22. Why not provide the mechanism for verifying exception
specifications so that these libraries can, in future, become fully
compliant? It won't take much work, especially when you can get a
warning telling you exactly what you need to change, and the only
thing you need to do 99% of the time is add throw() clauses to
definitions and declarations. I bet you could get boost & STL
compliant within a week even if they had 0 throw() clauses to begin
with.


Brain Dessent wrote:
> The general consensus is that doing this at compile time cannot give you
> anything useful, because the compiler can only see one compilation unit
> at a time and so the only thing it can know of all the downstream
> functions that are in other CUs is what is provided in the exception
> specifiers of the prototypes.

So, once the other CUs adhere to their prototype exception specifiers,
this becomes OK. I definately intend all of my own CUs to adhere.
Also, you rely on CUs doing what they say in all other means (eg not
modifying const-passed references), why not rely on their exception
specifiers as long as they say you can. And if only some (ie your own)
CUs adhere, that's by no means worse than none adhering (as long as
you are aware that some don't).


> You should certainly look at EDoc++, mentioned in the above threads.
http://edoc.sourceforge.net/
This is definitely interesting, however our goals are a bit different.
EDoc++ is about checking that there is no chance a thrown that
actually exists in code can propogate to somewhere where it will
terminate the app due to being unhandled. It's not about enforcing
code requirements. For example, foo() throw() can call bar()
throw(zug) as long as it doesn't actually throw a zug, or call
anything that does. I would like an environment where the above
example is considered poor practice.


One thing I read there that concerned me was when it was said that
some compilers do "pessimizations" such as not inlining functions with
throw clauses or placing try/catch blocks around calls to these.
I hope that these compilers aren't mainstream. Also, I don't think
that consideration of current bad implementations should factor into
the decision. If people decide to use exception specifications more
these compilers will either get fixed or become slower.


So overall:
- Lots of people request it (for good reasons or bad). Even bad
reasons mean there's an advantage from providing this as an option, ie
showing that it doesn't do what they want.
- Nobody has yet shown me any fundamental problems with implementing
this, apart from my typedefs of function pointers not being allowed
exception specifications which, while annoying, can be avoided.
- It helps code comply with what it says (if you read the throw()
clause in what seems to be its spirit: as an indication of what may be
thrown).
- It's fully optional, and off by default.
- The only real issue is that it will complain about third party code
that doesn't yet "comply". But by this same token this helps third
party code become "compliant" if the authors desire it to be. There's
also the possibility of adding a modification that could ignore calls
to functions declared inside a whitelist of headers like  to
further reduce this.
- GCC probably doesn't do the above pessimizations (I guess I'll have
to look into this).
Where's the downside?


Re: Adding to G++: Adding a warning on throwing unspecified exceptions.

2008-09-24 Thread Brendon Costa

> I agree that it won't be very useful initially due to lots of third
> party code like boost neither defining nor adhering exception
> restrictions 100% of the time (STL may be guilty also). However, this
> is a catch 22. Why not provide the mechanism for verifying exception
> specifications so that these libraries can, in future, become fully
> compliant? It won't take much work, especially when you can get a
> warning telling you exactly what you need to change, and the only
> thing you need to do 99% of the time is add throw() clauses to
> definitions and declarations. I bet you could get boost & STL
> compliant within a week even if they had 0 throw() clauses to begin
> with.
>
>   
One of the problems i see with this is generic template classes like the
STL containers. The author of the template class or container can't know
what types of exceptions will be thrown from them, so you must define
them as being able to throw all exceptions (which is how they are
currently). Then if those containers are used all over the place then
you are back to square one. Personally i am starting to see that usage
of the exception specifier in C++ is "almost" useless (I find them a bit
more useful with EDoc++ but i still only use them very rarely).

I initially thought the same way as you are now, but in the end decided
it was necessary to construct a complete list of exceptions that can be
thrown before then applying such rules. This is what EDoc++ does. It
first calculates all possible exceptions, then it performs all sorts of
analysis to enforce things like exception specifiers (and much more).

After developing EDoc++, i have also realized how pervasive exceptions
can be in C++ code, which works against the sorts of checks that can be
done within a single translation unit. I had to go to lengths to provide
a "suppressions" system for EDoc++, simply because almost all code can
throw all sorts of exceptions i had never heard of before. A developer
"generally" is not interested in exceptions like:
__gnu_cxx::recursive_init. But after writing EDoc++ i found exceptions
like this turn up all over the place, though they should not occur in
normal operation...

With all this said though. If your purpose is to learn more about GCC
internals, then i think it would be a good project to undertake to
achieve that. You may have to do so though, with the understanding that
the maintainers may not choose to accept your patch into the official
GCC release. I don't know if they would or not, as i am not a GCC
maintainer but it would be worth getting clarification before doing the
task.



On a slight side note, there is a feature i have been postponing from
EDoc++ until "the distant future". It is to provide "meta-data" or code
"markup" which can be used to enforce certain restrictions on code being
used. This is primarily of use for defining a "contract" when writing
template code that wants to define a certain "exception guarantee".

For example, i assume you are familiar with the various "guarantees"
that have been described in literature about exceptions in C++ (if not
then it is worth looking up. It sure opened my eyes to writing safer and
better code in the presence of exceptions). To make some generic
container satisfy the "strong guarantee" will require certain
restrictions on the type used to instantiate the template. A good
example of this is that the destructor for the type must not throw an
exception. For a given generic implementation, there may be additional
restrictions as well. If these restrictions are not met, then the
container will no longer meet the "strong guarantee". I wish to define a
method of marking up source code such that those requirements are
described inline in the code of the template implementation such that
someone who instantiates the template with a particular type can then
run EDoc++ over their code and be warned when that particular
instantiation may break the requirements.

Anyhow, this is a preliminary idea and i just don't have the time now to
look at implementing it. It will likely require changes to the C++
parser and front end to insert extra nodes into the tree for this
markup. I am also not sure if others would accept such a modification
into the official GCC release unless it was generic enough to be used
for other purposes (maybe such as providing optimization hints for
certain segments of code or other forms of markup).

Thanks,
Brendon.



Re: char* problems

2008-09-24 Thread Lijuan Hai
I have no gcc 4.1.2 at hand. but I just had a try with gcc-4.1.0 and
gcc-4.2.0 which compiled a simple testcase with no errors or warnings.
additionally, I had a try with some other compiler than gcc to compile
it. a warning issued.
I think it's possibly too strict of gcc raising a error on sch case.
any options that you added when compiling?

2008/9/15 Douglas Gemignani <[EMAIL PROTECTED]>:
> Dear friends,
>
> I have serious issues when compiling using gcc 4.1.2, everytime i try
> to pass a unsigned char* to a function that receives char*, i got
> errors, it also happens when passing const char* to char* or unsigned
> char* functions.
>
> This is really annoying and the code is a working one in other system,
> i would like to foce the compilation, i already tryed to use the
> following flags:
> -fno-const-strings
> -Wwrite-strings
> -funsigned-char
>
> but none of them worked.
>
> Is there something that i can tell to gcc, other than making casts all
> over the code?
> Thanks
>
> []s
> Douglas
>



-- 
 Best wishes!
Yours,
Lijuan Hai
 _ _
 (_)(_)
 (,,)
 =()=
 ((__)\
 _|L\___/


Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Paolo Bonzini
Peter O'Gorman wrote:
> Yuhong Bao wrote:
>> and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
>> Unfortunately, the iPhone is incompatible with GPLv3, if you want more see
>> the link I mentioned.
> 
> Apple does not use a GPLv3 version of GCC.

Ah, actually I think I now see the OP's point.  Apple is scared of the
GPLv3 because the iPhone might violate it, so they are not contributing
to anything that falls under the GPLv3.

It is indeed in-topic.  There are four Darwin maintainers listed in
MAINTAINERS:

darwin port Dale Johannesen [EMAIL PROTECTED]
darwin port Mike Stump  [EMAIL PROTECTED]
darwin port Eric Christopher[EMAIL PROTECTED]
darwin port Stan Shebs  [EMAIL PROTECTED]

and three of them are not allowed to read the GCC patches mailing list.
   They might do something if CCed, but not necessarily so.  Same for
Objective-C/C++:

objective-c/c++ Mike Stump  [EMAIL PROTECTED]
objective-c/c++ Stan Shebs  [EMAIL PROTECTED]


Now I wonder:

1) does it make sense to keep a maintainer category that is known to be
inactive?

2) who should then get maintainership of darwin?  note that there are
some patches for darwin like this one:
http://article.gmane.org/gmane.comp.gcc.patches/172498

It's sad, but I think that there is need for the SC to take action on this.

Paolo



Re: Adding to G++: Adding a warning on throwing unspecified exceptions.

2008-09-24 Thread Simon Hill
Brendon Costa said:
> The author of the template class or container can't know
> what types of exceptions will be thrown from them, so you must define
> them as being able to throw all exceptions (which is how they are
> currently).
Ouch, you have a point. But couldn't you put this round the other way.
Place the onus on the user of the template to comply with the
exception guarantees inside the template. Unfortunately that would
likely cause problems with some existing code.

I'm trying to think whether this would actually prevent well-designed
future code. All I can really come up with so far is copying a vector
of vectors and having bad_alloc thrown during a copy constructor
partway through, but I think bad_alloc should be allowed. Other
things, such as constructing a vector of N thread objects that can
throw on failed thread creation, might be better off undergoing a
redesign.

In other words, would you gain more from a tight exception
specification than you'd lose by not being able to do this?

Another thought that could be a workaround: Is it possible to do
anything like this?
===
template 
int foo() throw(E) {}
===
IE using a template parameter to specify what can be thrown. (Esp with
a C++0X variadic).
Sorry I won't be near a compiler to test this for many an hour, if I
test it and can get it working I'll reply.


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Jack Howarth
On Wed, Sep 24, 2008 at 11:47:18AM +0200, Paolo Bonzini wrote:
> Peter O'Gorman wrote:
> > Yuhong Bao wrote:
> >> and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
> >> Unfortunately, the iPhone is incompatible with GPLv3, if you want more see
> >> the link I mentioned.
> > 
> > Apple does not use a GPLv3 version of GCC.
> 
> Ah, actually I think I now see the OP's point.  Apple is scared of the
> GPLv3 because the iPhone might violate it, so they are not contributing
> to anything that falls under the GPLv3.
> 
> It is indeed in-topic.  There are four Darwin maintainers listed in
> MAINTAINERS:
> 
> darwin port Dale Johannesen [EMAIL PROTECTED]
> darwin port Mike Stump  [EMAIL PROTECTED]
> darwin port Eric Christopher[EMAIL PROTECTED]
> darwin port Stan Shebs  [EMAIL PROTECTED]
> 
> and three of them are not allowed to read the GCC patches mailing list.
>They might do something if CCed, but not necessarily so.  Same for
> Objective-C/C++:
> 
> objective-c/c++ Mike Stump  [EMAIL PROTECTED]
> objective-c/c++ Stan Shebs  [EMAIL PROTECTED]
> 
> 
> Now I wonder:
> 
> 1) does it make sense to keep a maintainer category that is known to be
> inactive?
> 
> 2) who should then get maintainership of darwin?  note that there are
> some patches for darwin like this one:
> http://article.gmane.org/gmane.comp.gcc.patches/172498
> 
> It's sad, but I think that there is need for the SC to take action on this.
> 
> Paolo

Well at least that explains their total inactivity in the last year. Is Dale
the one still allowed to read the gcc-patches mailing list? I recall that he
posted in the last year that he would be more active in gcc (but I can't find
that message at the moment). I had attributed the fact that they were not
active to the emphasis on llvm at Apple. However if GPLv3 is such a huge issue
at Apple, it does make one wonder if llvm will ever see a gcc front-end newer
than the current 4.2 one.
 Jack


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Ian Lance Taylor
"Yuhong Bao" <[EMAIL PROTECTED]> writes:

>> 1) This is offtopic.
> Yeah, but I want to bring this up because I can tell it is affecting GCC
> development.
>
>>From http://gcc.gnu.org/ml/gcc/2008-02/msg00523.html:
> "> If someone steps forward, are you allowed to follow the patches list
> We can't read the patches nor gcc list.
>> and give feedback and/or approve patches for new contributors? I assume
>> this is possible since you helped out with objc++ review for me just
>> recently.
> Only because I was cced on it."
>
>>From http://gcc.gnu.org/ml/gcc/2008-02/msg00516.html:
> "> Are current Darwin maintainers working on fixing anything in the FSF
> sources?
> Currently no. The transition to GPL v3 is problematic for us in the
> short/mid term. :-( Longer term, we'll see how it goes."

Apple's dislike of GPLv3 is a problem for gcc, yes.  However, Apple is
moving to a new free compiler, LLVM, so they have little incentive to
fix the problem.  My understanding of Apple's current position is that
they won't take any action until they see the final version of the gcc
runtime license.  gcc's runtime libraries have not yet been updated to
GPLv3, because the FSF has not yet settled on the final version of the
appropriate license to use for those libraries (yes, this has taken a
ridiculously long time, largely because the FSF is trying to get the
plugin license right at the same time).  Until the runtime library
licenses have been updated, there is little point in discussing
Apple's future contributions to gcc.  Since Apple is moving to a new
compiler, it is likely that Apple will have negligible future
contributions to gcc in any case, though some individuals employed by
Apple may be able to once again contribute on their own time.


>> 2) You didn't say what the problem is.  I certainly can't figure it
>> out from the links you posted.
> Basically, what happened is that Apple created a Tivoized device called the
> iPhone,
> and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
> Unfortunately, the iPhone is incompatible with GPLv3, if you want more see
> the link I mentioned. 

Using gcc to compile your code does not impose any licensing
requirements on that code.  Many people use gcc to create proprietary
software.  This is understood and is in fact desirable.  This is not a
problem to be solved.  Morevoer, as Peter pointed out, GPLv3 is a
total red herring here, since Apple has very carefully avoided any use
of it.  Not that gcc being under GPLv3 makes any difference
whatsoever, as the iPhone would still be permitted regardless.

Ian


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Paolo Bonzini
> Well at least that explains their total inactivity in the last year. Is Dale
> the one still allowed to read the gcc-patches mailing list?

No, that would be Stan just because he's not at Apple.

It must be said also that Mike Stump accepted to review/discuss
Darwin/ObjC patches that he was CCed on, but most people don't know that
they need to do so.

As a side note, Mike also wrote this last February:

> The SC knows of the issue

Still, after six months it would be nice to have a clearer idea of what
will happen with respect to Darwin/ObjC, especially since the previous
statement (which I suppose was "as clear as" Mike could do) was buried
under an unrelated thread.

Paolo


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Ian Lance Taylor
Paolo Bonzini <[EMAIL PROTECTED]> writes:

> Ah, actually I think I now see the OP's point.  Apple is scared of the
> GPLv3 because the iPhone might violate it, so they are not contributing
> to anything that falls under the GPLv3.

...

> 1) does it make sense to keep a maintainer category that is known to be
> inactive?
>
> 2) who should then get maintainership of darwin?  note that there are
> some patches for darwin like this one:
> http://article.gmane.org/gmane.comp.gcc.patches/172498
>
> It's sad, but I think that there is need for the SC to take action on this.

I personally don't think there is any need to remove them as
maintainers until the FSF finally produces the GPLv3 version of the
runtime library license.  At that point Apple will be out of excuses,
and will have to finally decide in or out on future gcc developmnt.

It's worth noting that in a larger sense, Apple is simply not
interested in contributing to gcc.  If they were interested, they
would contribute.  They (for some version of "they") are using GPLv3
as a tactic to get out of the gcc game while blaming it on us.  They
have not raised any actual substantial issue with the GPLv3, which is
not surprising, since the GPLv3 does not impose any additional
requirements on them beyond GPLv2.  However, the gcc community can't
call them on that until the runtime library license is complete, as
its absence is indeed a valid objection.


Jack Howarth <[EMAIL PROTECTED]> writes:

> However if GPLv3 is such a huge issue
> at Apple, it does make one wonder if llvm will ever see a gcc front-end newer
> than the current 4.2 one.

The LLVM folks are writing a new frontend anyhow.  In the future they
presumably plan to stop using the gcc frontend.  gcc's code is so
tangled anyhow, it's not like using the gcc frontend somehow makes
LLVM compile code the same way gcc does.

Ian


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Duncan Sands
> > However if GPLv3 is such a huge issue
> > at Apple, it does make one wonder if llvm will ever see a gcc front-end 
> > newer
> > than the current 4.2 one.
> 
> The LLVM folks are writing a new frontend anyhow.  In the future they
> presumably plan to stop using the gcc frontend.  gcc's code is so
> tangled anyhow, it's not like using the gcc frontend somehow makes
> LLVM compile code the same way gcc does.

I'm quite interested in porting llvm-gcc to gcc head, in order to
get better Ada support.  Apple isn't planning Ada support in their
new compiler (clang) as far as I know :)

Duncan.

PS: I have no connection with Apple.


Runtime library license, was Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Basile STARYNKEVITCH

Ian Lance Taylor wrote:

Paolo Bonzini <[EMAIL PROTECTED]> writes:

It's sad, but I think that there is need for the SC to take action on this.


I personally don't think there is any need to remove them as
maintainers until the FSF finally produces the GPLv3 version of the
runtime library license.  At that point Apple will be out of excuses,
and will have to finally decide in or out on future gcc development.



I am probably not alone to be extremely interested in understanding more 
clearly what is happening on the runtime library license side, 
especially with relation to plugins.


The recent thread http://gcc.gnu.org/ml/gcc/2008-09/msg00292.html
"Defining a common plugin machinery" is particularly concerned with this 
issue (of runtime library license). I'm guessing that since Diego 
Novillo asked something, he was expecting/dreaming/knowing? about some 
evolution on this.


Is it top secret information only available to some few members of the 
Steering Committee, or is some information sharable on this list? Just 
knowing that indeed a runtime library license will be finalized before 
Christmas (ie in 2008) and that GPL-ed plugins will be somehow "blessed" 
by the SC (or is it the FSF) will be a big relief.


Is something happening on runtime library license, or is there some 
unexpected issue which affects existing branches experimenting plugins 
(e.g. MELT)?


The only thing I know about runtime library license is the stuff I heard 
and read at the june 2008 GCC summit, and I am guessing that a lot of 
things happened since. IIRC, I remember having heard in june 2008 that 
we have only months, not years, to wait (I did not understood exactly 
for what, but it was runtime licence related).


In particular, if dlopen-ing GPL-ed (and even FSF copyright-ed) code is 
still a taboo in GCC, I would be glad to be informed...


[I'm writing in some proposals, to get money to work on GCC, that 
plugins are indeed appearing in GCC; I hope that I am not entirely wrong]


Regards.
--
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: Runtime library license, was Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Ian Lance Taylor
Basile STARYNKEVITCH <[EMAIL PROTECTED]> writes:

> Is it top secret information only available to some few members of the
> Steering Committee, or is some information sharable on this list? Just
> knowing that indeed a runtime library license will be finalized before
> Christmas (ie in 2008) and that GPL-ed plugins will be somehow
> "blessed" by the SC (or is it the FSF) will be a big relief.

I have no additional information.  I just want to make the point that
these issues involve lawyers, and they involve RMS, and it's not a
major priority for any of them.  It takes time.  It's frustrating.
But it is most likely not the case that secret negotiations are
happening.  It is far more likely that nothing is happening at all.

There is a simple technique which anybody is free to use to make this
happen much faster: make a large donation to the SFLC and/or the FSF,
contingent on this issue being finished.  In the absence of that, it
will happen in the time that people have available to work on it.

Ian


Mainline bootstrap failure on powerpc64-darwin, but looks generic

2008-09-24 Thread Bradley Lucier

I'm just not having any luck bootstrapping this thing ...

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37639


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Jack Howarth
On Wed, Sep 24, 2008 at 04:33:35PM +0200, Paolo Bonzini wrote:
> > Well at least that explains their total inactivity in the last year. Is Dale
> > the one still allowed to read the gcc-patches mailing list?
> 
> No, that would be Stan just because he's not at Apple.
> 
> It must be said also that Mike Stump accepted to review/discuss
> Darwin/ObjC patches that he was CCed on, but most people don't know that
> they need to do so.
> 
> As a side note, Mike also wrote this last February:
> 
> > The SC knows of the issue
> 
> Still, after six months it would be nice to have a clearer idea of what
> will happen with respect to Darwin/ObjC, especially since the previous
> statement (which I suppose was "as clear as" Mike could do) was buried
> under an unrelated thread.
> 
> Paolo

Do we know if Apple still intends to update the ObjC in FSF gcc to v2.0?
Jack


Re: Runtime library license, was Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread NightStrike
On Wed, Sep 24, 2008 at 11:26 AM, Ian Lance Taylor <[EMAIL PROTECTED]> wrote:
> Basile STARYNKEVITCH <[EMAIL PROTECTED]> writes:
>
>> Is it top secret information only available to some few members of the
>> Steering Committee, or is some information sharable on this list? Just
>> knowing that indeed a runtime library license will be finalized before
>> Christmas (ie in 2008) and that GPL-ed plugins will be somehow
>> "blessed" by the SC (or is it the FSF) will be a big relief.
>
> I have no additional information.  I just want to make the point that
> these issues involve lawyers, and they involve RMS, and it's not a
> major priority for any of them.  It takes time.  It's frustrating.
> But it is most likely not the case that secret negotiations are
> happening.  It is far more likely that nothing is happening at all.
>
> There is a simple technique which anybody is free to use to make this
> happen much faster: make a large donation to the SFLC and/or the FSF,
> contingent on this issue being finished.  In the absence of that, it
> will happen in the time that people have available to work on it.

How large is large?


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Chris Lattner

On Sep 24, 2008, at 8:51 AM, Jack Howarth wrote:

The SC knows of the issue


Still, after six months it would be nice to have a clearer idea of  
what
will happen with respect to Darwin/ObjC, especially since the  
previous
statement (which I suppose was "as clear as" Mike could do) was  
buried

under an unrelated thread.

Paolo


Do we know if Apple still intends to update the ObjC in FSF gcc to  
v2.0?

   Jack


We don't have any short-term plans to do so.  However, all the code  
for ObjC 2.0 and even the new C Blocks feature is available in the  
llvm-gcc repository.  One potential issue is that while Apple has a  
blanket copyright assignment with the FSF, I don't know whether code  
in the llvm-gcc repo is auto-assigned to the FSF.


-Chris


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Chris Lattner

On Sep 24, 2008, at 7:06 AM, Ian Lance Taylor wrote:

fix the problem.  My understanding of Apple's current position is that
they won't take any action until they see the final version of the gcc
runtime license.


Basically, what happened is that Apple created a Tivoized device  
called the

iPhone,
and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
Unfortunately, the iPhone is incompatible with GPLv3, if you want  
more see

the link I mentioned.


Using gcc to compile your code does not impose any licensing
requirements on that code.


I'm not speaking for Apple here, and I am not a lawyer.  However, the  
last draft of the runtime library exception clause (which is quite old  
by now) imposed licensing restrictions on the executables generated by  
GCC (due to linked runtime libraries) if you did certain things to the  
compiler.  I'm personally very eager to see the final wording, because  
the draft I saw (again, which is old and has certainly changed) was  
extremely aggressive.


-Chris


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Chris Lattner


On Sep 24, 2008, at 8:02 AM, Duncan Sands wrote:


However if GPLv3 is such a huge issue
at Apple, it does make one wonder if llvm will ever see a gcc  
front-end newer

than the current 4.2 one.


The LLVM folks are writing a new frontend anyhow.  In the future they
presumably plan to stop using the gcc frontend.  gcc's code is so
tangled anyhow, it's not like using the gcc frontend somehow makes
LLVM compile code the same way gcc does.


I'm quite interested in porting llvm-gcc to gcc head, in order to
get better Ada support.


As Duncan says here, Apple and the LLVM Project really are separable  
entities.  As a developer on the LLVM Project, I'd love to see a new  
version of llvm-gcc based on ToT GCC.  I'm not sure how technically  
feasible it is, but it would be even better for future versions of  
llvm-gcc to be based on the new GCC plugin model.


-Chris


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Chris Lattner


On Sep 24, 2008, at 10:01 AM, Chris Lattner wrote:


requirements on that code.


I'm not speaking for Apple here, and I am not a lawyer.  However,  
the last draft of the runtime library exception clause (which is  
quite old by now)


I'm sorry, to be clear, I meant "the last draft *that I saw* (which is  
quite old..."


-Chris



Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Joe Buck
On Wed, Sep 24, 2008 at 10:05:37AM -0700, Chris Lattner wrote:
> 
> On Sep 24, 2008, at 10:01 AM, Chris Lattner wrote:
> 
> >>requirements on that code.
> >
> >I'm not speaking for Apple here, and I am not a lawyer.  However,  
> >the last draft of the runtime library exception clause (which is  
> >quite old by now)
> 
> I'm sorry, to be clear, I meant "the last draft *that I saw* (which is  
> quite old..."

While I'm not eager to continue this thread, the draft you saw was
rejected by pretty much everyone (in particular, the SC pushed back hard)
and has been replaced by much narrower language, so I hope that no one
panics based on your message.




Re: Runtime library license, was Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Ian Lance Taylor
NightStrike <[EMAIL PROTECTED]> writes:

>> There is a simple technique which anybody is free to use to make this
>> happen much faster: make a large donation to the SFLC and/or the FSF,
>> contingent on this issue being finished.  In the absence of that, it
>> will happen in the time that people have available to work on it.
>
> How large is large?

More than you want to pay personally.  Think: enough to hire another
staff member to work on it.

To be clear, I'm not saying it won't get done.  It will get done.  But
it is in effect like any other volunteer job.  Our position with
regard to the people who need to do the work is like a gcc user's
position with regard to us.

Ian


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Ian Lance Taylor
Chris Lattner <[EMAIL PROTECTED]> writes:

> On Sep 24, 2008, at 7:06 AM, Ian Lance Taylor wrote:
>> fix the problem.  My understanding of Apple's current position is that
>> they won't take any action until they see the final version of the gcc
>> runtime license.
>
>>> Basically, what happened is that Apple created a Tivoized device
>>> called the
>>> iPhone,
>>> and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
>>> Unfortunately, the iPhone is incompatible with GPLv3, if you want
>>> more see
>>> the link I mentioned.
>>
>> Using gcc to compile your code does not impose any licensing
>> requirements on that code.
>
> I'm not speaking for Apple here, and I am not a lawyer.  However, the
> last draft of the runtime library exception clause (which is quite old
> by now) imposed licensing restrictions on the executables generated by
> GCC (due to linked runtime libraries) if you did certain things to the
> compiler.  I'm personally very eager to see the final wording, because
> the draft I saw (again, which is old and has certainly changed) was
> extremely aggressive.

I do not know what draft you saw, but I don't think I ever saw it,
unless we disagree on the meaning of "extremely aggressive."

In the general sense, you are most likely correct: if you modify gcc
by adding GPL-incompatible software used to generate code, it is
likely that you will not be granted any exception to the GPL when
using the runtime library.  In other words, if you 1) add an
optimization pass to gcc using the (hypothetical) plugin architecture,
and 2) that optimization pass is not licensed under a GPL-compatible
license, and 3) you generate object code using that optimization pass,
and 4) you link that generated object code with the gcc runtime
library (e.g., libgcc or libstdc++-v3), then you will not be permitted
to distribute the resulting executable except under the terms of the
GPL.

This does not of course affect LLVM, which is not under a
GPL-incompatible license.

This is intended to be a mechanism to use the runtime libraries as a
hook to prevent people from distributing GPL-incompatible plugins for
gcc.

This message is not intended to describe the final version of the
runtime library license, which does not exist.  Nor does it represent
the official position of the gcc steering committee, the FSF, the
SFLC, or, for that matter, Google.  This describes my personal
understanding of the intent of the current drafting process.

Ian


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Joe Buck

Chris Lattner <[EMAIL PROTECTED]> writes:
> > I'm not speaking for Apple here, and I am not a lawyer.  However, the
> > last draft of the runtime library exception clause (which is quite old
> > by now) imposed licensing restrictions on the executables generated by
> > GCC (due to linked runtime libraries) if you did certain things to the
> > compiler.  I'm personally very eager to see the final wording, because
> > the draft I saw (again, which is old and has certainly changed) was
> > extremely aggressive.

On Wed, Sep 24, 2008 at 10:50:13AM -0700, Ian Lance Taylor wrote:
> I do not know what draft you saw, but I don't think I ever saw it,
> unless we disagree on the meaning of "extremely aggressive."

There was a first version that had some problems, forbidding things
that weren't intended to be forbidden and with muddy language making
the scope of the GCC exception unclear.  But this was never intentional.




Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Chris Lattner

On Sep 24, 2008, at 10:50 AM, Ian Lance Taylor wrote:

I'm not speaking for Apple here, and I am not a lawyer.  However, the
last draft of the runtime library exception clause (which is quite  
old
by now) imposed licensing restrictions on the executables generated  
by
GCC (due to linked runtime libraries) if you did certain things to  
the
compiler.  I'm personally very eager to see the final wording,  
because

the draft I saw (again, which is old and has certainly changed) was
extremely aggressive.


I do not know what draft you saw, but I don't think I ever saw it,
unless we disagree on the meaning of "extremely aggressive."

In the general sense, you are most likely correct: if you modify gcc
by adding GPL-incompatible software used to generate code, it is
likely that you will not be granted any exception to the GPL when
using the runtime library.  In other words, if you 1) add an
optimization pass to gcc using the (hypothetical) plugin architecture,
and 2) that optimization pass is not licensed under a GPL-compatible
license, and 3) you generate object code using that optimization pass,
and 4) you link that generated object code with the gcc runtime
library (e.g., libgcc or libstdc++-v3), then you will not be permitted
to distribute the resulting executable except under the terms of the
GPL.


Again, speaking for myself as an individual:

This was many months ago, and I did not retain a copy of the draft.   
In any case, it doesn't really matter because the draft probably has  
changed.  However, the intent of pieces of the exception clause was  
pretty much what you said above.



This does not of course affect LLVM, which is not under a
GPL-incompatible license.


Right.  However, the wording I saw was much broader than just the  
plugin model.  It was vague and poorly worded, and you could interpret  
it as saying that use of a non-GPL assembler or linker was also not  
allowed to build or link the libraries.


My personal feeling on the matter is that it seems very strange to  
talk about *compiler plugins* in the license for *runtime libraries*.  
Considering that there are already widely available alternative  
libraries (e.g. the apache stdc++ library and many others) it seems  
potentially damaging to the GCC community to try to address the plugin  
issue this way.


In any case, this thread should probably be killed, as we won't know  
until the FSF publishes the final proposed wording what the end result  
will be.  I am (personally) looking forward to this, and I  
(personally) wish that the FSF was a lot more transparent on this  
issue, for the sake of the GCC community.


-Chris



Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Joe Buck
On Wed, Sep 24, 2008 at 11:11:41AM -0700, Chris Lattner wrote:
> Right.  However, the wording I saw was much broader than just the  
> plugin model.  It was vague and poorly worded, and you could interpret  
> it as saying that use of a non-GPL assembler or linker was also not  
> allowed to build or link the libraries.

That's the version that was dumped, exactly for the reasons you state.


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Eric Christopher
On Wed, Sep 24, 2008 at 11:22 AM, Joe Buck <[EMAIL PROTECTED]> wrote:
> On Wed, Sep 24, 2008 at 11:11:41AM -0700, Chris Lattner wrote:
>> Right.  However, the wording I saw was much broader than just the
>> plugin model.  It was vague and poorly worded, and you could interpret
>> it as saying that use of a non-GPL assembler or linker was also not
>> allowed to build or link the libraries.
>
> That's the version that was dumped, exactly for the reasons you state.
>
Excellent. I'm glad to hear that since I had also seen it and thought that
it was unacceptable in general (speaking for myself).

Anyhow, I hope to see all of this resolved at some point.

-eric


Re: Runtime library license, was Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Basile STARYNKEVITCH

Ian Lance Taylor wrote:

NightStrike <[EMAIL PROTECTED]> writes:


There is a simple technique which anybody is free to use to make this
happen much faster: make a large donation to the SFLC and/or the FSF,
contingent on this issue being finished.  In the absence of that, it
will happen in the time that people have available to work on it.

How large is large?


More than you want to pay personally.  Think: enough to hire another
staff member to work on it.

To be clear, I'm not saying it won't get done.  It will get done.  But
it is in effect like any other volunteer job.  Our position with
regard to the people who need to do the work is like a gcc user's
position with regard to us.



I fully understand that position, but it triggers another question: what 
company (or kind of companies) would want GCC plugins to happen really fast?


Is there any big coorporation, already contributing to GCC, which needs 
plugin quickly? I cannot name any.


My feeling is that plugin will become progressively extremely useful to 
*new* companies, which are not yet working within GCC. This mostly is 
the case because in my perception plugins will open new use of GCC, like 
illustrated by the "replacing sed & grep by gcc" papers from Mozilla 
folks (Tarek et al.). My intuition is that plugins will mostly enhance 
all the non-code-generation activities in GCC.


Big hardware companies (those traditionally investing in GCC, like 
Intel, AMD, Apple, ...) probably do not need plugins (except if they 
wanted to provide *proprietary* plugins, which I believe the next 
runtime license will try to prohibit), they can and do contribute to GCC 
inside.


Big software or services companies (IBM, Google) probably also don't 
need plugins (except to enhance GCC with a plugin that they use only in 
house and do not intend to distribute, but for that use an inhouse 
patched GCC is enough).


So I cannot guess a company willing to invest big bucks on the runtime 
license issue, but I am probably wrong (and not naive enough to believe 
that companies will discuss their GCC related strategies & motivations 
here, publicly, on this list).


Regards
--
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: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Chris Lattner


On Sep 24, 2008, at 11:22 AM, Joe Buck wrote:


On Wed, Sep 24, 2008 at 11:11:41AM -0700, Chris Lattner wrote:

Right.  However, the wording I saw was much broader than just the
plugin model.  It was vague and poorly worded, and you could  
interpret

it as saying that use of a non-GPL assembler or linker was also not
allowed to build or link the libraries.


That's the version that was dumped, exactly for the reasons you state.


I look forward to seeing the updated version - someday.

-Chris


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Steven Bosscher
On Wed, Sep 24, 2008 at 4:06 PM, Ian Lance Taylor <[EMAIL PROTECTED]> wrote:
> Apple's dislike of GPLv3 is a problem for gcc, yes.

Well, excuse me for being a-political, but I don't see this problem.
The relationship between GCC and Apple has never been really good
AFAIK, but that hasn't hampered either to be quite successful. And
w.r.t. GCC development - I don't know where/how the money flows, but
at least the publicly the contributions from Apple to the FSF GCC are
pretty marginal.

Gr.
Steven


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Paolo Bonzini
Steven Bosscher wrote:
> On Wed, Sep 24, 2008 at 4:06 PM, Ian Lance Taylor <[EMAIL PROTECTED]> wrote:
>> Apple's dislike of GPLv3 is a problem for gcc, yes.
> 
> Well, excuse me for being a-political, but I don't see this problem.
> The relationship between GCC and Apple has never been really good
> AFAIK, but that hasn't hampered either to be quite successful.

I agree with you, but if you don't look at GCC as a whole -- but rather
at the small intersection represented by FSF GCC on Darwin -- it *has*
hampered it.

Apple GCC is basically a fork nowadays, and it is often impossible to
compile Leopard application using FSF GCC (in turn because of the lack
of Objective-C 2.0 support).  Sometimes I wonder why Darwin is still
part of FSF GCC, just like it is not supported in binutils or gdb... I
guess just for the sake of GCC developers that are working on a Mac.

Even outside *-*-darwin*, what caused the development of two separate
Objective-C runtimes, the one in FSF GCC being a big chainball for the
removal of dead code from the compiler?  Note that basically all
Objective-C code in existence either does not care about the runtime, or
has support for both runtimes; so it would not be a problem to deprecate
libobjc if Apple contributed their own implementation.  (There is now a
third runtime, named Étoilé).

Paolo

ps: of course, there is no offense intended for poor Mike who's CCed in
this thread.


Re: C/C++ FEs: Do we really need three char_type_nodes?

2008-09-24 Thread Jason Merrill

Joe Buck wrote:

On Tue, Sep 23, 2008 at 05:51:23PM -0400, Jason Merrill wrote:

Mark Mitchell wrote:

Is that desirable?  Type-based alias analysis should be able to take
advantage of the difference between them; a "char **" and a "signed char
**" cannot point at the same thing, for example.
They can.  In C++, a char* (or unsigned char*) can alias anything, and 
any signed/unsigned type can alias the other signage.


Right, but a char** points to a char*, and a signed char** points to a
signed char*.  The aliasing exception for char pointers doesn't cover this
case the way it does for the "one star" case.


Oops, I was overlooking the second *.

Jason



RE: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Yuhong Bao

BTW, one of the reason I posted this was that I wanted to privately talk about 
the politics behind this issue with someone internal to Apple, and forward some 
of that to RMS and the FSF. Can this be done or is the politics all under NDA?

Because this issue isn't just limited to GCC, it is locking Apple out of an 
entire body of FOSS code.

Yuhong bao

> Date: Wed, 24 Sep 2008 21:14:42 +0200
> From: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]
> CC: [EMAIL PROTECTED]; [EMAIL PROTECTED]; gcc@gcc.gnu.org; [EMAIL PROTECTED]
> Subject: Re: Apple, iPhone, and GPLv3 troubles
> 
> Steven Bosscher wrote:
>> On Wed, Sep 24, 2008 at 4:06 PM, Ian Lance Taylor  wrote:
>>> Apple's dislike of GPLv3 is a problem for gcc, yes.
>> 
>> Well, excuse me for being a-political, but I don't see this problem.
>> The relationship between GCC and Apple has never been really good
>> AFAIK, but that hasn't hampered either to be quite successful.
> 
> I agree with you, but if you don't look at GCC as a whole -- but rather
> at the small intersection represented by FSF GCC on Darwin -- it *has*
> hampered it.
> 
> Apple GCC is basically a fork nowadays, and it is often impossible to
> compile Leopard application using FSF GCC (in turn because of the lack
> of Objective-C 2.0 support).  Sometimes I wonder why Darwin is still
> part of FSF GCC, just like it is not supported in binutils or gdb... I
> guess just for the sake of GCC developers that are working on a Mac.
> 
> Even outside *-*-darwin*, what caused the development of two separate
> Objective-C runtimes, the one in FSF GCC being a big chainball for the
> removal of dead code from the compiler?  Note that basically all
> Objective-C code in existence either does not care about the runtime, or
> has support for both runtimes; so it would not be a problem to deprecate
> libobjc if Apple contributed their own implementation.  (There is now a
> third runtime, named Étoilé).
> 
> Paolo
> 
> ps: of course, there is no offense intended for poor Mike who's CCed in
> this thread.
_



Re: char* problems

2008-09-24 Thread Andrew Pinski
On Wed, Sep 24, 2008 at 2:47 AM, Lijuan Hai <[EMAIL PROTECTED]> wrote:
> I have no gcc 4.1.2 at hand. but I just had a try with gcc-4.1.0 and
> gcc-4.2.0 which compiled a simple testcase with no errors or warnings.
> additionally, I had a try with some other compiler than gcc to compile
> it. a warning issued.
> I think it's possibly too strict of gcc raising a error on sch case.
> any options that you added when compiling?

Well lets put it this way, this is invalid code as char, signed char,
and unsigned char are three distant types so the pointers to each of
them are not compatible which means you need an explicit cast.

The C++ compiler errors out by default, you can change the error to a
warning with -fpermissive.
While the C front-end warns by default, you can change the warning to
an error with -pedantic-errors.

Thanks,
Andrew Pinski


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Ian Lance Taylor
Yuhong Bao <[EMAIL PROTECTED]> writes:

> BTW, one of the reason I posted this was that I wanted to privately
> talk about the politics behind this issue with someone internal to
> Apple, and forward some of that to RMS and the FSF. Can this be done
> or is the politics all under NDA?

Well, good luck.  The people you need to talk to, with respect to
Apple and GPLv3, are not reading this mailing list.  We've already
talked to some of them, and the situation as I understand it is what I
already outlined, with the obvious proviso that I do not work at
Apple.  A couple of people from Apple have now commented on this
thread; go ahead and mail them directly.

Ian


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Ian Lance Taylor
Chris Lattner <[EMAIL PROTECTED]> writes:

> My personal feeling on the matter is that it seems very strange to
> talk about *compiler plugins* in the license for *runtime libraries*.
> Considering that there are already widely available alternative
> libraries (e.g. the apache stdc++ library and many others) it seems
> potentially damaging to the GCC community to try to address the plugin
> issue this way.

Here's the problem: the FSF doesn't really want to permit plugins.
Many members of the gcc community, including myself, think they are
very important.  The FSF doesn't want plugins because they are
concerned that people will start distributing proprietary plugins to
gcc.  I personally think this is a fear from twenty years ago which
shows a lack of understanding of today's compiler market, but, that
said, the FSF wants to cover themselves for the future as well.

So, how do we permit plugins while prohibiting proprietary plugins,
and how do we do it while staying within the bounds of copyright law
which is the basis of the GPL?

It's not an easy problem to solve.  Using the runtime library license
to solve it is a nice little bit of legal jujitsu.  Presumably we
could go ahead and use a simple runtime library license, similar to
the existing one, which doesn't address the plugin issue.  But we
still want plugins, and then how do we get them?  Separating the
problems doesn't make them easier to solve.

You are clearly right that the runtime license is potentially damaging
to the GCC community.  However, it's not like the people working on
this are stupid, and it's not like they are going to force it on
everybody without accepting comments.  So I think it's premature to
worry overly much about this.  The FSF has not yet made a major
licensing mistake.

Ian


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Chris Lattner


On Sep 24, 2008, at 12:57 PM, Ian Lance Taylor wrote:


Chris Lattner <[EMAIL PROTECTED]> writes:


My personal feeling on the matter is that it seems very strange to
talk about *compiler plugins* in the license for *runtime libraries*.
Considering that there are already widely available alternative
libraries (e.g. the apache stdc++ library and many others) it seems
potentially damaging to the GCC community to try to address the  
plugin

issue this way.


Here's the problem: the FSF doesn't really want to permit plugins.



So, how do we permit plugins while prohibiting proprietary plugins,
and how do we do it while staying within the bounds of copyright law
which is the basis of the GPL?


Does the obvious answer work?: add it to the license that covers the  
code in question.  Specifically, I think that it would be much more  
reasonable to add "plugin" wording to the license that covers the GCC  
compiler code itself.  This means that you couldn't use *GCC* if you  
did something the FSF found objectionable, closing an easy work-around.


-Chris


gcc-4.2-20080924 is now available

2008-09-24 Thread gccadmin
Snapshot gcc-4.2-20080924 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.2-20080924/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

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

You'll find:

gcc-4.2-20080924.tar.bz2  Complete GCC (includes all of below)

gcc-core-4.2-20080924.tar.bz2 C front end and core compiler

gcc-ada-4.2-20080924.tar.bz2  Ada front end and runtime

gcc-fortran-4.2-20080924.tar.bz2  Fortran front end and runtime

gcc-g++-4.2-20080924.tar.bz2  C++ front end and runtime

gcc-java-4.2-20080924.tar.bz2 Java front end and runtime

gcc-objc-4.2-20080924.tar.bz2 Objective-C front end and runtime

gcc-testsuite-4.2-20080924.tar.bz2The GCC testsuite

Diffs from 4.2-20080917 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.2
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.


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Yuhong Bao

That is why I'm CCing someone from Apple.

--
From: "Ian Lance Taylor" <[EMAIL PROTECTED]>
Sent: Wednesday, September 24, 2008 12:47 PM
To: "Yuhong Bao" <[EMAIL PROTECTED]>
Cc: "Paolo Bonzini" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>; 
Subject: Re: Apple, iPhone, and GPLv3 troubles


Yuhong Bao <[EMAIL PROTECTED]> writes:


BTW, one of the reason I posted this was that I wanted to privately
talk about the politics behind this issue with someone internal to
Apple, and forward some of that to RMS and the FSF. Can this be done
or is the politics all under NDA?


Well, good luck.  The people you need to talk to, with respect to
Apple and GPLv3, are not reading this mailing list.  We've already
talked to some of them, and the situation as I understand it is what I
already outlined, with the obvious proviso that I do not work at
Apple.  A couple of people from Apple have now commented on this
thread; go ahead and mail them directly.

Ian



Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Ian Lance Taylor
Chris Lattner <[EMAIL PROTECTED]> writes:

> On Sep 24, 2008, at 12:57 PM, Ian Lance Taylor wrote:
>
>> Chris Lattner <[EMAIL PROTECTED]> writes:
>>
>>> My personal feeling on the matter is that it seems very strange to
>>> talk about *compiler plugins* in the license for *runtime libraries*.
>>> Considering that there are already widely available alternative
>>> libraries (e.g. the apache stdc++ library and many others) it seems
>>> potentially damaging to the GCC community to try to address the
>>> plugin
>>> issue this way.
>>
>> Here's the problem: the FSF doesn't really want to permit plugins.
>
>> So, how do we permit plugins while prohibiting proprietary plugins,
>> and how do we do it while staying within the bounds of copyright law
>> which is the basis of the GPL?
>
> Does the obvious answer work?: add it to the license that covers the
> code in question.  Specifically, I think that it would be much more
> reasonable to add "plugin" wording to the license that covers the GCC
> compiler code itself.  This means that you couldn't use *GCC* if you
> did something the FSF found objectionable, closing an easy
> work-around.

This doesn't work, because it breaks out of the basic framework of
copyright law.  Nobody signs anything or accepts any terms in order to
use gcc.  The FSF wants to stop people from distributing proprietary
binary plugins to gcc.  The copyright on gcc does not apply to those
plugins.  If gcc got a new, non-GPL, license which attempted to
control those plugins, that license would only be binding to the
extent that people explicitly accepted it.  There is no shrinkwrap
EULA on gcc.

Or, perhaps I should say, we could perhaps make that work, but we
would give up other desirable properties of the current regime.

Ian


Re: Adding to G++: Adding a warning on throwing unspecified exceptions.

2008-09-24 Thread Brendon Costa
Simon Hill wrote:
> Brendon Costa said:
>> The author of the template class or container can't know
>> what types of exceptions will be thrown from them, so you must define
>> them as being able to throw all exceptions (which is how they are
>> currently).
> Ouch, you have a point. But couldn't you put this round the other way.
> Place the onus on the user of the template to comply with the
> exception guarantees inside the template. Unfortunately that would
> likely cause problems with some existing code.
>
> ...
>
> In other words, would you gain more from a tight exception
> specification than you'd lose by not being able to do this?
>
You as an author of a new template class "could" define it the other way.

The issue here is that doing so restricts usage of the generic
component. In specific cases this may be desirable, but not for generic
components like STL containers or those in boost. For generic components
you want to make them as useful as possible. Even if at the time of
writing the container you do not foresee that throwing any type of
exception is a good idea, users may come up with some way of using it
that you just never thought about.

I.e. I think the general philosophy is to define only what restrictions
are necessary to implement the template, not necessarily what we think
constitute good uses of the template at the time we created it.


Brendon.