Why is *print-circle* set to T by default? WAS: grinding, etc.
Subject: Why is *print-circle* set to T by default? WAS: grinding, etc.
From: Robert Dodier
Date: Wed, 9 Feb 2011 09:06:28 -0700
*print-circle* is set to T because circular lists are stuck onto
the symbol property list by the assume mechanism.
Various Lisps barf on that (endless printing or stack overflow).
e.g. with Clisp 2.42:
assume (x > 0);
:lisp (let ((*print-circle* nil)) (print (symbol-plist '$x)))
=> stack overflow
CMUCL 19a:
assume (x > 0);
:lisp (let ((*print-circle* nil)) (print (symbol-plist '$x)))
=> endless mess
The problem is that the bad behavior isn't limited to
the assume system. You could be looking at something else.
FWIW
Robert Dodier