gcl-devel
[Top][All Lists]
Advanced

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

Re: [Gcl-devel] delayed pathname.d patch


From: Michael Koehne
Subject: Re: [Gcl-devel] delayed pathname.d patch
Date: Sat, 24 Apr 2004 02:23:47 +0200
User-agent: Mutt/1.3.28i

Moin Camm Maguire,

> BTW, I agree with you that our pathname situation is a complete mess,
> and appreciate your taking on a pass at a cleanup.

  my approach on parse-pathname is, that it has to eat shit, and still
  has to deliver the intended result, currently testing the later. I
  still have two problems with my patched code :

- I dont understand how garbarge collection in GCL works, which makes
  me a bit nervous, that I might have created some black memory hole.

  Is it allowed to alloc some object, and just to forget it ?
  e.g. {
       object x;
       /* create a string at token */
       x = copy_simple_string(token);
       /* do something - what happens if GC strikes now */
       if (otherthing)
           x = sKabsolute; /* my reference to the string is gone now */
       return(x)
      }
   or is it necessary to use the VS, to prevent GC interference ?

- It looks as if FEerror does'nt work with CLCS, so I might need to
  rewrite any error using Icall_error_handler. 

>(defun show-path (p)
  (list
    :device (PATHNAME-DEVICE p)
    :host (PATHNAME-HOST p)
    :directory (PATHNAME-DIRECTORY p)
    :name (PATHNAME-NAME p)
    :type (PATHNAME-TYPE p)
    :version (PATHNAME-VERSION p) ))
SHOW-PATH

>(show-path #p"c:/foo/*.lisp")

(:DEVICE "c" :HOST NIL :DIRECTORY (:ABSOLUTE "foo") :NAME :WILD :TYPE
         "lisp" :VERSION NIL)

>(show-path #p"http://source/baz/foo.lisp";)

(:DEVICE "http" :HOST "source" :DIRECTORY (:ABSOLUTE "baz") :NAME "foo"
         :TYPE "lisp" :VERSION NIL)

>(show-path #p"source:/*/foo.lisp")

(:DEVICE NIL :HOST "source" :DIRECTORY (:ABSOLUTE :WILD) :NAME "foo"
         :TYPE "lisp" :VERSION NIL)

>(show-path #p"source:baz;foo.lisp")

(:DEVICE NIL :HOST "source" :DIRECTORY (:ABSOLUTE "baz") :NAME "foo"
         :TYPE "lisp" :VERSION NIL)

>(show-path #p"source:;baz;*.lisp.newest")

(:DEVICE NIL :HOST "source" :DIRECTORY ("baz") :NAME :WILD :TYPE "lisp"
         :VERSION :NEWEST)

Bye Michael
-- 
  mailto:address@hidden             UNA:+.? 'CED+2+:::Linux:2.4.22'UNZ+1'
  http://www.xml-edifact.org/           CETERUM CENSEO WINDOWS ESSE DELENDAM




reply via email to

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