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

[no subject]

    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.