June 23, 2010
On Jun 23, 10 19:18, bearophile wrote:
> Leandro Lucarella:
>> Yes, I don't think "copying with 'cosmetic changes'" works, legally
>> speaking. Otherwise everybody would be doing it.
>
> If 10% of changes is not legally enough, they LLVM dev can copy it and then change the 15% of it or even 20%. There must exist a minimum amount of differences between two blocks of code that allows them to be legally considered different, otherwise GNU is worse than a software patent.
>
>

The % doesn't matter. If your code is a "derivative work" of some GPL code, then your code must also be in GPL if you distribute it.

> Nick Sabalausky:
>> Plus, do we even know that this is what's holding up LLVM exceptions on Windows?<
>
> The main LLVM dev(s) are hired by Apple, that I presume is not so worried of windows too much. What they want is people to think LLVM is a bit multi-platform, so they can contribute to the project for free.
> I'll restart helping the LLVM project when it has gained some exceptions for Windows :-)
>
> Bye,
> bearophile

June 23, 2010
That's funny. I read you original answer and  laughed. It was too true!
June 23, 2010
"bearophile" <bearophileHUGS@lycos.com> wrote in message news:hvsqhj$ik$1@digitalmars.com...
> Leandro Lucarella:
>> Yes, I don't think "copying with 'cosmetic changes'" works, legally speaking. Otherwise everybody would be doing it.
>
> If 10% of changes is not legally enough, they LLVM dev can copy it and then change the 15% of it or even 20%. There must exist a minimum amount of differences between two blocks of code that allows them to be legally considered different, otherwise GNU is worse than a software patent.
>

Many people do consider the GPL evil.


June 23, 2010
bearophile wrote:
> Robert Jacques:
>> The patent seems to be Borlands's:
>> USPTO patent #5,628,016 Patent held by Borland on compiler support for SEH.
>>  From a Wine wiki page: http://wiki.winehq.org/CompilerExceptionSupport
>>
>> It does seem to expire on June 15, 2014, though and I assume DigitalMars has a license, so a LLVM fork is not unreasonable.
> 
> On Windows G++ supports exceptions. I have two questions:
> 1) Do you know how they do this? Do they have a license? If they have a licence why don't LLVM people too have it?

	Gcc has two ways to do this:
 * Using setjump/longjump. This works across foreign DLL calls, but
incurs a small performance penalty even if no exception is thrown
(setjmp needs to be called for each stack frame which will require
cleanup in case of exception);

 * Embedding dwarf information in the executable to allow stack
unwinding. This only works if all the stack frames where an
exception may occur where compiled with gcc (i.e you may call
foreign DLLs, but if you give them a callback then this callback may
not throw). This has absolutely no performance penalty so long as no
exception is thrown.

	Neither approach is compatible with MS exception handling, so you
can't call an MS C++ DLL and catch the exceptions it throws, and if
you call a DLL and give it a callback and your callback throws then
the cleanup code in the DLL won't be run (and vice versa of course).
SEH would allow this to work.

> 2) Why isn't LLVM just copying that part of the GCC code? If a true copy is not possible, why aren't copying the code with enough cosmetic changes? (A good amount of time ago I did believe that the main purpose of the Open Source idea was to copy source code between projects, to avoid reinventing things. I was so wrong.)
> 
	The way I understood it, it was mostly a matter of manpower. Most
LLVM devs are on MacOS. Posix platforms are close enough to MacOS
that they can get by with less porting effort (plus they probably
have more motivated devs than Windows), so they are not too far
behind, but Windows is another matter.

		Jerome
-- 
mailto:jeberger@free.fr
http://jeberger.free.fr
Jabber: jeberger@jabber.fr



June 23, 2010
Thank you Jerome and all the people that have answered me, I was ignorant about GNU license.

> if you call a DLL and give it a callback and your callback throws then the cleanup code in the DLL won't be run (and vice versa of course). SEH would allow this to work.

If someone writes a compiler/language that allows programs to be ported with no problems from Windows to other nonwindows systems, this may damage Windows a little (but isn't Mono able to do this with C#2 programs?).

But it's economically advantageous for Microsoft to make it easy for people to create new compilers and languages for Windows that work well with other Windows programs. So in my opinion having a good Clang++ on Windows is good for the economic well-being of Windows. They can grant LLVM a free licence to use Windows-style exceptions.

Bye,
bearophile
June 23, 2010
On Jun 24, 10 03:57, bearophile wrote:
> Thank you Jerome and all the people that have answered me, I was ignorant about GNU license.
>
>> if you call a DLL and give it a callback and your callback throws then
>> the cleanup code in the DLL won't be run (and vice versa of course).
>> SEH would allow this to work.
>
> If someone writes a compiler/language that allows programs to be ported with no problems from Windows to other nonwindows systems, this may damage Windows a little (but isn't Mono able to do this with C#2 programs?).
>
> But it's economically advantageous for Microsoft to make it easy for people to create new compilers and languages for Windows that work well with other Windows programs. So in my opinion having a good Clang++ on Windows is good for the economic well-being of Windows. They can grant LLVM a free licence to use Windows-style exceptions.
>
> Bye,
> bearophile

Why should Microsoft do that instead of promoting Visual C++? ;)
June 23, 2010
KennyTM~ wrote:
> On Jun 24, 10 03:57, bearophile wrote:
>> Thank you Jerome and all the people that have answered me, I was ignorant about GNU license.
>>
>>> if you call a DLL and give it a callback and your callback throws then
>>> the cleanup code in the DLL won't be run (and vice versa of course).
>>> SEH would allow this to work.
>>
>> If someone writes a compiler/language that allows programs to be ported with no problems from Windows to other nonwindows systems, this may damage Windows a little (but isn't Mono able to do this with C#2 programs?).
>>
>> But it's economically advantageous for Microsoft to make it easy for people to create new compilers and languages for Windows that work well with other Windows programs. So in my opinion having a good Clang++ on Windows is good for the economic well-being of Windows. They can grant LLVM a free licence to use Windows-style exceptions.
>>
>> Bye,
>> bearophile
> 
> Why should Microsoft do that instead of promoting Visual C++? ;)

Because there's no money in compilers anymore.
June 23, 2010
KennyTM~ wrote:
> On Jun 24, 10 03:57, bearophile wrote:
>> Thank you Jerome and all the people that have answered me, I was ignorant about GNU license.
>>
>>> if you call a DLL and give it a callback and your callback throws then the cleanup code in the DLL won't be run (and vice versa of course). SEH would allow this to work.
>>
>> If someone writes a compiler/language that allows programs to be ported with no problems from Windows to other nonwindows systems, this may damage Windows a little (but isn't Mono able to do this with C#2 programs?).
>>
>> But it's economically advantageous for Microsoft to make it easy for people to create new compilers and languages for Windows that work well with other Windows programs. So in my opinion having a good Clang++ on Windows is good for the economic well-being of Windows. They can grant LLVM a free licence to use Windows-style exceptions.
>>
>> Bye,
>> bearophile
> 
> Why should Microsoft do that instead of promoting Visual C++? ;)

	Because they're giving away Visual C++ for free anyway?

		Jerome
-- 
mailto:jeberger@free.fr
http://jeberger.free.fr
Jabber: jeberger@jabber.fr



June 24, 2010
"bearophile" <bearophileHUGS@lycos.com> wrote in message news:hvtovg$2m07$1@digitalmars.com...
> Thank you Jerome and all the people that have answered me, I was ignorant about GNU license.
>
>> if you call a DLL and give it a callback and your callback throws then the cleanup code in the DLL won't be run (and vice versa of course). SEH would allow this to work.
>
> If someone writes a compiler/language that allows programs to be ported with no problems from Windows to other nonwindows systems, this may damage Windows a little (but isn't Mono able to do this with C#2 programs?).
>
> But it's economically advantageous for Microsoft to make it easy for people to create new compilers and languages for Windows that work well with other Windows programs. So in my opinion having a good Clang++ on Windows is good for the economic well-being of Windows. They can grant LLVM a free licence to use Windows-style exceptions.
>

Unfortunately, that's never gonna happen. They prefer to use their patents to extort companies that use OSS code:

http://www.computerworlduk.com/toolbox/open-source/blogs/index.cfm?entryid=1953&blogid=14 http://news.cnet.com/8301-13860_3-10206988-56.html

-------------------------------
Not sent from an iPhone.


June 24, 2010
Hello bearophile,


> But it's economically advantageous for Microsoft to make it easy for
> people to create new compilers and languages for Windows that work
> well with other Windows programs. So in my opinion having a good
> Clang++ on Windows is good for the economic well-being of Windows.
> They can grant LLVM a free licence to use Windows-style exceptions.

It should be safe to assume that most windows programs (by how many are running) are compiler with MSVC and at $800 to $5000 (and up IIRC) a pop why should they do anything to help the competition? Seriously, I suspect that GCC, LLVM, etc. are literally irrelevant to how much MS makes off Windows.

-- 
... <IXOYE><