<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"><base href="x-msg://225/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">The question is: what does calling a NIL procedure do on the target? I suggest leave it for now as is for the targets that don’t do the check. What is the exception handling story for NT/x86? Why does it not work to use exception on NIL call for that target?<br>
<br><div><div>On Sep 14, 2012, at 4:41 AM, Jay K <<a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="hmmessage" style="font-size: 12pt; font-family: Calibri; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div dir="ltr"><span style="font-family: Calibri; ">The front end has a lot of internal options.</span><br><div><font face="Calibri"><br></font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri">Here is one: -check_procs.</font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri">It has one effect:</font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri">PROCEDURE Gen_Call_indirect (t: Type; cc: CallingConvention) =</font></div><div><font face="Calibri"> BEGIN</font></div><div><font face="Calibri"> IF Host.doProcChk THEN Check_nil (RuntimeError.BadMemoryReference); END;</font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri">Does it really make sense that we use this for NT/x86 and only NT/x86?</font></div><div><font face="Calibri">I kind of think we should use it never or use it always.</font></div><div><font face="Calibri">Or use it on all but NT/x86 -- where the exception handling mechanism is pretty well defined and easy to program. We use it on NT/x86 only (the opposite of my suggestion).</font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri">Using it always would bloat our code but trivially give us "safe" portable/consistent behavior.</font></div><div><font face="Calibri">The Modula-3 code would stop right away by calling portable code.</font></div><div><font face="Calibri">Instead of triggering whatever platform-specific signal/exception.</font></div><div><br></div><div><br></div><div><font face="Calibri">I happened on this code...looking at other stuff...obvious reasons if you look around...</font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri"> - Jay</font></div></div></div></blockquote></div><br></body></html>