From ce55159ab1f61b8913694a7e92e8f65d8b6e8a0f Mon Sep 17 00:00:00 2001 From: DurieuxPol Date: Fri, 20 Feb 2026 11:46:34 +0100 Subject: [PATCH 1/4] fix for pharo 14 compatibility --- src/MuTalk-Model/MTMessageSendToYourselfOperator.class.st | 2 +- src/MuTalk-Model/MTMethodInstaller.class.st | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MuTalk-Model/MTMessageSendToYourselfOperator.class.st b/src/MuTalk-Model/MTMessageSendToYourselfOperator.class.st index 2807395a..4a0ce952 100644 --- a/src/MuTalk-Model/MTMessageSendToYourselfOperator.class.st +++ b/src/MuTalk-Model/MTMessageSendToYourselfOperator.class.st @@ -23,5 +23,5 @@ MTMessageSendToYourselfOperator >> newNodeFrom: anOldNode [ | nodeCopy | nodeCopy := anOldNode copy. - ^ RBMessageNode receiver: nodeCopy receiver selector: #yourself + ^ RBMessageNode receiver: nodeCopy receiver selector: (RBSelectorNode value: #yourself) ] diff --git a/src/MuTalk-Model/MTMethodInstaller.class.st b/src/MuTalk-Model/MTMethodInstaller.class.st index 22651cbf..35e06ac0 100644 --- a/src/MuTalk-Model/MTMethodInstaller.class.st +++ b/src/MuTalk-Model/MTMethodInstaller.class.st @@ -31,7 +31,7 @@ MTMethodInstaller >> installFromSourceSilently: aSourceCode in: aClass [ not posible." [ aClass compileSilently: aSourceCode ] - on: Error , SyntaxErrorNotification + on: Error do: [ :error | MTMethodInstallerException signal ] ] From 4eed7975c62a894e9e9999a0196e711f04816273 Mon Sep 17 00:00:00 2001 From: DurieuxPol Date: Fri, 20 Feb 2026 17:09:10 +0100 Subject: [PATCH 2/4] fix error --- src/MuTalk-Model/MTMethodInstaller.class.st | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/MuTalk-Model/MTMethodInstaller.class.st b/src/MuTalk-Model/MTMethodInstaller.class.st index 35e06ac0..6016d635 100644 --- a/src/MuTalk-Model/MTMethodInstaller.class.st +++ b/src/MuTalk-Model/MTMethodInstaller.class.st @@ -20,8 +20,8 @@ MTMethodInstaller >> installFromSource: aSourceCode in: aClass [ "Install a SourceCode in aClass. Raise exception in case de installation is not posible." - [ aClass compile: aSourceCode ] - on: Error , SyntaxErrorNotification + [ aClass compile: aSourceCode notifying: self ] + on: Error do: [ :error | MTMethodInstallerException signal ] ] @@ -30,11 +30,17 @@ MTMethodInstaller >> installFromSourceSilently: aSourceCode in: aClass [ "Install a SourceCode in aClass. Raise exception in case de installation is not posible." - [ aClass compileSilently: aSourceCode ] + [ aClass compileSilently: aSourceCode classified: 'test' notifying: self ] on: Error do: [ :error | MTMethodInstallerException signal ] ] +{ #category : 'installing' } +MTMethodInstaller >> notify: aString at: anInteger in: code [ + + self error: aString , ' at: ' , anInteger asString , ' in: ' , code +] + { #category : 'installing' } MTMethodInstaller >> uninstall: aSelector from: aClass [ "Uninstall a method referenced by aSelector in aClass. Raise exception in From 0695b397722ae558a74cba0c323268c8141b4a66 Mon Sep 17 00:00:00 2001 From: DurieuxPol Date: Mon, 23 Feb 2026 11:50:26 +0100 Subject: [PATCH 3/4] fix tests in pharo14 --- src/MuTalk-Model/MTAnalysis.class.st | 17 +++++++++++------ src/MuTalk-Model/MTTestCaseReference.class.st | 18 ++++++++++++++++++ ...dArguments1stNullifierOperatorTest.class.st | 6 +++--- ...dArguments3rdNullifierOperatorTest.class.st | 6 +++--- ...TMessageSendToYourselfOperatorTest.class.st | 6 +++--- 5 files changed, 38 insertions(+), 15 deletions(-) diff --git a/src/MuTalk-Model/MTAnalysis.class.st b/src/MuTalk-Model/MTAnalysis.class.st index f82be5be..9d72701c 100644 --- a/src/MuTalk-Model/MTAnalysis.class.st +++ b/src/MuTalk-Model/MTAnalysis.class.st @@ -178,13 +178,10 @@ MTAnalysis >> initialTestRun [ | results | logger logStartInitialTestRun: testCases size. results := testCases collect: [ :aTestCase | aTestCase run ]. - logger logEndInitialTestRun. - + logger logEndInitialTestRun. + "The test filter is initialized lazily here because the default one needs the run time of tests, so the initial test run must be executed first" - testCases := self testFilter filterTests: testCases. - (testCases anySatisfy: [ :testCase | - self testFilter failuresOrErrorsIn: testCase ]) ifTrue: [ - MTTestsWithErrorsException signal ] + self initializeTestFilter ] { #category : 'initialization' } @@ -202,6 +199,14 @@ MTAnalysis >> initialize [ warnAboutEmptyTests := true ] +{ #category : 'initialization' } +MTAnalysis >> initializeTestFilter [ + + testCases := self testFilter filterTests: testCases. + (testCases anySatisfy: [ :testCase | self testFilter failuresOrErrorsIn: testCase ]) ifTrue: [ + MTTestsWithErrorsException signal ] +] + { #category : 'accessing' } MTAnalysis >> logger [ diff --git a/src/MuTalk-Model/MTTestCaseReference.class.st b/src/MuTalk-Model/MTTestCaseReference.class.st index 89db265d..67a9bf76 100644 --- a/src/MuTalk-Model/MTTestCaseReference.class.st +++ b/src/MuTalk-Model/MTTestCaseReference.class.st @@ -12,6 +12,12 @@ Class { #tag : 'Core' } +{ #category : 'accessing' } +MTTestCaseReference class >> announcer [ + + ^ self testCase announcer +] + { #category : 'instance creation' } MTTestCaseReference class >> for: aTestCase [ @@ -33,6 +39,12 @@ MTTestCaseReference >> = anObject [ ^ self selector = anObject selector ] +{ #category : 'private' } +MTTestCaseReference >> cleanAfterRunOn: aTestSuite [ + + testCase cleanAfterRunOn: aTestSuite +] + { #category : 'defaults' } MTTestCaseReference >> defaultLogger [ @@ -95,6 +107,12 @@ MTTestCaseReference >> method [ ^ testCase class >> testCase selector ] +{ #category : 'private' } +MTTestCaseReference >> prepareToRunOn: aTestSuite [ + + testCase prepareToRunOn: aTestSuite +] + { #category : 'printing' } MTTestCaseReference >> printOn: aStream [ diff --git a/src/MuTalk-Tests/MTMessageSendArguments1stNullifierOperatorTest.class.st b/src/MuTalk-Tests/MTMessageSendArguments1stNullifierOperatorTest.class.st index 0d913222..f193f1e0 100644 --- a/src/MuTalk-Tests/MTMessageSendArguments1stNullifierOperatorTest.class.st +++ b/src/MuTalk-Tests/MTMessageSendArguments1stNullifierOperatorTest.class.st @@ -59,7 +59,7 @@ MTMessageSendArguments1stNullifierOperatorTest >> newNodeOneSender [ ^ RBMessageNode receiver: (RBVariableNode named: #o) - selector: #at:put: + selector: (RBSelectorNode value: #at:put:) arguments: { (RBLiteralValueNode value: nil). (RBLiteralValueNode value: 2) } @@ -70,7 +70,7 @@ MTMessageSendArguments1stNullifierOperatorTest >> newNodeTwoSendersFirst [ ^ RBMessageNode receiver: (RBVariableNode named: #o) - selector: #at:put: + selector: (RBSelectorNode value: #at:put:) arguments: { (RBLiteralValueNode value: nil). (RBLiteralValueNode value: 2) } @@ -81,7 +81,7 @@ MTMessageSendArguments1stNullifierOperatorTest >> newNodeTwoSendersSecond [ ^ RBMessageNode receiver: (RBVariableNode named: #o) - selector: #at: + selector: (RBSelectorNode value: #at:) arguments: { (RBLiteralValueNode value: nil) } ] diff --git a/src/MuTalk-Tests/MTMessageSendArguments3rdNullifierOperatorTest.class.st b/src/MuTalk-Tests/MTMessageSendArguments3rdNullifierOperatorTest.class.st index 67511a63..fa5b2cdb 100644 --- a/src/MuTalk-Tests/MTMessageSendArguments3rdNullifierOperatorTest.class.st +++ b/src/MuTalk-Tests/MTMessageSendArguments3rdNullifierOperatorTest.class.st @@ -69,7 +69,7 @@ MTMessageSendArguments3rdNullifierOperatorTest >> newNodeOneSender [ ^ RBMessageNode receiver: (RBVariableNode named: #o) - selector: #collect:from:to: + selector: (RBSelectorNode value: #collect:from:to:) arguments: { (RBBlockNode arguments: { (RBVariableNode named: #s) } @@ -83,7 +83,7 @@ MTMessageSendArguments3rdNullifierOperatorTest >> newNodeTwoSendersFirst [ ^ RBMessageNode receiver: (RBVariableNode named: #o) - selector: #collect:from:to: + selector: (RBSelectorNode value: #collect:from:to:) arguments: { (RBBlockNode arguments: { (RBVariableNode named: #s) } @@ -98,7 +98,7 @@ MTMessageSendArguments3rdNullifierOperatorTest >> newNodeTwoSendersSecond [ ^ RBMessageNode receiver: (RBVariableNode named: #o) - selector: #collect:from:to: + selector: (RBSelectorNode value: #collect:from:to:) arguments: { (RBBlockNode arguments: { (RBVariableNode named: #s) } diff --git a/src/MuTalk-Tests/MTMessageSendToYourselfOperatorTest.class.st b/src/MuTalk-Tests/MTMessageSendToYourselfOperatorTest.class.st index 270abda0..11aaab4b 100644 --- a/src/MuTalk-Tests/MTMessageSendToYourselfOperatorTest.class.st +++ b/src/MuTalk-Tests/MTMessageSendToYourselfOperatorTest.class.st @@ -52,7 +52,7 @@ MTMessageSendToYourselfOperatorTest >> newNodeOneSender [ ^ RBSequenceNode statements: { (RBMessageNode receiver: (RBVariableNode named: #self) - selector: #yourself) } + selector: (RBSelectorNode value: #yourself)) } ] { #category : 'accessing' } @@ -60,7 +60,7 @@ MTMessageSendToYourselfOperatorTest >> newNodeTwoSendersFirst [ ^ RBSequenceNode statements: { (RBMessageNode receiver: (RBVariableNode named: #Dictionary) - selector: #yourself) } + selector: (RBSelectorNode value: #yourself)) } ] { #category : 'accessing' } @@ -68,7 +68,7 @@ MTMessageSendToYourselfOperatorTest >> newNodeTwoSendersSecond [ ^ RBSequenceNode statements: { (RBMessageNode receiver: (RBVariableNode named: #dict) - selector: #yourself) } + selector: (RBSelectorNode value: #yourself)) } ] { #category : 'accessing' } From 654931a4417bc48be18d7eee9a180eaac0b82791 Mon Sep 17 00:00:00 2001 From: DurieuxPol Date: Mon, 23 Feb 2026 15:24:32 +0100 Subject: [PATCH 4/4] compatibility with Pharo 9 --- src/MuTalk-Model/MTMethodInstaller.class.st | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/MuTalk-Model/MTMethodInstaller.class.st b/src/MuTalk-Model/MTMethodInstaller.class.st index 6016d635..c4987399 100644 --- a/src/MuTalk-Model/MTMethodInstaller.class.st +++ b/src/MuTalk-Model/MTMethodInstaller.class.st @@ -1,6 +1,9 @@ Class { #name : 'MTMethodInstaller', #superclass : 'Object', + #instVars : [ + 'text' + ], #category : 'MuTalk-Model-Core', #package : 'MuTalk-Model', #tag : 'Core' @@ -20,6 +23,7 @@ MTMethodInstaller >> installFromSource: aSourceCode in: aClass [ "Install a SourceCode in aClass. Raise exception in case de installation is not posible." + text := aSourceCode. [ aClass compile: aSourceCode notifying: self ] on: Error do: [ :error | MTMethodInstallerException signal ] @@ -30,6 +34,7 @@ MTMethodInstaller >> installFromSourceSilently: aSourceCode in: aClass [ "Install a SourceCode in aClass. Raise exception in case de installation is not posible." + text := aSourceCode. [ aClass compileSilently: aSourceCode classified: 'test' notifying: self ] on: Error do: [ :error | MTMethodInstallerException signal ] @@ -41,6 +46,13 @@ MTMethodInstaller >> notify: aString at: anInteger in: code [ self error: aString , ' at: ' , anInteger asString , ' in: ' , code ] +{ #category : 'accessing' } +MTMethodInstaller >> text [ + "This method is here only for compatibility with Pharo 9 without impacting Pharo 14+" + + ^ text +] + { #category : 'installing' } MTMethodInstaller >> uninstall: aSelector from: aClass [ "Uninstall a method referenced by aSelector in aClass. Raise exception in