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

(In reply to your message)



    From: Richard M. Stallman <RMS at MIT-AI>
	From: David L. Andre <DLA at MIT-AI>
	Why, RMS, did you start messing with :DIRECTORY-STREAM?
    Because it could not transmit user-defined properties which were not strings.
No file system which supports non-string user-defined properties uses
:DIRECTORY-STREAM.  You are screwing them.

	I fail to see any advantages to the changes you made.  There are now
	three ways of frobbing with directories, where previously there was
	one.
    There are now two external ones and one internal one,
    where previously there was one external one and one internal one.
:DIRECTORY-STREAM, I assume, is the internal one.  It is only internal
to the QFILE system, and nothing else uses or should use it.  There is
no reference to any :DIRECTORY-STREAM in my file system, as it would
certainly be very slow.  Because :DIRECTORY-LIST-STREAM uses a
:DIRECTORY-STREAM, you are forcing me to write either :DIRECTORY-STREAM
or :DIRECTORY-LIST-STREAM for my file system.  Either would be much
slower than :DIRECTORY-LIST.  I assume the same consequenses hold for
Symbolics' file system.

The utility of :DIRECTORY-LIST-STREAM is debatable too, and if you had
taken the time to propose something like it, you would have been
informed of the issues involved.  It HAS been pondered before.

	:DIRECTORY-STREAM is *defined* by the FILE protocol
    No, it was put on a method of the flavor PATHNAME, which seemed to
    indicate the intention on someone else's part that it was more general
    than just QFILE.
:DIRECTORY-STREAM is not supported by PATHNAME.  The default version of
:DIRECTORY-LIST assumes that there is a directory stream, because
there's probably nothing better for it to do; The only other option is
to assume that a :DIRECTORY-LIST cannot be done, and put what is
currently (PATHNAME :DIRECTORY-LIST) onto CHAOS-PATHNAME.
		      Since this seemed reasonable to me, I went along
    with it.
    It is important that SOMEONE ELSE did this.  I thought that
    :DIRECTORY-STREAM was intended (and not just by me) to be the default
    thing for anything to implement, which would imply it was supposed to
    be suitable for things in general to use it.
When I wrote the directory operations for my file system, the main
source of information which I used was a letter from you to BUG-LISPM
asking about :DIRECTORY-LIST, :DIRECTORY-STREAM etc.  The reply was
quite explicit.  You evidently didn't look at the reply.  (I'd find the
letter, but old BUG LISPM mail is on AI pack three, which is fucked)
							   , so messing with it
	necessarily means messing with the file protocol, which necessarily
	means updating the sources on many sites.  :DIRECTORY-LIST is all that
	should be implemented for any file system.  If you use :DIRECTORY-STREAM
	for your entrypoint
    I don't THINK I use :DIRECTORY-STREAM as my entry point,
    but perhaps I don't understand you.
The fact that you implemented it such that others must implement it,
makes it an entry point.

	I will dispense with the specifics of your programming for the rest of
	this letter.  I consider them wrong, but that is not my point.  Rather,
	this incident is just symptomatic of the way you deal with any software
	which is maintained by a group.  You fundamentally change system
	programs used and supported by many other people, without consulting
	them as to the consequences, and evidently without thinking out the
	consequences carefully for yourself.  It is impossible for a group to
	get anything done if any member behaves in such a manner.  You have done
	so, however, many times, much to the anger of the people you deal with,
	myself included.
    I'm sad you feel this way, but your idea of WHAT I did and why seems
    to be mistaken, so it is not clear to me that what I ACTUALLY DID
    is related to the anger.
I stated that I'm not only refering to this case.  This case in itself
doesn't warrant my flaming.  But I see you constantly forcing myself and
other members of the lisp machine group to clean up after you because
you don't think enough about the consequenses, and don't ask before
doing things.  This letter is long enough without twenty examples.

		      One of the most important virtues is admitting what you
	don't know.  I have gained some measure of respect among the people I
	deal with because I don't go and break things in general, and when I do,
	I fix them.  Off the top of my head, I can probably name about a score
	of incidents where you have changed things DIRECTLY IN OPPOSITION to the
	wishes of others.  They have given up dealing with you.  I'm about to.
	Dammit, RMS, you may be smart, but you're shit if you can't deal with
	people.  You have accused people many times of being silently against
	you.  We are, and this is why.
    I expect people to be directly opposed to things I propose merely
    because they were proposed by me.
You are being childish and paranoid by saying this.
				       Specifically, I expect people to
    jump to the conclusion that my actions are stupid without actually
    understanding them.
Don't YOU get upset when other people break what you are doing without
consulting you??  You could be right in what you do, but even if you
are right (and you often aren't), it certainly rubs on people.
			 I expect this because it happens frequently; for
    example, you are doing so now.

    Faced with this, my two choices are to give in to an unfair
    condemnation or to go directly against people.  The first time (wrt
    NWS) I kept giving in in the hope that things would get better.  It
    didn't work, so I decided that I had to stand up for myself.

    Probably I am too quick to expect this to happen, and I may be
    wronging other people by reacting to it in advance when it really
    would not have happened.  But it does still happen (and it is
    happening right now).  It is hard for me to treat other people on the
    basis of expecting them to give any serious consideration to any
    proposal I make when so often they don't.
Bargaining is a two way street.  You forget how many times people agree
with you.  I even agree with you that :DIRECTORY-STREAM is too
restrictive, and possibly it should be changed.  But not without
consultation as to the consequenses!

	People have been very patient with you trying to get it into your skull
	that you are being very unreasonable.
    I think that other people share in the unreasonability and that they
    have often been far from patient.
					       MMcM has been (amazingly) civil
	in his last group of letters on the :DIRECTORY-STREAM stuff.  You have
	not answered most of his arguments, citing the requirements of your file
	system instead.
    I thought that MMCM was primarily citing the possible requirements of
    other file systems without answering my arguments.
Even If your analysis is correct here, then I still don't disagree with
his sense of proportions.  Your file system is experimental and used
practically not at all, compared with the amount of work which is done
on other file systems.
							If it is
    blameworthy on my part it is blameworthy when other people do it,
    but I would call it a misunderstanding.
			 I cannot speak for Symbolics, but I myself would not
	accept your changes were I working there.  Out of your unreasonableness
	grows two different protocols, two different lisp machine systems, to
	which you are supposedly opposed.

	I am unable to work in such an environment.  Either you start showing
	reasonable level of consideration in your programming than you have
	been, or one of us will be leaving.
    I am willing to talk about doing something differently but the
    definition of "reasonable" that most people want me to obey seems to
    be stacked so that they can mistreat me and I can't do anything about
    it.  I can only agree to a kind of "reasonableness" which isn't
    one-sided.
RMS, when dealing in a group of people, you win some and you lose some.
You should accept losses and work for the common good of the group, win
or lose.  Your input is invaluable in the cases where you win, for
otherwise the group may have not reached such an optimal solution.  But
work with the group first in mind, accept your losses and you'll find
out that the world isn't out to get you.