Where to go with EQL5 and QT specific questions?

Pascal Bourguignon pjb at informatimago.com
Thu Apr 29 15:31:47 UTC 2021


Le 29/04/2021 à 17:25, pls.153 a écrit :
> On Thursday, April 29, 2021 4:31 PM, Erik Winkels <aerique at xs4all.nl> wrote:
>>
>>      Condition of type: FILE-ERROR
>>      Filesystem error with pathname "SYS:help.doc".
>>      Either
>>      1.  the file does not exist, or
>>      2.  we are not allowed to access the file, or
>>      3.  the pathname points to a broken symbolic link.
>>          No restarts available.
>>
>>          Top level in: #<process TOP-LEVEL 0xb0581fc0>.
>>
> 
> I had the same issue on iOS, here is what I did:
> 
>    ;; needed e.g. for loading 'help.doc'
>    (setf (logical-pathname-translations "SYS")
>          (list (list #p"sys:**;*.*"
>                      (merge-pathnames "**/*.*"
>                                       (user-homedir-pathname)))))
> 
> Now you can put "help.doc" in (user-homedir-pathname), and ECL will find it.


It's not prudent to use #P in the logical-pathname-translations. This is 
because #P is a read-time reader macro: it calls PATHNAME at read-time, 
before the logical-pathname-translations may be set, ie. potentially 
before the logical host is created. Therefore it will fail.

For a time, I just created the logical hosts with

     (setf (logical-pathname-translations "SYS") '()) ; creation of the 
logical host
     (setf (logical-pathname-translations "SYS")
           (list (list #p"sys:**;*.*"
                       (merge-pathnames "**/*.*"
                                        (user-homedir-pathname)))))


but in fact, we may just use namestrings:

     (setf (logical-pathname-translations "SYS")
           (list (list "SYS:**;*.*"
                       (merge-pathnames "**/*.*"
                                        (user-homedir-pathname)))))


-- 
__Pascal Bourguignon__



More information about the ecl-devel mailing list