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

Revenge of the Ballot

B1. No mixed-type complexes.			Yes.
B2. (SQRT -1.0) -> i, not an error.		No vote.
    I don't understand the implications of introducing a complex number
    into a program that thought it was working entirely in the reals.
B3. MULTIPLE-VALUE-SETQ takes 0,2,4,... args.		Yes.
    I don't believe the claim that the format is completely different
    from SETQ; it looks completely the same to me.  Why else the
    motivation to change the name to include "SETQ"?
B4. Cassels float proposals.				Yes.
    I'd like to see new names for FLOAT-{INTEGER-}SIGNIFICAND.
    Also the sign should be returned as a third value and FLOAT-SIGN
    should be flushed also, unless its two-argument form is deemed
    important, in which case the manual should include a note about it.
B5. Recursive calls to READ supply a new optional arg.	Yes, mostly.
    I don't think the eof actions should be controlled by the top-level call
    to READ; I think an eof in a recursive read is always an "eof in the
    middle of an object" error.  Note that this doesn't include an eof
    that merely acts as a delimiter.  For example:
		<eof>			use top-level eof control args
		'<eof>			eof in the middle of an object
		'foo<eof>		eof not seen until next read
    I'd like to see a precise specification of what is controlled by the
    recursive-read flag, since I suspect that it is ONLY the ## environment,
    except for implementations (e.g. Maclisp) that optimize out some sort
    of decoding of the stream argument.
    MERGE-PATHNAME-DEFAULTS is okay provided only that its default-type
    argument -not- be optional, or that it default to a function of the
    defaults rather than to a constant (especially a constant that isn't
    even a legal pathname component, as in the Laser manual!).  But removing
    it entirely from the Common language is okay, too.
B7. Pathname CONVENTION field.				Yes.
    It's not that I'm terribly opposed to this, but it just doesn't
    seem to make any sense.  How can the caller of PARSE-PATHNAME know
    what syntax a pathname is written in, except by consulting the guy
    who supplied the string?  And how can the guy who supplied the
    string say what syntax it is in, other than by putting something
    in the string?  The point is that the caller of PARSE-PATHNAME has
    no business saying what syntax the string is in, doesn't care what
    syntax it is, and in general cannot know what syntax it is.
    Since the caller of PARSE-PATHNAME doesn't know what syntactic convention
    to use, maybe his caller does; are you going to change a whole bunch
    of functions, such as OPEN, DELETE-FILE, LOAD, COMPILE-FILE, DRIBBLE,
    etc. to take a new CONVENTION argument?  Then are you going to go one
    level higher up and make the Read File command in your editor take
    a CONVENTION argument, so it can parse the file name the user types
    in?  This is crazy!
    The example of two file systems coexisting on the same host is bogus.
    If you're going to use file name syntax to distinguish between them,
    then what if they have the same syntax?  All 3600s have two distinct
    file systems that use the same syntax.  And what about the user who
    wants to be able to access files on both file systems, even if they
    have different syntax?  If the way you tell them apart is not in the
    pathname, then how does the user say which pathnames are for which file
    system?  Obviously the answer is that the "host" field in a pathname
    is not the name of a CPU, it is the name of a file system.  If you
    have two file systems resident on the same piece of iron, they have
    different names.  And conversely if you have one file system that
    is attached to a multiprocessor, you don't say which of the processors
    you want to access it through, you just say the name of the file system.
    I also have little faith in the usefulness of accessing a Tops-20
    file system with Unix-convention pathnames, or in general accessing any
    host (file system) with a different convention than its native one;
    either the different convention is trivially different (maybe Tops-20
    with quotation marks around the directory and the name and version
    delimited by spaces instead of dots), or it is semantically different
    (no version numbers, as in Unix), in which case it won't work.