Commit e6bdb949 authored by Joyce Chen's avatar Joyce Chen

Fix spurious ASDF circular dependencies.

- ADG doesn't see ASDF modules, causing ADG to mix up (:file "pkgdcl")
  in module "qres-core" with the (:file "pkgdcl") in module "pas/clr",
  for example.  The fix is to use the component-pathname instead of the
  component-name.  The component-pathname is annoyingly longer than
  the component-name however, so I'd be happy for a different solution.
- Also fixed grovel.lisp:operating-on-asdf-component-constituent to call
  signal-new-internal-symbols.  Otherwise ADG will confuse which package
  an internal symbol belongs to.
parent aa31b711
......@@ -134,7 +134,7 @@
nil)
(defmethod constituent-designator ((con asdf-component-constituent))
(cons (asdf:component-name (asdf-component-constituent-component con))
(cons (asdf:component-pathname (asdf-component-constituent-component con))
(constituent-designator (constituent-parent con))))
(defmethod constituent-designator ((con file-constituent))
......
......@@ -633,7 +633,7 @@
"Used internally; not exported."
(with-gensyms (component! designator existing-con present-p con)
`(let* ((,component! ,component)
(,designator (cons (asdf:component-name ,component!)
(,designator (cons (asdf:component-pathname ,component!)
(constituent-designator *current-constituent*)))
(,con (multiple-value-bind (,existing-con ,present-p)
(gethash ,designator *constituent-table*)
......@@ -644,7 +644,9 @@
:component ,component!)))))
(*current-constituent* ,con))
(assert (equal (constituent-designator ,con) ,designator))
(noticing-*feature*-changes ,@body))))
(multiple-value-prog1
(noticing-*feature*-changes ,@body)
(signal-new-internal-symbols :populate t)))))
(defmacro operating-on-file-constituent ((path) &body body)
"Used internally; not exported."
......
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