[Ecls-list] ASDF update
Luis Oliveira
luismbo at gmail.com
Wed Jun 4 11:32:31 UTC 2008
"Juan Jose Garcia-Ripoll"
<jjgarcia at users.sourceforge.net> writes:
> Sorry, I thought this was a fix in the current version. Now, is
> cclan's the latest one? When upgrading asdf last time I had to track
> different repositories looking for the latest (numbered) version.
CCLAN is where the latest version is, AFAIK. See:
<http://cclan.cvs.sourceforge.net/cclan/asdf/asdf.lisp?view=log>
I took that and applied the following ECL-specific changes:
--- asdf/asdf.lisp 2008-06-04 03:44:27.000000000 +0100
+++ ecl/contrib/asdf/asdf.lisp 2008-06-04 04:56:20.000000000 +0100
@@ -760,6 +760,7 @@
(defclass compile-op (operation)
((proclamations :initarg :proclamations :accessor compile-op-proclamations :initform nil)
+ (system-p :initarg :system-p :accessor compile-op-system-p :initform nil)
(on-warnings :initarg :on-warnings :accessor operation-on-warnings
:initform *compile-file-warnings-behaviour*)
(on-failure :initarg :on-failure :accessor operation-on-failure
@@ -781,7 +782,8 @@
(let ((source-file (component-pathname c))
(output-file (car (output-files operation c))))
(multiple-value-bind (output warnings-p failure-p)
- (compile-file source-file :output-file output-file)
+ (compile-file source-file :output-file output-file
+ :system-p (compile-op-system-p operation))
(when warnings-p
(case (operation-on-warnings operation)
(:warn (warn
@@ -1359,4 +1361,19 @@
(pushnew 'module-provide-asdf sb-ext:*module-provider-functions*)
(pushnew 'contrib-sysdef-search *system-definition-search-functions*))
+;; Hook into ECL's require/provide
+#+ecl
+(progn
+ (require 'cmp)
+ (defvar *require-asdf-operator* 'load-op)
+ (defun module-provide-asdf (name)
+ (handler-bind ((style-warning #'muffle-warning))
+ (let* ((*verbose-out* (make-broadcast-stream))
+ (system (asdf:find-system name nil)))
+ (when system
+ (asdf:operate *require-asdf-operator* name)
+ t))))
+ #+win32 (push '("asd" . si::load-source) si::*load-hooks*)
+ (pushnew 'module-provide-asdf ext:*module-provider-functions*))
+
(provide 'asdf)
--
Luís Oliveira
http://student.dei.uc.pt/~lmoliv/
More information about the ecl-devel
mailing list