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

Re: Pavel's Comments



Me: Page 1-4, second set of bullets, second bullet -- Can't valid
programs
    rely on that error being signalled if they also specify (SAFETY 3)?
I'm
    generally unhappy with the phrase "at least in code compiled under
one
    compiler safety optimization level".  I'd prefer a direct statement
that
    that level is 3.

Dick: I don't to make CLOS depend on things that might change in Common
Lisp
      if I don't have to. Why state ``3'' when ``at least one'' will do?

Because I want to be able to write portable code that depends upon that
error being signaled.  Saying ``at least one'' allows some bozo
implementor to decide that not signalling the error is safer than
signalling it and thus a higher safety number might turn off the
signalling.  If you don't like using the number 3, how about ``at least
in code compiled under the highest compiler safety optimization level''?

Dick: I have heard people argue as follows:

      ``It is an error to adjust an array that was not created with the 
      :adjustable argument non-nil. Therefore the results are undefined.
      Therefore an implementation can define the behavior. Therefore, it
is
      ok to adjust an array created with the :adjustable argument nil.''

      I want to prevent this. It's ok for your implementation to
document that
      the results are harmless, but I would prefer that you not state
what they
      are.

Why do you want to prevent this?  You seem to be saying that an
implementation can't choose to implement all arrays as fully general
arrays unless they arrange for adjust-array to fail in some way on
arrays that were not originally declared to be adjustable.  This seems
like a gratuitous failure.  We already say that ``No valid program can
cause this situation to happen'', why not leave it at that?  Since the
phrase ``but they must remain undefined'' is meaningless, I don't see
what it adds to the description.

	Pavel