Hi All,<div><br></div><div>    I just read Anthony Hallinan&#39;s most informative comment to SmartSyntaxPlugin class&gt;&gt;simulatorClass which says that</div><div>        &quot;By default SmartSyntaxInterpreterPlugin answers nil because methods in these plugins</div>
<div>         are intended to be embedded in code that pushes and pops from the stack and therefore</div><div>         cannot be run independently.  This wrapper code is generated when translated to C.  But,</div><div>         unfortunately, this code is missing during simulation.  There was an attempt to simulate this,</div>
<div>         but only the prologue code (getting arg from the stack) is simulated (see simulatePrologInContext:).</div><div>        The epologue code (popping args and pushing result) is not.  So I am making this nil until this can be fixed.</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>Also, beware that primitive methods that take no args exactly match their primitive name (faking out</div><div>        InterpreterSimulator&gt;&gt;callExternalPrimitive:).  They should only be called from within wrapper code that</div>
<div>        simulates the prologue and epilogue.  Primitive method that take args don&#39;t have this accidental matching</div><div>        problem since their names contain colons while their primitive names do not. - ajh 8/21/2002&quot;</div>
<div><br></div><div>Strikes me that what needs to be done is to throw away the tricky implementation of Object&gt;&gt;#primitive:parameters:receiver:, replacing it by a simple direct implementation, and putting a wrapper around each SmartSyntaxPlugin primitive as its installed whose job it is to check for success and if so, cut back the stack and convert the result.  Anyone interested who&#39;s not also hugely busy?</div>
<div><br></div><div>If so, focus on making LargeIntegersPlugin work using 22 factorial printString as a test case.</div><div><br></div><div>best</div><div>Eliot</div>