Branch: refs/heads/Cog Home: https://github.com/OpenSmalltalk/opensmalltalk-vm Commit: b7cd83334d2eb417c73439e96d54fe46a93fbf54 https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/b7cd83334d2eb417c73439e96d54fe46a93fbf54 Author: Eliot Miranda <[hidden email]> 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 <[hidden email]> 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 |
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 <[hidden email]> wrote:
_,,,^..^,,,_ best, Eliot |
Free forum by Nabble | Edit this page |