<div dir="ltr"><div><div>Hi Clement,<br></div>currently primitiveFullClosureValueNoContextSwitch is not generated unless:<br>    &lt;option: #SistaV1BytecodeSet&gt;<br><br></div>Should we remove the option and always generate the primitive?<br><div class="gmail_extra"><br><div class="gmail_quote">2016-04-11 20:02 GMT+02:00  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
ClementBera uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-cb.1795.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/VMMaker/VMMaker.oscog-cb.1795.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker.oscog-cb.1795<br>
Author: cb<br>
Time: 11 April 2016, 11:01:37.99209 am<br>
UUID: 7e723234-b8d0-46a7-8e2c-180da3482a3b<br>
Ancestors: VMMaker.oscog-cb.1794<br>
<br>
Fixed minor things to make slang compilation happy.<br>
<br>
=============== Diff against VMMaker.oscog-cb.1794 ===============<br>
<br>
Item was changed:<br>
  ----- Method: Cogit&gt;&gt;computeFullBlockEntryOffsets (in category &#39;initialization&#39;) -----<br>
  computeFullBlockEntryOffsets<br>
        &quot;Generate the entry code for a method to determine cmEntryOffset and cmNoCheckEntryOffset.  We<br>
         need cmNoCheckEntryOffset up front to be able to generate the map starting from cmNoCheckEntryOffset&quot;<br>
        &quot;stack allocate the various collections so that they<br>
         are effectively garbage collected on return.&quot;<br>
-       &lt;var: &#39;sendMissCall&#39; type: #&#39;AbstractInstruction *&#39;&gt;<br>
        self allocateOpcodes: 24 bytecodes: 0.<br>
        methodOrBlockNumArgs := 0.<br>
        self compileFullBlockEntry.<br>
        self computeMaximumSizes.<br>
        self generateInstructionsAt: methodZoneBase + (self sizeof: CogMethod).<br>
        cbEntryOffset := fullBlockEntry address - methodZoneBase.<br>
        cbNoSwitchEntryOffset := fullBlockNoContextSwitchEntry address - methodZoneBase!<br>
<br>
Item was changed:<br>
  ----- Method: SimpleStackBasedCogit class&gt;&gt;initializePrimitiveTableForSqueak (in category &#39;class initialization&#39;) -----<br>
  initializePrimitiveTableForSqueak<br>
        &quot;Initialize the table of primitive generators.  This does not include normal primitives implemented in the coInterpreter.<br>
         N.B. primitives that don&#39;t have an explicit arg count (the integer following the generator) may be variadic.&quot;<br>
        &quot;SimpleStackBasedCogit initializePrimitiveTableForSqueak&quot;<br>
        MaxCompiledPrimitiveIndex := self objectRepresentationClass wordSize = 8<br>
                                                                                ifTrue: [555]<br>
                                                                                ifFalse: [222].<br>
        primitiveTable := CArrayAccessor on: (Array new: MaxCompiledPrimitiveIndex + 1).<br>
        self table: primitiveTable from:<br>
        #(      &quot;Integer Primitives (0-19)&quot;<br></blockquote><div><br></div><div>SNIP ... <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                (207 genPrimitiveFullClosureValue) &quot;value[:value:value:value:] et al&quot;<br>
                &quot;(208 genPrimitiveFullClosureValueWithArgs)&quot; &quot;valueWithArguments:&quot;<br>
+               (209 genPrimitiveFullClosureValue) &quot;valueNoContextSwitch[:value:] et al&quot;<br>
-               (209 genPrimitiveFullClosureValueNoContextSwitch) &quot;valueNoContextSwitch[:value:] et al&quot;<br>
<br></blockquote><div><br></div><div>SNIP...</div></div><br></div></div>