Editing Descent principle

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 3: Line 3:
 
== Context ==
 
== Context ==
  
* The goal is to remove the dependency on precompiled binaries, or at least build everything in terms of some small core (Something a human could audit).
+
* 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').
 
* 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)
 
* 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)
Line 17: Line 17:
 
* Identify and create useful packages that are built in terms of smaller inputs (e.g. stage0, mes, guile, amber)
 
* Identify and create useful packages that are built in terms of smaller inputs (e.g. stage0, mes, guile, amber)
  
This can be done in parallel, there is little need to coordinate a specific bootstrap path. It will simply exist if each package can be built in terms of smaller parts. The big problem is that most of the essential smaller parts are so useful, they are repeatedly used all over the place and basic cooperation is recommended to avoid massive duplication of effort that such work could entail.
+
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.
  
Note that the problem for gcc is not completely solved just by compiling gcc with tcc. To build gcc (with tcc) you need to run ./configure which depends on tr, diff, mktemp etc. All of which need to built using a C compiler on a Unix. So at some point we need to build these tools without ./configure and without a working Unix.
+
Note that the problem for gcc is not completely solved just by compiling gcc with tcc. To build gcc (with tcc) you need to run ./configure which depends on tr, diff, mktemp etc. All of which need to built using a C compiler. So at some point we need to build these tools without ./configure.
  
 
== About the dependency graph ==
 
== About the dependency graph ==

Please note that all contributions to bootstrapping are considered to be released under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) (see bootstrapping:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)