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

Eliot Miranda eliot.miranda at gmail.com
Tue Mar 14 03:15:09 UTC 2017


Anybody building their own VMs may need to delete the xabicc.deps files
from the reps directories in the mac and windows builds since some files in
platforms/Cross/plugins/IA32ABI have changed name, reflected in which
files xabicc.c pulls in.

On Mon, Mar 13, 2017 at 7:59 PM, GitHub <noreply at github.com> wrote:

>
>   Branch: refs/heads/Cog
>   Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
>   Commit: b7cd83334d2eb417c73439e96d54fe46a93fbf54
>       https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/
> b7cd83334d2eb417c73439e96d54fe46a93fbf54
>   Author: Eliot Miranda <eliot.miranda at gmail.com>
>   Date:   2017-03-13 (Mon, 13 Mar 2017)
>
>   Changed paths:
>     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 nsspur64src/vm/vmCallback.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/vmCallback.h
>     M nsspurstack64src/vm/gcc3x-interp.c
>     M nsspurstack64src/vm/interp.c
>     M nsspurstack64src/vm/vmCallback.h
>     M nsspurstacksrc/vm/gcc3x-interp.c
>     M nsspurstacksrc/vm/interp.c
>     M nsspurstacksrc/vm/vmCallback.h
>     M platforms/Cross/vm/sqVirtualMachine.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 spur64src/vm/vmCallback.h
>     M spurlowcode64src/vm/cogit.h
>     M spurlowcode64src/vm/cogitX64.c
>     M spurlowcode64src/vm/cointerp.c
>     M spurlowcode64src/vm/cointerp.h
>     M spurlowcode64src/vm/gcc3x-cointerp.c
>     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/vmCallback.h
>     M spurlowcodestack64src/vm/gcc3x-interp.c
>     M spurlowcodestack64src/vm/interp.c
>     M spurlowcodestack64src/vm/vmCallback.h
>     M spurlowcodestacksrc/vm/gcc3x-interp.c
>     M spurlowcodestacksrc/vm/interp.c
>     M spurlowcodestacksrc/vm/vmCallback.h
>     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 spursista64src/vm/vmCallback.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/vmCallback.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/vmCallback.h
>     M spurstack64src/vm/gcc3x-interp.c
>     M spurstack64src/vm/interp.c
>     M spurstack64src/vm/vmCallback.h
>     M spurstacksrc/vm/gcc3x-interp.c
>     M spurstacksrc/vm/interp.c
>     M spurstacksrc/vm/vmCallback.h
>     M src/plugins/IA32ABI/IA32ABI.c
>     M src/plugins/ZipPlugin/ZipPlugin.c
>     M src/vm/cogit.h
>     M src/vm/cogitARMv5.c
>     M src/vm/cogitIA32.c
>     M src/vm/cogitMIPSEL.c
>     M src/vm/cogmethod.h
>     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 src/vm/vmCallback.h
>     M stacksrc/vm/gcc3x-interp.c
>     M stacksrc/vm/interp.c
>     M stacksrc/vm/vmCallback.h
>
>   Log Message:
>   -----------
>   CogVM source as per VMMaker.oscog-eem.2151
>
> Stack/CoInterpreter:
> Refactor the assignments to the stack pointers from a page's head pointers
> into setStackPointersFromPage:.
> Remove calls to addNewMethodToCache: from clients of
> lookupOrdinaryNoMNUEtcInClass: which does this anyway.
>
> Stack Interpreter Alien Callbacks:
> Implement ownVM: and disownVM: for the non-threaded VM in StackInterpreter,
> removing it from sqVirtualMachine.c. Arrange that
> sendInvokeCallbackContext:
> & returnAs:ThroughCallback:Context: along with ownVM: and disownVM:
> conspire to save and restore newMethod, argumentCount and
> primitiveFunctionPointer around a callback. The VM depends on argumentCount
> being correct to cut-back the correct number of arguments on primitive
> return.  If a primitive that invokes a callback fails after invoking a
> callback (a bad idea, but s**t happens during development) then newMethod
> is required to activate the right faling method, and Spur expects
> primitiveFunctionPointer to be valid, so asserts will fail misleadingly if
> not.
> Add three variables to help debug callbacks that are updated only in the
> assert and debug VMs. debugCallbackPath has bits set in it that describe
> the specific path taken through returnAs:ThroughCallback:Context:, while
> debugCallbackReturns debugCallbackInvokes merely count invocations and
> returns, and can be used for breakponts if reproducible cases arise (such
> as the recent Pharo 6 VGTigerDemo runDemo issues with copyBits using
> surface funciton callbacks.
>
> 64-bit Spur:
> Fix variable declaration in primitiveSignalAtMilliseconds to prevent
> arithmetic overflow in calculating nextWakeupUsecs on millisecond clock
> rollover.  Addresses a problem reported for 32 bit images converted to 64
> bit (e.g. Cuis port to Spur64) for which delay timing has not yet been
> updated to use microsecond primitives.  Prior to this change, the following
> would lock a 64 bit Spur image:
>         s := Semaphore new.
>         Delay primSignal: s atMilliseconds: Time primMillisecondClock - 10.
>         s wait.
>
> Sista
> Fixed a bug where directed super send byte was leaking numExtB, leading to
> the next instruction with ExtB being incorrectly interpreted
>
> Spur64BitMemoryManager must export fetchClassTagOf:.
>
> Cogit:
> Use unsigned int as the type of 32-bit instructions (ARM & MIPS).  Reduce
> code on the class side in defining the CogAbstractInstruction typedefs.
> Document that the limit on the Cogit's alloca more than ensures that the
> number of abstract instructions and bytecode fixups fits within 16 bits.
>
> Rename blockPass, saveForBlockCompile et al to compilationPass,
> saveForRecompile etc.  This so that RegisterAllocatingCogit can recompile
> when discovering a loop that needs a merge so that the register set
> computed at the end of a loop can be installed at the head.  Refactor
> initializeFixupAt: into it & initializeFixup: to support RAC's
> recompilation.
> Add some inlines to eliminate some thin intermediate functions.
> Add support for adding #ifdef's to struct defs and use it to avoid
> simNativeStackPtr and simNativeStackSize in non-Lowcode VMs.
>
> Lowcode:
> Refactoring the register allocation for the Lowcode instructions. The new
> register allocators are not yet tested because an error on the previous
> does not allow me to generate the sources for testing the refactoring.
>
> Surface Plugin:
> Allow defaulting the getSurfaceFormat, lockSurface, unlockSurface and
> showSurface functions to 0 to save time if a subset of these are callbacks,
> callbacks not being the fastest function invocations on the planet.
>
> IA32ABIPlugin support files.
> Rename abi support files to eliminate ia32 on non-ai32 platforms.
>
> Slang:
> Fix bug with type inference for #-.  The difference between two unsigned
> values is now interpreted as signed.
>
> Fix bug with inferring return types of methods that return unsigned typed
> variables and positive integer constants.  Don't interpret the type of an
> integer constant as #sqInt if the method also returns an unsigned.  So
> defer considering the non-negative integer return values unless no other
> return type information can be found.
>
>
>   Commit: 34460370a1fa9184aac9bcb0e56c1da09e84fcd4
>       https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/
> 34460370a1fa9184aac9bcb0e56c1da09e84fcd4
>   Author: Eliot Miranda <eliot.miranda at gmail.com>
>   Date:   2017-03-13 (Mon, 13 Mar 2017)
>
>   Changed paths:
>     M .appveyor.yml
>     M platforms/iOS/plugins/CameraPlugin/AVFoundationVideoGrabber.m
>
>   Log Message:
>   -----------
>   Merge branch 'Cog' of http://www.github.com/opensmalltalk/vm into Cog
>
>
> Compare: https://github.com/OpenSmalltalk/opensmalltalk-
> vm/compare/bfe3069a8710...34460370a1fa
>



-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20170313/6eb710eb/attachment-0001.html>


More information about the Vm-dev mailing list