Skip to content

Commit

Permalink
Merge branch 'pharo-10' into moveAllOldSpaceToPermSpace
Browse files Browse the repository at this point in the history
  • Loading branch information
tesonep committed Nov 17, 2023
2 parents adb1525 + b323c5f commit a43309a
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 11 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Change log

## v10.0.8

* Fixes #14768: File class>>primFileAttributes😷 answers corrupted result by @akgrant43 in https://github.com/pharo-project/pharo-vm/pull/697
* Fix/speed regression by @tesonep in https://github.com/pharo-project/pharo-vm/pull/705

**Full Changelog**: https://github.com/pharo-project/pharo-vm/compare/v10.0.7...v10.0.8

## v10.0.7

* Update README.md by @guillep in https://github.com/pharo-project/pharo-vm/pull/688
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ extractVCSInformation(GIT_COMMIT_HASH GIT_DESCRIBE GIT_COMMIT_DATE)

set(VERSION_MAJOR 10)
set(VERSION_MINOR 0)
set(VERSION_PATCH_NUMBER 7)
set(VERSION_PATCH_NUMBER 8)

if(BUILD_IS_RELEASE)
set(VERSION_PATCH "${VERSION_PATCH_NUMBER}")
Expand Down
6 changes: 4 additions & 2 deletions extracted/plugins/FileAttributesPlugin/src/unix/faSupport.c
Original file line number Diff line number Diff line change
Expand Up @@ -478,8 +478,10 @@ char targetFile[FA_PATH_MAX];
if (S_ISLNK(statBuf.st_mode)) {
/* This is a symbolic link, provide the target filename */
status = readlink(faGetPlatPath(aFaPath), targetFile, FA_PATH_MAX);
if (status >= 0)
targetOop = pathNameToOop(targetFile); } }
if (status >= 0) {
targetFile[status] = 0;
targetOop = pathNameToOop(targetFile); } } }

else {
status = stat(faGetPlatPath(aFaPath), &statBuf);
if (status)
Expand Down
38 changes: 31 additions & 7 deletions smalltalksrc/VMMaker/CoInterpreter.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -560,15 +560,17 @@ CoInterpreter >> activateNewMethod [

"Eagerly compile it if appropriate so that doits are fast."
methodHeader := self rawHeaderOf: newMethod.
(self isCogMethodReference: methodHeader) ifFalse: [
(self methodWithHeaderShouldBeCogged: methodHeader)
ifTrue: [
cogit cog: newMethod selector: objectMemory nilObject.
methodHeader := self rawHeaderOf: newMethod ]
ifFalse: [ self maybeFlagMethodAsInterpreted: newMethod ] ].

inInterpreter := self isInstructionPointerInInterpreter:
instructionPointer.

(self isCogMethodReference: methodHeader)
ifTrue:
[inInterpreter ifTrue:
[self iframeSavedIP: framePointer put: instructionPointer asInteger.
instructionPointer := cogit ceReturnToInterpreterPC].
^ self activateCoggedNewMethod: inInterpreter].

"We are in the interpreter"
methodHeader := self justActivateNewMethod: true.

"Now check for stack overflow or an event (interrupt, must scavenge, etc)."
Expand Down Expand Up @@ -2604,6 +2606,28 @@ CoInterpreter >> executeFullCogBlock: cogMethod closure: closure mayContextSwitc
"NOTREACHED"
]

{ #category : #'message sending' }
CoInterpreter >> executeNewMethod: eagerlyCompile [
"if not primitive, or primitive failed, activate the method"
<inline: true>
| inInterpreter |
inInterpreter := self isInstructionPointerInInterpreter:
instructionPointer.
self executePrimitiveFromInterpreter: inInterpreter ifFail: [
| methodHeader |
eagerlyCompile ifTrue: [
"Eagerly compile it if appropriate so that doits are fast."
methodHeader := self rawHeaderOf: newMethod.
(self isCogMethodReference: methodHeader) ifFalse: [
(self methodWithHeaderShouldBeCogged: methodHeader)
ifTrue: [
cogit cog: newMethod selector: objectMemory nilObject.
methodHeader := self rawHeaderOf: newMethod ]
ifFalse: [ self maybeFlagMethodAsInterpreted: newMethod ] ]].
"if not primitive, or primitive failed, activate the method"
self activateNewMethod ]
]

{ #category : #'return bytecodes' }
CoInterpreter >> externalAboutToReturn: resultOop through: aContext [
| ourContext |
Expand Down
9 changes: 8 additions & 1 deletion smalltalksrc/VMMaker/StackInterpreter.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -4634,7 +4634,7 @@ StackInterpreter >> commonSendOrdinary [
self sendBreakpoint: messageSelector receiver: (self stackValue: argumentCount).
self doRecordSendTrace.
self findNewMethodOrdinary.
self executeNewMethod.
self executeNewMethod: false.
self fetchNextBytecode
]

Expand Down Expand Up @@ -5424,6 +5424,13 @@ StackInterpreter >> establishFrameForContextToReturnTo: contextToReturnTo [

{ #category : #'message sending' }
StackInterpreter >> executeNewMethod [

"Eagerly compile method"
self executeNewMethod: true
]

{ #category : #'message sending' }
StackInterpreter >> executeNewMethod: eagerlyCompile [
"if not primitive, or primitive failed, activate the method"

| inInterpreter |
Expand Down

0 comments on commit a43309a

Please sign in to comment.