April 07, 2017
On Friday, 7 April 2017 at 15:14:40 UTC, Walter Bright wrote:
> https://github.com/dlang/dmd/pull/6680
>
> Yes, this is for real! Symantec has given their permission to relicense it. Thank you, Symantec!

Congrats! That's a big win, and you deserve all the merits!

Enjoy the moment!

---
Paolo
April 07, 2017
On Friday, 7 April 2017 at 22:02:31 UTC, Walter Bright wrote:
> I'll defer to Martin Nowak on what to do about that.
>
> It would help for those who need this for specific versions to let Martin know which ones.

Great, thanks -- I'll follow up with Martin on slack.
April 07, 2017
On Fri, Apr 07, 2017 at 10:38:36PM +0100, rikki cattermole via Digitalmars-d-announce wrote:
> On 07/04/2017 10:03 PM, WhatMeWorry wrote:
[...]
> > I've been coding in D for years now but was unaware of this issue. Could someone give this licensing neophyte an explanation and some history?
> 
> So dmd's backend came directly from dmc. This makes sense as this is
> the time of Digital Mars creation (Walter has been working with this
> code base pretty much since before I was born).
> Because of how history went, it was owned by Symantic yet Digital Mars
> still developed it.
> 
> So its usage within dmd caused problems, i.e. with packaging and distributing because it required explicit permission from Digital Mars so that Symantic wouldn't get sued.
> 
> Maybe Walter can clarify but this is what I have gathered over the years.

There's also the aspect, AIUI, that Walter has refrained from looking at / contributing to the code for any other compiler backend, in order to avoid legal complications arising from possible "tainting" from the dmd backend code. E.g., if he were to submit a patch to the gcc backend, Symantec could in theory come back and sue the gcc guys claiming that their code is based on the dmc backend and so they have to pay royalties.  Or if he were to read the code for gcc's backend, Symantec could in theory accuse him of incorporating GPL code into the dmc backend (since he's still working on the backend every now and then), which is incompatible with the license.

Of course, IANAL so this relicensing may not necessarily imply that Walter is now free to read / work on other compiler backends. Nor does he necessarily want to do so anyway.

But regardless, this is a major step forward at least in the aspect of finally putting to rest the "D is non-free" FUD that's been spreading around over the years.


T

-- 
Bare foot: (n.) A device for locating thumb tacks on the floor.
April 07, 2017
On 4/7/2017 3:22 PM, David Nadlinger wrote:
> Just to clarify for people not usually frequenting these circles: LDC does
> support DMD-style inline assembly, but we use a different implementation.


Thanks for pointing that out, I didn't know that. I just assumed LDC would have gone with a clang-style inline assembler (does clang even have inline asm?).
April 07, 2017
On Friday, 7 April 2017 at 15:14:40 UTC, Walter Bright wrote:
> https://github.com/dlang/dmd/pull/6680
>
> Yes, this is for real! Symantec has given their permission to relicense it. Thank you, Symantec!

Something that just popped into my head:

You've said that you've avoided ever looking at other compiler's code to avoid legal trouble. Is that problem gone now?
April 07, 2017
On 4/7/2017 3:57 PM, Jack Stouffer wrote:
> You've said that you've avoided ever looking at other compiler's code to avoid
> legal trouble. Is that problem gone now?

No, unless the other compiler is Boost as well.
April 07, 2017
Now #1 on r/programming subreddit!
April 08, 2017
Jack Stouffer wrote:

> On Friday, 7 April 2017 at 15:14:40 UTC, Walter Bright wrote:
>> https://github.com/dlang/dmd/pull/6680
>>
>> Yes, this is for real! Symantec has given their permission to relicense it. Thank you, Symantec!
>
> Something that just popped into my head:
>
> You've said that you've avoided ever looking at other compiler's code to avoid legal trouble. Is that problem gone now?

nope. GPL programmers can safely look into BSDL code, for example, 'cause it is ok to put GPL alongside of BSDL. but BSDL programmers can't "just take" GPL code.

that is, it is prolly nobody will sue Walter for "copying GPL code", but it is better to be safe than sorry.

this is how i see the things, of course, it's not the authoritative answer.
April 08, 2017
On Friday, 7 April 2017 at 22:57:39 UTC, Walter Bright wrote:
> Thanks for pointing that out, I didn't know that. I just assumed LDC would have gone with a clang-style inline assembler (does clang even have inline asm?).

LDC supports both DMD-style asm {} blocks as well as LLVM's native inline assembly format, which is very similar to GCC's, with explicit clobber specifications and explicit parameter passing (https://wiki.dlang.org/LDC_inline_assembly_expressions). The latter is useful on non-x86 platforms as well as to allow more optimizations of functions using inline asm such as inlining (although inlining in particular can also be enabled for DMD-style asm blocks using a pragma).

There are also inline IR expressions for the few situations where you don't want to drop down all the way to inline assembly but still need to crack open the hood and control the emitted LLVM IR: https://wiki.dlang.org/LDC_inline_IR. For example, we use it to implement some target-independent SIMD intrinsics in the library.

 — David
April 08, 2017
On Friday, 7 April 2017 at 15:14:40 UTC, Walter Bright wrote:
> https://github.com/dlang/dmd/pull/6680
>
> Yes, this is for real! Symantec has given their permission to relicense it. Thank you, Symantec!

Excellent, good work.