Commit ea413e78 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Some tweaks. Extend summary to 1) ASDF, 2) Evolving ASDF.

parent 34fa11f3
...@@ -933,7 +933,7 @@ With all the things we added, ...@@ -933,7 +933,7 @@ With all the things we added,
and almost quadrupled since the original author left. and almost quadrupled since the original author left.
Our release 2.008 is 146448 bytes long; Our release 2.008 is 146448 bytes long;
1.369, the last release by Gary King was 77079 bytes long; 1.369, the last release by Gary King was 77079 bytes long;
the last version by Daniel Barlow, in 2004, was 38881 bytes long. 1.85, the last version by Daniel Barlow, in 2004, was 38881 bytes long.
\label{poiu} \label{poiu}
......
...@@ -3,9 +3,8 @@ ...@@ -3,9 +3,8 @@
#+BEAMER_FRAME_LEVEL: 2 #+BEAMER_FRAME_LEVEL: 2
#+TITLE: Evolving ASDF #+TITLE: Evolving ASDF
#+DATE: International Lisp Conference, 19 October 2010 #+DATE: International Lisp Conference, 19 October 2010
#+AUTHOR: Fran\c{c}ois-Ren\'e Rideau^{1} \and Robert P. Goldman^2 #+AUTHOR: François-René Rideau \and Robert P. Goldman
#+BEAMER_HEADER_EXTRA: \usetheme{default}\usecolortheme{default} \subtitle{More cooperation, less coordination} \author{\begin{tabular} \ Fran\c{c}ois-Ren\'e Rideau \\ ITA \\ Cambridge, MA \end{tabular} \and \begin{tabular} \ Robert P. Goldman \\ SIFT, LLC \\ Minneapolis, MN \end{tabular}} \AtBeginSection[]{\begin{frame}<beamer> \frametitle{Outline} \tableofcontents[currentsection]\end{frame}} #+BEAMER_HEADER_EXTRA: \usetheme{default}\usecolortheme{default} \subtitle{More cooperation, less coordination} \author{\begin{tabular} \ François-René Rideau \\ ITA Software \\ Cambridge, MA \end{tabular} \and \begin{tabular} \ Robert P. Goldman \\ SIFT, LLC \\ Minneapolis, MN \end{tabular}} \AtBeginSection[]{\begin{frame}<beamer> \frametitle{Outline} \tableofcontents[currentsection]\end{frame}}
#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra) #+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 #+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
...@@ -34,41 +33,46 @@ sub-bullet under a major header. ...@@ -34,41 +33,46 @@ sub-bullet under a major header.
** I have 20 slides in the current draft ** I have 20 slides in the current draft
* Summary * Summary
** COMMENT Only 1 slide here ** COMMENT Two slides here, for context
** In a nutshell
*** /Evolving/ ASDF ** ASDF
**** Fixing up ASDF --- not wrecking it *** "build system": compile source files
***** a key piece of CL community plumbing **** a bit like =make= for C or =ant= for Java
*** We discovered *** "in image": also load software
**** Interesting technical challenges **** totally unlike either =make= or =ant=
***** From hot-patching **** maintain long-live system state
***** From CL pathnames *** "declarative": describe system dependencies
**** Interesting social challenges **** not imperative instructions on how to build
*** Some principles *** specialized: oriented toward Lisp software
**** Don't wreck backward compatibility **** not for arbitrary tasks with dependencies
**** Configuration *** a key piece of CL community plumbing
***** Let users configure based on what they know
***** Let library authors configure based on what /they/ know ** /Evolving/ ASDF
*** Fixing up ASDF
**** numerous issues: pathname limitations, difficult configuration, dependency bugs, fasl mess, portability, missing extension hooks
*** not wrecking it in the process
**** numerous existing users: some depend on obscure features, existing bugs, undocumented internals...
*** We discovered interesting challenges
**** technical: hot upgrade
**** social: responsibility over upgrade, configuration
*** Development principles
**** some very well known, some less well known
* What is ASDF? * What is ASDF?
** COMMENT 4 slides here ** COMMENT 4 slides here
** ASDF is the dominant build system for CL ** dominant build system for CL
*** Plays a role superficially akin to =make= or =ant= ***** COMMENT what is this thing below about?
*** But must do more ***** COMMENT Not always going back to a clean slate like other tools
**** 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 *** Built on the shoulders of giants
**** =MK-DEFSYSTEM= **** =MK-DEFSYSTEM=
**** Symbolics and other proprietary =DEFSYSTEM= versions **** Symbolics and other proprietary =DEFSYSTEM= versions
**** =BUILD= **** kmp's MIT AI Memo 801, rer's MIT AI TR 874.
*** Brilliant key idea establishes ASDF dominance *** Brilliant key idea establishes ASDF dominance
**** Use =*load-truename*= to find system component files **** Use =*load-truename*= to find system component files
**** Suddenly, installing CL systems is easy **** Suddenly, installing CL systems is easy
+ No more wrestling with logical pathnames + No more wrestling with logical pathnames
+ Especially since logical pathnames are insufficiently portable + Especially since logical pathnames are insufficiently portable
...@@ -99,12 +103,12 @@ sub-bullet under a major header. ...@@ -99,12 +103,12 @@ sub-bullet under a major header.
:version "1.0.1" :version "1.0.1"
:author "Fare and RPG" :author "Fare and RPG"
:depends-on (cl-ppcre) :depends-on (cl-ppcre)
:components ((:module "mod" :components ((:file "blah")
(:module "mod"
:components :components
((:file "bar") ((:file "bar")
(:file"baz") (:file"baz")
(:file "quux"))) (:file "quux")))))
(:file "blah")))
#+END_SRC #+END_SRC
** How does ASDF work? ** How does ASDF work?
...@@ -113,7 +117,7 @@ sub-bullet under a major header. ...@@ -113,7 +117,7 @@ sub-bullet under a major header.
\only<1>{\centerline{\includegraphics[width=10cm]{talk-images/find-system}}} \only<1>{\centerline{\includegraphics[width=10cm]{talk-images/find-system}}}
\only<2>{\centerline{\includegraphics[width=10cm]{talk-images/defsystem}}} \only<2>{\centerline{\includegraphics[width=10cm]{talk-images/defsystem}}}
\only<3>{\centerline{\includegraphics[width=10cm]{talk-images/traverse}}} \only<3>{\centerline{\includegraphics[width=10cm]{talk-images/traverse}}}
\only<4>{\centerline{\includegraphics[width=10cm]{talk-images/execute}}} \only<4>{\centerline{\includegraphics[width=10cm]{talk-images/perform}}}
#+END_BEAMER #+END_BEAMER
** Three things I wish you knew about ASDF ** Three things I wish you knew about ASDF
...@@ -235,15 +239,15 @@ sub-bullet under a major header. ...@@ -235,15 +239,15 @@ sub-bullet under a major header.
:BEAMER_env: column :BEAMER_env: column
:END: :END:
****** CLISP under discussion
****** Yet to come (?) ****** Yet to come (?)
******* CLISP (discussed on the list)
******* ACL ******* ACL
******* LispWorks ******* LispWorks
******* Corman ******* Corman (no response)
*** =:asdf2= in =*features*= *** =:asdf2= in =*features*=
...@@ -254,3 +258,31 @@ sub-bullet under a major header. ...@@ -254,3 +258,31 @@ sub-bullet under a major header.
*** But please remember --- ASDF is the glue that holds the CL community together *** But please remember --- ASDF is the glue that holds the CL community together
**** Be gentle with it! **** Be gentle with it!
** Thanks
*** ASDF: Daniel Barlow, Christophe Rhodes, Gary King, many contributors
*** ASDF2: James Anderson, Juan-Jose Garcia-Ripoll
*** Paper: Vadim Nasardinov, Ethan Schwartz, Scott McKay, Dan Barlow, anonymous reviewers
*** All our users for testing --- and for building Lisp software!
*** http://common-lisp.net/project/asdf/
** Pathname Limitations
*** #p"..." was never very portable.
*** ASDF used to not parse the name, but use i
**** (:file "foo.bar") ==> path used to be "foo.bar", now "foo.bar.lisp"
**** (:file "foo-V1.2") ==> path used to be "foo-V1.2", now "foo-V1.2.lisp"
**** (:file "foo/bar") ==> non portable cheat, rejected by SBCL
**** (:static-file "README") ==> path used to be
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