<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi, I’m trying to move over to Darwin CCL 11 from Darwin CCL 10.<div class="">I’m using a mid-2015 MacBook Pro with OS X El Capitan 10.11.5.</div><div class="">I started lisp in Terminal with ./dx86cl64 —no-init</div><div class="">and then said (require “COCOA”)</div><div class=""><br class=""><div class="">The first issue I want to mention is that, while preparing for the mention of</div><div class="">the second issue, I had a once-off weirdness as this screenshot shows:</div></div><div class=""><img height="113" width="640" apple-width="yes" apple-height="yes" apple-inline="yes" id="000D745C-86DE-4475-BB35-0AB3DE3E458D" src="cid:D36040C7-0D5D-469C-BBDD-C0C8E1C9AACC@chello.ie" class=""></div><div class="">The second is that my macro for writing messages to the listener window</div><div class="">misbehaves when used in the gui (main) thread. Here’s evidence:</div><div class="">lisp was started again, successfullyb this time, as described above, and code</div><div class="">was pasted into the listener window, and then three functions called in turn.</div><div class="">The one where the gui thread is used to execute the form produces no output.</div><div class="">In ccl10 there was no such problem with a very similar WRITEOUT macro, I’ve</div><div class="">simplified it very slightly for presentation here.</div><div class=""><br class=""></div><div class=""><div class="">Welcome to Clozure Common Lisp Version 1.11-r16635 (DarwinX8664)!</div><div class="">? (in-package :cl-user)</div><div class=""><br class=""></div><div class="">(defmacro writeout (msg &rest args)</div><div class=""> (let ((p (gensym)))</div><div class=""> `(let ((,p (find 'gui::cocoa-listener-process (ccl::all-processes) :key #'type-of)))</div><div class=""> (if ,p</div><div class=""> (format (gui::cocoa-listener-process-output-stream ,p) ,msg ,@args)))))</div><div class=""><br class=""></div><div class="">(defun test-in-listener ()</div><div class=""> (writeout "~%Writing in the listener.~%"))</div><div class=""><br class=""></div><div class="">(defun test-in-main ()</div><div class=""> (gui::execute-in-gui (lambda () (writeout "~&Writing in the gui.~%"))))</div><div class=""><br class=""></div><div class="">(defun test-in-another ()</div><div class=""> (ccl::process-run-function "A new process"</div><div class=""> (lambda () (writeout "~&Writing in a new process.~%")))</div><div class=""> (sleep 1))</div><div class=""><br class=""></div><div class="">#<Package "COMMON-LISP-USER"></div><div class="">? </div><div class="">WRITEOUT</div><div class="">? </div><div class="">TEST-IN-LISTENER</div><div class="">? </div><div class="">TEST-IN-MAIN</div><div class="">? </div><div class="">TEST-IN-ANOTHER</div><div class="">? ;;; The above was copied from a file and pasted into the listener all at once</div><div class="">;;; Now to test. Get a prompt ...</div><div class="">t</div><div class="">T</div><div class="">? (test-in-listener)</div><div class=""><br class=""></div><div class="">Writing in the listener.</div><div class="">NIL</div><div class="">? (test-in-main)</div><div class="">NIL</div><div class="">? (test-in-another)</div><div class="">Writing in a new process.</div><div class="">NIL</div><div class="">? </div></div><div class=""><br class=""></div><div class="">— end of quoted output, resumption of email text —</div><div class=""><br class=""></div><div class="">The SLEEP btw is there just to avoid intermingling of the text output and the</div><div class="">function result, which otherwise is a process.</div><div class=""><br class=""></div><div class="">I can work around this by changing my WRITEOUT macro to always use a new</div><div class="">process to write its output, but this seems very heavyweight. I don’t understand</div><div class="">what’s changed in CCL to make the behaviour different from CCL10.</div><div class=""><br class=""></div><div class="">Help would be appreciated, as always!</div><div class=""><br class=""></div><div class="">Arthur</div><div class=""><br class=""></div></body></html>