FAQ
Most of the gc compiler toolchain seem to be based on the ones from
plan9/inferno.

How does the license compatibility work?

My understanding is that the toolchain is used only in building gc itself
while all the runtime is self-hosting and written in go.
So, most go sources are as per BSD while the toolchain alone used to build
gc is as per upstream license.

Is this correct?

--

Search Discussions

  • Ian Lance Taylor at Nov 22, 2012 at 5:12 pm

    On Thu, Nov 22, 2012 at 5:34 AM, Shivakumar GN wrote:
    Most of the gc compiler toolchain seem to be based on the ones from
    plan9/inferno.

    How does the license compatibility work?

    My understanding is that the toolchain is used only in building gc itself
    while all the runtime is self-hosting and written in go.
    So, most go sources are as per BSD while the toolchain alone used to build
    gc is as per upstream license.

    Is this correct?
    Part of the gc compiler tools--6g, 6a, 6l--are under the Inferno
    license, which is a BSD-style license. It's not quite accurate to say
    "the toolchain is used only in building gc itself;" gc itself is the
    toolchain. The runtime is written in both C and Go, but is in any
    case entirely under the Go BSD-style license, not the Inferno license.
    The Inferno license only covers the Go compiler, it does not cover
    any programs written in Go.

    Ian

    --
  • Shivakumar GN at Nov 22, 2012 at 6:32 pm
    On Thu, Nov 22, 2012 at 10:41 PM, Ian Lance Taylor wrote:
    <snip>
    Part of the gc compiler tools--6g, 6a, 6l--are under the Inferno
    license, which is a BSD-style license.
    <snip>

    Thanks. May be a small nit pick. From the source header, seems like gc for
    all supported archs use inferno parts.
    - arm (5.c, 5db.c, 5obj.c)
    - x64 (6.c, 6obj.c)
    - x86 (8.c, 8db.c, 8obj.c)
    - few additional files common to all arch
    (access.c, executable.c, linux.c, machdata.c,
    map.c, obj.c, setmach.c, swap.c, sym.c)

    --
  • Russ Cox at Nov 25, 2012 at 9:44 pm

    Thanks. May be a small nit pick. From the source header, seems like gc for
    all supported archs use inferno parts.
    Yes, that's true. Ian was using the list as examples, not as an
    exhaustive enumeration.

    If you wonder about a specific file, read the notice at the top of
    that file: we were careful to mark each with its provenance. As those
    per-file notices explain, each file we used is available under some
    MIT- or BSD-like license. Although the details vary by file, all are
    compatible with Go's BSD license.

    Of course, many other files in the Plan 9 and Inferno distribution are
    not available under MIT- or BSD-like licenses. We did not use those
    files.

    Russ

    --

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupgolang-nuts @
categoriesgo
postedNov 22, '12 at 1:40p
activeNov 25, '12 at 9:44p
posts4
users3
websitegolang.org

People

Translate

site design / logo © 2022 Grokbase