>like Chicken Scheme's take on this. Since Chicken's compiler always generates C code, which is then compiled by GCC (or Clang), one just releases both the source and the compiled C files.
Shipping a pre-built binary is what Guile purposely doesn't do to avoid the trust issue. Chicken's technique doesn't cut it.
They are binaries, effectively. They are not source code, just like minified JavaScript code is not source code. Thanks for pointing this out to me. I work on a package manager with a Chicken package where this sort of thing is unacceptable, so I've filed a bug.
Does anyone who works on Chicken know how bootstrap it?
Now, the C source is not included in the repository itself, so if you are (somehow) building from that(for instance, you already have a working chicken), you are ok. They are only included in the "release tarballs".
How does your package manager get around bootstrapping compilers, in general? Guile's approach requires maintaining a one-shot interpreter/compiler in C, that's only ever used once. I don't think all projects do that.
Shipping a pre-built binary is what Guile purposely doesn't do to avoid the trust issue. Chicken's technique doesn't cut it.