Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2903.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2903
Author: eem
Time: 30 November 2020, 9:59:01.198766 am
UUID: 65fd7c54-a607-4603-b947-22a80ffeeb85
Ancestors: VMMaker.oscog-eem.2902
...and reenterInterpreter is no longer an inst var of CogVMThread
=============== Diff against VMMaker.oscog-eem.2902 ===============
Item was changed:
----- Method: CogVMThread class>>instVarNamesAndTypesForTranslationDo: (in category 'translation') -----
instVarNamesAndTypesForTranslationDo: aBinaryBlock
"enumerate aBinaryBlock with the names and C type strings for the inst vars to include in a CogVMThread struct."
self allInstVarNames do:
[:ivn|
aBinaryBlock
value: ivn
value: (ivn caseOf: {
['awolProcesses'] -> [{#sqInt. '[', CogThreadManager awolProcessesIncrement printString, ']'}].
['cStackPointer'] -> [#usqIntptr_t].
['cFramePointer'] -> [#usqIntptr_t].
['primitiveFunctionPointer'] -> [#('void (*' ')()')].
['osSemaphore'] -> ['sqOSSemaphore'].
+ ['osThread'] -> ['sqOSThread'] }
- ['osThread'] -> ['sqOSThread'].
- ['reenterInterpreter'] -> ['jmp_buf'] }
otherwise:
[#sqInt])]!
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 3558c8bbca17e7c70e990d4efa1412743a7e589e
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/3558c8bbca17e7c70e…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2020-11-30 (Mon, 30 Nov 2020)
Changed paths:
M platforms/Cross/vm/sq.h
M platforms/unix/vm/sqUnixMain.c
M platforms/unix/vm/sqUnixThreads.c
M platforms/win32/vm/sqWin32Main.c
M spur64src/vm/cogit.h
M spur64src/vm/cogitARMv8.c
M spur64src/vm/cogitX64SysV.c
M spur64src/vm/cogitX64WIN64.c
M spur64src/vm/cointerpmt.c
M spur64src/vm/cointerpmt.h
M spur64src/vm/gcc3x-cointerpmt.c
M spursrc/vm/cogit.h
M spursrc/vm/cogitARMv5.c
M spursrc/vm/cogitIA32.c
M spursrc/vm/cogitMIPSEL.c
M spursrc/vm/cointerpmt.c
M spursrc/vm/cointerpmt.h
M spursrc/vm/gcc3x-cointerpmt.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.2901
MTVM: Eliminate some compiler warnings. Fix a slip in the assert in
cogMethodContainng:
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2901.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2901
Author: eem
Time: 28 November 2020, 10:54:27.351264 pm
UUID: 62f5de98-d59e-4cdc-b4a5-1c0c2d987c71
Ancestors: VMMaker.oscog-eem.2900
MTVM: Eliminate some compiler warnings. Fix a slip in the assert in cogMethodContainng:
In simulation get register state correct on proceeding from ioWaitOnOSSemaphore:
=============== Diff against VMMaker.oscog-eem.2900 ===============
Item was changed:
----- Method: CoInterpreter>>markActiveMethodsAndReferents (in category 'cog jit support') -----
markActiveMethodsAndReferents
<api>
"If instructionPointer is referring to machine code, as it will be if a primitive is in progress
(see isCodeCompactingPrimitiveIndex:) it may refer to a method, and if so that method
must be retained."
instructionPointer ~= 0 ifTrue:
[(cogit cogMethodContaining: instructionPointer) ifNotNil:
[:primCogMethod|
+ cogit markMethodAndReferents: (self cCoerceSimple: primCogMethod to: #'CogBlockMethod *')]].
- cogit markMethodAndReferents: primCogMethod]].
0 to: numStackPages - 1 do:
[:i| | thePage |
thePage := stackPages stackPageAt: i.
(stackPages isFree: thePage) ifFalse:
[self markCogMethodsAndReferentsOnPage: thePage]]!
Item was changed:
----- Method: CoInterpreterMT>>primitiveRelinquishProcessor (in category 'I/O primitives') -----
primitiveRelinquishProcessor
"Relinquish the processor for up to the given number of microseconds.
The exact behavior of this primitive is platform dependent.
Override to check for waiting threads."
| microSecs threadIndexAndFlags currentCStackPointer currentCFramePointer |
+ <var: #currentCStackPointer type: #'volatile usqIntptr_t'>
+ <var: #currentCFramePointer type: #'volatile usqIntptr_t'>
- <var: #currentCStackPointer type: #'void *'>
- <var: #currentCFramePointer type: #'void *'>
microSecs := self stackTop.
(objectMemory isIntegerObject: microSecs) ifFalse:
[^self primitiveFail].
self assert: (objectMemory fetchPointer: MyListIndex ofObject: self activeProcess) = objectMemory nilObject.
self assert: relinquishing not.
"DO NOT allow relinquishing the processor while we are profiling since this
may skew the time base for our measures (it may reduce processor speed etc).
Instead we go full speed, therefore measuring the precise time we spend in the
inner idle loop as a busy loop."
nextProfileTick = 0 ifTrue:
"Presumably we have nothing to do; this primitive is typically called from the
background process. So we should /not/ try and activate any threads in the
pool; they will waste cycles finding there is no runnable process, and will
cause a VM abort if no runnable process is found. But we /do/ want to allow
FFI calls that have completed, or callbacks a chance to get into the VM; they
do have something to do. DisownVMForProcessorRelinquish indicates this."
[currentCStackPointer := CStackPointer.
currentCFramePointer := CFramePointer.
threadIndexAndFlags := self disownVM: DisownVMForProcessorRelinquish.
self assert: relinquishing.
self ioRelinquishProcessorForMicroseconds: (objectMemory integerValueOf: microSecs).
self assert: relinquishing.
self ownVM: threadIndexAndFlags.
self assert: relinquishing not.
self assert: cogThreadManager currentVMThread state = CTMAssignableOrInVM.
self assert: currentCStackPointer = CStackPointer.
self assert: currentCFramePointer = CFramePointer.
"In simulation we allow ioRelinquishProcessorForMicroseconds: to fail so that
+ we can arrange that the simulator responds to input events promptly. This
- we can arrange that the simulator responds to input events promply. This
*DOES NOT HAPPEN* in the real vm."
self cCode: [] inSmalltalk: [primFailCode ~= 0 ifTrue: [^self]]].
self assert: (objectMemory fetchPointer: MyListIndex ofObject: self activeProcess) = objectMemory nilObject.
self pop: 1 "microSecs; leave rcvr on stack"!
Item was changed:
----- Method: CogMethodZone>>cogMethodContaining: (in category 'jit - api') -----
cogMethodContaining: mcpc
"Answer the method containing mcpc for the purposes of code zone compaction,
where mcpc is actually the value of instructionPointer at the time of a compaction."
<var: 'mcpc' type: #usqInt>
<api>
| cogMethod prevMethod |
mcpc > limitAddress ifTrue:
[^nil].
mcpc < baseAddress ifTrue:
[cogit assertMcpcIsPrimReturn: mcpc.
^nil].
self assert: mcpc < self limitZony.
cogMethod := coInterpreter cCoerceSimple: baseAddress to: #'CogMethod *'.
+ [cogMethod asUnsignedInteger < mcpc] whileTrue:
- [cogMethod < mcpc] whileTrue:
[prevMethod := cogMethod.
cogMethod := self methodAfter: cogMethod].
"Since mcpc is actually instructionPointer we expect that it is either at the stack check
(normal code zone reclamation invoked through checkForEventsMayContextSwitch:)
or is in a primitive, immediately following the call of the C primitive routine."
self assert: (prevMethod notNil
+ and: [mcpc = (prevMethod asUnsignedInteger + prevMethod stackCheckOffset)
- and: [mcpc = prevMethod asUnsignedInteger + prevMethod stackCheckOffset
or: [(coInterpreter
primitiveIndexOfMethod: prevMethod methodObject
header: prevMethod methodHeader) > 0
and: [cogit backEnd isCallPrecedingReturnPC: mcpc]]]).
^prevMethod!
Item was changed:
----- Method: CogThreadManager>>ioWaitOnOSSemaphore: (in category 'simulation') -----
ioWaitOnOSSemaphore: aSemaphorePtr
<var: #anOSSemaphore type: #'sqOSSemaphore *'>
<returnTypeC: #void>
<doNotGenerate>
"See platforms/Cross/vm/sq.h for the real definition."
"Simulate the VM's heartbeat by calling checkVMOwnershipFromHeartbeat
if the wait times-out."
[aSemaphorePtr value waitTimeoutMSecs: 1000] whileTrue:
+ [coInterpreter checkVMOwnershipFromHeartbeat].
+ self deny: vmOwner = 0.
+ cogit processor setRegisterState: (registerStates at: vmOwner
+ ifAbsentPut:
+ [self ensureInitializedProcessor: cogit processor forThreadIndex: vmOwner.
+ cogit processor registerState])!
- [coInterpreter checkVMOwnershipFromHeartbeat]!
Item was changed:
----- Method: CogVMThread class>>instVarNamesAndTypesForTranslationDo: (in category 'translation') -----
instVarNamesAndTypesForTranslationDo: aBinaryBlock
"enumerate aBinaryBlock with the names and C type strings for the inst vars to include in a CogVMThread struct."
self allInstVarNames do:
[:ivn|
aBinaryBlock
value: ivn
value: (ivn caseOf: {
['awolProcesses'] -> [{#sqInt. '[', CogThreadManager awolProcessesIncrement printString, ']'}].
+ ['cStackPointer'] -> [#usqIntptr_t].
+ ['cFramePointer'] -> [#usqIntptr_t].
+ ['primitiveFunctionPointer'] -> [#('static void (*' ')()')].
- ['cStackPointer'] -> [#'void *'].
- ['cFramePointer'] -> [#'void *'].
['osSemaphore'] -> ['sqOSSemaphore'].
+ ['osThread'] -> ['sqOSThread'].
+ ['reenterInterpreter'] -> ['jmp_buf'] }
- ['osThread'] -> ['sqOSThread'].
- ['reenterInterpreter'] -> ['jmp_buf'] }
otherwise:
[#sqInt])]!
Item was changed:
----- Method: StackInterpreter>>printCallStackOf: (in category 'debug printing') -----
printCallStackOf: aContextOrProcessOrFrame
<api>
| context |
<inline: false>
(stackPages couldBeFramePointer: aContextOrProcessOrFrame) ifTrue:
[^self printCallStackFP: (self cCoerceSimple: aContextOrProcessOrFrame to: #'char *')].
aContextOrProcessOrFrame = self activeProcess ifTrue:
+ [^self printCallStackOf: (self cCode: [framePointer asInteger] inSmalltalk: [self headFramePointer])].
- [^self printCallStackOf: (self cCode: [framePointer] inSmalltalk: [self headFramePointer])].
(self couldBeProcess: aContextOrProcessOrFrame) ifTrue:
[^self printCallStackOf: (objectMemory
fetchPointer: SuspendedContextIndex
ofObject: aContextOrProcessOrFrame)].
context := aContextOrProcessOrFrame.
[context = objectMemory nilObject] whileFalse:
[(self isMarriedOrWidowedContext: context)
ifTrue:
[(self checkIsStillMarriedContext: context currentFP: framePointer) ifFalse:
[self shortPrintContext: context.
^nil].
context := self shortReversePrintFrameAndCallers: (self frameOfMarriedContext: context)]
ifFalse:
[context := self printContextCallStackOf: context]]!
Try to remove context checking in at:put:.
See if tests pass.
You can view, comment on, or merge this pull request online at:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/539
-- Commit Summary --
* Remove Cog-Boostrapping -> Cog
* Fix c return register value following ABI
* Fix bytecode PC validation: In Pharo some methods may not have trailer, so the last byte is the last bytecode
* Remove halt
* Adding a little test for validating the access to contexts.
* Implement break instruction in ARMv8
* Rename some temporaries
* Added primitive at tests for small integer receiver and arrays
* Added at 64 bits indexable and fixed objects
* add libtool dependency in readme
* Merge 9789caa44d3a509a3568e56fbabff18e1f0c28e9
* Cleanups and refactorings
* The win32 automatic manifest embedding by specifying the sources in cmake does not work under Cygwin. I changed the way this embedding works by using the resource script files.
* Install missing dependencies with GitHub Actions for OS X with homebrew.
* Fix the previous commit.
* Do not catch all of the exceptions in Windows. This behavior breaks the OutputDebugString win32 APIs which should be a nop when the program is not attached to a debugger.
* Adding tests for 16 and 8 bit indexables
* Using LDRSH for MoveX32rRR
* [Fix] CmpOpcode should be compared to the ARM opcode and not the RTL opcode
* Add more tests for padding and getting slot size
* Make tests green
* Merge branch 'feature/addingPrimitiveNewPinned' of github.com:pharo-project/opensmalltalk-vm into feature/addingPrimitiveNewPinned
* Merge branch 'feature/addingPrimitiveNewPinned' into headless
* Merge branch 'aarch64' of github.com:pharo-project/opensmalltalk-vm into aarch64
* Reorganize tests
* Add immediate at: tests
* Cleanup: shiftAwaySmallIntegerTags and convertSmallIntegerToInteger are duplicated. Use one and remove the other.
* Implement aarch64 multiplication with overflow and tests
* Merge 400508cdb1d903c2ab734b2fbd8d7c0b86fbf270
* Using the max and min small integers depending on the platform
* Fix API
* Merge pull request #110 from ronsaldo/fix-win32-manifest-embedding
* Adding tests for jitted bit and and bir or
* Adding some primitives calling tests
* Testing bitshift jitted primitive
* Merging the changes
* Merge 6771b2aed8717e33245dae721eed747cffc0893e
* Fixing the worker
* Merge remote-tracking branch 'origin/feature/addingPrimitiveNewPinned' into headless
* First draft of a VM debugger
* Implement JumpFull to correctly get the jump target from a literal
* Fix management of literals in AndCqRR and AndCqR
* Adding test for the calling of primitives
* [WIP] Using a different register for stack pointer management in ARMv8
* Load C stack pointer and not Smalltalk stack pointer
* Enhancements to the machine code debugger
* Adding configuration to mimic the behavior of the stock VM
* Remove testing code
* Fixing the crappy text interpolation of groovy
* - Exposing machine SP to the frontend
* Having it with different names
* Extract #prepareCall and fix enilopmart tests
* Adding upload of packages
* Merge 680543770670a3c7d6beed718ac356ed850b0bac
* Fix merge
* - fix and clean tests mapping this context
* Adding upload to the server
* Merge pull request #111 from tesonep/adding-build-with-non-headless
* Fixing the upload
* Changing version to 8.6.1
* Changing version
* Adding tests for checking the alignment when calling C functions in the Smalltalk Stack.
* Fixing the FFI tests
* Floating point support
* Fix register assignment for armv8
* Proper literal usage of SubCqR, TstCqR, PushCqR, PushCwR, SubCqR
* Implement FMOV
* Fix proper compilation of MoveRAb with the literal case
* Fixes for debugging and simulating
* Merge 2c25d75597f921b70a89c6d50c4ed951ea21c1f8
* Merge de5cd34dd3096c13936135573287c8ba524a7059
* Fixing the testing to check the C Stack
* Merge a658003a8940c9301a47bc31b6b4f7315c04aa26
* Fixing test in IA32
* ARMv8 debugger support for new register selection
* Proper oading of CStack pointers with double SP regime + tests
* Better comment for LDR and using CMP for Cq=0 instead of CMN
* Merge 2feb27d944c482d7d0ce41342953688061bf849f
* Simulation of CWD
* ARMv8: Pass on floating point point division, multiplication and substraction
* Fis network simulation
* Correcting type declarations for #encodeLogicalImmediate:registerSize:ifPossible:ifNotPossible:
* Fix logical & => translation is not faithful to C semantics.
* Adding JIT primitive size tests
* Delegate the capture of CStack pointers to the backend to make better usage of registers
* Adding tests for primitives
* Merge 6d4d0ae4cb85184c7617988d7c3b979a76ddeffb
* Handle SP as source register in MoveRAW
* Added a second intra procedural scratch register for special SP management
* Add proper simulation of FP usage
* isCFramePointerInUse is now a getter
* Merge 4f7ad7d04283bb1e558ed7dc3551a73954e901ed
* Adding tests to primitive retry.
* Merge 2b29bf042f40795735dd9ed1ae785987c8137740
* Adding test for primitiveFunctionPointer
* Adding tests for primitiveFunctionPointer
* Fixing the 64 bit indexable tests for 32bits machines
* Proper (better?) simulation of sig jumps by restoring SP when jumping
* Fix MoveCqR and MoveC32R to correctly compute instruction size and usage of literals
* Merge abe017d9d1bc04fc781d13e0079b138e862dc042
* Merge 256df8c8b24da1addb07e812f18f2618f86b896d
* Fix simulation of external primitive table
* Fix MoveC32R to sign extend constants
* Remove debugging code
* Initial support for simulating different initial addresses
* Fix several cases of CmpCqR: adding tests for several border cases
* Fix CmpCqR literal calculation
* Fix to support proper translation of MoveRAw
* Merge ed7ec0d7faa0e788c09071c7ef0be31fd66e116c
* Fix type annotation for integers in concretizeCmpCqR
* Merge d0b8fcb46089d80968a0ade811e52d5f7d518d2c
* Fix Merge
* Adding profiling test for primitive calls
* Merge d0b8fcb46089d80968a0ade811e52d5f7d518d2c
* Adding accessor
* Merge ee05c87d2cd82be732a6c3df726f861e569bc873
* Moving Slang to its own package
* Merge bb2c768b94e46d46a63fb928dcbbff143945cbb4
* Add type annotations...
* Merge bb2c768b94e46d46a63fb928dcbbff143945cbb4
* Fix blocks
* Clean usages of block-using methods
* Initialize external primitive array in simulator with 0s to work as in the real case (and be testable)
* Merge 550184b2fe4fa1f46776f9fc2f8a2ef07253d3c1
* More work on cog method relocation
* Relocating class tags
* Moving more classes to independent package.
* Fixing the method used as an example.
* More tests in code compaction
* Merge a03538d7b97be5fc3534c84ae1be695bd93e17e1
* More cleanups
* Extracted constants into configuration
* - Adding tests for the machine simulator
* Merge e7ae7a45e6aaaf3c982673e81c691137d0a11b38
* Adding more tests and fixing other that have addresses outside the 32bits space
* More killing of dependencies
* Move Scanner to Slang
* Add VMMaker-Slang to baseline
* Adding tests and fixing the execution with the simulator to execute more of one instruction at the time.
* Reverting default vmClass
* - Fixing a missing accessor in the simulator.
* Merge pull request #114 from pharo-project/improve-machine-simulator
* Remove unnecessary extensions in Pharo9
* Changing the JIT to use the StackToRegisterMapping
* Adding the step to record installed cygwin-packages
* Fixing an error
* Adding verbose mode to cmake, to improve the logs
* Adding verbose mode to cmake, to improve the logs
* Adding verbose mode to cmake, to improve the logs
* Adding parameter to the config clone
* Merge pull request #115 from tesonep/record-cygwin-versions
* Adding an specific disassembler for ARM to handle the invalid instructions in the middle of the code (we are using them for literals)
* Improving the machine code debugger
* Extending the debugger.
* Organizing the Export Macro
* Fixing the build in unix
* Fixing the build in OSX
* Adding test for forwarders
* Fixing the exporting of AccessorDepts
* Split accessor depth calculation
* Merge pull request #109 from VincentBlondeau/patch-1
* GIT_CONFIG should be the first parameter, to be ignored by old versions of CMAKE, if it is in the middle, it is taken as part of other commands
* Merge pull request #116 from tesonep/organizing-export-macro
* Fixing the type of the instruction
* Adding tests for the frame creation
* Merge 96e53ece60b4aef05b4ada5a381ac27dd9e4b356
* Adding missing instruction
* Adding the do not generate
* - Changing the halts to #notYetImplemented
* Adding missing operations of SmallFloating points and adding tests.
* Fixing the type of this temporary
* Implementing
* Fixing the concretize of MoveCqR to correctly handle big constants
* Fixing encoding of OrCqR with large constants that cannot be shiffted
* Fixing the MoveC32R for large negative constants.
* More cutting
* Hook Nil translation, return and argument default values
* Pass on constant resolution and compile time options
* default implicit return type should be default type
* More fixes to default types
* Fixing the instruction MoveRM16r and adding tests
* [cleanup] use accessor for vmClass instead of direct ref
* [improvement] removed dependency on vmClass from CCodeGenerator
* [improvement] removed usage of vmMaker variable from cCodeGenerator
* [improvement] fixing generation of stack interpreter
* [fix] fix generation for CoInterpreter
* Fixing the conversion of SMI to Floats.
* The exception handle should be the last called,
* Adding configuration to detect in which thread to show the exceptions
* Adding filter for showing exceptions in windows. Many libraries handles the errors locally, and out handler is global
* Merge pull request #122 from tesonep/improving-windows-error-reporting
* Merge branch 'headless' into aarch64
* - Moving memory access primitives
* Adding needed macros
* Fixing the macro name
* Moving the ManualSurface to the SurfacePlugin
* Implementing more FFI primitives in the VM
* Adding type information to variable that is expected to be used in comparison
* Fixing the type of the argument before using it.
* Adding a cast in the call to SQABS functions
* Fixing flag declaration
* [improvement] add test on type inference
* [fix] integer wasn't big enough for a test, fix longPrintOop: type conflict
* [improvement] add a activable error for type conflicts
* Improving the generation MoveRMwr
* [improvement] better name for instance variable
* Removing unused methods in the implementation
* [improvement] add accessor to set stopOnError
* [fix] simple type fixing for the stackVM
* [fix] fixing last StackInterpreter types conflict. This one might be dangerous.
* Fixing missing case for MoveMbrR
* Fixing instruction length and calculus of literal usage.
* Adding tests and a new instruction
* Fix superclass
* Fix typing of fetchLong32: fieldIndex ofFloatObject: oop correctly
* Moving stuff around to clean dependencies
* Removing reverse dependency
* Fixing Baseline
* Cleanups
* Organizing Slang in tags
* More dependency cleanups, starting separating type inference
* Adding tests for the memory access JIT primitives and fixing the missing instructions
* Returning a value to comply with the translation to C
* The machine implementatio of primitiveAt should not SignExtend the numbers.
* Fixing encoding of instruction CmpCqR and adding tests.
* Merge 3152f2f6734f5b3d01e2cbd04bd8ef0ba2f21852
* Merge CCode Generator
* Fix obsolete reference
* Making the build pass
* Uncommenting Cogit generation
* Restore sq.h
* Recover inheritance rules of cogit and memory...
* Do not check for bindingOf: in classes
* Correct the control flow
* Remove halt
* Fix options
* Restore preamble
* Rely on Slang Type inference
* Fix primitive compilation
* Fix externalPrimitiveTable for simulation
* Merge 8353b0f4b952c59c7a8d0ad4dfbd27fcb736d6f9
* Fix conflicting instance variable
* Fixing last merge details
* Moving CArray + friends to Slang
* Fix broken global reference
* Fix assertion warnings
* Merge pull request #126 from pharo-project/enh/split-slang2
* Merge branch 'headless' into fix/assertion-warning
* Merge pull request #128 from pharo-project/fix/assertion-warning
* Remove context checking for at:put:
-- File Changes --
A .gitattributes (1)
A .github/workflows/continuous-integration-workflow.yaml (121)
M CMakeLists.txt (205)
M Jenkinsfile (107)
M README.md (140)
A docs/20200315-Statement about the VM.pdf (0)
A docs/overview.md (53)
A docs/vmArticle - 1.png (0)
M extracted/plugins/BitBltPlugin/src/common/BitBltDispatch.c (14)
M extracted/plugins/BitBltPlugin/src/common/BitBltGeneric.c (26)
M extracted/plugins/FileAttributesPlugin/src/common/FileAttributesPlugin.c (9)
M extracted/plugins/FileAttributesPlugin/src/win/faSupport.c (37)
M extracted/plugins/FilePlugin/include/common/FilePlugin.h (2)
D extracted/plugins/FilePlugin/src/common/FilePlugin.c (1883)
M extracted/plugins/FilePlugin/src/common/sqFilePluginBasicPrims.c (76)
M extracted/plugins/FilePlugin/src/osx/sqUnixFile.c (4)
M extracted/plugins/FilePlugin/src/unix/sqUnixFile.c (4)
M extracted/plugins/FilePlugin/src/win/sqWin32FilePrims.c (202)
M extracted/plugins/IA32ABI/src/common/arm32abicc.c (9)
M extracted/plugins/IA32ABI/src/common/arm64abicc.c (11)
M extracted/plugins/IA32ABI/src/common/ia32abicc.c (9)
M extracted/plugins/IA32ABI/src/common/ppc32abicc.c (9)
M extracted/plugins/IA32ABI/src/common/x64sysvabicc.c (12)
M extracted/plugins/IA32ABI/src/common/x64win64abicc.c (9)
M extracted/plugins/JPEGReadWriter2Plugin/src/common/jerror.c (13)
M extracted/plugins/JPEGReadWriter2Plugin/src/common/jmemmgr.c (9)
M extracted/plugins/LargeIntegers/src/common/LargeIntegers.c (9)
R extracted/plugins/SocketPlugin/src/common/SocketPluginImpl.c (631)
D extracted/plugins/SocketPlugin/src/win/sqWin32NewNet.c (2667)
M extracted/plugins/SqueakFFIPrims/src/common/ARM32FFIPlugin.c (55)
M extracted/plugins/SqueakFFIPrims/src/common/ARM64FFIPlugin.c (56)
M extracted/plugins/SqueakFFIPrims/src/common/IA32FFIPlugin.c (6)
M extracted/plugins/SqueakFFIPrims/src/common/X64SysVFFIPlugin.c (56)
M extracted/plugins/SqueakFFIPrims/src/common/X64Win64FFIPlugin.c (53)
M extracted/plugins/SqueakFFIPrims/src/common/sqFFIPlugin.c (38)
M extracted/plugins/SqueakFFIPrims/src/common/sqManualSurface.c (21)
M extracted/plugins/SqueakFFIPrims/src/unix/any-libffi.c (4)
D extracted/plugins/SqueakFFIPrims/src/unix/ffi-test-main.c (666)
D extracted/plugins/SqueakFFIPrims/src/unix/ffi-test.c (155)
M extracted/plugins/SqueakFFIPrims/src/unix/ppc-darwin.c (32)
M extracted/plugins/SqueakFFIPrims/src/unix/ppc-sysv.c (22)
M extracted/plugins/SqueakFFIPrims/src/unix/x86-sysv.c (56)
M extracted/plugins/SqueakFFIPrims/src/win/sqWin32FFI.c (20)
M extracted/plugins/SqueakSSL/include/unix/openssl_overlay.h (25)
M extracted/plugins/SqueakSSL/src/osx/sqMacSSL.c (94)
M extracted/plugins/SqueakSSL/src/unix/sqUnixSSL.c (121)
M extracted/plugins/SqueakSSL/src/win/sqWin32SSL.c (87)
M extracted/plugins/SurfacePlugin/src/common/SurfacePlugin.c (107)
A extracted/plugins/SurfacePlugin/src/common/sqManualSurface.c (168)
M extracted/plugins/UnixOSProcessPlugin/src/common/UnixOSProcessPlugin.c (20)
M extracted/vm/include/common/dispdbg.h (20)
M extracted/vm/include/common/sq.h (113)
M extracted/vm/include/common/sqAssert.h (23)
M extracted/vm/include/common/sqMemoryAccess.h (2)
M extracted/vm/include/common/sqVirtualMachine.h (10)
R extracted/vm/include/common/sqaio.h (33)
M extracted/vm/include/osx/sqPlatformSpecific.h (33)
M extracted/vm/include/unix/sqPlatformSpecific.h (22)
M extracted/vm/include/win/sqPlatformSpecific.h (53)
M extracted/vm/include/win/sqWin32.h (20)
M extracted/vm/include/win/sqWin32Alloc.h (11)
R extracted/vm/src/common/heartbeat.c (138)
M extracted/vm/src/common/sqExternalSemaphores.c (150)
M extracted/vm/src/common/sqHeapMap.c (10)
M extracted/vm/src/common/sqNamedPrims.c (92)
M extracted/vm/src/common/sqVirtualMachine.c (25)
A extracted/vm/src/osx/aioOSX.c (413)
M extracted/vm/src/unix/aio.c (418)
M extracted/vm/src/unix/sqUnixCharConv.c (43)
A extracted/vm/src/win/aioWin.c (384)
M extracted/vm/src/win/sqWin32Directory.c (4)
D extracted/vm/src/win/sqWin32Heartbeat.c (493)
M extracted/vm/src/win/sqWin32SpurAlloc.c (108)
D include/aioWin.h (5)
R include/pharovm/config.h.in (5)
R include/pharovm/debug.h (22)
R include/pharovm/errorCode.h (0)
A include/pharovm/exportDefinition.h (13)
R include/pharovm/fileDialog.h (0)
A include/pharovm/imageAccess.h (43)
A include/pharovm/interpreter.h (66)
A include/pharovm/macros.h (71)
A include/pharovm/pThreadedFFI/callbacks.h (52)
A include/pharovm/pThreadedFFI/pThreadedFFI.h (32)
A include/pharovm/pThreadedFFI/pThreadedFFIUtils.h (26)
A include/pharovm/pThreadedFFI/worker.h (20)
A include/pharovm/pThreadedFFI/workerTask.h (32)
R include/pharovm/parameterVector.h (0)
R include/pharovm/parameters.h (3)
R include/pharovm/pathUtilities.h (0)
R include/pharovm/pharo.h (15)
R include/pharovm/pharoClient.h (2)
A include/pharovm/semaphores/pSemaphore.h (11)
A include/pharovm/semaphores/pharoSemaphore.h (9)
A include/pharovm/semaphores/platformSemaphore.h (27)
R include/pharovm/sqNamedPrims.h (0)
R include/pharovm/stringUtilities.h (0)
A include/pharovm/threadSafeQueue/threadSafeQueue.h (14)
M macros.cmake (61)
M osx.cmake (51)
R packaging/linux/bin/launch.sh.in (23)
R packaging/linux/launch.sh.in (24)
M plugins.cmake (7)
D plugins/SocketPlugin/win32/src/win32SocketPluginExtras.c (24)
M plugins/UUIDPlugin/common/UUIDPlugin.c (2)
M resources/mac/Info.plist.in (28)
M resources/windows/Pharo.exe.manifest.in (5)
M resources/windows/Pharo.rc.in (2)
A resources/windows/PharoConsole.exe.manifest.in (31)
A resources/windows/PharoConsole.rc.in (32)
A scripts/installCygwin.ps1 (32)
M scripts/installVMMaker.st (2)
A scripts/runScriptInCygwinBash.ps1 (30)
A scripts/runTests.sh (87)
M smalltalksrc/BaselineOfVMMaker/BaselineOfVMMaker.class.st (91)
D smalltalksrc/Cog-Bootstrapping/CommandLineLauncher.class.st (47)
D smalltalksrc/Cog-Bootstrapping/InstructionStream.extension.st (9)
D smalltalksrc/Cog-Bootstrapping/MessageNode.extension.st (50)
D smalltalksrc/Cog-Bootstrapping/package.st (1)
R smalltalksrc/Cog/BochsIA32Alien.class.st (0)
R smalltalksrc/Cog/BochsIA32Alien64.class.st (0)
R smalltalksrc/Cog/BochsIA32AlienTests.class.st (0)
R smalltalksrc/Cog/BochsIA32Plugin.class.st (0)
R smalltalksrc/Cog/BochsPlugin.class.st (0)
R smalltalksrc/Cog/BochsX64Alien.class.st (0)
R smalltalksrc/Cog/BochsX64Alien64.class.st (0)
R smalltalksrc/Cog/BochsX64Plugin.class.st (0)
R smalltalksrc/Cog/BytecodeEncoder.extension.st (0)
R smalltalksrc/Cog/BytecodeEncoderPutschEditor.class.st (0)
R smalltalksrc/Cog/ClassHierarchyDuplicator.class.st (0)
R smalltalksrc/Cog/ClosureLabelsPrintEditor.class.st (0)
R smalltalksrc/Cog/CogProcessorAlien.class.st (0)
R smalltalksrc/Cog/CogScripts.class.st (0)
R smalltalksrc/Cog/CogVMTests.class.st (0)
R smalltalksrc/Cog/Context.extension.st (0)
R smalltalksrc/Cog/CrashReportsMailer.class.st (0)
R smalltalksrc/Cog/DominatorFinder.class.st (0)
R smalltalksrc/Cog/ETC.class.st (0)
R smalltalksrc/Cog/EncoderForSistaV1.extension.st (0)
R smalltalksrc/Cog/EncoderForV3.extension.st (0)
R smalltalksrc/Cog/GdbARMAlien.class.st (0)
R smalltalksrc/Cog/GdbARMAlien64.class.st (0)
R smalltalksrc/Cog/GdbARMAlienTests.class.st (0)
R smalltalksrc/Cog/GdbARMPlugin.class.st (0)
A smalltalksrc/Cog/InstructionStream.class.st (521)
R smalltalksrc/Cog/MIPSDisassembler.class.st (0)
R smalltalksrc/Cog/MIPSELSimulator.class.st (0)
R smalltalksrc/Cog/MIPSELSimulatorTests.class.st (0)
R smalltalksrc/Cog/MIPSInstruction.class.st (0)
R smalltalksrc/Cog/MIPSSimulator.class.st (2)
R smalltalksrc/Cog/MultiProcessor.class.st (0)
R smalltalksrc/Cog/ProcessorSimulationTrap.class.st (0)
R smalltalksrc/Cog/ProtoObject.extension.st (0)
R smalltalksrc/Cog/Spur32BitPreen.class.st (0)
R smalltalksrc/Cog/Spur32to64BitBootstrap.class.st (0)
R smalltalksrc/Cog/String.extension.st (0)
A smalltalksrc/Cog/package.st (1)
A smalltalksrc/FileAttributesPlugin/FAPathPtr.class.st (97)
A smalltalksrc/FileAttributesPlugin/FileAttributesPlugin.class.st (1098)
A smalltalksrc/FileAttributesPlugin/FileAttributesPluginSimulator.class.st (829)
A smalltalksrc/FileAttributesPlugin/package.st (1)
R smalltalksrc/Melchor/CCodeGeneratorGlobalStructure.class.st (8)
A smalltalksrc/Melchor/MLAccessorDepthCalculator.class.st (215)
A smalltalksrc/Melchor/MLPluginAccessorDepthCalculator.class.st (61)
A smalltalksrc/Melchor/MLVMCCodeGenerator.class.st (0)
A smalltalksrc/Melchor/VMMaker.extension.st (0)
R smalltalksrc/Melchor/VMPluginCodeGenerator.class.st (0)
A smalltalksrc/Melchor/package.st (0)
A smalltalksrc/Printf/Collection.extension.st (0)
A smalltalksrc/Printf/Object.extension.st (0)
A smalltalksrc/Printf/PrintStringFormatDescriptor.class.st (0)
A smalltalksrc/Printf/PrintfCharacterFormatDescriptor.class.st (0)
A smalltalksrc/Printf/PrintfFloatFormatDescriptor.class.st (0)
A smalltalksrc/Printf/PrintfFormatDescriptor.class.st (0)
A smalltalksrc/Printf/PrintfFormatString.class.st (0)
A smalltalksrc/Printf/PrintfFormatStringTest.class.st (0)
A smalltalksrc/Printf/PrintfNumberFormatDescriptor.class.st (0)
A smalltalksrc/Printf/PrintfStringFormatDescriptor.class.st (0)
A smalltalksrc/Printf/String.extension.st (0)
A smalltalksrc/Printf/WriteStream.extension.st (0)
A smalltalksrc/Printf/package.st (0)
A smalltalksrc/Slang-Tests/MockConstantClass.class.st (0)
A smalltalksrc/Slang-Tests/MockSlangClass.class.st (0)
A smalltalksrc/Slang-Tests/SlangAbstractTestCase.class.st (0)
A smalltalksrc/Slang-Tests/SlangBasicTypeInferenceTest.class.st (0)
A smalltalksrc/Slang-Tests/SlangBasicTypeInferenceTestClass.class.st (0)
A smalltalksrc/Slang-Tests/SlangCogitSubclass.class.st (0)
A smalltalksrc/Slang-Tests/SlangCogitSuperclass.class.st (0)
A smalltalksrc/Slang-Tests/SlangObjectMemorySubclass.class.st (0)
A smalltalksrc/Slang-Tests/SlangObjectMemorySuperclass.class.st (0)
A smalltalksrc/Slang-Tests/SlangOptionTest.class.st (0)
A smalltalksrc/Slang-Tests/SlangTypeForArithmeticTest.class.st (0)
A smalltalksrc/Slang-Tests/SlangTypeForDereferenceTest.class.st (0)
A smalltalksrc/Slang-Tests/SlangTypeForDereferenceTestClass.class.st (0)
A smalltalksrc/Slang-Tests/SlangTypePromotionTest.class.st (0)
A smalltalksrc/Slang-Tests/package.st (0)
R smalltalksrc/Slang/CArray.class.st (0)
R smalltalksrc/Slang/CArrayAccessor.class.st (0)
R smalltalksrc/Slang/CArrayOfLongsAccessor.class.st (0)
R smalltalksrc/Slang/CCodeGenerator.class.st (0)
R smalltalksrc/Slang/CCodeGeneratorAbsoluteInlineStrategy.class.st (0)
R smalltalksrc/Slang/CCodeGeneratorInlineAlwaysStrategy.class.st (0)
R smalltalksrc/Slang/CCodeGeneratorInlineAsSpecifiedOrQuickStrategy.class.st (0)
R smalltalksrc/Slang/CCodeGeneratorInlineAsSpecifiedStrategy.class.st (0)
R smalltalksrc/Slang/CCodeGeneratorInlineNeverStrategy.class.st (0)
R smalltalksrc/Slang/CCodeGeneratorInlineStrategy.class.st (0)
R smalltalksrc/Slang/CFloatArray.class.st (0)
R smalltalksrc/Slang/CLiteralArray.class.st (0)
R smalltalksrc/Slang/CObjectAccessor.class.st (0)
R smalltalksrc/Slang/CPluggableAccessor.class.st (0)
R smalltalksrc/Slang/Gnuifier.class.st (0)
A smalltalksrc/Slang/ManifestVMMakerSlang.class.st (0)
R smalltalksrc/Slang/Scanner.class.st (0)
A smalltalksrc/Slang/SlangClass.class.st (0)
A smalltalksrc/Slang/SlangStructType.class.st (0)
A smalltalksrc/Slang/SlangTyper.class.st (0)
R smalltalksrc/Slang/TAssignmentNode.class.st (0)
R smalltalksrc/Slang/TBraceCaseNode.class.st (0)
R smalltalksrc/Slang/TCaseStmtNode.class.st (0)
R smalltalksrc/Slang/TConstantNode.class.st (0)
R smalltalksrc/Slang/TDefineNode.class.st (0)
R smalltalksrc/Slang/TGoToNode.class.st (0)
R smalltalksrc/Slang/TInlineNode.class.st (0)
R smalltalksrc/Slang/TLabeledCommentNode.class.st (0)
R smalltalksrc/Slang/TMethod.class.st (0)
R smalltalksrc/Slang/TParseNode.class.st (0)
R smalltalksrc/Slang/TPrintfFormatStringNode.class.st (0)
R smalltalksrc/Slang/TReturnNode.class.st (0)
R smalltalksrc/Slang/TSendNode.class.st (0)
R smalltalksrc/Slang/TStmtListNode.class.st (0)
R smalltalksrc/Slang/TSwitchStmtNode.class.st (0)
R smalltalksrc/Slang/TVariableNode.class.st (0)
R smalltalksrc/Slang/VMMaker.class.st (0)
R smalltalksrc/Slang/VMMakerException.class.st (0)
A smalltalksrc/Slang/package.st (0)
R smalltalksrc/VMMaker-MT-Tests/SpurMockMemory.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/SpurMockProcessorScheduler.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/StackMTInterpreterSimulatorForTest.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/VMLinkedList.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/VMMTGenerationTests.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/VMMTTests.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/VMMockArray.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/VMMockCogThreadManager.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/VMMockContext.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/VMMockObject.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/VMMockProcess.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/VMMockScheduler.class.st (0)
R smalltalksrc/VMMaker-MT-Tests/VMMockSchedulerAssociation.class.st (0)
A smalltalksrc/VMMaker-MT-Tests/package.st (0)
R smalltalksrc/VMMaker-OriginalTests/AbstractInstructionTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/BitBltSimulationTest.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/CCodeGeneratorTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/CoInterpreterTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/CogARMCompilerForTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/CogARMCompilerTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/CogIA32CompilerForTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/CogIA32CompilerTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/CogMIPSELCompilerForTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/CogMIPSELCompilerTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/CogX64CompilerForTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/CogX64CompilerTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/FloatMathPluginTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/FullSimulationTest.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/HeapMapTest.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/IncludedMethodsTest.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/InterpreterPrimitivesTest.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/JPEGReadWriter2PluginTest.class.st (0)
A smalltalksrc/VMMaker-OriginalTests/LargePositiveInteger.extension.st (0)
R smalltalksrc/VMMaker-OriginalTests/MemoryTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/MiscPrimitivePluginTest.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/RegisterAllocatingCogitTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/SimulatorHarnessForTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/SpurImageSegmentTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/SpurImageTestResource.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/SpurPlanningCompactorTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/SpurTrunkImageTestResource.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/StackInterpreterSimulatorTests.class.st (0)
A smalltalksrc/VMMaker-OriginalTests/StackInterpreterTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/StackToRegisterMappingCogitChecker.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/VMClassTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/VMInterfaceConsistencyTests.class.st (0)
R smalltalksrc/VMMaker-OriginalTests/VMMakerIntegerTests.class.st (0)
A smalltalksrc/VMMaker-OriginalTests/package.st (0)
R smalltalksrc/VMMaker-Slang/CrossPlatformVMMaker.class.st (0)
A smalltalksrc/VMMaker-Slang/VMMakerConfiguration.class.st (0)
A smalltalksrc/VMMaker-Slang/package.st (0)
A smalltalksrc/VMMaker-Tools/Integer.extension.st (0)
R smalltalksrc/VMMaker-Tools/SimulatorEventTransformer.class.st (0)
R smalltalksrc/VMMaker-Tools/SimulatorImageMorph.class.st (0)
R smalltalksrc/VMMaker-Tools/SimulatorMorph.class.st (0)
R smalltalksrc/VMMaker-Tools/SimulatorMorphicEventTests.class.st (0)
R smalltalksrc/VMMaker-Tools/SimulatorMorphicModel.class.st (0)
A smalltalksrc/VMMaker-Tools/SpurMemoryManager.extension.st (0)
A smalltalksrc/VMMaker-Tools/StackInterpreter.extension.st (0)
A smalltalksrc/VMMaker-Tools/VMBytecodeToIRMapping.class.st (0)
A smalltalksrc/VMMaker-Tools/VMDebugger.class.st (0)
A smalltalksrc/VMMaker-Tools/VMMachineCodeDebugger.class.st (0)
A smalltalksrc/VMMaker-Tools/VMMachineCodeDebuggerInstruction.class.st (0)
A smalltalksrc/VMMaker-Tools/VMMachineCodeDebuggerStackItem.class.st (0)
A smalltalksrc/VMMaker-Tools/VMMethodBytecodeToIRMapping.class.st (0)
-- Patch Links --
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/539.patchhttps://github.com/OpenSmalltalk/opensmalltalk-vm/pull/539.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/539
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: fadfabb546a3636a659dc371186530ab86814452
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/fadfabb546a3636a65…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2020-11-25 (Wed, 25 Nov 2020)
Changed paths:
M spur64src/vm/cointerpmt.c
M spur64src/vm/cointerpmt.h
M spur64src/vm/gcc3x-cointerpmt.c
M spursrc/vm/cointerpmt.c
M spursrc/vm/cointerpmt.h
M spursrc/vm/gcc3x-cointerpmt.c
Log Message:
-----------
CogVM MT source as per Name: VMMaker.oscog-eem.2900
MTVM: Minor cleanup. In the simulator the REPL is able to compute (in order)
3+4, 3*4, 3<<4, 3 raisedTo: 4, etc, without error.
Simplify and correct checks and initialization of the processor's
thread-specific stack pointers.