[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 1f0a7d: CogVM source as per VMMaker.oscog-eem.2359

GitHub noreply at github.com
Fri Mar 16 01:09:49 UTC 2018


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: 1f0a7da9d4e8dcf4cdfac07014decdadac6937bb
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/1f0a7da9d4e8dcf4cdfac07014decdadac6937bb
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2018-03-15 (Thu, 15 Mar 2018)

  Changed paths:
    M nsspur64src/vm/cogit.h
    M nsspur64src/vm/cogitX64SysV.c
    M nsspur64src/vm/cogitX64WIN64.c
    M nsspur64src/vm/cointerp.c
    M nsspur64src/vm/cointerp.h
    M nsspur64src/vm/gcc3x-cointerp.c
    M nsspursrc/vm/cogit.h
    M nsspursrc/vm/cogitARMv5.c
    M nsspursrc/vm/cogitIA32.c
    M nsspursrc/vm/cogitMIPSEL.c
    M nsspursrc/vm/cointerp.c
    M nsspursrc/vm/cointerp.h
    M nsspursrc/vm/gcc3x-cointerp.c
    M nsspurstack64src/vm/gcc3x-interp.c
    M nsspurstack64src/vm/interp.c
    M nsspurstacksrc/vm/gcc3x-interp.c
    M nsspurstacksrc/vm/interp.c
    M spur64src/vm/cogit.h
    M spur64src/vm/cogitX64SysV.c
    M spur64src/vm/cogitX64WIN64.c
    M spur64src/vm/cointerp.c
    M spur64src/vm/cointerp.h
    M spur64src/vm/gcc3x-cointerp.c
    M spurlowcode64src/vm/cogit.h
    M spurlowcode64src/vm/cogitX64SysV.c
    M spurlowcode64src/vm/cogitX64WIN64.c
    M spurlowcode64src/vm/cointerp.c
    M spurlowcode64src/vm/cointerp.h
    M spurlowcode64src/vm/gcc3x-cointerp.c
    M spurlowcodesrc/vm/cogit.h
    M spurlowcodesrc/vm/cogitARMv5.c
    M spurlowcodesrc/vm/cogitIA32.c
    M spurlowcodesrc/vm/cogitMIPSEL.c
    M spurlowcodesrc/vm/cointerp.c
    M spurlowcodesrc/vm/cointerp.h
    M spurlowcodesrc/vm/gcc3x-cointerp.c
    M spurlowcodestack64src/vm/gcc3x-interp.c
    M spurlowcodestack64src/vm/interp.c
    M spurlowcodestacksrc/vm/gcc3x-interp.c
    M spurlowcodestacksrc/vm/interp.c
    M spursista64src/vm/cogit.h
    M spursista64src/vm/cogitX64SysV.c
    M spursista64src/vm/cogitX64WIN64.c
    M spursista64src/vm/cointerp.c
    M spursista64src/vm/cointerp.h
    M spursista64src/vm/gcc3x-cointerp.c
    M spursistasrc/vm/cogit.h
    M spursistasrc/vm/cogitARMv5.c
    M spursistasrc/vm/cogitIA32.c
    M spursistasrc/vm/cogitMIPSEL.c
    M spursistasrc/vm/cointerp.c
    M spursistasrc/vm/cointerp.h
    M spursistasrc/vm/gcc3x-cointerp.c
    M spursrc/vm/cogit.h
    M spursrc/vm/cogitARMv5.c
    M spursrc/vm/cogitIA32.c
    M spursrc/vm/cogitMIPSEL.c
    M spursrc/vm/cointerp.c
    M spursrc/vm/cointerp.h
    M spursrc/vm/gcc3x-cointerp.c
    M spurstack64src/vm/gcc3x-interp.c
    M spurstack64src/vm/interp.c
    M spurstacksrc/vm/gcc3x-interp.c
    M spurstacksrc/vm/interp.c
    M src/plugins/FilePlugin/FilePlugin.c
    M src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
    M src/plugins/SerialPlugin/SerialPlugin.c
    M src/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c
    M src/vm/cogit.h
    M src/vm/cogitARMv5.c
    M src/vm/cogitIA32.c
    M src/vm/cogitMIPSEL.c
    M src/vm/cointerp.c
    M src/vm/cointerp.h
    M src/vm/cointerpmt.c
    M src/vm/cointerpmt.h
    M src/vm/gcc3x-cointerp.c
    M src/vm/gcc3x-cointerpmt.c
    M stacksrc/vm/gcc3x-interp.c
    M stacksrc/vm/interp.c

  Log Message:
  -----------
  CogVM source as per VMMaker.oscog-eem.2359

Cogits:
Fix regression introduced in VMMaker.oscog-eem.2333 or thereabouts when improving comoilation breakpoint.  maybeSelectorOfMethod can answer nil so a guard is needed.

Fix ceSend:aboveClassBinding:to:numArgs:, which forgot to indirect through the binding before sending ceSend:above:to:numArgs:.

Sista Cogit:
This commit:
- extends the Sista instruction set (new conditional jumps on mutability, age, backjump without interrupt points, new inlined arithmetics, inlined allocation up to 65k supported, possibleRoot, etc.) both in the interpreter and the JIT
- all the interpreter version are now filled with many assertions, so it is now possible to compile a StackVM with SistaVM option and debug easily the optimized code using the assertions.
- refactors a bit all inline primitives (Since now there is many)
- reworked a bit the bytecode set so all bytecodes except traps, mappedInlinedPrimitive and callPrimitive are normal Smalltalk bytecodes while the 3 bytecodes mentioned are different in the Sista VM. That way it is easier to know what to implement to support the full image without having to implement the whole sista extensions.

Decreases by 1 the number of instructions for byte reads on constants.

Plugins:
Fix several (ancient) issues with the MiscPrimitivePlugin primitives, identified by Levente.
Try and make all failures supply an error code.

Tidy up FilePlugin error checking and use of symbols for declaring variable types in:
- #fileValueOf:
- #pointerFrom:
- #primitiveConnectToFile
- #primitiveConnectToFileDescriptor

Restored SerialPlugin's *byName* primitives on non-PharoVM VMs.




More information about the Vm-dev mailing list