Remove fosdem talk.

* doc/fosdem/GuixSD.png: Remove.
* doc/fosdem/LISP-1-5-page-13-bottom.png: Remove.
* doc/fosdem/LISP-1.5-page-13-bottom.png: Remove.
* doc/fosdem/LISP-1.5-page-13.pdf: Remove.
* doc/fosdem/LISP-1.5-page-13.png: Remove.
* doc/fosdem/README: Remove.
* doc/fosdem/beamercolorthemeX.sty: Remove.
* doc/fosdem/beamerthemeX.sty: Remove.
* doc/fosdem/bootstrap-graph.png: Remove.
* doc/fosdem/egg.jpeg: Remove.
* doc/fosdem/egg.png: Remove.
* doc/fosdem/egg.xcf: Remove.
* doc/fosdem/fosdem.org: Remove.
* doc/fosdem/fosdem.pdf: Remove.
* doc/fosdem/fsb-logo-guile-guix-gnu.png: Remove.
* doc/fosdem/fsb-logo-guile-guix-gnu.xcf: Remove.
* doc/fosdem/fsb-logo-guile-guix-mes.png: Remove.
* doc/fosdem/fsb-logo-guile-guix-mes.xcf: Remove.
* doc/fosdem/fsb-logo.png: Remove.
* doc/fosdem/guix-build-bootstrap-tarballs.log: Remove.
* doc/fosdem/mes.png: Remove.
* doc/fosdem/mes.xcf: Remove.
This commit is contained in:
Jan Nieuwenhuizen 2018-07-28 07:22:48 +02:00
parent 4db4cb9090
commit 7bec5520ec
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
22 changed files with 0 additions and 825 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

View File

@ -1 +0,0 @@
LISP-1.5-page-13-bottom.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@ -1,52 +0,0 @@
-*- org -*-
#+TITLE: Talk @Fosdem 2017
Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
This talk is
Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
Permission is granted to copy, distribute and/or modify this talk
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license is included in doc/fdl-1.3.texi, included in the
manual in the section entitled ``GNU Free Documentation License''.
beamercolorthemeX.sty
beamerthemeX.sty
bootstrap-graph.png
egg.jpeg
egg.png
egg.xcf
fosdem.org
fosdem.pdf
fsb-logo-guile-guix-gnu.png
fsb-logo-guile-guix-gnu.xcf
fsb-logo-guile-guix-mes.png
fsb-logo-guile-guix-mes.xcf
fsb-logo.png
guix-build-bootstrap-tarballs.log
mes.png
mes.xcf
bootstrap-graph.png
GuixSD.png
Copyright © 2015 Luis Felipe López Acevedo
Permission is granted to copy, distribute and/or modify
this work under the terms of the Creative Commons
Attribution-ShareAlike 4.0 International License.
One page from
http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
MIT Press: Reproduction in whole or in part is permitted for any
purpose of the of the United States Government.
LISP-1.5-page-13.png
LISP-1.5-page-13-bottom.png
LISP-1.5-page-13.pdf

View File

@ -1,27 +0,0 @@
% GNU Mes --- Maxwell Equations of Software
% Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
%
% This file is part of GNU Mes.
%
% GNU Mes is free software; you can redistribute it and/or modify it
% under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3 of the License, or (at
% your option) any later version.
%
% GNU Mes is distributed in the hope that it will be useful, but
% WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
\mode<presentation>
\usecolortheme{spruce}
\setbeamercolor*{structure}{fg=blue!25!white}
\setbeamercolor*{structure}{fg=MSUgreen!80!white}
\setbeamercolor{block title}{use=structure,fg=white,bg=structure.fg!75!black}
\mode
<all>

View File

@ -1,36 +0,0 @@
% GNU Mes --- Maxwell Equations of Software
% Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
%
% This file is part of GNU Mes.
%
% GNU Mes is free software; you can redistribute it and/or modify it
% under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3 of the License, or (at
% your option) any later version.
%
% GNU Mes is distributed in the hope that it will be useful, but
% WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
\mode<presentation>
\setbeamertemplate{navigation symbols}{}
\newif\ifbeamer@secheader
\beamer@secheaderfalse
\DeclareOptionBeamer{secheader}{\beamer@secheadertrue}
\ProcessOptionsBeamer
\usecolortheme{X}
\useinnertheme[shadow]{rounded}
\useoutertheme{infolines}
\ifbeamer@secheader\else\setbeamertemplate{headline}[default]\fi
\mode
<all>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

View File

@ -1,665 +0,0 @@
#+TITLE: GNU Mes
#+TITLE: \\\smaller[2]{Maxwell Equations of Software}
#+DATE:2017-02-05
#+EMAIL: janneke@gnu.org
#+AUTHOR: janneke@gnu.org
#+COPYRIGHT: Jan (janneke) Nieuwenhuizen <janneke@gn.org>
#+LICENSE: GNU Free Documentation License, version 1.3 or later.
#+LATEX_HEADER:\institute{FOSDEM'17}
#+LATEX_HEADER:\def\ahref#1#2{\htmladdnormallink{#2}{#1}}
#+OPTIONS: H:2
#+LATEX_CLASS: beamer
#+LATEX_CLASS_OPTIONS: [presentation]
#+LATEX_HEADER: \usepackage{relsize}
#+LATEX_HEADER: \usepackage{hyperref}
#+LATEX_HEADER: \usepackage{html}
#+latex_header: \mode<beamer>{\usetheme{X}}
#+BEAMER_THEME: X
#+BEAMER_FRAME_LEVEL: 2
#+COLUMNS: %45ITEM %10BEAMER_ENV(Env) %10BEAMER_ACT(Act) %4BEAMER_COL(Col) %8BEAMER_OPT(Opt)
* Mes, WHAT?
# ** TEST
# - @@beamer:<1->@@ Item 1
# - @@beamer:<2->@@ Item 2
# GNU LilyPond, Verum
# Depression: France, Netherlands, US: about 20%; 10x more than 50 years ago
** Mes: Full Source Bootstrapping
*** Bootstrapping :B_block:BMCOL:
:PROPERTIES:
:BEAMER_COL: 0.6
:BEAMER_ENV: block
:END:
* Where do compilers come from?
* Who compiled the compiler?
* Chicken and Egg
*** . :B_block:BMCOL:
#+LATEX:\includegraphics[width=0.4\textwidth]{mes.png}
:PROPERTIES:
:BEAMER_COL: 0.3
:xBEAMER_ACT: <2->
:xBEAMER_ENV: block
:END:
*** mes: A tiny Scheme interpreter in Hex [or simple C?]
:PROPERTIES:
:BEAMER_ACT: <2->
:END:
*** mescc: A C compiler in Scheme, executed by Mes
* Mes + CC =
#+xATTR_LATEX: :=\linewidth
#+xLATEX:\includegraphics[width=0.25\textwidth]{fsb-logo.png}
#+LATEX:\rightskip=-3cm\includegraphics[width=0.2\textwidth]{fsb-logo-guile-guix-mes.png}
:PROPERTIES:
:BEAMER_ACT: <3->
:END:
* Mes, what NOT?
:PROPERTIES:
:xBEAMER_ENV: note
:END:
** Mes is a strategy
* NOT a goal in itself -- only a means or proof of concept
* NOT a general purpose Scheme -- close to R6RS
* NOT an alternative for Guile -- reuse Guile modules
* Mes, WHY?
** Inspiration: what do you want?
*** Meaning, Autonomy, Co-Creation, Self-Realization
* Discovering, Hacking, Motivating, Playing
:PROPERTIES:
:BEAMER_ACT: <2->
:END:
*** A planet of enlightened beings
# * Awakening of consciousness
* Look inward
* Be happy
* Be helpful
:PROPERTIES:
:BEAMER_ACT: <3->
:END:
*** A world where all software is free
* Support \ahref{https://gnu.org}{GNU}
* Create free software
# * Be patient, be wise
:PROPERTIES:
:BEAMER_ACT: <4->
:END:
** Inspiration: when do you want it?
*** NOW!!!
:PROPERTIES:
:BEAMER_ACT: <2->
:END:
** Inspiration
*** To finally run GNU
* GuixSD: GNU in the flesh
:PROPERTIES:
:BEAMER_ACT: <1->
:END:
# * Michael Nielsen: \ahref{http://www.michaelnielsen.org/ddi/lisp-as-the-maxwells-equations-of-software}{Lisp as the Maxwell's Equations of Software}
# *** recap the 4 freedoms
# :PROPERTIES:
# :BEAMER_ACT: <3->
# :END:
** 1941: The \ahref{https://en.wikipedia.org/wiki/Four_Freedoms}{Four Freedoms}
:PROPERTIES:
:BEAMER_ENV: note
:END:
*** for all people on our planet
* Freedom of speech
* Freedom of worship
* Freedom from want
* Freedom from fear
-- Franklin D. Roosevelt
** 1984 Four Software Freedoms: GNU GPL
:PROPERTIES:
:xBEAMER_ENV: note
:END:
*** The freedom to
* 0 run the program as you wish, for any purpose
* 1 study how the program works, and change it if you wish
* 2 redistribute copies so you can help your neighbor
* 3 share copies of your modified versions with others
-- Richard M. Stallman
# 1: Access to the source code is a precondition for this.
# 3: By doing this you can give the whole community a chance to benefit
# from your changes. Access to the source code is a precondition for
# this.
** 2013 Debian's \ahref{https://reproducible-builds.org}{reproducible-builds.org}
*** Verifiable path: source -> binary
Reproducible builds are a set of software development practices that
create a verifiable path from human readable source code to the binary
code used by computers.
*** Does this binary come from the given source?
* Always different binary...dunno?
* Same binary
* Always good, always bad?
** 2015 GuixSD \ahref{https://www.gnu.org/software/guix/news/reproducible-builds-a-means-to-an-end.html}{Reproducible builds: a means to an end}
# GNU Guix is committed to improving the freedom and autonomy of
# computer users. This obviously manifests in the fact that GuixSD is a
# fully free distro, and this is what GNU stands for. All the packages
# in Guix are built from source, including things like firmware where
# there is an unfortunate tendency to use pre-built binaries; that way,
# users can know what software they run. On the technical side, Guix
# also tries hard to empower users by making the whole system as
# hackable as possible, in a uniform way—making Freedom #1 practical, à
# la Emacs.
*** A technical means to an end
* guarantee user autonomy and safety
* GNU+GuixSD: fully free distro
* NixOS: fully isolated build environment
* NixOS: full list of dependencies
* reproducible builds: bit-for-bit identical binaries
-- Ludovic Courtès
** 2016 From GuixSD to Mes: The bootstrap binaries
*** GuixSD ... source
* source/binary transparency
* all is built from source
* *EVERYTHING*
* starting from the ... *bootstrap binaries*
The distribution is fully “bootstrapped” and “self-contained”: each
package is built based solely on other packages in the distribution.
The root of this dependency graph is a small set of “bootstrap
binaries”, provided by the (gnu packages bootstrap) module. For more
information on bootstrapping, *note Bootstrapping::.
[2010]: Eelco Dolstra, Andres Löh, and Nicolas Pierron described
sources of non-determinism in their 2010 JFP paper about NixOS
** GuixSD bootstrap graph
#+LATEX:\includegraphics[width=0.8\textwidth]{bootstrap-graph.png}
** GuixSD bootstrap tarballs
#+BEGIN_SRC bash
$ du -schx $(readlink $(guix build bootstrap-tarballs)/*)
2.1M /gnu/store/mzk1bc3pfrrf4qnfs3zkj5ch83srnvpx-binutils-static-stripped-tarball-2.27/binutils-static-stripped-2.27-x86_64-linux.tar.xz
16M /gnu/store/jddviycivycfhaqahqff6n18y9w46gpz-gcc-stripped-tarball-4.9.4/gcc-stripped-4.9.4-x86_64-linux.tar.xz
1.7M /gnu/store/x5zrmh820yc054w00cy00iixwghmly2y-glibc-stripped-tarball-2.24/glibc-stripped-2.24-x86_64-linux.tar.xz
3.1M /gnu/store/znsf5d7xbqkp4rrjgzsklmwmms8m5i3m-guile-static-stripped-tarball-2.0.12/guile-static-stripped-2.0.12-x86_64-linux.tar.xz
5.7M /gnu/store/myfikfgx74dzlm3lc217kchxnckri5qq-static-binaries-tarball-0/static-binaries-0-x86_64-linux.tar.xz
28M total
$ for i in $(readlink $(guix build bootstrap-tarballs)/*);\
do sudo tar xf $i; done
$ du -schx *
125M bin
13M include
18M lib
43M libexec
4.3M share
202M total
#+END_SRC
** Inspiration
*** To finally run GNU
* GuixSD: GNU in the flesh
:PROPERTIES:
:BEAMER_ACT: <1->
:END:
*** Bootstrap binaries: source all the way down?
* OriansJ: \ahref{https://github.com/oriansj/stage0}{self-hosting hex assembler}
:PROPERTIES:
:BEAMER_ACT: <1->
:END:
*** The computer revolution hasn't happened yet
* Alan Kay
:PROPERTIES:
:BEAMER_ACT: <2->
:END:
The computer revolution is very new, and all of the good ideas have
not been universally implemented
** Bootstrapping: Chicken and Egg
#+LATEX:\includegraphics[width=0.3\textwidth]{egg.png}
** Inspiration
*** To finally run GNU
* GuixSD: GNU in the flesh
:PROPERTIES:
:BEAMER_ACT: <1->
:END:
*** Bootstrap binaries: source all the way down?
* OriansJ: \ahref{https://github.com/oriansj/stage0}{self-hosting hex assembler}
:PROPERTIES:
:BEAMER_ACT: <1->
:END:
*** The computer revolution hasn't happened yet
* Alan Kay
:PROPERTIES:
:BEAMER_ACT: <1->
:END:
The computer revolution is very new, and all of the good ideas have
not been universally implemented
*** \ahref{http://queue.acm.org/detail.cfm?id=1039523}{LISP as the Maxwell's Equations of Software}
:PROPERTIES:
:BEAMER_ACT: <1->
:END:
That was the big revelation to me when I [..] finally understood that
the half page of code on the bottom of page 13 of the Lisp 1.5 manual
was Lisp in itself. These were “Maxwells Equations of Software!”
* \ahref{http://www.softwarepreservation.org/projects/LISP/book/LISP\%25201.5\%2520Programmers\%2520Manual.pdf}{LISP-1.5}: page 13
** Chicken and Egg
* the shortest path from hex to gcc
* using Maxwell's Equations of Software
** Bootstrapping: Chicken and Egg
#+LATEX:\includegraphics[width=0.3\textwidth]{mes.png}
* Mes: HOW?
** LISP-1.5 John McCarthy: page 13
# convert -density 150 -quality 100 -flatten -sharpen 0x1.0 LISP-1.5-page-13.pdf LISP-1.5-page-13.png
#+BEGIN_COMMENT
[[file:LISP-1-5-page-13-bottom.png][LISP-1.5 page 13 bottom]]
#+END_COMMENT
#+ATTR_LATEX: :width=\linewidth
#+LATEX:\includegraphics[width=\textwidth]{LISP-1-5-page-13-bottom.png}
** Eval/Apply
* core
* apply
* eval
* helpers
* assoc
* pairlis
* evcon
* evlis
* primitives
* atom
* car
* cdr
* cons
* eq
** LISP-1.5 in Guile Scheme: APPLY
#+BEGIN_SRC scheme
(define (apply fn x a)
(cond
((atom fn)
(cond
((eq fn CAR) (caar x))
((eq fn CDR) (cdar x))
((eq fn CONS) (cons (car x) (cadr x)))
((eq fn ATOM) (atom (car x)))
((eq fn EQ) (eq (car x) (cadr x)))
(#t (apply (eval fn a) x a))))
((eq (car fn) LAMBDA)
(eval (caddr fn) (pairlis (cadr fn) x a)))
((eq (car fn) LABEL)
(apply (caddr fn) x (cons (cons (cadr fn)
(caddr fn))
a)))))
#+END_SRC
** LISP-1.5 in Guile Scheme: EVAL
#+BEGIN_SRC scheme
(define (eval e a)
(cond
((atom e) (cdr (assoc e a)))
((atom (car e))
(cond ((eq (car e) QUOTE) (cadr e))
((eq (car e) COND) (evcon (cdr e) a))
(#t (apply (car e)
(evlis (cdr e) a) a))))
(#t (apply (car e) (evlis (cdr e) a) a))))
#+END_SRC
** LISP-1.5 in Scheme: ASSOC, PAIRLIS, EVCON, EVLIS
#+BEGIN_SRC scheme
(define (assoc x a)
(cond ((eq (caar a) x) (car a))
(#t (assoc x (cdr a)))))
(define (pairlis x y a)
(cond ((null x) a)
(#t (cons (cons (car x) (car y))
(pairlis (cdr x) (cdr y) a)))))
(define (evcon c a)
(cond ((eval (caar c) a) (eval (cadar c) a))
(#t (evcon (cdr c) a))))
(define (evlis m a)
(cond ((null m) NIL)
(#t (cons (eval (car m) a) (evlis (cdr m) a)))))
#+END_SRC
** LISP-1.5 in C
* closures
* symbols
* specials? =()= =#t= =#f= =*unspecified*= =*undefined*=
* macros
* syntax-rules
* records
* modules/importing
** Garbage/Jam Collector
*** Abelson & Sussman
With a real computer we will eventually run out of free
space in which to construct new pairs.(1)
*** footnote(1)
This may not be true eventually, because memories may get large
enough so that it would be impossible to run out of free memory in the
lifetime of the computer. For example, there are about {3\cdot10^{13}}
microseconds in a year, so if we were to cons once per microsecond we
would need about 10^{15} cells of memory to build a machine that could
operate for 30 years without running out of memory.
** C parser: roll your own LALR
*** Lalr
* minimal ANSI-C parser
=int main (){puts ("Hello, world!");return 0;}=
** C parser: Nyacc
*** Pros
* full C99 parser
* ...including C pre-processor
* perspective of building complete C compiler in Guile
* tsunami of enthusiasm and contributors!
** C parser: Nyacc
*** Cons: more TODO for Mes
* keywords
* =define*=, =lambda*=
* optargs
* exeptions, =catch=, =throw=
* =call/cc=
* fluids, =with-fluid=
* =syntax-case=
* André van Tonder's 2006-2007 streak in 14 "commits"
* psyntax: another bootstrap loop?!
* R7RS's Ellipsis
* Guile-1.8
* =#;=-comments
* =#||#=-comments
** C parser: Nyacc
*** Cons: more TODO for Mes
* Cond supports ==>=
* Bugfixes
* Cond now evaluates its test clauses only once
* Append can also handle one argument
* For-each now supports 2 list arguments
* Map now supports 3 list arguments
* Backslash in string is supported
* Closure is not a pair
* All standard characters are supported
* 36 new functions
#+BEGIN_SRC scheme
1+, 1-, abs, and=>, append-reverse, ash, char<\=?, char<?,
char>=?, char>?, even?, filter, delete, delq, vector-copy,
fold, fold-right, getenv, iota, keyword->symbol list-head,
list-tail, negative?, odd?, positive?, remove!, remove,
string->number, string-copy, string-prefix?, string=,
string=?, symbol->keyword symbol-append, symbol-prefix?,
unless, write, zero?
#+END_SRC
* Mes: WHERE?
** Timeline
*** June 19: \ahref{https://lists.gnu.org/archive/html/guile-user/2016-06/msg00061.html}{on bootstrapping: introducing Mes}
# https://gnunet.org/bot/log/guile/2016-05-19
* LISP-1.5 in Scheme and in C
*** September 25: \ahref{https://lists.gnu.org/archive/html/guile-user/2016-09/msg00061.html}{on bootstrapping: 2nd status report on Mes}
# https://gnunet.org/bot/log/guile/2016-09-25
* Scheme primitives in C, closures, macros, 97 tests, LALR
* Produce ELF binary from
#+BEGIN_SRC C
int main ()
{
int i;
puts ("Hi Mes!\n");
for (i = 0; i < 4; ++i)
puts (" Hello, world!\n");
return 1;
}
#+END_SRC
* in 1'20"
** Timeline
*** October 23: 0.1 [not announced]
* =let-syntax=, =match=
* compile main.c in 2s (was 1'20")
* add REPL
*** November 21: 0.2 [not announced]
* psyntax integration, =syntax-case=, =load=
*** December 12: \ahref{https://lists.gnu.org/archive/html/guile-user/2016-12/msg00008.html}{on bootstrapping: first Mes 0.3 released}
# https://gnunet.org/bot/log/guile/2016-12-12
* Garbage Collector/Jam Scraper
*** December 25: \ahref{https://lists.gnu.org/archive/html/guile-user/2016-12/msg00041.html}{Mes 0.4 released}
# https://gnunet.org/bot/log/guile/2016-12-25
* run Nyacc, PEG, reduced core
** Status
*** core C prototype: 1150 lines
*** non-essential C sources:
#+BEGIN_SRC bash
210 lib.c
157 math.c
126 posix.c
134 reader.c
627 total
#+END_SRC
** Status
*** tiny-mes.c: 270 lines
* compiles with mescc
* i386-lib: =i386:exit=, =i3886:open=, =i386:read=, =i386:write=
* tiny-libc: =getchar=, =putchar=, =puts=, =strcmp=, =strlen=
* runs
#+BEGIN_SRC bash
Hello tiny-mes!
reading: module/mes/hack-32.mo
MES *GOT MES*
(#\A(#\B))
#+END_SRC
** Status
*** mini-mes.c: 800 lines
* 12kB binary
* 2500 lines assembly
* runs with gcc
#+BEGIN_SRC bash
Hello mini-mes!
reading: module/mes/hack-32.mo
MES *GOT MES*
cells read: 19
symbols: 1
program[10]: (cons(0(1)))
(0 . 1)
#+END_SRC
* compiles with mescc
* 83 statements skipped
** Status
***
#+BEGIN_SRC bash
01:16:51 janneke@dundal:~/src/mes
$ guix package -f guix.scm
The following package will be upgraded:
mes 0.4.f84e97fc -> 0.4.f84e97fc /gnu/store/2fsy1cd24pnwkv7a1zd0anzk3zz8ysdn-mes-0.4.f84e97fc
#+END_SRC
** Misc
:PROPERTIES:
:BEAMER_ENV: note
:END:
civodul
Impressive!
Is it a goal to try interpret a language as close as possible to that of
Guile, and have the same libraries? I guess that could help in the
future: we could use (system base lalr), nyacc, etc.
Also, currently theres approximately 2K lines of C. How do you plan to
make sure that it doesnt grow over time, or even that it shrinks? :-)
This all sounds very promising, thanks a lot!
arnebab
This is really cool! Thank you for your work!
> How do you compile the interpreter?
paroneayea/cwebber
First, I'm really excited you're making progress on Mes!
> Second, Scheme48 did something similar to this, called "Pre-Scheme",
which is how they bootstrapped Scheme48 iirc. Have you heard of it or
looked at it?
https://en.wikipedia.org/wiki/PreScheme
* PreScheme in Scheme48
* \ahref{http://canonical.org/~kragen/sw/urscheme/}{Ur-Scheme}
R5RS to x86 Assembly
** What's next?
* psyntax
* source or binary?
* alternative syntax-case?
* rewrite Nyacc without syntax-case, R7RS-ellipsis?
* call/cc vs eval/apply/evlis?
* merge with Guile?
* compile Guile or compile Gcc?
* prototype? in C
* move from C to Hex?
* move from C to [Pre]Scheme
** Thanks
*** Thanks :B_block:BMCOL:
:PROPERTIES:
:BEAMER_COL: 0.48
:BEAMER_ENV: block
:END:
* John McCarthy
* Richard Stallman
* Eelco Dolstra
* Ludovic Courtès
* Rutger van Beusekom
* Christopher A. Webber
*** Thanks everyone else :B_block:BMCOL:
:PROPERTIES:
:BEAMER_COL: 0.48
:xBEAMER_ACT: <2->
:BEAMER_ENV: block
:END:
* LISP-1.5
* GNU
* NixOS
* Debian reproducible builds
* GuixSD
* FOSDEM
*** Connect
* irc freenode.net [[irc://guix@freenode.net][#guix]] [[irc://guile@freenode.net][#guile]]
* mail [[mailto://guile-user@gnu.org][guile-user@gnu.org]]
* git [[https://gitlab.com/janneke/mes][git@gitlab.com:janneke/mes.git]]
# * Copying
# :PROPERTIES:
# :COPYING: t
# :END:
# Copyright \copy 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
# C-c C-e l b (org-beamer-export-to-latex)
# C-c C-e l P (org-beamer-export-to-pdf)
* Legalese
:PROPERTIES:
:COPYING: t
:END:
Copyright \copy 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
#+BEGIN_QUOTE
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, with no Front-Cover Texts,
and with no Back-Cover Texts.
#+END_QUOTE

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 KiB

View File

@ -1,44 +0,0 @@
11:12:26 janneke@dundal:~/src/mes/doc
$ guix build bootstrap-tarballs
substitute: updating list of substitutes from 'http://mirror.hydra.gnu.org'... 100.0%
The following files will be downloaded:
/gnu/store/6bym1yf3x500dhzc3z8lqk0frnd5qcka-bootstrap-tarballs-0
/gnu/store/jddviycivycfhaqahqff6n18y9w46gpz-gcc-stripped-tarball-4.9.4
/gnu/store/myfikfgx74dzlm3lc217kchxnckri5qq-static-binaries-tarball-0
/gnu/store/mzk1bc3pfrrf4qnfs3zkj5ch83srnvpx-binutils-static-stripped-tarball-2.27
/gnu/store/x5zrmh820yc054w00cy00iixwghmly2y-glibc-stripped-tarball-2.24
/gnu/store/znsf5d7xbqkp4rrjgzsklmwmms8m5i3m-guile-static-stripped-tarball-2.0.12
@ substituter-started /gnu/store/mzk1bc3pfrrf4qnfs3zkj5ch83srnvpx-binutils-static-stripped-tarball-2.27 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
Downloading http://mirror.hydra.gnu.org/nar/mzk1bc3pfrrf4qnfs3zkj5ch83srnvpx-binutils-static-stripped-tarball-2.27 (2.0MiB installed)...
binutils-static-stripped-tarball-2.27 3.5MiB/s 00:01 | 2.0MiB transferred
@ substituter-succeeded /gnu/store/mzk1bc3pfrrf4qnfs3zkj5ch83srnvpx-binutils-static-stripped-tarball-2.27
@ substituter-started /gnu/store/jddviycivycfhaqahqff6n18y9w46gpz-gcc-stripped-tarball-4.9.4 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
Downloading http://mirror.hydra.gnu.org/nar/jddviycivycfhaqahqff6n18y9w46gpz-gcc-stripped-tarball-4.9.4 (15.5MiB installed)...
gcc-stripped-tarball-4.9.4 4.0MiB/s 00:04 | 15.5MiB transferred
@ substituter-succeeded /gnu/store/jddviycivycfhaqahqff6n18y9w46gpz-gcc-stripped-tarball-4.9.4
@ substituter-started /gnu/store/x5zrmh820yc054w00cy00iixwghmly2y-glibc-stripped-tarball-2.24 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
Downloading http://mirror.hydra.gnu.org/nar/x5zrmh820yc054w00cy00iixwghmly2y-glibc-stripped-tarball-2.24 (1.6MiB installed)...
glibc-stripped-tarball-2.24 697KiB/s 00:02 | 1.6MiB transferred
@ substituter-succeeded /gnu/store/x5zrmh820yc054w00cy00iixwghmly2y-glibc-stripped-tarball-2.24
@ substituter-started /gnu/store/znsf5d7xbqkp4rrjgzsklmwmms8m5i3m-guile-static-stripped-tarball-2.0.12 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
Downloading http://mirror.hydra.gnu.org/nar/znsf5d7xbqkp4rrjgzsklmwmms8m5i3m-guile-static-stripped-tarball-2.0.12 (3.1MiB installed)...
guile-static-stripped-tarball-2.0.12 3.2MiB/s 00:01 | 3.1MiB transferred
@ substituter-succeeded /gnu/store/znsf5d7xbqkp4rrjgzsklmwmms8m5i3m-guile-static-stripped-tarball-2.0.12
@ substituter-started /gnu/store/myfikfgx74dzlm3lc217kchxnckri5qq-static-binaries-tarball-0 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
Downloading http://mirror.hydra.gnu.org/nar/myfikfgx74dzlm3lc217kchxnckri5qq-static-binaries-tarball-0 (5.7MiB installed)...
static-binaries-tarball-0 4.1MiB/s 00:01 | 5.7MiB transferred
@ substituter-succeeded /gnu/store/myfikfgx74dzlm3lc217kchxnckri5qq-static-binaries-tarball-0
@ substituter-started /gnu/store/6bym1yf3x500dhzc3z8lqk0frnd5qcka-bootstrap-tarballs-0 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
Downloading http://mirror.hydra.gnu.org/nar/6bym1yf3x500dhzc3z8lqk0frnd5qcka-bootstrap-tarballs-0 (2KiB installed)...
bootstrap-tarballs-0 385KiB/s 00:00 | 520B transferred
@ substituter-succeeded /gnu/store/6bym1yf3x500dhzc3z8lqk0frnd5qcka-bootstrap-tarballs-0
/gnu/store/6bym1yf3x500dhzc3z8lqk0frnd5qcka-bootstrap-tarballs-0
12:05:09 janneke@dundal:~/src/mes/doc
$ 12:05:09 janneke@dundal:~/src/mes/doc
$

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.