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

Why dosen't SIGNUM preserve a few exponent and fraction bits while it's at it?



    Date: Wednesday, 17 October 1984, 11:13-EDT
    From: David C. Plummer <DCP at SCRC-TENEX>
	Date: Wed, 17 Oct 84 02:47 PDT
	From: Bill Gosper <rwg%SPA-NIMBUS@SCRC-STONY-BROOK.ARPA>
	In Symbolics 3600 System 242.355, Mailer 41.3, Print 34.3,
	Macsyma 23.103, microcode TMC5-MIC 297, on Russian:

	For what my opinion is worth, it was massively wrong for SIGNUM to try to
	preserve the floatingness of its argument.  The whole purpose of the
	function is to reduce the information content of its arg to the minimum.
	Can anyone recall the rationale?  Was it any better than the "contagious
	floating" creeping braindamage?  When you get an exact answer, it is
	idiotic to cast it into the one grubby datatype that fosters inexact
	computation.  Maybe what you're trying to say is "this SIGNUM was
	of a datum so wretched that even its sign was probably wrong"?

    What does this have to do with SIGNUM?  The bug you SHOWING is that
    %LEXPR-[AREF/ASET/ALOC] don't type check their indices.

	>>Error: Page fault on unallocated VMA 206060064
	While in the function SYS:%LEXPR-AREF  AREF  TRIANGLE-WINDING-OF-ORIGIN

	SYS:%LEXPR-AREF:  (P.C. = 271)
	   Arg 0 (ARRAY): #<ART-Q-3-3-3 22060054>
	   Arg 1 (INDICES): (2.0 2.0 2.0)
	   Local 2 (NDIMS): 3
	   Local 3 (DATA-POINTER): #<DTP-LOCATIVE 22060064>
	   Local 4 (LINEAR-INDEX): 26.0
	   Local 5 (TYPE): 5
	   Local 6 (BITS-PER-ELEM): NIL
	   Local 7 (ELEMS-PER-Q): 1

Sorry to have been so garbled.  I guess I expected everyone to figure out that I
subscripted by the 1+ of SIGNUMs.  The error was especially traumatic since we had
just swapped the DP board in an apparently successful attempt to fix a
longstanding problem with EGC and FULL-GC, and I had just run them!  Halloween
came early this year.

PS:  If it didn't cost anything to check and FIX the subscripts, floating integer
subscripts should work!  Actually, there shouldn't be floating integers!  CommonSlip's
"rule of rational canonicalization" should convert them (if possible), to fixnums!
-0.0 be damned!  My keyboard is melting!