[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 79e88e: CogVM source as per VMMaker.oscog-eem.3101

Eliot Miranda noreply at github.com
Mon Nov 15 05:31:05 UTC 2021


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: 79e88e6ee94372aac9634971854e875b8fde5ffe
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/79e88e6ee94372aac9634971854e875b8fde5ffe
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2021-11-14 (Sun, 14 Nov 2021)

  Changed paths:
    M src/plugins/B2DPlugin/B2DPlugin.c
    M src/plugins/BitBltPlugin/BitBltPlugin.c
    M src/plugins/CameraPlugin/CameraPlugin.c
    M src/plugins/LargeIntegers/LargeIntegers.c
    M src/plugins/ScratchPlugin/ScratchPlugin.c
    M src/plugins/ZipPlugin/ZipPlugin.c
    M src/spur32.cog.lowcode/cogit.h
    M src/spur32.cog.lowcode/cogitARMv5.c
    M src/spur32.cog.lowcode/cogitIA32.c
    M src/spur32.cog.lowcode/cointerp.c
    M src/spur32.cog.lowcode/cointerp.h
    M src/spur32.cog.lowcode/gcc3x-cointerp.c
    M src/spur32.cog/cogit.h
    M src/spur32.cog/cogitARMv5.c
    M src/spur32.cog/cogitIA32.c
    M src/spur32.cog/cointerp.c
    M src/spur32.cog/cointerp.h
    M src/spur32.cog/cointerpmt.c
    M src/spur32.cog/cointerpmt.h
    M src/spur32.cog/gcc3x-cointerp.c
    M src/spur32.cog/gcc3x-cointerpmt.c
    M src/spur32.sista/cogit.h
    M src/spur32.sista/cogitARMv5.c
    M src/spur32.sista/cogitIA32.c
    M src/spur32.sista/cointerp.c
    M src/spur32.sista/cointerp.h
    M src/spur32.sista/gcc3x-cointerp.c
    M src/spur32.stack.lowcode/gcc3x-interp.c
    M src/spur32.stack.lowcode/interp.c
    M src/spur32.stack/gcc3x-interp.c
    M src/spur32.stack/interp.c
    M src/spur32.stack/validImage.c
    M src/spur64.cog.lowcode/cogit.h
    M src/spur64.cog.lowcode/cogitARMv8.c
    M src/spur64.cog.lowcode/cogitX64SysV.c
    M src/spur64.cog.lowcode/cogitX64WIN64.c
    M src/spur64.cog.lowcode/cointerp.c
    M src/spur64.cog.lowcode/cointerp.h
    M src/spur64.cog.lowcode/gcc3x-cointerp.c
    M src/spur64.cog/cogit.h
    M src/spur64.cog/cogitARMv8.c
    M src/spur64.cog/cogitX64SysV.c
    M src/spur64.cog/cogitX64WIN64.c
    M src/spur64.cog/cointerp.c
    M src/spur64.cog/cointerp.h
    M src/spur64.cog/cointerpmt.c
    M src/spur64.cog/cointerpmt.h
    M src/spur64.cog/gcc3x-cointerp.c
    M src/spur64.cog/gcc3x-cointerpmt.c
    M src/spur64.sista/cogit.h
    M src/spur64.sista/cogitARMv8.c
    M src/spur64.sista/cogitX64SysV.c
    M src/spur64.sista/cogitX64WIN64.c
    M src/spur64.sista/cointerp.c
    M src/spur64.sista/cointerp.h
    M src/spur64.sista/gcc3x-cointerp.c
    M src/spur64.stack.lowcode/gcc3x-interp.c
    M src/spur64.stack.lowcode/interp.c
    M src/spur64.stack/gcc3x-interp.c
    M src/spur64.stack/interp.c
    M src/spur64.stack/validImage.c
    M src/v3.cog/cogit.h
    M src/v3.cog/cogitARMv5.c
    M src/v3.cog/cogitIA32.c
    M src/v3.cog/cointerp.c
    M src/v3.cog/cointerp.h
    M src/v3.cog/gcc3x-cointerp.c
    M src/v3.stack/gcc3x-interp.c
    M src/v3.stack/interp.c

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

Interpreter/Simulator:
Revise and refactor frame printing to allow the simulators to prefix frame
addresses with an indication of the various frame/stack pointers (variables,
processor registers).  Extract the printing of the frame address to
printFrameAddress: there-by eliminating quite a few simulator-specific versions
of the frame field printers.

Use %p to print pointers, using extensions to the Printf package, '%P' to print
with the 16r prefix, and '%WP' to print with 16r prefix in a width dependent on
the word size.

Realise that %Ns prints a left-padded string in a width of N characters to
eliminbate the torturous %.*s%s forms using spaces.

Since %p always requires a pointer, cast the arguments to pringHex: et al to
void pointers, and hence get rid of printHexPtr:.

Fix a slip in ObjectMemory>>#printNonPointerDataOf:on:.

Interpreter printing: must use %s to print object strings since they may
contain %'s.

Spur Slang: fix a bug in computing accessor depth chains.  If a primitive
contains different assignments to the same variable (e.g. a primitive which has
different forms for var args such as PSharePlugin>>primitivePostKeyboardEvent
as of 10/26/2021) then the simple test would consider an assignment to the
same variable as an extension of the chain.




More information about the Vm-dev mailing list