[Openmcl-devel] Initial bindings
Ron Garret
ron at flownet.com
Wed Oct 6 10:09:44 PDT 2010
On Oct 6, 2010, at 2:06 AM, Gary Byers wrote:
>
>
> On Wed, 6 Oct 2010, Ron Garret wrote:
>
>> This is unbelievably frustrating. The default initial binding of ccl::*print-string-length* is 1000:
>
> No, it isn't (at least not exactly). The default value is the static,
> global value of CCL:*PRINT-STRING-LENGTH*, which is set to NIL when
> the image is built.
Ah. So it is. So why do I get 1000 in the IDE?
> In many cases, that behavior's useful: it's more useful when the initial value
> is some sort of stateful/shareable data structure (e.g., a stream.) It's less
> useful when the default initial value is a constant.
>
> It's ordinarily hard to change those static/global bindings from a
> thread that establishes dynamic bindings for those variables, and
> PROCESS-RUN-FUNCTION establishes such bindings. The initial thread
> isn't created by PROCESS-RUN-FUNCTION, and therefore doing:
>
> (setq ccl:*print-string-length* 1000)
>
> in the initial thread - unless that occurs within the extent of a dynamic
> binding of that variable in that thread - will modify the static value.
>
> The IDE's event loop runs in the initial thread; it should really run with
> standard thread-specific bindings in effect, to keep a random SETQ like
> the one above from modifying global state.
As far as I know I am not setting ccl:*print-string-length* to 1000. Does the IDE build process set it somewhere?
>
>>
>> ;;;
>> ;;; #<PROCESS foo(8) [Reset] #x302000DB1D0D> requires access to Shared Terminal Input
>> ;;; Type (:y 8) to yield control to this thread.
>> ;;;
>>
>> As an aside, following the instructions and typing (:y 8) in both the altconsole and the listener has no effect.
>
> One general workaround for this problem is to avoid it completely.
>
> See <http://trac.clozure.com/ccl/wiki/ReleaseNotes/Trunk>
>
> (That wouldn't have helped in this case: the thread's getting an error before
> establishing any dynamic thread-local bindings, including bindings of things
> like *TERMINAL-IO*.)
That's a handy-dandy feature! Thanks!
rg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20101006/75298e45/attachment.htm>
More information about the Openmcl-devel
mailing list