• Re: getting ziggy with it

    From Russ Allbery@21:1/5 to nick black on Tue Jan 7 21:30:02 2025
    nick black <[email protected]> writes:

    later that year, zig changed the way it bootstraps [3]. there was
    already a "zig-bootstrap" repository and "zig" repository, both of which
    are released together. the relevant elements: "zig-bootstrap" now ships
    with a binary WASM file (zig1.wasm), which is converted to a c file
    (zig1.c) using a tool built using the local c compiler (wasm2c). this c
    file is compiled using the system compiler to produce zig.

    this wasm file is, again, distributed with the zig-bootstrap and zig
    sources. it is a binary and knocks us out of main. this file can be recreated, using sources from within the zig repository, with a working
    zig. but even the "zig-bootstrap" source cannot move forward without
    either this file or a working zig with which to create it
    ("zig-bootstrap" is more about vendoring LLVM).

    I think I'm missing something. Why does the use of this file knock the
    package out of main? We are distributing the source code for this file,
    and it is presumably under a free software license.

    The bootstrap is circular and has to be kicked off with a binary blob that can't be recreated until one has finished the bootstrap, which is
    certainly not ideal, but is also not that atypical for compiler
    bootstrapping problems. I don't see how this is a violation of the DFSG or
    of the requirement that main be self-contained. It's obnoxious from a
    process standpoint (like a lot of compiler bootstrapping), and we may not
    want things to work this way, but I don't think that makes it non-free?

    --
    Russ Allbery ([email protected]) <https://www.eyrie.org/~eagle/>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_Plissonneau_Duqu=C@21:1/5 to All on Wed Jan 8 19:50:01 2025
    Le 2025-01-07 21:27, Russ Allbery a écrit :

    I think I'm missing something. Why does the use of this file knock the package out of main? We are distributing the source code for this file,
    and it is presumably under a free software license.

    The bootstrap is circular and has to be kicked off with a binary blob
    that
    can't be recreated until one has finished the bootstrap, which is
    certainly not ideal, but is also not that atypical for compiler
    bootstrapping problems. I don't see how this is a violation of the DFSG
    or
    of the requirement that main be self-contained. It's obnoxious from a
    process standpoint (like a lot of compiler bootstrapping), and we may
    not
    want things to work this way, but I don't think that makes it non-free?

    I second this.

    FWIW I'm going to need Zig soon to build one of the native dependencies
    of newer Gradle releases so I'm happy that someone is already working on
    it, and might contribute to sort out issues later.

    Cheers,

    --
    Julien Plissonneau Duquène

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?St=C3=A9phane_Glondu?=@21:1/5 to All on Fri Jan 10 08:20:01 2025
    Le 07/01/2025 à 21:27, Russ Allbery a écrit :
    I think I'm missing something. Why does the use of this file knock the package out of main? We are distributing the source code for this file,
    and it is presumably under a free software license.

    +1

    OCaml uses a similar scheme.


    Cheers,

    --
    Stéphane

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)