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

interaction beween concat, pack* etc and defprint



Mail-from: Arpanet host BBN-TENEXD rcvd at 28-JUN-79 0851-PDT
Date: 28 Jun 1979 1149-EDT
Sender: YONKE at BBN-TENEXD
Subject: defprint
From: YONKE at BBN-TENEXD
To: Goldman at USC-ISIE
Cc: Teitelman at PARC-MAXC2, Lewis, Hartley
Message-ID: <[BBN-TENEXD]28-Jun-79 11:49:02.YONKE>

Neil,

The manual says "Note that DEFPRINT also affects internal calls to
print from PACK, CONCAT, etc...".  This is much too weak a statment.
It should probably say something like "if your DEFPRINT function
calls anything that does internal printing like PACK, CONCAT, etc.
the result is unknown and more than likely you will get garbage
back".

The problem is that the internal printing routines are not recursive
and carry around pointers to internal strings, etc.  If your function
is called while inside a call to an internal printing function (which
is highly likely since it is being called to return someting to
print) these internal pointers get smashed.  Of course, this is not
"perfect", but the expense in cleaning up the internal printing
routines is high and at this time it can't be done.  Daryle didn't
even want it documented in the manual because we knew of these
problems.  You were actually lucky that PACK* didn't do something
funny.

Sorry about this.  Say "hi" to the folks at ISI for me and wave to
the ocean.

Regards,
Martin

-------