diff --git a/doc/talks/fosdem21/intro.org b/doc/talks/fosdem21/intro.org index 2352cea6..0a5a6004 100644 --- a/doc/talks/fosdem21/intro.org +++ b/doc/talks/fosdem21/intro.org @@ -1,6 +1,6 @@ #+TITLE: Bootstrapping Intro #+TITLE: \smaller[2]{-- Current status} -#+DATE:2020-01-30 +#+DATE:2021-02-08 #+EMAIL: janneke@gnu.org #+AUTHOR: janneke@gnu.org #+COPYRIGHT: janneke (Jan Nieuwenhuizen) @@ -11,6 +11,7 @@ #+LATEX_HEADER:\def\ahref#1#2{\htmladdnormallink{#2}{#1}} #+LATEX_CLASS: beamer #+LATEX_CLASS_OPTIONS: [presentation] +#+LaTeX_CLASS_OPTIONS: [aspectratio=169] #+LATEX_HEADER: \usepackage{relsize} #+LATEX_HEADER: \usepackage{hyperref} #+LATEX_HEADER: \mode{\usetheme{X}} @@ -33,7 +34,7 @@ $ guix graph -e '(@@ (gnu packages commencement) gnu-make-boot0)' #+END_SRC ** Guix v1.0: The First GCC -#+LATEX:\includegraphics[width=1.3\textwidth]{gcc-boot0-black.png} +#+LATEX:\includegraphics[width=1.05\textwidth]{gcc-boot0-black.png} ** Guix bootstrap tarballs #+BEGIN_SRC sh @@ -41,24 +42,26 @@ $ guix build bootstrap-tarballs #+END_SRC ** Guix v1.0 bootstrap binary seed +#+LATEX:\small #+BEGIN_SRC sh $ du -schx $(readlink $(guix build bootstrap-tarballs)/*) -2.1M /gnu/store/9623n4bq6iq5c8cwwdq99qb7d0xj93ym-binutils-static-stripped-tarball-2.28.1/binutils-static-stripped-2.28.1-x86_64-linux.tar.xz -18M /gnu/store/437xwygmmwwpkddcyy1qvjcv4hak89pb-gcc-stripped-tarball-5.5.0/gcc-stripped-5.5.0-x86_64-linux.tar.xz -1.8M /gnu/store/55ccx18a0d1x5y6a575jf1yr0ywizvdg-glibc-stripped-tarball-2.26.105-g0890d5379c/glibc-stripped-2.26.105-g0890d5379c-x86_64-linux.tar.xz -5.7M /gnu/store/bqf0ajclbvnbm0a46819f30804y3ilx0-guile-static-stripped-tarball-2.2.3/guile-static-stripped-2.2.3-x86_64-linux.tar.xz -5.8M /gnu/store/j8yzjmh9sy4gbdfwjrhw46zca43aah6x-static-binaries-tarball-0/static-binaries-0-x86_64-linux.tar.xz -33M total +2.1M /gnu/store/9623n4bq6iq5c8cwwdq99qb7d0xj93ym-binutils-static-stripped-tarball-2.28.1/binutils-static-stripped-2.28.1-x86_64-linux.tar.xz +18M /gnu/store/437xwygmmwwpkddcyy1qvjcv4hak89pb-gcc-stripped-tarball-5.5.0/gcc-stripped-5.5.0-x86_64-linux.tar.xz +1.8M /gnu/store/55ccx18a0d1x5y6a575jf1yr0ywizvdg-glibc-stripped-tarball-2.26.105-g0890d5379c/glibc-stripped-2.26.105-g0890d5379c-x86_64-linux.tar.xz +5.7M /gnu/store/bqf0ajclbvnbm0a46819f30804y3ilx0-guile-static-stripped-tarball-2.2.3/guile-static-stripped-2.2.3-x86_64-linux.tar.xz +5.8M /gnu/store/j8yzjmh9sy4gbdfwjrhw46zca43aah6x-static-binaries-tarball-0/static-binaries-0-x86_64-linux.tar.xz +33M total $ for i in $(readlink $(guix build bootstrap-tarballs)/*);\ do sudo tar xf $i; done $ du -schx * -130M bin -13M include -54M lib -51M libexec -5.2M share -252M total +130M bin +13M include +54M lib +51M libexec +5.2M share +252M total #+END_SRC +#+LATEX:\normalsize ** Reduce binary seeds to bare minimum #+BEGIN_QUOTE @@ -76,43 +79,32 @@ Thus, our goal is to reduce the set of bootstrap binaries to the bare minimum. -- Ludovic Courtès (GNU Guix documentation, December 2017) #+END_QUOTE + +* Bootstrapping Guix 1.1: Reduced Binary Seed + ** Guix Reduced Binary Seed +#+LATEX:\small #+BEGIN_SRC sh $ du -schx $(readlink $(guix build bootstrap-tarballs)/*) -5.7M /gnu/store/9f8gi8raqfx9j3l9d00qrrc0jg3r1kyj-guile-static-stripped-tarball-2.2.6/guile-static-stripped-2.2.6-x86_64-linux.tar.xz -80K /gnu/store/b6rjl52hibhmvyw4dg8678pwryhla0h2-linux-libre-headers-stripped-tarball-4.19.56/linux-libre-headers-stripped-4.19.56-x86_64-linux.tar.xz -12K /gnu/store/d7zlxsjcnqilmvqwx7scija9x9bjw8cw-mescc-tools-static-stripped-tarball-0.5.2-0.bb062b0/mescc-tools-static-stripped-0.5.2-0.bb062b0-x86_64-linux.tar.xz -428K /gnu/store/n7zc4kpi8ny6jlfaikkzxlwhc5fvr1vr-mes-minimal-stripped-tarball-0.19/mes-minimal-stripped-0.19-x86_64-linux.tar.xz -6.0M /gnu/store/nv4djwlrljfqmynqr2cqvfwz0ydx7kxb-static-binaries-tarball-0/static-binaries-0-x86_64-linux.tar.xz -13M total +5.7M /gnu/store/9f8gi8raqfx9j3l9d00qrrc0jg3r1kyj-guile-static-stripped-tarball-2.2.6/guile-static-stripped-2.2.6-x86_64-linux.tar.xz +80K /gnu/store/b6rjl52hibhmvyw4dg8678pwryhla0h2-linux-libre-headers-stripped-tarball-4.19.56/linux-libre-headers-stripped-4.19.56-x86_64-linux.tar.xz +12K /gnu/store/d7zlxsjcnqilmvqwx7scija9x9bjw8cw-mescc-tools-static-stripped-tarball-0.5.2-0.bb062b0/mescc-tools-static-stripped-0.5.2-0.bb062b0-x86_64-linux.tar.xz +428K /gnu/store/n7zc4kpi8ny6jlfaikkzxlwhc5fvr1vr-mes-minimal-stripped-tarball-0.19/mes-minimal-stripped-0.19-x86_64-linux.tar.xz +6.0M /gnu/store/nv4djwlrljfqmynqr2cqvfwz0ydx7kxb-static-binaries-tarball-0/static-binaries-0-x86_64-linux.tar.xz +13M total $ for i in $(readlink $(guix build bootstrap-tarballs)/*);\ do sudo tar xf $i; done Password: $ du -schx * -93M bin -700K include -38M lib -14M share -145M total +93M bin +700K include +38M lib +14M share +145M total #+END_SRC +#+LATEX:\normalsize -** Guix Scheme-only bootstrap -#+BEGIN_SRC sh -$ du -schx $(readlink $(~/src/guix/wip-bootstrap/pre-inst-env guix build bootstrap-tarballs)/*) -5.7M /gnu/store/1mq2pcd2h7g54xpi2jrgj6ibbi4lgi3c-guile-static-stripped-tarball-2.2.6/guile-static-stripped-2.2.6-x86_64-linux.tar.xz -80K /gnu/store/bl1r2bpk6fam8r2gjvr5mvr48i3dm2hn-linux-libre-headers-stripped-tarball-4.19.56/linux-libre-headers-stripped-4.19.56-x86_64-linux.tar.xz -12K /gnu/store/w0dlz486dhb8aiq8pxm5akllz628fqin-mescc-tools-static-stripped-tarball-0.5.2-0.bb062b0/mescc-tools-static-stripped-0.5.2-0.bb062b0-x86_64-linux.tar.xz -428K /gnu/store/15j6l18q44ymlrh1cfp4s4hc9835xic5-mes-minimal-stripped-tarball-0.19/mes-minimal-stripped-0.19-x86_64-linux.tar.xz -6.2M total -$ for i in $(readlink $(~/src/guix/wip-bootstrap/pre-inst-env guix build bootstrap-tarballs)/*);\ - do sudo tar xf $i; done -$ du -schx * -4.9M bin -700K include -38M lib -14M share -57M total -#+END_SRC +* Bootstrapping Guix 1.2: Scheme only-bootstrap ** Scheme-only bootstrap: Gash Core Utils @@ -125,26 +117,69 @@ chmod expr ln rmdir touch cmp false ls sed tr compress find mkdir sh true #+END_SRC +** Guix Scheme-only bootstrap +#+BEGIN_SRC sh +$ du -schx $(readlink $(guix build bootstrap-tarballs)/*) +5.7M /gnu/store/1mq2pcd2h7g54xpi2jrgj6ibbi4lgi3c-guile-static-stripped-tarball-2.2.6/guile-static-stripped-2.2.6-x86_64-linux.tar.xz +80K /gnu/store/bl1r2bpk6fam8r2gjvr5mvr48i3dm2hn-linux-libre-headers-stripped-tarball-4.19.56/linux-libre-headers-stripped-4.19.56-x86_64-linux.tar.xz +12K /gnu/store/w0dlz486dhb8aiq8pxm5akllz628fqin-mescc-tools-static-stripped-tarball-0.5.2-0.bb062b0/mescc-tools-static-stripped-0.5.2-0.bb062b0-x86_64-linux.tar.xz +428K /gnu/store/15j6l18q44ymlrh1cfp4s4hc9835xic5-mes-minimal-stripped-tarball-0.19/mes-minimal-stripped-0.19-x86_64-linux.tar.xz +6.2M total +$ for i in $(readlink $(~/src/guix/wip-bootstrap/pre-inst-env guix build bootstrap-tarballs)/*);\ + do sudo tar xf $i; done +$ du -schx * +4.9M bin +700K include +38M lib +14M share +57M total +#+END_SRC * Aim for the Stars: Full Source Bootstrap +** Full Source Bootstrap: *WE DID IT!!!* +#+LATEX:\begin{center} +#+LATEX:\includegraphics[width=0.4\textwidth]{fsb-logo-guile-guix-mes.png} +#+LATEX:\end{center} +** WE DID IT! We did what? +*** Adapt Mes and Mes C Library for M2-Planet + * #define FOO => ...; #if BAR => ...; CAR (x) => x->car + * remove global and static array data + * foo.bar => foo->bar + * rewrite pointer arithmetic + * rewrite garbage collector + * mature M2-Planet + * ... -** Full Source Bootstrap -#+LATEX:\includegraphics[width=0.6\textwidth]{fsb-logo-guile-guix-mes.png} +** Guix Full Source Bootstrap +#+BEGIN_SRC sh +du -schx $(readlink $(guix build bootstrap-tarballs)/*) +3.1M /gnu/store/jk0yji9k25p4h8ly06g3p46k8mz8rnz6-guile-static-stripped-tarball-2.0.14/guile-static-stripped-2.0.14-x86_64-linux.tar.xz +84K /gnu/store/040sshfnimkzm9j7pzj9aind5api5s2h-linux-libre-headers-stripped-tarball-5.4.20/linux-libre-headers-stripped-5.4.20-x86_64-linux.tar.xz +3.6M total +$ for i in $(readlink $(guix build bootstrap-tarballs)/*);\ + do sudo tar xf $i; done +$ du -schx * +4.5M bin +704K include +6.1M lib +4.3M share +16M total +#+END_SRC +** Bottom of Guix package graph +#+LATEX:{\hspace{-0.55cm}\begin{frame}[plain] +#+LATEX:{{\vskip-1.9cm\includegraphics[width=1\paperwidth,height=1\paperheight]{gcc-core-mesboot0-fsb-no-guile-unversioned.png}}} +#+LATEX:\end{frame}} ** Full Source Bootstrap: Stage 0 #+LATEX:\rightskip=2cm\includegraphics[width=0.8\textwidth]{stage-0.png} - ** Full Source Bootstrap: Stage 1 -#+LATEX:\rightskip=2cm\includegraphics[width=0.85\textwidth]{stage-1.png} - +#+LATEX:\rightskip=2cm\includegraphics[width=0.80\textwidth]{stage-1.png} ** Full Source Bootstrap: Stage 2 -#+LATEX:\rightskip=2cm\includegraphics[width=0.75\textwidth]{stage-2.png} - +#+LATEX:\vskip-2mm\rightskip=2cm\includegraphics[width=0.55\textwidth]{stage-2.png} ** Full Source Bootstrap: Stage mes -#+LATEX:\rightskip=2cm\includegraphics[width=0.75\textwidth]{stage-mes.png} - +#+LATEX:\rightskip=2cm\includegraphics[width=0.70\textwidth]{stage-mes.png} ** Full Source Bootstrap: Stage mesboot -#+LATEX:\rightskip=2cm\includegraphics[width=1.0\textwidth]{stage-mesboot.png} +#+LATEX:\rightskip=2cm\includegraphics[width=0.80\textwidth]{stage-mesboot.png} * legalese :PROPERTIES: @@ -152,7 +187,7 @@ compress find mkdir sh true :COPYING: t :END: - Copyright \copy 2019, 2020 Jan (janneke) Nieuwenhuizen + Copyright \copy 2019, 2020, 2021 Jan (janneke) Nieuwenhuizen #+BEGIN_QUOTE Permission is granted to copy, distribute and/or modify this diff --git a/doc/talks/fosdem21/intro.pdf b/doc/talks/fosdem21/intro.pdf index 458f585c..2eab74c2 100644 Binary files a/doc/talks/fosdem21/intro.pdf and b/doc/talks/fosdem21/intro.pdf differ