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

GitHub noreply at github.com
Wed Sep 7 12:51:48 UTC 2016


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: bce1958136cca35f193b76804aa9957abd6a3e64
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/bce1958136cca35f193b76804aa9957abd6a3e64
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2016-09-07 (Wed, 07 Sep 2016)

  Changed paths:
    A build.macos32x86/pharo.stack.spur/Makefile
    A build.macos32x86/pharo.stack.spur/mvm
    A build.macos32x86/pharo.stack.spur/plugins.ext
    A build.macos32x86/pharo.stack.spur/plugins.int
    M nsspur64src/vm/cogit.h
    M nsspur64src/vm/cogitX64.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/cogitX64.c
    M spur64src/vm/cointerp.c
    M spur64src/vm/cointerp.h
    M spur64src/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.1948

General:
Fix off-by-one error in an assert

Fixes related to Immutability / read-only objects:
- weak structures can't be mmutable
- primitiveStringReplace fails if the receier is immutable only if it attempts to mutate something.

SistaBytecodeSet/FullBlocks:
Re-enabled full block compilation to machine code.

Fix marryFrame:SP:copyTemps: for full blocks; the closureOrNil field must
still be set.  Add an assert to primitiveFindNextUnwindContext that caught a
side-effect of the bug.

Added assertion ensuring that when a method is jitted, the compiled code
jitted is a compiled method and when a block is jitted, the compiled code
jitted is a compiled block.

Improve stack backtrace printing for full blocks.

Disabled 2 paths compiltion on full blocks.

Find the home of a full block for context printing. Fix pc mapping for full
block closures (mustMapMachineCodePC:context:).

In the Cogit change inBlock to be an integer value, 0 for methods, 1 for
vannilla blocks and 2 for full blocks (to reuce the amount of refactoring
now and when removing vanilla block support some time in the future).

Add trampolines for creating small and large full block contexts in the Spur
object representation.

Get frameless full block prolog generation more correct than it was ;-)

Added a deny to ensure the block can be frameless. Works both for blocks and
full blocks.




More information about the Vm-dev mailing list