去语言执照

时间:2012-10-09 07:57:15

标签: licensing go

之前我曾问过类似的question,但这次我想专注于go语言。我一直在阅读wiki page of go language,并意识到摘要中有一个许可证段,其中显示BSD style + Patent grant。我知道gcc还有一个go前端,我猜测它有GPL许可证,虽然在维基页面中没有提到它,这让我感到惊讶难怪:

上述BSD许可是否适用于:

  • 编译器
  • 和/或语言
  • 和/或标准库

是否有这样的区别?

一个实用的答案是受欢迎的(即我如何获得源或二进制文件的许可?)以及与旧语言(CC++Java)的对比,如果任何..

2 个答案:

答案 0 :(得分:8)

Go的大多数部分都是在three-clause BSD style licensepatent grant下获得许可的。这包括gc编译器,标准库和其他相关工具。我知道有两个值得注意的例外:

language specification和其他网站文档根据知识共享署名3.0许可进行许可。滚动到golang.org上任意页面的最底部查看。 (我想这意味着一些源代码注释以相同的方式获得许可,这看起来有点奇怪。)

gccgo的前端使用与Go的其余部分相同的BSD风格许可证,但是因为它必须与gcc的其余部分链接,所以它实际上是GPLv3。 (注意,与janneb的说法相反,gccgo不与其他编译器共享任何代码。它确实共享一些运行时代码。)

正在不断努力将gccgo前端的部分分离出来,这些部分依赖于gcc,因此它可以用作其他Go编译器的前端,例如可能是基于LLVM的编译器。这样的编译器可以完全在BSD样式许可下发布。

答案 1 :(得分:0)

BSD许可证适用于编译器和标准库。我不知道“语言本身”的许可证是什么;这甚至意味着什么,语言规范的文本,还是?

GCC的前端也是BSD许可(AFAIK它与其他go编译器共享代码),尽管GCC编译器的其余部分仍然在GPLv3下。