Change to allow loading linked asd files

Robert Goldman rpgoldman at sift.info
Wed Nov 16 17:45:57 UTC 2022


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20221116/ff1b509b/attachment.html>


More information about the asdf-devel mailing list