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

Fix default cache location on Windows, broken in 3.1.5 by new XDG setup

Also, tweak default parameters in source-registry after debugging on Allegro 10.
Add two debugging functions in test/script-support.
parent 5832e586
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
   #:default-user-source-registry #:default-system-source-registry
   #:user-source-registry #:system-source-registry
   #:user-source-registry-directory #:system-source-registry-directory
   #:environment-source-registry #:process-source-registry
   #:environment-source-registry #:process-source-registry #:inherit-source-registry
   #:compute-source-registry #:flatten-source-registry
   #:sysdef-source-registry-search))
(in-package :asdf/source-registry)
@@ -43,6 +43,8 @@
    "Either NIL (for uninitialized), or an equal hash-table, mapping
system names to pathnames of .asd files")

  (defvar *source-registry-parameter* nil)

  (defun source-registry-initialized-p ()
    (typep *source-registry* 'hash-table))

@@ -264,7 +266,7 @@ after having found a .asd file? True by default.")
      (dolist (directive (cdr (validate-source-registry-form form)))
        (process-source-registry-directive directive :inherit inherit :register register))))

  (defun flatten-source-registry (&optional parameter)
  (defun flatten-source-registry (&optional (parameter *source-registry-parameter*))
    (remove-duplicates
     (while-collecting (collect)
       (with-pathname-defaults () ;; be location-independent
@@ -277,7 +279,7 @@ after having found a .asd file? True by default.")
     :test 'equal :from-end t))

  ;; Will read the configuration and initialize all internal variables.
  (defun compute-source-registry (&optional parameter (registry *source-registry*))
  (defun compute-source-registry (&optional (parameter *source-registry-parameter*) (registry *source-registry*))
    (dolist (entry (flatten-source-registry parameter))
      (destructuring-bind (directory &key recurse exclude) entry
        (let* ((h (make-hash-table :test 'equal))) ; table to detect duplicates
@@ -307,8 +309,6 @@ after having found a .asd file? True by default.")
          h)))
    (values))

  (defvar *source-registry-parameter* nil)

  (defun initialize-source-registry (&optional (parameter *source-registry-parameter*))
    ;; Record the parameter used to configure the registry
    (setf *source-registry-parameter* parameter)
+9 −3
Original line number Diff line number Diff line
@@ -40,11 +40,10 @@ Some constraints:
(proclaim '(optimize (speed #-gcl 2 #+gcl 1) (safety #-gcl 3 #+gcl 0) #-(or allegro gcl genera) (debug 3)
                     #+(or cmu scl) (c::brevity 2) #+(or cmu scl) (ext:inhibit-warnings 3)))

(defvar *trace-symbols*
(defparameter *trace-symbols*
  `(;; If you want to trace some stuff while debugging ASDF,
    ;; here's a nice place to say what.
    ;; These string designators will be interned in ASDF after it is loaded.

    ;;#+ecl ,@'( :perform :input-files :output-files :compile-file* :compile-file-pathname* :load*)
    ))

@@ -426,7 +425,7 @@ is bound, write a message and exit on an error. If
(defmacro with-asdf-conditions ((&optional verbose) &body body)
  `(call-with-asdf-conditions #'(lambda () ,@body) ,verbose))

(defun compile-asdf (&optional tag verbose upgradep)
(defun compile-asdf (&optional tag (verbose nil) upgradep)
  (let* ((alisp (asdf-lisp tag))
         (afasl (asdf-fasl tag))
         (tmp (make-pathname :name "asdf-tmp" :defaults afasl)))
@@ -549,6 +548,13 @@ is bound, write a message and exit on an error. If
  (load-asdf-lisp)
  (clean-asdf-system))

(defun hash-table-alist (h)
  (loop for k being the hash-keys of h using (hash-value v) collect (cons k v)))

(defun registry ()
  (let ((sr (asymval :*source-registry*)))
    (when sr (sort (hta sr) 'string< :key 'car))))

(defun configure-asdf ()
  (format t "Configuring ASDF~%")
  (when (asym :getenvp)
+1 −1
Original line number Diff line number Diff line
@@ -345,7 +345,7 @@ also \"Configuration DSL\"\) in the ASDF manual."
    (resolve-absolute-location
     `(,(or (getenv-absolute-directory "XDG_CACHE_HOME")
            (os-cond
             ((os-windows-p) (xdg-data-home "cache"))
             ((os-windows-p) (xdg-data-home "cache/"))
             (t (subpathname* (user-homedir-pathname) ".cache/"))))
       ,more)))