Commit 65c21a38 authored by Robert P. Goldman's avatar Robert P. Goldman
Browse files

New (still partial) draft of the talk.

parent b48868bb
#+LaTeX_CLASS: beamer
#+LaTeX_CLASS_OPTIONS: [presentation]
#+BEAMER_FRAME_LEVEL: 2
#+TITLE: Evolving ASDF: More cooperation, less coordination
#+AUTHOR: Fran\c{c}ois-Ren\'e Rideau and Robert P. Goldman
#+BEAMER_HEADER_EXTRA: \usetheme{default}\usecolortheme{default}
#+TITLE: Evolving ASDF
#+DATE: International Lisp Conference, 19 October 2010
#+AUTHOR: Fran\c{c}ois-Ren\'e Rideau and Robert P. Goldman \newline{} ITA and SIFT (respectively)
#+BEAMER_HEADER_EXTRA: \usetheme{default}\usecolortheme{default} \subtitle{More cooperation, less coordination}
#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)
#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC
......@@ -45,15 +46,19 @@ sub-bullet under a major header.
* What is ASDF?
** COMMENT 4 slides here
** ASDF is the dominant build system for CL
*** Plays a role superficially akin to =make= or =ant=
*** But must do more
**** Not just build, but load
**** Maintain coherence of long-lived CL images
***** Not always going back to a clean slate like other tools
*** Built on the shoulders of giants
**** =MK-DEFSYSTEM=
**** Symbolics and other proprietary =DEFSYSTEM= versions
**** =BUILD=
**** =make=
*** Brilliant key idea
*** Brilliant key idea establishes ASDF dominance
**** Use =*load-truename*= to find system component files
......@@ -63,8 +68,32 @@ sub-bullet under a major header.
** ASDF system definitions
+ Contain /metadata/
+ Contain /components/
+ Contain /dependencies/
- external
- internal
** How does ASDF work?
#+BEGIN_BEAMER
\only<1>{\centerline{\includegraphics[width=10cm]{talk-images/find-system}}}
\only<2>{\centerline{\includegraphics[width=10cm]{talk-images/defsystem}}}
\only<3>{\centerline{\includegraphics[width=10cm]{talk-images/traverse}}}
\only<4>{\centerline{\includegraphics[width=10cm]{talk-images/execute}}}
#+END_BEAMER
** Three things I wish you knew about ASDF
1. ASDF doesn't just build: it makes a /plan/ to build, and then executes the plan
2. Operating on a module is not /wrapped around/ the operations on components
+ =:around= methods don't work for customization
3. You can tell ASDF about system versions
+ Say what the version of your system is
+ $x.y.z$, please
+ Please don't skimp on the high-order numbers or ASDF won't detect incompatibilities
+ Say what library versions it depends on
* Hot-patching ASDF
** COMMENT 4 slides here
......@@ -74,10 +103,16 @@ sub-bullet under a major header.
*** Loading ASDF into a running CL image containing ASDF
*** Why is this critical?
/Explain the need for hot-patching here/
**** If people can't load a new ASDF on top of an old one, they can never write portable code using new features
**** /Unless/ all the implementations get together and /simultaneously/ update their packaged versions
**** Hot-patching allows ASDF to evolve
*** Why is this hard?
**** We are replacing bits of ASDF /while it is running/
**** While it is running /to build and load itself/
**** COMMENT image of snake eating its own tail...
* Configuration
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment