13

我之前也问过类似的问题,但这次我想专注于go语言。我一直在阅读go 语言的 wiki 页面,并意识到摘要中有一个许可证段,上面写着BSD style + Patent grant. 我知道还有一个gcc前端go,我猜它有类似GPL许可证的东西,尽管在 wiki 页面中没有提到它,这让我想知道:

上述BSD许可证是否用于:

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

如果有这样的区别吗?

欢迎提供实用的答案(即我如何许可源代码或二进制文件?)以及与旧语言(C, C++, Java)的对比(如果有的话)。

4

2 回答 2

10

Go 的大部分内容都根据三条款 BSD 风格的许可专利授权进行许可。这包括 gc 编译器、标准库和其他相关工具。我知道有两个值得注意的例外:

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

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

一直在努力将 gccgo 前端中依赖于 gcc 的部分分离出来,以便它可以用作其他 Go 编译器的前端,例如基于 LLVM 的编译器。这样的编译器可以完全在 BSD 风格许可下发布。

于 2012-10-09T08:40:07.873 回答
0

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

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

于 2012-10-09T08:14:28.307 回答