nick black <dankamong...@gmail.com> 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 (r...@debian.org)              <https://www.eyrie.org/~eagle/>

Reply via email to