Descent principle

From bootstrapping
Revision as of 11:37, 26 June 2017 by Rain1 (talk | contribs)
Jump to navigation Jump to search

Descent principle

Context

  • The goal is to remove the dependency on precompiled binaries, or at least build everything in terms of some small core.
  • Each package has a set of inputs required to build it. (for example many projects require 'make' and 'gcc' and binutils 'ld').
  • If one of these inputs (directly or indirectly) is the output of building the project itself, then the package is self-hosted. (For example gcc is usually built using gcc)

Descent principle

In a set of packages, if there is only one self hosted package then you can trace the build process of any other package back down to that core.

Program

  • Identify self hosted packages.
  • Break their loop by creating a new set of inputs able to build them that is "smaller" and not self-hosted.

This can be done in parallel, there is no need to coordinate a specific bootstrap path. It will simply exist if each package can be built in terms of smaller parts.