[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: JPG at MIT-MC, (BUG LISP) at MIT-MC
- From: HIC at MIT-MC (Howard I. Cannon)
- Date: Tue, 25 Jul 78 21:04:00 GMT
- Cc: RWK at MIT-MC
- Original-date: 25 JUL 1978 1704-EDT
Date: 25 JUL 1978 0530-EDT
From: JPG at MIT-MC (Jeffrey P. Golden)
To: (BUG LISP) at MIT-MC
CC: RWK at MIT-MC, JPG at MIT-MC
In a fresh MACSYMA, type control-^ to quit into LISP.
(CDR '%SIN) will show you a property of $INVERSE with value %ASIN.
Type (FASLOAD SOLVE FASL DSK MACSYM). (CDR '%SIN) shows you that
the property is now ADISPLINE, a function in SOLVE, rather than
$INVERSE. Fasloading in other files instead of SOLVE FASL clobbers
the property list of %SIN (and %COS, etc., wherever "$INVERSE" appears)
in other similar ways. $INVERSE is a purified property.
The bug is that you had only pure structure pointing to the symbol
($INVERSE) and PURCOPY did not insure that the symbol was gcprotected.
Therefore, the symbol was being treated as TWA. Now, if the symbol
on the PUTPROP list is not pure itself, it is PURCOPY'ed when someone
attempts to PUTPROP a property on it. This fix will not help the current
macsyma. In order to fix the bug in the current macsyma, setq some random
symbol to the list that PUTPROP is SETQ'ed to during loading. This will
cause the symbols to be marked and therefore not GCTWA'ed away.