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

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

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

GitHub
 
  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: 4ff34235c24ea2fd690287f96a73834e744ad6c9
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/4ff34235c24ea2fd690287f96a73834e744ad6c9
  Author: Eliot Miranda <[hidden email]>
  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 <[hidden email]>
  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 <[hidden email]>
  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