Subject: Re: make-pathname and :defaults
From: Erik Naggum <>
Date: 1998/01/11
Newsgroups: comp.lang.lisp
Message-ID: <>

* Kent M Pitman
| This [make-pathname] asks to take a given pathname and change specific
| components at the structure level.

  this view does make sense and I accept that this is how things should be,
  but now I wonder: are there any other :defaults arguments in the language
  or in moderately wide use?  I have not seen any.  all I find in the CLHS
  is the "defaulted initialization argument list", of which this seems like
  a particularly practical form that I would have liked to be able to use
  in many other cases, but I don't even see how I can (easily) create my
  own :defaults argument that I could effectively copy from like
  `make-pathname' does.  suggestions?

| I consider the above examples "correct behavior" (although that doesn't
| mean there can't be competing viewpoints :-)

  there is the issue of whether the competing viewpoints come from people
  like me who are trying very hard to find a reason to believe their
  personal intuitions are supported by the standard or from people whose
  intuitions were supposed to become the standard...  so, was there any
  (serious) disagreement on this in X3J13 when the issue came up?  if not,
  who cares what kind of competing viewpoints outsiders come up with?

| Well, I said you can create competing viewpoints.  It's not the intended
| viewpoint, though it's your right to disagree since the wording is what
| counts.  I just screwed up with the writing here--all the worse since
| this issue came up before we froze the spec and I'd tried to repair it.
| I guess I missed one.  Sigh.

  I don't think this is true (about it being the wording that counts).  if
  I submit a request for clarification to ANSI, you get a second chance.
  since the time I wrote that article and solicited comments from all over
  the place, _nobody_ has disagreed with my analysis.  it might be worth
  our while to get this cleaned up formally and to explain the rationale
  like you just did in this article through the accredited channels, too.

| Nope.  It is my belief that it is definitely the intention of the
| committee that MAKE-PATHNAME do what you observe.  I think your real
| gripe is with that dummy of an editor (oops, that's me) who screwed up
| the wording and made it hard to read.

  now you're being grossly uncharitable to yourself.  don't do that.  ANSI
  CL is an amazingly high-quality standard, and I have had to work my way
  through so many standards that I have earned the right to compliment you
  on this.  that this is an editorial glitch that left room for a competing
  viewpoint is not itself bad: it would have been bad if you couldn't argue
  convincingly for your view or people could start to argue for a change of
  semantics in contradiction to the committee intentions.

| I'll mark it for further clarification in that distant day where we do
| such things.

  well, donning my standards committee hat, I'd have to comment that as per
  ANSI rules, X3.226-1994 is due for a reaffirmation vote at the end of
  1999.  there is nothing to bar you from publishing corrigenda or
  amendments at any time between such votes.  however, I take it from this
  and other comments that there haven't been any requests for clarification
  addressed to X3J13 since its publication.  that by itself is remarkable.

  speaking of corrigenda, I have a couple of bug reports to file for the
  application that made use of relative directories and the behavior I have
  argued for and which no available Common Lisp implementation agreed with
  so they implemented their own hacks.  I'm glad I asked about this.

  thanks for your clear answer this time around, too, Kent.
The year "98" was new 1900 years ago.  |  Help fight MULE in GNU Emacs 20!
Be year 2000 compliant, write "1998"!  |