What is the lisp implementation you are using that you need this
modification, and on what OS? There are some subtle distinctions
between different implementations in how they treat symbolic links.
On 16 Nov 2022, at 11:38, Stelian Ionescu wrote:
Hi,
ASDF already allows that, so it's not clear to me how you're trying to
do.
I have the following in ~/.config/common-lisp/source-registry.conf
(:source-registry
(:directory (:home "lisp/systems"))
:ignore-inherited-configuration)
I symlink .asd files into ~/lisp/systems/ and ASDF loads them without
issues.
Hi,
I wonder if it possible that you would accept this change which
allows finding of a system by a symbolicly linked ".asd" file. I've
been running with this patch for about 10 years without issue. I'm
sorry for not having test cases and documentation, but it seems time
passing won't help that. I know this is probably a pointless change
for everyone besides me, being the only user of my software, so I
quite understand if you don't want to add it. Anyway, many thanks for
your years of work on perhaps the most used CL software ever.
diff --git a/find-system.lisp b/find-system.lisp
index 0980a2cc..1a226aba 100644
--- a/find-system.lisp
+++ b/find-system.lisp
@@ -263,11 +263,16 @@ PREVIOUS-PRIMARY when not null is the primary
system for the PREVIOUS system."
(locate-system name)
(assert (eq foundp (and (or found-system pathname previous)
t))))
(let ((previous-pathname (system-source-file previous))
- (system (or previous found-system)))
+ (system (or previous found-system))
+ real-name)
(when (and found-system (not previous))
(register-system found-system))
(when (and system pathname)
(setf (system-source-file system) pathname))
+ (when (and pathname
+ (setf real-name (pathname-name pathname))
+ (not (equal real-name name)))
+ (setf name real-name))
(if-let ((stamp (get-file-stamp pathname)))
(let ((up-to-date-p
(and previous previous-primary
--
Stelian Ionescu