summary refs log tree commit diff stats
path: root/koch.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2021-02-11 09:26:51 +0100
committerGitHub <noreply@github.com>2021-02-11 09:26:51 +0100
commit8630ebbbfcbe2d81a258ac7dd10ebbc6616b174c (patch)
treea354bbc88f15a27b7556bc7cf8ae2527c4a6988e /koch.nim
parentb7dd8e7dff633692f61f8393315016fb4e9bdbee (diff)
downloadNim-8630ebbbfcbe2d81a258ac7dd10ebbc6616b174c.tar.gz
koch.nim: documented the bootstrapping process (#17008)
Diffstat (limited to 'koch.nim')
-rw-r--r--koch.nim7
1 files changed, 7 insertions, 0 deletions
diff --git a/koch.nim b/koch.nim
index 5f5791b86..b5247dd5d 100644
--- a/koch.nim
+++ b/koch.nim
@@ -284,6 +284,13 @@ proc thVersion(i: int): string =
 template doUseCpp(): bool = getEnv("NIM_COMPILE_TO_CPP", "false") == "true"
 
 proc boot(args: string) =
+  ## bootstrapping is a process that involves 3 steps:
+  ## 1. use csources to produce nim1.exe. This nim1.exe is buggy but
+  ## rock solid for building a Nim compiler. It shouldn't be used for anything else.
+  ## 2. use nim1.exe to produce nim2.exe. nim2.exe is the one you really need.
+  ## 3. We use nim2.exe to build nim3.exe. nim3.exe is equal to nim2.exe except for timestamps.
+  ## This step ensures a minimum amount of quality. We know that nim2.exe can be used
+  ## for Nim compiler development.
   var output = "compiler" / "nim".exe
   var finalDest = "bin" / "nim".exe
   # default to use the 'c' command: