diff options
author | Vincent Ambo <tazjin@gmail.com> | 2018-03-10T12·15+0100 |
---|---|---|
committer | Vincent Ambo <tazjin@gmail.com> | 2018-03-10T12·15+0100 |
commit | d93d2a2d714728c627d29585d31148142ea2ded2 (patch) | |
tree | cc8e2aa9974e00422e77435064a48ec6a1fcfe74 /notes.org | |
parent | 19e509049113db48326e0b080f7ff177f93d517e (diff) |
feat: Initial check-in
Diffstat (limited to 'notes.org')
-rw-r--r-- | notes.org | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/notes.org b/notes.org new file mode 100644 index 000000000000..17550802dc15 --- /dev/null +++ b/notes.org @@ -0,0 +1,56 @@ +#+TITLE: Bootstrapping, reproducibility, etc. +#+AUTHOR: Vincent Ambo +#+DATE: <2018-03-10 Sat> + +* Compiler bootstrapping + + This section contains notes about compiler bootstrapping, the + history thereof, which compilers need it - and so on: + +** C + +** Haskell + - self-hosted compiler (GHC) + +** Common Lisp + CL is fairly interesting in this space because it is a language + that is defined via an ANSI standard that compiler implementations + normally actually follow! + +** Python + +* A note on runtimes + Sometimes the compiler just isn't enough ... + +** LLVM +** JVM + +* Resources: + + http://bootstrappable.org/ + + +* Slide thoughts: + 1. Hardware trust has been discussed here a bunch, most recently + during the puri.sm talk. Hardware trust is important, as we see + with IME, but it's striking that people often take a leap to "I'm + now on my trusted Debian with free software". + + Unless you built it yourself from scratch (Spoiler: you haven't) + you're placing trust in what is basically foreign binary blobs. + + Agenda: Implications/attack vectors of this, state of the chicken + & egg, the topic of reproducibility, what can you do? (Nix!) + + 2. Chicken-and-egg issue + + It's an important milestone for a language to become self-hosted: + You begin doing a kind of dogfeeding, you begin to enforce + reliability & consistency guarantees to avoid having to redo your + own codebase constantly and so on. + + However, the implication is now that you need your own compiler + to compile itself. + + Common examples: + - gcc builds with gcc |