Summary
More scrutable bootstrapping process
Metadata
- Id: ca048af8fb8038d8e0dd84dfa95cea89c3dc47a2
- Trac id: 1776
- Type: enhancement
- Reporter: mario
- Owner:
- Cc:
- Status: closed
- Component: unknown
- Estimated difficulty: insane
- Resolution: wontfix
- Priority: minor
- Milestone: someday
- Version: 5.2.0
- Changetime: 2026-09-27 20:22:23 UTC
- Created: 2021-08-12 20:29:25 UTC
- Keywords:
Description
We currently have two ways to build CHICKEN:
- from release tarballs. In that case we have the C code generated by CHICKEN. In this case, the only requirement to build CHICKEN is a supported C toolchain and GNU Make. The C code in release tarballs is not really "source" code, as it can be considered inscrutable by most humans.
- from git. In this case we require a functional CHICKEN installation (i.e., binary format, compiled out of a release tarball -- see previous item) to compile Scheme code to C.
Currently the most scrutable way to build CHICKEN is using the C code generated by CHICKEN to build CHICKEN. But then, as previously mentioned, we assume the C code we are compiling is thrustworthy, which can hardly be assessed as the C code is the output of a compiler, so very hard to follow.
This ticket is about improving this situation, so that we can build CHICKEN from git in a way that the whole process is more scrutable.
References:
- http://issues.guix.gnu.org/22366 points out the issue reported in this ticket.
- https://bootstrappable.org/ has more information on the benefits of transparent bootstrapping processes.
Changes and comments
[2026-09-27 20:22:23 UTC] felix wrote:
The whole discussion is a bit bogus. Whether the source code is machine generated or human generated makes no difference. The former may be ugly, but is not, in itself, less portable or future proof than human-written code.
This is the way CHICKEN is built, and always will. And one should note that this is vastly better than, say, GHC, were you don't even have an easy option to provide platform-independent intermediate files that can be build on every supported target system.