Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
Ģ Groups Home
logical pathnames - lack of info?
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 26 - 50 of 81 - Collapse all  -  Translate all to Translated (View all originals) < Older  Newer >
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Julian Stecklina  
View profile  
 More options Feb 22 2002, 11:01 am
Newsgroups: comp.lang.lisp
From: Julian Stecklina <der_jul...@web.de>
Date: 22 Feb 2002 16:58:43 +0100
Local: Fri, Feb 22 2002 10:58 am
Subject: Re: logical pathnames - lack of info?

Christophe Rhodes <cs...@cam.ac.uk> writes:

[...]

> Out of interest, what does your CMUCL give for (probe-file :name
> "test.lisp" :type "0")?

I'm sure you meant this:
* (probe-file (make-pathname :name "test.lisp" :type "0"))
#p"/usr/home/blitz/src/test.lisp.0"

And :newest really returns the file without appended version info.

* (probe-file (make-pathname :name "test" :type "lisp" :version :newest))
#p"/usr/home/blitz/src/test.lisp"

To make a file older just copy it with version+1? But what about other
versions of the file? Do you manually have to copy them?

Regards,
Julian
--
Um meinen oeffentlichen Schluessel zu erhalten:
To get my public key:
http://math-www.uni-paderborn.de/pgp/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Julian Stecklina  
View profile  
 More options Feb 22 2002, 11:07 am
Newsgroups: comp.lang.lisp
From: Julian Stecklina <der_jul...@web.de>
Date: 22 Feb 2002 17:04:16 +0100
Local: Fri, Feb 22 2002 11:04 am
Subject: Re: logical pathnames - lack of info?
Kent M Pitman <pit...@world.std.com> writes:

[...]

> It is a shame to have lost the many good features of the old operating
> systems.

> It is further a shame to have lost the memory of those things.

[...]

I hope you do not mean me, as I had never known those things. I came
from DOS about 10 years ago.

Regards,
Julian
--
Um meinen oeffentlichen Schluessel zu erhalten:
To get my public key:
http://math-www.uni-paderborn.de/pgp/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Nils Goesche  
View profile  
 More options Feb 22 2002, 11:16 am
Newsgroups: comp.lang.lisp
From: Nils Goesche <car...@cartan.de>
Date: 22 Feb 2002 16:16:40 GMT
Local: Fri, Feb 22 2002 11:16 am
Subject: Re: logical pathnames - lack of info?

In article <sfw3czta8cc....@shell01.TheWorld.com>, Kent M Pitman wrote:
> The logical pathname abstraction creates a virtual file system, just
> as a Java creates a virtual machine.  You start with something
> physical and you layer up a new abstraction.

[snip]

> From there, for the most part, you do the same things with logical
> pathnames you do with other pathnames.  You do stuff like

>  (with-open-file (x "ZING:FOO1;BAR2;FOO.LISP")
>    ...)

> to open such a file, for example.

I think this is the key.  I was thinking all night about what the
problem with pathnames is (I find them hard to grasp, too), and
my conclusion was that the problem all expositions I know have
is that they start with make-pathname etc. and /not/ with logical
pathnames.  One should tell people: First, start writing filenames
in upper case (for such and such reasons).  Or in lower case, if
you want a file named `README'.  This is something that looks
easy to do, I think everybody can understand that, can immediately
use something and it looks good, an immediate progress.  From there,
the pathname structure looks only like a cool feature to parse
and manipulate those things.  The usual approach, starting with
pathnames, looks different to a beginner:

(with-open-file (str (make-pathname :directory '(:absolute "tmp")
                                    :name "foo"
                                    :type "bar"))
  (read-line str))

What is he supposed to think?  ``What?  I am actually supposed
to write that much where "/tmp/foo.bar" works just as well?
Well, ok, at least it's portable.''  Then he reads on, reads
about lots of things in the pathname structure, many of which
are implementation defined, wonders about what a host is (does
Lisp do gethostbyname?  How does it get the files?  By scp?  By
ftp?)  and when he reaches the part about logical pathnames he
is already so confused that he concludes that all this must be
so abstract that he isn't able to understand, let alone use,
any of it.

Regards,
--
Nils Goesche
"Don't ask for whom the <CTRL-G> tolls."

PGP key ID 0x42B32FC9


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christopher Browne  
View profile  
 More options Feb 22 2002, 11:29 am
Newsgroups: comp.lang.lisp
From: Christopher Browne <cbbro...@acm.org>
Date: 22 Feb 2002 16:21:20 GMT
Local: Fri, Feb 22 2002 11:21 am
Subject: Re: logical pathnames - lack of info?
In the last exciting episode, Kent M Pitman <pit...@world.std.com> wrote::

> e...@agharta.de (Dr. Edmund Weitz) writes:
>>   CG-USER(7): (pathname-version *my-pathname*)
>>   :UNSPECIFIC
> That's normal for most modern operating systems (Windows, Linux,
> Mac).  I think there's some ISO file system (ISO9000?) that's still
> "current" and has versions, and there are a number of older
> operating systems with versions.

That would be ISO 9660, used for CD-ROMs.

And I don't think I've ever seen there be more than one version of a
file in use.  The tool "mkisofs" commonly used on Unixes to generate
these has a telling bit of code:

   sprintf( newname, "%s%c%c%c%s%s",
           rootname,
           (d1 <=9 ? '0' + d1 : d1 + 'A' - 10),
           (d2 <=9 ? '0' + d2 : d2 + 'A' - 10),
           (d3 <=9 ? '0' + d3 : d3 + 'A' - 10),
           extname,
           ((s_entry->isorec.flags[0] & ISO_DIRECTORY) ||
              omit_version_number ? "" : ";1"));

The upshot of this is that all files written have version ";1", which
makes the numbering rather uninteresting...

I would suggest the term "latter day" somewhat paralleling the Lord of
the Rings style of "dispensationalism" where different groups of
peoples are treated as "dominant," and where the times of the elder
peoples ultimately pass, leaving responsibility to the younger.

In this episode:
- - Lisp is probably the language of the Elves :-);
- - Mordor is in Washington State;
- - Windows is the OS of the Orcs, whilst Unix is the OS of the Men,
  and the others get trampled between them

At some point the metaphors probably get mixed...

Picking at versioning, it's not obvious that it would necessarily
return.  The main folks that would remember it would be those that
vaguely remember VMS (probably the language of the dwarves, and of
Mordor, which was taken over to the enemy...  wow...  it fits...).
And the existant version systems aren't using _integers_ for versions,
so that having FS versioning support wouldn't be forcibly terribly
helpful.
--
(concatenate 'string "cbbrowne" "@ntlug.org")
http://www3.sympatico.ca/cbbrowne/lsf.html
Never lend your car to anyone  to whom you have given birth to.
--Erma Bombeck


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Julian Stecklina  
View profile  
 More options Feb 22 2002, 11:31 am
Newsgroups: comp.lang.lisp
From: Julian Stecklina <der_jul...@web.de>
Date: 22 Feb 2002 17:27:29 +0100
Local: Fri, Feb 22 2002 11:27 am
Subject: Re: logical pathnames - lack of info?
Kent M Pitman <pit...@world.std.com> writes:

[...]

> I'd like to pursue this discussion to the point
> of discovering the conceptual roadblock that I am not seeing but you are
> having.

[...]

I hope this gets me started. I will try to figure out the
rest. Try&error is mostly the most effective learning method.

Thanks.

And Kent. Don't mind. I understand the problem of explaining the
"obviuos" everytime I try to convince some people of some mathematical
facts. :)

Regards,
Julian
--
Um meinen oeffentlichen Schluessel zu erhalten:
To get my public key:
http://math-www.uni-paderborn.de/pgp/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Raymond Toy  
View profile  
 More options Feb 22 2002, 11:33 am
Newsgroups: comp.lang.lisp
From: Raymond Toy <t...@rtp.ericsson.se>
Date: 22 Feb 2002 11:28:01 -0500
Local: Fri, Feb 22 2002 11:28 am
Subject: Re: logical pathnames - lack of info?

>>>>> "Julian" == Julian Stecklina <der_jul...@web.de> writes:

    Julian> * (probe-file (make-pathname :name "test" :type "lisp" :version 0))      
    Julian> #p"/usr/home/blitz/src/test.lisp.0"

    Julian> * (probe-file (make-pathname :name "test" :type "lisp" :version 1))        
    Julian> #p"/usr/home/blitz/src/test.lisp.1"

    Julian> What's this useable for I cannot imagine, because of :newest not working.

FWIW, the latest sources and the soon-to-be released 18d version of
CMUCL will say:

* (make-pathname :name "test" :type "lisp" :version :newest)
#p"test.lisp"

* (make-pathname :name "test" :type "lisp" :version 1)
#p"test.lisp.~1~"

That is, versions will look like Emacs-style backup file versions.

Ray


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christophe Rhodes  
View profile  
 More options Feb 22 2002, 11:46 am
Newsgroups: comp.lang.lisp
From: Christophe Rhodes <cs...@cam.ac.uk>
Date: 22 Feb 2002 16:46:11 +0000
Local: Fri, Feb 22 2002 11:46 am
Subject: Re: logical pathnames - lack of info?

Nils Goesche <car...@cartan.de> writes:

[ snippety snip ]

> One should tell people: First, start writing filenames
> in upper case (for such and such reasons).  Or in lower case, if
> you want a file named `README'.  

Except that my understanding was that this was unportable in logical
pathnames; that is, that #p"LHOST:README" and #p"LHOST:readme"
referred to the same pathname for a logical host LHOST.

Christophe
--
Jesus College, Cambridge, CB5 8BL                           +44 1223 510 299
http://www-jcsu.jesus.cam.ac.uk/~csr21/                  (defun pling-dollar
(str schar arg) (first (last +))) (make-dispatch-macro-character #\! t)
(set-dispatch-macro-character #\! #\$ #'pling-dollar)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Nils Goesche  
View profile  
 More options Feb 22 2002, 12:06 pm
Newsgroups: comp.lang.lisp
From: Nils Goesche <car...@cartan.de>
Date: 22 Feb 2002 17:06:25 GMT
Local: Fri, Feb 22 2002 12:06 pm
Subject: Re: logical pathnames - lack of info?

In article <sq7kp5xy5o....@cam.ac.uk>, Christophe Rhodes wrote:
> Nils Goesche <car...@cartan.de> writes:

> [ snippety snip ]

>> One should tell people: First, start writing filenames
>> in upper case (for such and such reasons).  Or in lower case, if
>> you want a file named `README'.  

> Except that my understanding was that this was unportable in logical
> pathnames; that is, that #p"LHOST:README" and #p"LHOST:readme"
> referred to the same pathname for a logical host LHOST.

Ok, forget the case thing, then.  I guess I'll need another night to
figure it out ;-|

Regards,
--
Nils Goesche
"Don't ask for whom the <CTRL-G> tolls."

PGP key ID 0x42B32FC9


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christophe Rhodes  
View profile  
 More options Feb 22 2002, 12:14 pm
Newsgroups: comp.lang.lisp
From: Christophe Rhodes <cs...@cam.ac.uk>
Date: 22 Feb 2002 17:14:02 +0000
Local: Fri, Feb 22 2002 12:14 pm
Subject: Re: logical pathnames - lack of info?

Just in case anyone's wondering about where I get this from, it's
section 19.3.1.1.7, or
<URL:http://www.xanalys.com/software_tools/reference/HyperSpec/Body/19_caa...>
in the brave new HyperSpec.

I'm still not entirely clear on the motivation for this
requirement; certainly, it's not clear to me what to do to workaround
this when dealing with files such as libX11.so or the like, except for
setting up a dedicated translation for those.

Someone tell me what I'm doing wrong, please :)

Christophe
--
Jesus College, Cambridge, CB5 8BL                           +44 1223 510 299
http://www-jcsu.jesus.cam.ac.uk/~csr21/                  (defun pling-dollar
(str schar arg) (first (last +))) (make-dispatch-macro-character #\! t)
(set-dispatch-macro-character #\! #\$ #'pling-dollar)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tim Bradshaw  
View profile  
 More options Feb 22 2002, 12:16 pm
Newsgroups: comp.lang.lisp
From: Tim Bradshaw <t...@cley.com>
Date: 22 Feb 2002 17:09:47 +0000
Local: Fri, Feb 22 2002 12:09 pm
Subject: Re: logical pathnames - lack of info?
* I wrote:

[stuff about logical pathnames]

I can't work out where to attach this article, this is probably not
the right place.  Anyway.

One thing I discovered about pathnames and logical pathnames when
trying to be portable is that it is often better not to try and create
pathnames from whole cloth, because there is a little too much
variability between filesystem types and implementations.  Instead if
you start by parsing some namestring, and work from there you often
just don't have to worry about all the details of whether a DOS drive
letter is in the host or the device and so on.  In the great majority
of the cases I have to deal with what I'm trying to do is things like
`given this file, construct a filename in a subdirectory x of its
directory' or (more complex) `given this file and this other file
construct a relative pathname for the first file to refer to the
second'.  Most or all of this is manipulations on directory, name and
type, and the rest of the information you just don't need to care
about.

--tim


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Marco Antoniotti  
View profile  
 More options Feb 22 2002, 1:01 pm
Newsgroups: comp.lang.lisp
From: Marco Antoniotti <marc...@cs.nyu.edu>
Date: 22 Feb 2002 13:01:33 -0500
Local: Fri, Feb 22 2002 1:01 pm
Subject: Re: logical pathnames - lack of info?

Tim Bradshaw <t...@cley.com> writes:
> * I wrote:
> [stuff about logical pathnames]

> I can't work out where to attach this article, this is probably not
> the right place.  Anyway.

> One thing I discovered about pathnames and logical pathnames when
> trying to be portable is that it is often better not to try and create
> pathnames from whole cloth, because there is a little too much
> variability between filesystem types and implementations.  Instead if
> you start by parsing some namestring, and work from there you often
> just don't have to worry about all the details of whether a DOS drive
> letter is in the host or the device and so on.

This is exactly the approach taken in (shameless plug)
CL-CONFIGURATION. :)

Cheers

--
Marco Antoniotti ========================================================
NYU Courant Bioinformatics Group        tel. +1 - 212 - 998 3488
719 Broadway 12th Floor                 fax  +1 - 212 - 995 4122
New York, NY 10003, USA                 http://bioinformatics.cat.nyu.edu
                    "Hello New York! We'll do what we can!"
                           Bill Murray in `Ghostbusters'.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kent M Pitman  
View profile  
 More options Feb 22 2002, 1:30 pm
Newsgroups: comp.lang.lisp
From: Kent M Pitman <pit...@world.std.com>
Date: Fri, 22 Feb 2002 18:29:28 GMT
Local: Fri, Feb 22 2002 1:29 pm
Subject: Re: logical pathnames - lack of info?

We're making progress here.  Here's another probably non-obvious factoid:

Logical hosts and logical pathnames are a least common denominator solution.
Not all hosts have an upper/lower distinction, so logical hosts deliberately
map all case to upper, just as symbols nil and NIL are mapped to symbol NIL.
In the case of symbols, there is a mapping to the non-obvious case from
|nil| but there none such in logical pathnames because that would be allowing
you to introduce a non-portability.

The purpose of the PATHNAME datatype is to allow you a way to refer to
basically all pathnames in a more or less portable way.  THat is, this
datatype seeks to allow you to manipulate program data, including filenames
that might not be portable.

The purpose of the logical pathname is _not_ to allow you to refer to
all pathnames, but rather to allow you to manipulate _enough_
pathnames that you can use it to talk about the filenames you need to
load to build a system and the pathnames you need to load to
manipulate that system's wired data.  So you should expect to see
logical pathnames used in calls to LOAD to construct a system and to
read and write data finitely enumerable data files of the system, but
you should not expect this datatype to be powerful enough to
accomodate arbitrary filenames of every host operating system.  It
tries to steer you clear of those.  It is not really intended that you
expose it to users who want to answer a "type in a filename" query,
etc.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kent M Pitman  
View profile  
 More options Feb 22 2002, 1:53 pm
Newsgroups: comp.lang.lisp
From: Kent M Pitman <pit...@world.std.com>
Date: Fri, 22 Feb 2002 18:52:22 GMT
Local: Fri, Feb 22 2002 1:52 pm
Subject: Re: logical pathnames - lack of info?

I should also emphasize that I'm extra-testy about the pathnames
chapter because I have many times remarked that it was at the top of
my list to rewrite in clearer form if I'd had more time.  We were
resource-limited in the work on ANSI CL, and at some point had to just
call it quits and use what we had.

It may or may not be obvious, but the actual text of ANSI CL actually
began with the text of CLTL and was modified from that; it was not
written from scratch.  This approach to creating the document was a
more or less an explicit decision of the committee, to insure that
there was always an intact document which was believed to be true to
the extent that resources allowed at any time during the process.
That document was massaged through votes and other numerous
"non-technical" edits by Kathy and later by me, until it had changed a
great deal.  But sometimes either confusions of CLTL showed through or
the harshness of bad merging of CLTL with voted changes existed.  In
the case of pathnames, it was both, and it desperately needed
untangling.  I was pretty sure that if we'd had the resources to
untangle it, we'd ALSO have needed to vote some of the things to be
changed once it was more apparent that things didn't agree internally
and/or weren't explained or motivated right and/or just didn't make
sense.

But, poof, the time ran out just as I was due to make another
untangling pass over it and that decision to always have an intact
document we could just run with came into play, and you get what you
could get.

(As a side note, since some people do worry about such things, Steele
was asked to and did verify for purposes of copyright that at the end,
so little remained of the original text that he didn't feel it any longer
infringed or should be considered a derivative work since very little of
the original work remained.)

So the spec is textually lousy for sure in this chapter.  And I'm
sensitive about that... but then again, some people look at the
problems and think "if only I had more words, I'd know more".  Maybe
that's so.  I personally think that if I'd had more time to rewrite
the chapter, it would only have become more obvious that there are
some internal design errors here that needed technical votes to
repair.  I personally think people snag on these design glitches,
_thinking_ they are not understanding something, but in fact just not
seeing tht the design is not as good as it could have been.  I
personally think that although they think they want doc fixes, they
really want technical fixes, or technical changes to a different
paradigm.  But that's just a guess.

Maybe when people say they want a tutorial they mean, a way to walk
the minefield.  That certainly would have been inappropriate to ANSI
CL, because it would have internally suggested that the design was
wrong in places.  And I don't think the committee thought that.

The Lisp Machine design, from which the CL design was directly
created, was in almost every way a more robust design than CL was, and
people stubbornly refused to vote to borrow from Nike's lead and "Just
use it".  The only couple of cases where the CL pathname system was
improved by CL's voting was to require :absolute at the head of
absolute pathnames (LispM just treated a missing :relative as
absolute, and that led to periodic problems) and the decision to let
logical pathnames expand to other logical pathnames (which I think is
just right and proper).  In almost all other cases, the committee
either declined to fix a LispM bug or opted not to take the part of
the LispM system that would have fixed an easy-to-anticipiate major
gap in functionality.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Nils Goesche  
View profile  
 More options Feb 22 2002, 1:54 pm
Newsgroups: comp.lang.lisp
From: Nils Goesche <car...@cartan.de>
Date: 22 Feb 2002 18:54:08 GMT
Local: Fri, Feb 22 2002 1:54 pm
Subject: Re: logical pathnames - lack of info?

Seems so.  Thanks for the explanation!

That comes quite close to what I thought how it worked.  The only
difference seems to be that I assumed that all those examples
were in upper case because they were mapped onto actual file names
in a manner similar to the :case :common argument of make-pathname.
That seemed to be no problem, at first.  But one could indeed
introduce problems by having one file named README and another one
named Readme, and the case insensitivity of logical pathnames
helps to prevent this.  Right?

Regards,
--
Nils Goesche
"Don't ask for whom the <CTRL-G> tolls."

PGP key ID 0x42B32FC9


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erann Gat  
View profile  
 More options Feb 22 2002, 1:58 pm
Newsgroups: comp.lang.lisp
From: g...@jpl.nasa.gov (Erann Gat)
Date: Fri, 22 Feb 2002 10:33:28 -0800
Local: Fri, Feb 22 2002 1:33 pm
Subject: Re: logical pathnames - lack of info?
In article <sfw3czta8cc....@shell01.TheWorld.com>, Kent M Pitman

[SNIP]

FWIW, I found that explanation really useful.  I would suggest one
improvement: be explicit about the fact that colons, semicolons, and
periods have semantic significance in logical pathnames, and what it is,
e.g. "The logical host is separated from the rest of the logical pathname
by a colon.  In fact, this is how logical pathnames are distinguished from
non-logical pathnames, except on Macintoshes, where colons are used as
directory delimiters, resulting in much confusion."  etc. etc.

E.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Daniel Barlow  
View profile  
 More options Feb 22 2002, 3:27 pm
Newsgroups: comp.lang.lisp
From: Daniel Barlow <d...@telent.net>
Date: 22 Feb 2002 20:21:26 +0000
Local: Fri, Feb 22 2002 3:21 pm
Subject: Re: logical pathnames - lack of info?
Kent M Pitman <pit...@world.std.com> writes:

> Logical pathnames refer to files on a logical host.  A logical host
> named "ZING" is marked by "ZING:".

> In the logical host's file system are directories "FOO1", "FOO2",
> etc. that are referred to as "FOO1;" , "FOO2;", etc.  If you want
> subdirs "BAR1", "BAR2", etc.  of "FOO1;" you write "FOO1;BAR1;" etc.

Do you mean here that "FOO1;BAR1;" is a namestring for the relative
logical pathname with :directory (:relative "FOO1" "BAR1"), or are you
just writing parts of namestrings that are not syntactically valid on
their own?

The followup questions, if you tell me that you believe it is a valid
namestring as is (if it's not, you can of course disregard the rest of
this) are

(i) is the directory component :relative or :absolute?  My guess would
     have been :absolute, but that seems inconsistent with your quoted
     paragraph above

(ii) if :relative, how does one write the namestring for a relative
     LPN with absolute directory?

(iii) if "FOO1;BAR1;" is an LPN namestring with an absolute directory,
     presumably "FOO1;" is also absolute.  What about "BAZ.LISP" -
     does it have no directory, or (:absolute) as a directory?  Is
     there a case for writing ";BAZ.LISP" when I want to make sure
     that a later merge-pathnames will take the directory component
     from its second argument?

-dan

--

  http://ww.telent.net/cliki/ - Link farm for free CL-on-Unix resources


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Feb 22 2002, 3:30 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Fri, 22 Feb 2002 20:30:15 GMT
Local: Fri, Feb 22 2002 3:30 pm
Subject: Re: logical pathnames - lack of info?
* Erik Naggum

> The obvious eludes explanation.

* Kenny Tilton
| Not to a good teacher.

  Heh.  This is probably true, but it takes a lot of work to find the way
  back to how you found something out.  Most of us discover something in a
  round-about way if we have not learned it from someone else.

| Good teachers remember what it was like not to know, and they remember
| how they got from there to knowing.

  However, this can be their most serious problem in teaching others.
  Spending years and years on something until it finally makes sense is not
  something you would want your students to go through in order to learn
  it.  On the contrary, "obvious" is extremely hard to pin down before the
  fact, and, well, obvious after the fact.

| Someone else has noted that CLTL2 goes from a formal description to bad
| examples--nothing useful there to a student.

  It depends on the experience of the student.  As a friend commented in
  mail, having used and known TOPS-10/20 makes it so much easier to figure
  out how pathnames work and why they are designed the way they are, with
  what they humorously called "pathological devices" which were very close
  to logical pathnames in design (and which caused me to misunderstand the
  word "pathological" as used elsewhere for a few years :).

  For someone who has only seen Unix or MS-DOS, pathnames are incredibly
  complex beasts, but for the more likely audience of CLtL2, which was not
  published at a time when it was clear that Unix would be only file system
  paradigm to survive (whatever Microsoft does is just copying Unix).

| Well, some students can read a formal description and "get it".  I need
| examples, and that is the big problem I have with this subject (and
| throwing in the variability of OS- and implementation-dependence
| massively does not help, tho mebbe that cannot be helped).

  It would probably be more useful to find examples of how filenames were
  named in VMS, TOPS-10, TOPS-20, Multics, PrimeOS, ITS, etc, all of which
  I had used or read about at the time I faced the pathname specification.

///
--
  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christopher Browne  
View profile  
 More options Feb 22 2002, 3:43 pm
Newsgroups: comp.lang.lisp
From: Christopher Browne <cbbro...@acm.org>
Date: 22 Feb 2002 20:43:33 GMT
Local: Fri, Feb 22 2002 3:43 pm
Subject: Re: logical pathnames - lack of info?
In an attempt to throw the authorities off his trail, Erik Naggum <e...@naggum.net> transmitted:

>   It depends on the experience of the student.  As a friend
>   commented in mail, having used and known TOPS-10/20 makes it so
>   much easier to figure out how pathnames work and why they are
>   designed the way they are, with what they humorously called
>   "pathological devices" which were very close to logical pathnames
>   in design (and which caused me to misunderstand the word
>   "pathological" as used elsewhere for a few years :).

Oh, my, that gives a _completely_ different take on "pathological"...
--
(reverse (concatenate 'string "gro.gultn@" "enworbbc"))
http://www.ntlug.org/~cbbrowne/
"A cynic is a man who knows the price  of everything, and the value of
nothing."  -- Oscar Wilde

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kent M Pitman  
View profile  
 More options Feb 22 2002, 3:45 pm
Newsgroups: comp.lang.lisp
From: Kent M Pitman <pit...@world.std.com>
Date: Fri, 22 Feb 2002 20:43:35 GMT
Local: Fri, Feb 22 2002 3:43 pm
Subject: Re: logical pathnames - lack of info?

Nils Goesche <car...@cartan.de> writes:
> That comes quite close to what I thought how it worked.  The only
> difference seems to be that I assumed that all those examples
> were in upper case because they were mapped onto actual file names
> in a manner similar to the :case :common argument of make-pathname.

No, they're in uppercase because I visually like them that way.  I think
of uppercase as the neutral case (because in CL it is defined that way)
and I like to remind myself visually that the neutral case is the only
case available.  Were I to mix cases in the example, it might wrongly imply
that there was a difference between them.  Heh.... Can't win.

> That seemed to be no problem, at first.  But one could indeed
> introduce problems by having one file named README and another one
> named Readme, and the case insensitivity of logical pathnames
> helps to prevent this.  Right?

Well, there are two issues here.  Yes, the case-insensitivity keeps you
from making two files that differ only in case.  That's an intentional
design feature.  But there's a stupid irritating trick in Unix that one
puts something in uppercase to force it to list in a directory at the head
because Unix thinks that the letter ordering is A...Za...z rather than
AaBbCc... This is, unfortunately, an issue of exploiting case.  A conseuence
is that one cannot make a system delivered in logical pathnames that puts
a README.txt file at the head of a directory.  You will get a readme.txt
file lost in the middle of the other files.  To do the "non-standard case"
trick, you must use real pathnames.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kent M Pitman  
View profile  
 More options Feb 22 2002, 3:56 pm
Newsgroups: comp.lang.lisp
From: Kent M Pitman <pit...@world.std.com>
Date: Fri, 22 Feb 2002 20:54:52 GMT
Local: Fri, Feb 22 2002 3:54 pm
Subject: Re: logical pathnames - lack of info?

g...@jpl.nasa.gov (Erann Gat) writes:
> FWIW, I found that explanation really useful.  I would suggest one
> improvement: be explicit about the fact that colons, semicolons, and
> periods have semantic significance in logical pathnames, and what it is,
> e.g. "The logical host is separated from the rest of the logical pathname
> by a colon.  In fact, this is how logical pathnames are distinguished from
> non-logical pathnames, except on Macintoshes, where colons are used as
> directory delimiters, resulting in much confusion."  etc. etc.

The way the Lisp Machine had done it was best.  It had something called
the "host colon" convention that said that the first colon always delimited
a host, and that subsequent colons were host-specific syntax.  One could
omit a host (allowing it to default) by starting with a colon, as in
":foo:bar".

Because some Lisp vendors were nearsighted and thought they would always
have local file systems only, they didn't want to bog down CL syntax in
requiring this.  They were also confused about the issue of this infringing
their ability to "look native".  They really wanted to do
 (with-open-file (stream "c:foo.txt")
   ...)
and not bother people about C being a host.  On the LispM, you have to
write ":c:foo.txt" and people somehow felt this would seem like it was not
favoring the host operating system.

The virtue of the LispM way of doing it is that any call to OPEN can open
any host anywhere on the internet with no special syntactic modification.
All programs are naturally prepared for generality.  (I'd liken this to the
design of the Next operating system, where they chose instead of black&white
screens in their low-end thing to always have at least 2 bits of gray, so
that no one would ever write code that failed to ask how wide a pixel was.
It's an important conceptual stretch to make.)

THere was some further confusion about whether the host colon convention
would preclude people from having a (NAMESTRING-FOR-HOST hosted-namestring)
or a (PARSE-NAMESTRING-FOR-HOST unhosted-namestring host) operation.  Poeple
just didn't want to get involved in hosts at all.

In fairness, the only people with a truly legitimate objection were
the DEC VAXLISP people, who had chained hosts in VMS.  One could refer
in their name syntax to A::B::C::... or some such to say "ask A to
contact B to contact C" in order to find out something.  ANd this
didn't fit in the Lisp file host model at all well.  But then, they
didn't survive commercially...

The LispM had some similar issues which it accomodated with vertical bars.
e.g., a possible file name might be:

  INTERNET|1.2.3.4|FEP0:>boot.boot.37

which actually meant "go to the INTERNET name system, use the name 1.2.3.4,
then get the resulting host and ask for its FEP0 file system and parse the
rest using that notation"  ... so I suppose the VAX stuff could have been
squeezed in thus, by making the Lispy syntax different than the native syntax,
or else could have been accomodated by doing MYVAX:A::B::CC::... and treating
it all as host-specific.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kent M Pitman  
View profile  
 More options Feb 22 2002, 4:06 pm
Newsgroups: comp.lang.lisp
From: Kent M Pitman <pit...@world.std.com>
Date: Fri, 22 Feb 2002 21:05:04 GMT
Local: Fri, Feb 22 2002 4:05 pm
Subject: Re: logical pathnames - lack of info?

Daniel Barlow <d...@telent.net> writes:
> Kent M Pitman <pit...@world.std.com> writes:

> > Logical pathnames refer to files on a logical host.  A logical host
> > named "ZING" is marked by "ZING:".

> > In the logical host's file system are directories "FOO1", "FOO2",
> > etc. that are referred to as "FOO1;" , "FOO2;", etc.  If you want
> > subdirs "BAR1", "BAR2", etc.  of "FOO1;" you write "FOO1;BAR1;" etc.

> Do you mean here that "FOO1;BAR1;" is a namestring for the relative
> logical pathname with :directory (:relative "FOO1" "BAR1"), or are you
> just writing parts of namestrings that are not syntactically valid on
> their own?

No.  FOO1;BAR1; is the same as >foo>bar> on multics.  It designates a
directory. It's valid to have a directory pathname in isolation, so it
is valid on its own.  But it's not valid in Unix to have a name /foo/bar/
that means different than /foo/bar, so you're more asking about a
Unix deficiency.

I think Lisps hould never open a pathname that is not fully defaulted,
while #P"FOO;BAR;" is a valid pathname, it does not necessariliy correspond
to a valid host filename.  Translation is not done until merging is complete
or until trnaslation is specifically forced.  So you can carry around a
fragment as a valid pathname and fill it in later.  But it is not appropriate
to assume that opening FOO;BAR; will open a non-directory pathname /foo/bar
even if such a filename exists.  That's just a program error.

> The followup questions, if you tell me that you believe it is a valid
> namestring as is (if it's not, you can of course disregard the rest of
> this) are

> (i) is the directory component :relative or :absolute?  My guess would
>      have been :absolute, but that seems inconsistent with your quoted
>      paragraph above

FOO;BAR; is absolute

;FOO;BAR; is relative.

> (ii) if :relative, how does one write the namestring for a relative
>      LPN with absolute directory?

N/A, see above

> (iii) if "FOO1;BAR1;" is an LPN namestring with an absolute directory,
>      presumably "FOO1;" is also absolute.  What about "BAZ.LISP" -
>      does it have no directory, or (:absolute) as a directory?  

IMO, no one should ever assume that (:ABSOLUTE) exists on a logical pathname.
"BAZ.LISP" has an unsupplied directory and needs one.

I dont agree with programs I've seen by people that do MYLOGHOST:FOO.LISP
and expect it to port right.  What I often do if I need to make a
 /foo
that is the parent of all FOO: files, and that has files in it is to
translate "FOO:FOO;" or "FOO:HOME;" or something like that to
"/foo" and then translate "FOO:*;" to "/foo/*/" with just that one
directory as a hole in it.

>      Is there a case for writing ";BAZ.LISP" when I want to make sure
>      that a later merge-pathnames will take the directory component
>      from its second argument?

Ick.  I wouldn't want you to.  You risk having someone think the pathname
is filled.  Consider that

 (make-pathname :host myloghost :directory '(:relative) :defaults foo)

will not merge the directory from FOO.  Only

 (make-pathname :host myloghost :directory nil :defaults foo)

will grab the dir.  You're right that under MERGE-PATHNAMES, you'll want
(:relative) or NIL rather than (:absolute), but I would prefer to report
to a vendor as a bug any attempt to say that "MYLOGHOST:FOO.BAR" is anything
but a relative pathname.  If it works at all, and it does in some
implementations, I think that's because there simply _is_ no directory to
merge, even in *DEFAULT-PATHNAME-DEFAULTS* and so an incomplete namestring
is passed onto the operating system, opening the current working dir will
fill out the rest... but not all operating systems even have that, and I
don't like to depend on it.

Does this help or just make things muddier?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Eduardo Muņoz  
View profile  
 More options Feb 22 2002, 4:26 pm
Newsgroups: comp.lang.lisp
From: "Eduardo Muņoz" <e...@jet.es>
Date: 22 Feb 2002 22:31:14 +0100
Local: Fri, Feb 22 2002 4:31 pm
Subject: Re: logical pathnames - lack of info?
Kent M Pitman <pit...@world.std.com> writes:

> So the spec is textually lousy for sure in this chapter.  And I'm
> sensitive about that... but then again, some people look at the
> problems and think "if only I had more words, I'd know more".  Maybe
> that's so.  I personally think that if I'd had more time to rewrite
> the chapter, it would only have become more obvious that there are
> some internal design errors here that needed technical votes to
> repair.  I personally think people snag on these design glitches,
> _thinking_ they are not understanding something, but in fact just not
> seeing tht the design is not as good as it could
> have been.

Excuse me if I'm being a bit naīve but...

Given this paragraph and some other comments
written by you in this (and other) thread maybe
you could do something about it.
You said some time ago that you had a project to
write a book (or two) and IMHO you have enough
power (or credit) within the lisp community to set
a de-facto standard in some aspects of the CLHS
that are not clear enough. You could fill holes
and gaps, point to design flaws (not trying to
correct them so we'll have a lisp branch, just
warning and giving advice about them) and
explaining how things should work.

Writing a book these days isn't big bussines but I
think that given your big experience in lisp and
your kwnodledge of the spec, a book by you would
be an inmense help to the lisp community. It would
help users and implementors to agree in the dark
corners of the spec.

Maybe this book wont be such a bad bussines. I
guarrantee you that I'll buy a copy (and I'm sure
that more of 50% of c.l.l will do too :)

--

Eduardo Muņoz


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Harald Hanche-Olsen  
View profile  
 More options Feb 22 2002, 5:10 pm
Newsgroups: comp.lang.lisp
From: Harald Hanche-Olsen <han...@math.ntnu.no>
Date: 22 Feb 2002 22:28:08 +0100
Local: Fri, Feb 22 2002 4:28 pm
Subject: Re: logical pathnames - lack of info?
+ Kenny Tilton <ktil...@nyc.rr.com>:

| Kent M Pitman wrote:
| > Kenny Tilton <ktil...@nyc.rr.com> writes:
| > have once said about thesis writing: If I'd had more time, I would
| > have written less.
|
| Great line, one of my favorites. I feel the same way about code. But
| it was Samuel Clemens, wrapping up a letter to a friend I think.

  I have made this [letter] longer than usual, only because I have
  not had the time to make it shorter.
  -- Blaise Pascal (1623-1662), in Lettres Provinciales (1657) no 16.

Source:  Oxford Concise Dictionary of Quotations, ISBN 0-19-280070-1.

--
* Harald Hanche-Olsen     <URL:http://www.math.ntnu.no/~hanche/>
- Yes it works in practice - but does it work in theory?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Feb 22 2002, 5:19 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Fri, 22 Feb 2002 22:19:01 GMT
Local: Fri, Feb 22 2002 5:19 pm
Subject: Re: logical pathnames - lack of info?
* "Eduardo Muņoz" <e...@jet.es>
| Given this paragraph and some other comments written by you in this (and
| other) thread maybe you could do something about it.  You said some time
| ago that you had a project to write a book (or two) and IMHO you have
| enough power (or credit) within the lisp community to set a de-facto
| standard in some aspects of the CLHS that are not clear enough. You could
| fill holes and gaps, point to design flaws (not trying to correct them so
| we'll have a lisp branch, just warning and giving advice about them) and
| explaining how things should work.

  This is indeed a bit naive.  The ANSI Standard is a legal document,
  effectively an attachment to the contract you sign with your vendor when
  you purchase (a license to) a Common Lisp system that purports to conform
  to it.  Its legal status is well known and effectively peer-reviewed
  through the standardization process.  Relying on the personal commentary
  of the editor of the standard reduces the legal standing of the standard
  so much that it is effectively useless as such, and ANSI would have the
  right to protect its brand name (if not investment) by any means it might
  find necessary.  I would not want to be Kent Pitman if ANSI got pissed at
  him for publishing such _official_ commentaries outside of the process
  that created the standard, basically because it would open up for
  lawsuits against ANSI for failure to follow proper procedures to ensure
  that no particular vendor was unduly favored in its creation.

| Writing a book these days isn't big bussines but I think that given your
| big experience in lisp and your kwnodledge of the spec, a book by you
| would be an inmense help to the lisp community.  It would help users and
| implementors to agree in the dark corners of the spec.

  If it did, it would be a dangerous document.

| Maybe this book wont be such a bad bussines. I guarrantee you that I'll
| buy a copy (and I'm sure that more of 50% of c.l.l will do too :)

  I would buy one, too, just as I bought The SGML Handbook by Charles
  Goldfarb when ISO 8879 turned out to be fairly unreadable by itself, but
  that was before I had legal training and worked with lots of lawyers.

  A standard is _specifically_ relinquished from anyone's personal control
  and left to the community of people that adopted it by its representative
  and proxies.  To re-acquire personal control over it would diminish the
  value of the whole standardization process, just as if a politician who
  had helped push a particular law instructed the courts to interpret it a
  particular way.  (Perhaps you have be really _deeply_ into politics and
  law to see why this is fantastically bad karma, but trust me: it is.)

///
--
  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tim Bradshaw  
View profile  
 More options Feb 22 2002, 5:34 pm
Newsgroups: comp.lang.lisp
From: Tim Bradshaw <t...@cley.com>
Date: 22 Feb 2002 22:32:52 +0000
Local: Fri, Feb 22 2002 5:32 pm
Subject: Re: logical pathnames - lack of info?

* Eduardo Muņoz wrote:
> Writing a book these days isn't big bussines but I
> think that given your big experience in lisp and
> your kwnodledge of the spec, a book by you would
> be an inmense help to the lisp community. It would
> help users and implementors to agree in the dark
> corners of the spec.

While I'd love to see a book by KMP, I don't see what has got
basically easier about writing a book since the invention of good text
editors.  *Publishing* may be easier (especially if you don't want to
get paid much/at all) but you still have to write hundreds of pages of
high-quality text, which is the main barrier...

--tim


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Messages 26 - 50 of 81 < Older  Newer >
« Back to Discussions « Newer topic     Older topic »