2010/1/20 Peter Van Eynde pvaneynd@mailworks.org:
instead of /etc/common-lisp/source-registry.conf I would like to see /etc/common-lisp/source-registry.conf.d
where instead of having one file that you might have to edit in post-installation scripts we would have a directory where packages can just drop files into. Just like we have /etc/crontab and /etc/cron.d/* on Debian.
This would make my and I suspect others work much easier.
Makes perfect sense. I'll add that on top of my TODO list for ASDF. Would that replace source-registry.conf altogether, or override it, or be overridden by it?
Since ASDF-BINARY-LOCATIONS is now part of ASDF, I suppose it could be similarly configured, and CLC could and should "just" use that. What do you think?
I just noticed this in the manual and need to read it with more attention later. Ideally I would like it to handle also 'cached' fasl files from a trusted system user. Would it be able to do this too?
I probably would do it, if we coax it to our will. Definitely possible. I admit I never looked into ABL myself, having only ever used but my own variant (included in cl-launch) that itself is derived from an earlier CLC and works well with CLC. Hopefully, moving ABL into ASDF was a good move, and we should get the configuration of it right.
So load from /var/cache/common-lisp-controller/cl-builder/<implementation>/... or /var/cache/common-lisp-controller/<userid>/<implementation>/... or compile from /usr/share/common-lisp-controller/source/... to /var/cache/common-lisp-controller/<userid>/<implementation>/...
Yes. All the while, the default might be something like ~/.cache/common-lisp/<same-tag-as-slime>/...
Related: I might go for a business trip to Boston in the near future and would love to have a chat!
I would love to see you again!
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] He who refuses to do arithmetic is doomed to talk nonsense. — John McCarthy, in his webpage on Progress and Sustainability
OK, the ASDF my repo now supports source-registry.conf.d as well as source-registry.conf. I'll commit it upstream by next week unless I get negative feedback, and hopefully after including some tests.
Note that at least clisp seems confused when matching *.* or (make-pathname :type :wild :name :wild) by refusing to match names without a dot in them, which is unfortunate. So it's better to have a name in .conf or some such under that directory.
We'll probably need the same kind of thing for ABL configuration. Any taker for the configuration language?
http://common-lisp.net/gitweb?p=projects/xcvb/asdf.git
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] The last good thing written in C was Franz Schubert's Symphony number 9. — Erwin Dieterich erwin@cvt12.verfahrenstechnik.uni-stuttgart.de
On 2010/01/25, at 15:46 , Faré wrote:
OK, the ASDF my repo now supports source-registry.conf.d as well as source-registry.conf. I'll commit it upstream by next week unless I get negative feedback, and hopefully after including some tests.
Note that at least clisp seems confused when matching *.* or (make-pathname :type :wild :name :wild) by refusing to match names without a dot in them, which is unfortunate. So it's better to have a name in .conf or some such under that directory.
Or perhaps we could consider it conformant, and add the required logical host translations for dotless files?
I use the following function to build my translations. Notice that what I'd expect is in the "other" branch, but unfortunately, even the _order_ matters for some implementations to correctly translate.
(defun make-translations (host logical-dir physical-dir &optional file- type) (mapcar (lambda (item) (destructuring-bind (logical-tail physical-tail) item (list (apply (function make-pathname) :host host :directory `(:absolute ,@logical-dir :wild- inferiors) logical-tail) (format nil "~A**/~A" physical-dir physical-tail))))
#+clisp (if file-type `(((:name :wild :type ,file-type :version nil) ,(format nil "*.~(~A~)" file-type))) '(((:name :wild :type :wild :version nil) "*.*") ((:name :wild :type nil :version nil) "*"))) #+sbcl (if file-type `(((:name :wild :type ,file-type :version :wild) ,(format nil "*.~(~A~)" file-type))) '(((:name :wild :type :wild :version :wild) "*.*"))) #+allegro (if file-type `(((:name :wild :type ,file-type :version nil) ,(format nil "*.~(~A~)" file-type))) '(((:name :wild :type nil :version nil) "*") ((:name :wild :type :wild :version nil) "*.*"))) #-(OR CLISP sbcl) (if file-type `(((:name :wild :type ,file-type :version nil) ,(format nil "*.~(~A~)" file-type)) ((:name :wild :type ,file-type :version :wild) ,(format nil "*.~(~A~)" file-type))) '(((:name :wild :type nil :version nil) "*") ((:name :wild :type :wild :version nil) "*.*") ((:name :wild :type :wild :version :wild) "*.*")))))
;; Notice that clhs logical-pathname-translations says that: ;; "From-wildcard is a logical pathname whose host is host." ;; Therefore the host must already exist, ;; so we must first create it by setting its translations to NIL. (setf (logical-pathname-translations "EXAMPLE") nil) (setf (logical-pathname-translations "EXAMPLE") (append (make-translations "EXAMPLE" '("PGM") "/bin/example/" "BIN") (make-translations "EXAMPLE" '("PGM") "/pgm/example/") (make-translations "EXAMPLE" '() "/example/"))) --> ((#P"EXAMPLE:PGM;**;*.BIN" "/bin/example/**/*.bin") (#P"EXAMPLE:PGM;**;*.*" "/pgm/example/**/*.*") (#P"EXAMPLE:PGM;**;*" "/pgm/example/**/*") (#P"EXAMPLE:**;*.*" "/example/**/*.*") (#P"EXAMPLE:**;*" "/example/**/*")) ; implementation specific.