[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 4ff342: CogVM source as per VMMaker.oscog-eem.2277

GitHub noreply at github.com
Sun Nov 12 18:58:02 UTC 2017


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

  Changed paths:
    M image/BuildSqueakSpurTrunkVMMakerImage.st
    M image/Slang Test Workspace.text
    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 nsspur64src/vm/interp.h
    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 nsspursrc/vm/interp.h
    M nsspurstacksrc/vm/gcc3x-interp.c
    M nsspurstacksrc/vm/interp.c
    M platforms/iOS/vm/OSX/sqSqueakOSXApplication.m
    M platforms/unix/vm/sqUnixMain.c
    M platforms/win32/vm/sqWin32Main.c
    M platforms/win32/vm/sqWin32Window.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 spur64src/vm/interp.h
    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 spursista64src/vm/interp.h
    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 spursistasrc/vm/interp.h
    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 spursrc/vm/interp.h
    M spurstack64src/vm/gcc3x-interp.c
    M spurstack64src/vm/interp.c
    M spurstacksrc/vm/gcc3x-interp.c
    M spurstacksrc/vm/interp.c

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

Spur:
Fix the growth of the remembered table during GC when there is not enough
memory in old space. Allocates an extra memory segment in that case. This
is very uncommon.

Please check the thread: "[Vm-dev] VM crash with message
'could not grow remembered set' " to reproduce the problem.

Provide a logging facility that uses the Printf package.  See
VMClass>>log:with:* for API.  See Slang changes below for support.

Use the logging facility to log scavenges. Each scavenge produces output such as
scavenge 31 eden bytes: 0x2cfaf00/47165184 past bytes: 0x17c618/1558040
	remembered set: 73 redzone: 98304 size: 131072
	tenure below 0x0/0 by age
	survivor bytes: 0x17dd90/1564048 remembered objects: 73 tenured: 0
Use VM command line arg -/-logscavenger to enable.
This facility is provisional.  I (eliot) plan to reorganize so that
accurate timing can be included.

Cogit:

Added primitiveStringReplace in the JIT with Spur, implementing only the quick
paths for byte objects and array-like objects.

FFI:
Fixed bug with large struct in FFI with SysV x86-64.  A typo in the Smalltalk
source meant structs were processed incorrectly, confusing pass-in-register and
pass-on-stack cases.

Slang:
Add the notion of a varargs selector (currently anything ending in printf:, such as f:printf:).  Transform sends of such selectors with a brace of arguments into a varargs call (i.e. include all the arguments in the brace).

When inlining, if the method being inlined is of the form
	guard ifTrue: [...]
and the argument assignments are side-effect free,
and the guard does not refer to the arguments,
push the argument assignments past the guard into the block so that they too are guarded.


  Commit: d478d6a686bff3734028f4a3c9897f877a513fff
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/d478d6a686bff3734028f4a3c9897f877a513fff
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2017-11-12 (Sun, 12 Nov 2017)

  Changed paths:
    M .appveyor.yml
    M platforms/unix/vm/sqUnixExternalPrims.c
    M platforms/unix/vm/sqUnixMain.c
    M platforms/unix/vm/sqUnixVMProfile.c
    A platforms/win32/plugins/FileAttributesPlugin/Makefile.plugin

  Log Message:
  -----------
  Merge branch 'Cog' of https://github.com/OpenSmalltalk/opensmalltalk-vm into Cog


  Commit: 496050b1ce25e957786aa9bfbbb94d2fd0796aa6
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/496050b1ce25e957786aa9bfbbb94d2fd0796aa6
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2017-11-12 (Sun, 12 Nov 2017)

  Changed paths:
    M platforms/iOS/vm/OSX/sqSqueakOSXApplication.m
    M platforms/unix/vm/sqUnixMain.c
    M platforms/win32/vm/sqWin32Main.c
    M platforms/win32/vm/sqWin32Window.c

  Log Message:
  -----------
  --logscavenger => --logscavenge


Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/b351fe0edeac...496050b1ce25


More information about the Vm-dev mailing list