<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Oct 6, 2010, at 2:06 AM, Gary Byers wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br><br>On Wed, 6 Oct 2010, Ron Garret wrote:<br><br><blockquote type="cite">This is unbelievably frustrating.  The default initial binding of ccl::*print-string-length* is 1000:<br></blockquote><br>No, it isn't (at least not exactly).  The default value is the static,<br>global value of CCL:*PRINT-STRING-LENGTH*, which is set to NIL when<br>the image is built.<br></div></blockquote><div><br></div><div>Ah.  So it is.  So why do I get 1000 in the IDE?</div><br><blockquote type="cite"><div>In many cases, that behavior's useful: it's more useful when the initial value<br>is some sort of stateful/shareable data structure (e.g., a stream.)  It's less<br>useful when the default initial value is a constant.<br><br>It's ordinarily hard to change those static/global bindings from a<br>thread that establishes dynamic bindings for those variables, and<br>PROCESS-RUN-FUNCTION establishes such bindings.  The initial thread<br>isn't created by PROCESS-RUN-FUNCTION, and therefore doing:<br><br>(setq ccl:*print-string-length* 1000)<br><br>in the initial thread - unless that occurs within the extent of a dynamic<br>binding of that variable in that thread - will modify the static value.<br><br>The IDE's event loop runs in the initial thread; it should really run with<br>standard thread-specific bindings in effect, to keep a random SETQ like<br>the one above from modifying global state.<br></div></blockquote><div><br></div><div>As far as I know I am not setting ccl:*print-string-length* to 1000.  Does the IDE build process set it somewhere?</div><br><blockquote type="cite"><div><br><blockquote type="cite"><br></blockquote><blockquote type="cite">;;;<br></blockquote><blockquote type="cite">;;; #<PROCESS foo(8) [Reset] #x302000DB1D0D> requires access to Shared Terminal Input<br></blockquote><blockquote type="cite">;;; Type (:y 8) to yield control to this thread.<br></blockquote><blockquote type="cite">;;;<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">As an aside, following the instructions and typing (:y 8) in both the altconsole and the listener has no effect.<br></blockquote><br>One general workaround for this problem is to avoid it completely.<br><br>See <<a href="http://trac.clozure.com/ccl/wiki/ReleaseNotes/Trunk">http://trac.clozure.com/ccl/wiki/ReleaseNotes/Trunk</a>><br><br>(That wouldn't have helped in this case: the thread's getting an error before<br>establishing any dynamic thread-local bindings, including bindings of things<br>like *TERMINAL-IO*.)<font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><br></div><div>That's a handy-dandy feature!  Thanks!</div><div><br></div><div>rg</div><div><br></div></body></html>