[LLVMdev] Proposal: add Go frontend subproject based on llgo

Chris Lattner
Wed, 19 Nov 2014 22:47:52 -0000

On Nov 19, 2014, at 1:53 PM, Peter Collingbourne <peter at pcc.me.uk>
wrote:
> Hi all,
>
> I'd like to propose the contribution of a Go frontend subproject to the
LLVM
> project, based on the existing llgo project at
https://github.com/go-llvm/llgo .
> As with the previous contribution of the Go bindings, I have obtained
> permission from all llgo contributors whose code is part of this
contribution,
> to contribute their changes to the LLVM project and relicense their changes
> under the LLVM license. I am also willing to be the code owner for the
> llgo subproject.

Fantastic.  As we discussed at the LLVM Developer Meeting, I’m in favor of this.
However, new subprojects need to be approved by the LLVM Foundation board of
directors.  Chandler can help orchestrate this.

> llgo depends on certain third-party components, namely a copy of the Go
> standard library (libgo), a Go program analysis library (go.tools) and two
> library dependencies of the standard library (libbacktrace and libffi).
These
> would be mirrored into the llgo repository under a third_party directory.
They
> would retain their original licenses, which are BSD and GPLv3 with Runtime
> Library Exception (the latter only applies to a handful of header files;
> eventually we would seek to replace these).

It is up to the board, but MHO is that the GPLv3 pieces should be rewritten
before we can accept the code.  That way we have purity in the full commit
history of the subproject repository (i.e. someone wouldn’t accidentally get
GPL3 code by checking out the wrong version number or because they use git).

For the other incorporated dependencies, just make sure to list them (and their
licenses) in the top level LICENSE.TXT file.

Thanks for driving this Peter,

-Chris