gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] Re: CLC post pathnames ...


From: dennisdjensen
Subject: [Gcl-devel] Re: CLC post pathnames ...
Date: Fri, 18 Jun 2004 18:24:34 +0200

Moin Michael,

Thanks for your work on pathnames!

>Date: Fri, 18 Jun 2004 16:27:10 +0200
>From: Michael Koehne <address@hidden>

>> * ANSI issues:
>>  physical pathnames (bug #7935; Dennis)
>>  logical pathnames and translations (CLC (Dennis) and CLOCC (Chris))
>>  load-time-value (Paul)
>
> did'nt know about bug #7935 - could you mail me bug #7935, please.

http://savannah.gnu.org/bugs/?func=detailitem&item_id=7935

==========================================================
Submitted by: Mike Thomas
Submitted on: Fri 02/27/04 at 19:22

Category: None Severity: 1 - None
Item Group: None Resolution: None
Assigned to: None Status: Open
Summary: Pathname keywords for 2.7.x
Original Submission: Greetings, and thanks for this! OK, this is a 
straightforward
change
in keyword names from what we have now. I'll put this on the list for
early 2.7.x. Please don't let me forget.

Take care,

Dennis Decker Jensen <> writes:

> Hi Camm
>
> Sorry for putting up new thread, but I deleted your mail by
> mistake.
>
> I've been playing with pathnames in CLisp and SBCL to find out
> more from other actual implementations, and there are notable
> differences in how it can be done.
>
> I will not go into too much details. The most significant
> difference to GCL's old (CLTL2?) implementation is in the
> pathname-directory component of a pathname.
>
> In ANSI the directory component (a list) must start with either
> the symbol RELATIVE or the symbol ABSOLUTE. From there only
> strings and the symbols UP or BACK are allowed. The difference
> between the latter and the former is a matter of syntactic or
> semantic behaviour.
>
> How the namestrings are constructed depends upon the
> implementation. SBCL don't accept BACK at the moment when
> constructing namestrings, while CLisp has both UP and BACK
> taking semantic behaviour. SBCL does't touch it's pathnames,
> while CLisp does at creation time as you can see below in the
> examples.
>
> GCL currently uses symbols as well as strings with the special
> symbols ROOT, CURRENT and PARENT which has special meanings.
> I gather this is the CLTL2 way. None of this is ANSI anyway.
>
> There are further constraints on some of the other components,
> but I don't think it is all needed at once judged by the other
> implementations and the diversity among them.
>
> Examples:
>
> <<<CLisp>>>
>
> ;; Dribble of #<IO TERMINAL-STREAM> started 2004-02-27 14:07:39
> #<OUTPUT BUFFERED FILE-STREAM CHARACTER #P"clisp.pathnames">
> [2]> (make-pathname :directory '(:relative "a" "b" "c"))
> #P"a/b/c/"
> [3]> (make-pathname :directory '(:absolute "a" "b" "c"))
> #P"/a/b/c/"
> [4]> (make-pathname :directory '(:absolute "a" "b" :up "c"))
> #P"/a/c/"
> [5]> (make-pathname :directory '(:absolute "a" "b" :back "c"))
> #P"/a/c/"
> [6]> (pathname-directory (make-pathname :directory '(:absolute "a" "b"
:back "c")))
> (:ABSOLUTE "a" "c")
> [7]> (pathname-directory #P"/a/b/../c/")
> (:ABSOLUTE "a" "c")
> [8]> (pathname-directory #P"/a/b/c/")
> (:ABSOLUTE "a" "b" "c")
> [9]> (pathname-directory #P"/a/b/c")
> (:ABSOLUTE "a" "b")
> [10]> (dribble)
> ;; Dribble of #<IO TERMINAL-STREAM> finished 2004-02-27 14:10:07
>
> ;; Dribble of #<IO TERMINAL-STREAM> started 2004-02-27 14:28:08
> #<OUTPUT BUFFERED FILE-STREAM CHARACTER #P"clisp.pathnames">
> [2]> (make-pathname :directory '("a" "b" "c"))
>
> *** - MAKE-PATHNAME: illegal :DIRECTORY argument ("a" "b" "c")
> Break 1 [3]> :q
>
> [4]> (make-pathname :directory '(:relative "a" "b" "c"))
> #P"a/b/c/"
> [5]> (make-pathname :directory '(:relative "a" "b" :parent "c"))
>
> *** - MAKE-PATHNAME: illegal :DIRECTORY argument (:RELATIVE "a" "b" :PARENT
"c")
> Break 1 [6]> :q
>
> [7]> (make-pathname :directory '(:relative "a" "b" :current "c"))
>
> *** - MAKE-PATHNAME: illegal :DIRECTORY argument (:RELATIVE "a" "b" :CURRENT
"c")
> Break 1 [8]> :q
>
> [9]> (dribble)
> ;; Dribble of #<IO TERMINAL-STREAM> finished 2004-02-27 14:29:01
>
>
> <<<SBCL>>>
> * (make-pathname :directory '(:relative "a" "b" "c"))
>
> #P"a/b/c/"
> * (make-pathname :directory '(:absolute "a" "b" "c"))
>
> #P"/a/b/c/"
> * (make-pathname :directory '(:absolute "a" "b" :up "c"))
>
> #P"/a/b/../c/"
> * (make-pathname :directory '(:absolute "a" "b" :back "c"))
>
> #<PATHNAME
> (with no namestring)
> :HOST #<SB-IMPL::UNIX-HOST {505D1B9}>
> :DEVICE NIL
> :DIRECTORY (:ABSOLUTE "a" "b" :BACK "c")
> :NAME NIL
> :TYPE NIL
> :VERSION NIL>
> * (pathname-directory (make-pathname :directory '(:absolute "a" "b" :up
"c")))
>
> (:ABSOLUTE "a" "b" :UP "c")
> * (pathname-directory #P"/a/b/../c/")
>
> (:ABSOLUTE "a" "b" :UP "c")
> * (pathname-directory #P"/a/b/c/")
>
> (:ABSOLUTE "a" "b" "c")
> * (pathname-directory #P"/a/b/c")
>
> (:ABSOLUTE "a" "b")
> * (pathname-directory #P"a/b/c/")
>
> (:RELATIVE "a" "b" "c")
> * (pathname-directory #P"../../")
>
> (:RELATIVE :UP :UP)
> * (pathname-directory (parse-namestring "/a/b/../c/"))
>
> (:ABSOLUTE "a" "b" :UP "c")
>
> * (make-pathname :directory '("a" "b" "c"))
>
> #<PATHNAME
> (with no namestring)
> :HOST #<SB-IMPL::UNIX-HOST {505D1B9}>
> :DEVICE NIL
> :DIRECTORY ("a" "b" "c")
> :NAME NIL
> :TYPE NIL
> :VERSION NIL>
> * (make-pathname :directory '(:relative "a" "b" "c"))
>
> #P"a/b/c/"
> * (make-pathname :directory '(:relative "a" "b" :parent "c"))
>
> debugger invoked on a SIMPLE-ERROR in thread 31541:
> :PARENT is not allowed as a directory component.
>
> * (make-pathname :directory '(:relative "a" "b" :current "c"))
>
> debugger invoked on a SIMPLE-ERROR in thread 31541:
> :CURRENT is not allowed as a directory component.
>
> >>>
>
> I haven't looked at logical pathnames which is whole topic
> itself.
>
> Hope it made things a little clearer.
>
> --
> Dennis Decker Jensen
>
>
>
===============
"The earth is but one country, and mankind its citizens." -- Baha'u'llah



==========================================================

> load-time-value is still the '
>>o-nothing' you eMailed me. Take
> a look at http://www.copyleft.de/lisp/common-lisp-bin-gcl.sh
>
> This might be the reason, of some subtle CLC bugs - so I'll have
> to implemenent load-time-value to fix this bug, also.
>
> Is there any Debian #bug
>>assigned to Paul's load-time-value request ?

I had no success finding it.

http://savannah.gnu.org/bugs/?group=gcl

Actually, I think the LOAD-TIME-VALUE implementation has been postponed
until release 2.7, I haven't checked GCL CVS recently for a working
LOAD-TIME-VALUE, since most work has been on getting 2.6.2 out the door.

I'm currently not at home (vacation and my, hmmm,
30 year birthday party celebration) with no access
to my own network, this mail is via some bad webmail
interface, so I cannot try anything out.

Sorry! ;)

Ciao,

Dennis Decker Jensen






reply via email to

[Prev in Thread] Current Thread [Next in Thread]