Skip to content
Snippets Groups Projects
Commit e1f6ad14 authored by Robert P. Goldman's avatar Robert P. Goldman
Browse files
parents f6f10f69 4afe446b
No related branches found
No related tags found
No related merge requests found
...@@ -27,16 +27,26 @@ ...@@ -27,16 +27,26 @@
but still require loading the defsystem-depends-on dependencies: but still require loading the defsystem-depends-on dependencies:
on the target: on the target:
(defmethod perform-forms ((target null) operation component) ;; null means the target is the current host.
;; null target designates current image ;; Or should the base class be plan-traversal or such?
`((asdf:perform ',op ',comp))) (defmethod perform-form ((target null) operation component)
(defmethod perform-forms ((target external-target) operation component) ;; :host means execute on the host. () is empty options.
;; external target means a cross compiler `(:host () (asdf:perform ',op ',comp)))
`((require :asdf)
(map () 'asdf:load-system '(,defsystem-deps)) ;; external-target means a cross compiler that we spawn.
(defmethod perform-form ((target external-target) operation component)
`(:target ;; who is to execute that? the target Lisp.
;; options for the performing system:
(:depends-on ,(defsystem-dependencies
(component-system component)))
;; The actual forms to evaluate
(asdf:perform ,(fake-operation-form operation) (asdf:perform ,(fake-operation-form operation)
,(fake-component-form component)))) ,(fake-component-form component))))
By specifying :host-common-lisp you can have forms run on the host.
By specifying :run-program, you can spawn a subprocess without
having to first spawn a Lisp that will call run-program. etc.
The other way around the default perform method could be: The other way around the default perform method could be:
(defmethod perform ((o t) (c t)) (defmethod perform ((o t) (c t))
...@@ -66,6 +76,13 @@ ...@@ -66,6 +76,13 @@
they can keep the perform method to run on older versions of ASDF. they can keep the perform method to run on older versions of ASDF.
** Modify SBCL and other implementations so they provide UIOP ** Modify SBCL and other implementations so they provide UIOP
independently from ASDF? independently from ASDF?
** The default perform-plan method could iterate over pre-computed forms,
in a way that does not involve the ASDF object model anymore,
making ASDF friendlier to self-upgrades.
Then, ASDF wouldn't need to be concatenated during upgrade
— but should still concatenate for bootstrap purposes,
when require'ing it as an implementation-provided module,
compiling from ASDF 2, or otherwise distributing as a single file.
* Implementation bugs * Implementation bugs
** CMUCL has bugs: ** CMUCL has bugs:
...@@ -128,6 +145,11 @@ ...@@ -128,6 +145,11 @@
** Find out why ABCL fails the timestamp propagation test. ** Find out why ABCL fails the timestamp propagation test.
** ECL has issues with its bundles.
On MacOS X, test-bundle.script fails.
On Linux, test-program.script fails with recent ECL 237af2e,
but used to work quite fine earlier in 2013.
* Find an easier way to bind variables around compilation and loading of files * Find an easier way to bind variables around compilation and loading of files
* Design & Implement some out-of-line configuration mechanism for various options? * Design & Implement some out-of-line configuration mechanism for various options?
...@@ -137,10 +159,12 @@ ...@@ -137,10 +159,12 @@
* Use the above variable binding mechanism. * Use the above variable binding mechanism.
* Fix bugs on http://bugs.launchpad.net/asdf/+bugs * Fix bugs on http://bugs.launchpad.net/asdf/+bugs
** fix directory-files to not return directories on CCL, etc. Add tests.
* fix directory-files to not return directories on CCL, etc. Add tests. * Learn to use cl-grid-test
** So we can easily make sure ASDF changes don't break stuff,
* use cl-test-grid to see if asdf-user can :use most (all?) of UIOP. and that breakage gets fixed quickly.
** So we see if ASDF-USER can :use most (all?) of UIOP.
SB-GROVEL used (until 25c1769 from 2013-02-23) to :use both ASDF and SB-GROVEL used (until 25c1769 from 2013-02-23) to :use both ASDF and
SB-EXT, which prevents ASDF from exporting RUN-PROGRAM, but SB-EXT, which prevents ASDF from exporting RUN-PROGRAM, but
should not be a problem with ASDF-USER :use'ing UIOP. should not be a problem with ASDF-USER :use'ing UIOP.
...@@ -149,13 +173,14 @@ ...@@ -149,13 +173,14 @@
* have a mode to explain WHY a component needs to be recompiled. * have a mode to explain WHY a component needs to be recompiled.
* have a better defsystem form verifier - see lp#1007335 * Improve robustness
** have a better defsystem form verifier - see lp#1007335
* have a function verify-strict-asd that can verify a asd is pure lp#541562 ** have a function verify-strict-asd that can verify a asd is pure lp#541562
Then if it passes, use load-strict-asd. Then if it passes, use load-strict-asd.
If not, optionally issue a warning. Start migrating people toward that. If not, optionally issue a warning. Start migrating people toward that.
* have with-input-file use the encodings mechanism? * have with-input-file use the encodings mechanism?
** Import asdf-encodings into UIOP? Sounds a lot of code for no users.
* have a single test .asd that tests as many features as possible, use it for upgrade test. * have a single test .asd that tests as many features as possible, use it for upgrade test.
...@@ -164,12 +189,15 @@ ...@@ -164,12 +189,15 @@
** At least document the issue. ** At least document the issue.
** Real solution: defer parsing and evaluation of defsystem forms. ** Real solution: defer parsing and evaluation of defsystem forms.
* Learn to use cl-grid-test, to make sure ASDF changes don't break stuff,
and that breakage gets fixed quickly.
* Include some ABL test for stassats's (now obsolete?) thing: * Include some ABL test for stassats's (now obsolete?) thing:
(asdf:enable-asdf-binary-locations-compatibility (asdf:enable-asdf-binary-locations-compatibility
:centralize-lisp-binaries t :default-toplevel-directory *fasl-dir*) :centralize-lisp-binaries t :default-toplevel-directory
*fasl-dir*)
** Or deprecate and remove ABL compatibility altogether?
No one has been using ASDF1 for years.
There is no ABL to be compatible with —
is anyone still using the compatibility mode?
Maybe issue a warning, then a cerror, before to remove the code?
* Make load-op a generic operation that selects the proper strategy * Make load-op a generic operation that selects the proper strategy
for each system, module or file, according to component properties and user-configuration: for each system, module or file, according to component properties and user-configuration:
......
...@@ -232,6 +232,9 @@ Peter Graves <gnooth@gmail.com> (XCL). ...@@ -232,6 +232,9 @@ Peter Graves <gnooth@gmail.com> (XCL).
or the slides of the or the slides of the
<a href="https://github.com/fare/asdf3-2013/blob/master/els-slides.org" <a href="https://github.com/fare/asdf3-2013/blob/master/els-slides.org"
>ASDF 3 tutorial</a> presented at ELS 2013. >ASDF 3 tutorial</a> presented at ELS 2013.
For an introduction to the source code, see also this video:
<a href="https://www.youtube.com/watch?v=Qqqbc31ZZ-U">ASDF3.1 walkthrough</a>.
</p>
<p>Finally, while the manual covers all the basics, <p>Finally, while the manual covers all the basics,
some advanced or new features remain underdocumented. some advanced or new features remain underdocumented.
Please contact our mailing-list (see below) Please contact our mailing-list (see below)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment