[Ecls-list] truename: no file name supplied

Pascal Bourguignon pjb at informatimago.com
Mon Aug 18 11:47:04 UTC 2003


Marco Antoniotti writes:
> You could always do
> 
> 	(load (make-pathname :name ".common" :type "lisp" :defaults  
> (parse-namestring "/home/pascal/")))
> 
> Unfortunately, PARSE-NAMESTRING cannot be relied upon to parse names  
> starting with a dot under UNIX.

Ok, this works. But isn't it a little contrieved? 



I note that giving load a physical pathname does not work better:

> (load #P"/home/pascal/.common.lisp")
;;; Loading "/home/pascal/.common.lisp"
truename: no file name supplied
Broken at LOAD.
>> :b
Backtrace: LOAD > eval
>> 



All  the other  implementations of  Common-Lisp I  know  (CLisp, SBCL,
CMU-CL) are able to handle _dots_ in the name of a unix file. Note the
plural: there can  be several dots in a file name,  in addition to the
one or two last dots used  to separate the version number and the file
type:

      filename                '.' filetype   [ '.' '~' version-number '~' ]
    | filename-without-dots [ '.' filetype ] [ '.' '~' version-number '~' ]

For example:  this.is.a.file.name.type.~10~
              NNNNNNNNNNNNNNNNNNN TTTT VVVV

For example:  .this.is.a.dot.file.name.type.~10~
              NNNNNNNNNNNNNNNNNNNNNNNN TTTT VVVV



In anycase,  if we want to  embed Common-Lisp into  unix programs, the
least is to be able to work with unix paths...


-- 
__Pascal_Bourguignon__                   http://www.informatimago.com/
----------------------------------------------------------------------
Do not adjust your mind, there is a fault in reality.




More information about the ecl-devel mailing list