[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 007667: CogVM source as per VMMaker.oscog-eem.2134

GitHub noreply at github.com
Sat Feb 18 15:46:32 UTC 2017


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: 0076679f0aa45970e6774f69d84f7e81d548bc40
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/0076679f0aa45970e6774f69d84f7e81d548bc40
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2017-02-18 (Sat, 18 Feb 2017)

  Changed paths:
    M nsspur64src/vm/cogit.h
    M nsspur64src/vm/cogitX64.c
    M nsspur64src/vm/cogmethod.h
    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/cogmethod.h
    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/cogitX64.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/cogitX64.c
    M spurlowcode64src/vm/cogmethod.h
    M spurlowcode64src/vm/cointerp.c
    M spurlowcode64src/vm/cointerp.h
    M spurlowcode64src/vm/gcc3x-cointerp.c
    M spurlowcode64src/vm/interp.h
    M spurlowcode64src/vm/vmCallback.h
    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 spurlowcodesrc/vm/interp.h
    M spurlowcodestack64src/vm/gcc3x-interp.c
    M spurlowcodestack64src/vm/interp.c
    M spurlowcodestack64src/vm/interp.h
    M spurlowcodestack64src/vm/vmCallback.h
    M spurlowcodestacksrc/vm/gcc3x-interp.c
    M spurlowcodestacksrc/vm/interp.c
    M spursista64src/vm/cogit.h
    M spursista64src/vm/cogitX64.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/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.2134

Move the SpurPlanningCompactor to tip.  It is now ready for prime time.
SpurPlanningCompactor is a three-finger algorithm that slides objects down to
the first finger, which points at the first free object, from the first
unpinned, marked object, while stepping around intervening pinned objects
pointed at by the third finger.

StackInterpreter:
Fix serious and ancient bug with stack checking and event checking.  The event
check piggy backs off the stack check, but the old code would not handle a stack
overflow if there was an overflow and an event check at one and the same time,
allowing frames to grow down the stack page in cases where there are lots of
events (such as profiling).

Fix assert fails in Spur due to failing perform primitives not restoring the
function pointer and argumentCount correctly.

Cogit:
Fix checking the lists of cog methods (openPICList and unpairedMethodList) when
compacting the method zone.
Fix a bug with freeing a method that might have either a newxtMethod or an IRC.
Must not free CogMethods.
Fix a couple of C compilation warnings.Have printCogMethods print totals of the
number of methods & PICs in the code zone.
Fix a slip in printCogMethodsWithPrimitive:.

Spur:
provide isUnmarked: for debugging with printOopsSuchThat:.
remember the first unmarked object found by allObjectsUnmarked in the bogon var,
and keep hold on to it via printBogons so it is not deleted by the C optimizer.




More information about the Vm-dev mailing list