
On Tue, Mar 25, 2014 at 5:26 AM, Mark Evenson <evenson@panix.com> wrote:
I propose to interpolate non-zero values specified by the user of less than a nanosecond to CL:SLEEP/THREADS:OBJECT-WAIT to mean a sleep/wait for a nanosecond. If the user specifies a zero-value, then she will get an infinite timeout.
Yes, if we can't sleep/wait for zero seconds, then 1 ns is the next best thing. The misdesign of the java.lang.Object.wait API goes from ugly to wrong for arbitrarily fast machines of the future, but we aren't there yet.
P.S. not sure what you mean by the "separation of the reader phase in Lisp does not mix well...". What does the Lisp reader have to do with the discontinuity of the API?
In retrospect it isn't a significant point. The catastrophic difference in behavior between zero and near-zero is bad enough on its own, but it's made a little bit worse when the reader rounds to zero. Wherever parse trees are used instead of program text (e.g. sending Lisp sexp data to a server), the intended meaning of the code is that much farther away.