<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Here is how to reproduce the problem:<div class=""><br class=""></div><div class=""><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">Clozure Common Lisp Version 1.12.1 (v1.12.1-10-gca107b94) DarwinX8664</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">? (in-package :ccl)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">#<Package "CCL"></span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">? (defun make-wrapper-obsolete1 (wrapper)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">  (make-wrapper-obsolete wrapper)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">  (print "~&CCL is still running, but the next call to BREAK will crash...")</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">  (terpri)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">  (finish-output)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">  (break "This call will crash")</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">  wrapper)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">MAKE-WRAPPER-OBSOLETE1</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">? (defmethod make-instances-obsolete ((class standard-class))</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">  (let ((wrapper (%class-own-wrapper class)))</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">    (when wrapper</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">      (setf (%class-own-wrapper class) nil)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">      (make-wrapper-obsolete1 wrapper)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">      ))</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">  class)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">#<STANDARD-METHOD MAKE-INSTANCES-OBSOLETE (STANDARD-CLASS)></span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">? (update-class (find-class 'standard-class) t)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""></span><br class=""></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">"~&CCL is still running, but the next call to BREAK will crash..." </span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">rosetta error: unexpectedly need to EmulateForward on a synchronous exception x86_rip=0x52776560442047 arm_pc=0x4302153052 num_insts=3 inst_index=2 x86 instruction bytes: 0x10036366705108273237 0x85581580638679157</span></div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Feb 16, 2024, at 3:01 PM, Ron Garret <<a href="mailto:ron@flownet.com" class="">ron@flownet.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I've traced the problem down to CCL::MAKE-WRAPPER-OBSOLETE.  If you redefine that function so that it does nothing, then FINALIZE-INHERITANCE no longer crashes.  Of course, that is almost certainly not an actual fix, but it narrows the problem down to a fairly small bit of code.<div class=""><br class=""></div><div class="">More info: CCL::MAKE-WRAPPER-OBSOLETE does not actually produce the crash, it merely sets it up.  The crash itself happens after CCL::MAKE-WRAPPER-OBSOLETE returns.  You can force a crash by putting in a call to BREAK after CCL::MAKE-WRAPPER-OBSOLETE returns.</div><div class=""><br class=""></div><div class="">Maybe this is enough info for someone with more x86-assembler fu than me to figure out what is actually going on.  I think this might be worth pursuing because it's not out of the question that this is the bug that is causing the intermittent crashes previously observed.  If that is the case, then fixing this could make CCL reliable under Rosetta2, and that would be a Really Good Thing (tm).</div><div class=""><br class=""></div><div class="">rg</div><div class=""><br class=""><div class=""><div class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On Feb 16, 2024, at 12:27 PM, Ron Garret <<a href="mailto:ron@flownet.com" class="">ron@flownet.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">This is reliably reproducible running x86_64 CCL under Rosetta2:<div class=""><br class=""></div><div class=""><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">ron@RMBA1 ~ % ~/devel/ccl/dx86cl64</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">Clozure Common Lisp Version 1.12.1 (v1.12.1-10-gca107b94) DarwinX8664</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">? (finalize-inheritance (find-class 'standard-class))</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">rosetta error: unexpectedly need to EmulateForward on a synchronous exception x86_rip=0x52776560442047 arm_pc=0x4303779228 num_insts=3 inst_index=2 x86 instruction bytes: 0x10036366705108273237 0x85581580638679157</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">zsh: trace trap  ~/devel/ccl/dx86cl64</span></div></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div class="">This call never crashes on a real x86, but crashes 100% of the time under Rosetta2.  AFAIK this is the first reliably reproducible discrepancy between the behavior of Rosetta2 and a real x86.</div><div class=""><br class=""></div><div class="">rg</div><div class=""><br class=""></div></div></div></blockquote></div><br class=""></div></div></div></div></div></blockquote></div><br class=""></div></div></body></html>