[Openmcl-devel] CCL/Cocoa Mountain Lion Challenges
Alexander Repenning
alexander.repenning at Colorado.EDU
Thu Aug 23 17:22:45 PDT 2012
A bit of a pattern is emerging:
- no obvious connection to version of CCL
- strong connection to version of OS X (Mountain Lion, 10.8.0 and 10.8.1 only)
- quite inconsistent
- can happen when making threads or not servicing events from main thread for some time
- more likely to crash on CCL 32 than CCL 64
- has a CPU and RealMemory surge manifestation (observe with Activity Monitor)
Here is a test case.
- Load code and eval (crash-me)
- observe CCL System memory in Activity Monitor
- keep pressing return to OK the modal dialog.
Things may be fine OR you get some initial hick up with some small CPU/RealMem surges making things slower and slower. In some cases RealMem will just use up all you have and crash CCL after growing to a couple of GB.
If you have a Mountain Lion machine please let me know if you also get problems with this.
puzzled, Alex
____________
;(in-package :xlui)
;; inilined from Libraries
(defun NATIVE-STRING (String) "
Return a native string"
(#/autorelease (ccl::%make-nsstring String)))
(defmethod STANDARD-ALERT-DIALOG ((Message string) &key
(Yes-Text "OK")
(No-Text nil)
(Cancel-Text nil)
(Explanation-Text)
(Is-Critical nil))
(let ((Alert (#/init (#/alloc ns:ns-alert))))
(#/setMessageText: Alert (native-string Message))
(when Yes-Text (#/addButtonWithTitle: Alert (native-string Yes-Text)))
(when No-Text (#/addButtonWithTitle: Alert (native-string No-Text)))
(when Cancel-Text (#/addButtonWithTitle: Alert (native-string Cancel-Text)))
(when Explanation-Text (#/setInformativeText: Alert (native-string Explanation-Text)))
(#/setAlertStyle: Alert (if Is-Critical #$NSCriticalAlertStyle #$NSWarningAlertStyle))
(case (#/runModal Alert)
(#.#$NSAlertFirstButtonReturn t)
(#.#$NSAlertSecondButtonReturn nil)
(#.#$NSAlertThirdButtonReturn (throw :cancel nil)))))
(defmacro IN-MAIN-THREAD (() &body body)
(let ((thunk (gensym))
(done (gensym))
(result (gensym)))
`(let ((,done nil)
(,result nil))
(flet ((,thunk ()
(setq ,result (multiple-value-list (progn , at body))
,done t)))
(gui::execute-in-gui #',thunk)
(process-wait "Main thread" #'(lambda () ,done))
(values-list ,result)))))
;; the actual crasher
(defun CRASH-ME ()
(in-main-thread ()
(dotimes (i 100)
(standard-alert-dialog "HELLO")
(ccl::process-run-function
'(:name "pointless")
#'(lambda ()
)))))
; (crash-me)
On Aug 23, 2012, at 1:17 PM, Paul Krueger wrote:
> FWIW, I recently upgraded to Mountain Lion and am NOT seeing any Cocoa-related problems with either the IDE or my own Cocoa interfaces and I've been editing lots of lisp files. But I am still on a pretty old version of CCL: 1.7-dev-r14583M-trunk (DarwinX8664)
>
> Paul
>
> On Aug 23, 2012, at 1:21 PM, Alexander Repenning <Alexander.Repenning at colorado.edu> wrote:
>
>> We are experiencing some errors, e.g., crashing CCL/Cocoa when just editing a file (with Hemlock). So far we have nothing completely reproducible but I wonder:
>>
>> - how others experienced new kinds of issues with CCL in OS X Mountain Lion (10.8.0)?
>> - is there a certain set of fixes introduced into CCL specifically addressing OS X Mountain Lion. In other words is there some, presumably recent, version of CCL that should be used to avoid trouble?
>>
>>
>> Alex
>>
>> Prof. Alexander Repenning
>>
>> University of Colorado
>> Computer Science Department
>> Boulder, CO 80309-430
>>
>> vCard: http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf
>>
>>
>> _______________________________________________
>> Openmcl-devel mailing list
>> Openmcl-devel at clozure.com
>> http://clozure.com/mailman/listinfo/openmcl-devel
>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
Prof. Alexander Repenning
University of Colorado
Computer Science Department
Boulder, CO 80309-430
vCard: http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20120823/9a5c3a9a/attachment.htm>
More information about the Openmcl-devel
mailing list