From 769720e2e1780120f343b3f179ddc9d966034424 Mon Sep 17 00:00:00 2001 From: LANDAIS Brendan <116742582+LANDAISB@users.noreply.github.com> Date: Tue, 22 Sep 2026 10:44:38 +0200 Subject: [PATCH 01/14] Update CI.yml --- .github/workflows/CI.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 7e368702..6e7b502e 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -15,11 +15,16 @@ jobs: strategy: matrix: os: [ ubuntu-latest, macos-latest, windows-latest ] - smalltalk: [ Pharo64-11, Pharo64-12, Pharo64-13 ] + smalltalk: [ Pharo64-11, Pharo64-12, Pharo64-13, Pharo64-14 ] ston: [ .smalltalkci.default.ston ] + #Specific case for Pharo14 (experimental): ignore failures + include: + - smalltalk: Pharo64-14 + experimental: true runs-on: ${{ matrix.os }} name: > ${{ matrix.smalltalk }} • ${{ matrix.os }} + continue-on-error: ${{ matrix.experimental == true }} steps: - uses: actions/checkout@v3 @@ -30,4 +35,4 @@ jobs: - name: Run ${{ matrix.ston == '.smalltalkci.default.ston' && 'Full' || 'Core' }} tests run: smalltalkci -s ${{ matrix.smalltalk }} ${{ matrix.ston }} shell: bash - timeout-minutes: 30 \ No newline at end of file + timeout-minutes: 30 From 3ae213f51baf3191247c4676ec226047b3a0177f Mon Sep 17 00:00:00 2001 From: Brendan Date: Tue, 22 Sep 2026 11:54:52 +0200 Subject: [PATCH 02/14] Fix PyramidBreakPoint -> PyramidDebugPoint (BreakPoint-> DebugPoint on P14) --- src/Pyramid-Bloc/PyramidBreakpoint.class.st | 64 ------------------- src/Pyramid-Bloc/PyramidDebugPoint.class.st | 64 +++++++++++++++++++ .../PyramidPluginEditOnRunning.class.st | 12 ++-- 3 files changed, 70 insertions(+), 70 deletions(-) delete mode 100644 src/Pyramid-Bloc/PyramidBreakpoint.class.st create mode 100644 src/Pyramid-Bloc/PyramidDebugPoint.class.st diff --git a/src/Pyramid-Bloc/PyramidBreakpoint.class.st b/src/Pyramid-Bloc/PyramidBreakpoint.class.st deleted file mode 100644 index af3771cc..00000000 --- a/src/Pyramid-Bloc/PyramidBreakpoint.class.st +++ /dev/null @@ -1,64 +0,0 @@ -Class { - #name : #PyramidBreakpoint, - #superclass : #Breakpoint, - #instVars : [ - 'whenHitDo' - ], - #category : #'Pyramid-Bloc-plugin-edit-on-running' -} - -{ #category : #removing } -PyramidBreakpoint class >> removeAllPyramidBreakpoint [ - - - | pyramidBreakpoints | - pyramidBreakpoints := self all select: [ :each | each class = self ]. - pyramidBreakpoints ifEmpty: [ ^ self ]. - pyramidBreakpoints do: [ :each | each remove ] -] - -{ #category : #removing } -PyramidBreakpoint class >> removeAllPyramidBreakpointExceptOne [ - - - | pyramidBreakpoints | - pyramidBreakpoints := self all select: [ :each | each class = self ]. - pyramidBreakpoints ifEmpty: [ ^ self ]. - pyramidBreakpoints allButFirstDo: [ :each | each remove ] -] - -{ #category : #api } -PyramidBreakpoint >> breakInContext: aContext node: aNode [ - - self class notifyBreakpointHit: self inContext: aContext node: aNode. - self isEnabled ifFalse: [ ^ self ]. - self onCount ifTrue: [ - self increaseCount = self breakOnCount ifFalse: [ ^ self ] ]. - self once ifTrue: [ self disable ]. - self whenHitDo value: aContext. -] - -{ #category : #initialization } -PyramidBreakpoint >> initialize [ - - super initialize. - whenHitDo := [ :c | ] -] - -{ #category : #testing } -PyramidBreakpoint >> isInstalled [ - - ^ self link methods isNotEmpty -] - -{ #category : #accessing } -PyramidBreakpoint >> whenHitDo [ - - ^ whenHitDo -] - -{ #category : #accessing } -PyramidBreakpoint >> whenHitDo: anObject [ - - whenHitDo := anObject -] diff --git a/src/Pyramid-Bloc/PyramidDebugPoint.class.st b/src/Pyramid-Bloc/PyramidDebugPoint.class.st new file mode 100644 index 00000000..b93877ab --- /dev/null +++ b/src/Pyramid-Bloc/PyramidDebugPoint.class.st @@ -0,0 +1,64 @@ +Class { + #name : #PyramidDebugPoint, + #superclass : #DebugPoint, + #instVars : [ + 'whenHitDo' + ], + #category : #'Pyramid-Bloc-plugin-edit-on-running' +} + +{ #category : #removing } +PyramidDebugPoint class >> removeAllPyramidDebugPoint [ + + + | pyramidDebugPoints | + pyramidDebugPoints := self all select: [ :each | each class = self ]. + pyramidDebugPoints ifEmpty: [ ^ self ]. + pyramidDebugPoints do: [ :each | each remove ] +] + +{ #category : #removing } +PyramidDebugPoint class >> removeAllPyramidDebugPointExceptOne [ + + + | pyramidDebugPoints | + pyramidDebugPoints := self all select: [ :each | each class = self ]. + pyramidDebugPoints ifEmpty: [ ^ self ]. + pyramidDebugPoints allButFirstDo: [ :each | each remove ] +] + +{ #category : #API } +PyramidDebugPoint >> hitWithContext: aContext [ + + | result | + result := super hitWithContext: aContext. + result ifTrue:[ self whenHitDo value: aContext ]. + + ^result + +] + +{ #category : #initialization } +PyramidDebugPoint >> initialize [ + + super initialize. + whenHitDo := [ :c | ] +] + +{ #category : #testing } +PyramidDebugPoint >> isInstalled [ + + ^ self link methods isNotEmpty +] + +{ #category : #accessing } +PyramidDebugPoint >> whenHitDo [ + + ^ whenHitDo +] + +{ #category : #accessing } +PyramidDebugPoint >> whenHitDo: anObject [ + + whenHitDo := anObject +] diff --git a/src/Pyramid-Bloc/PyramidPluginEditOnRunning.class.st b/src/Pyramid-Bloc/PyramidPluginEditOnRunning.class.st index 8c2589c3..19cab6f6 100644 --- a/src/Pyramid-Bloc/PyramidPluginEditOnRunning.class.st +++ b/src/Pyramid-Bloc/PyramidPluginEditOnRunning.class.st @@ -24,7 +24,7 @@ PyramidPluginEditOnRunning class >> breakpoint [ ^ breakpoint ] -{ #category : #'as yet unclassified' } +{ #category : #private } PyramidPluginEditOnRunning class >> canEditSpace: aSpace [ aSpace ifNil:[ ^ false ]. @@ -54,13 +54,13 @@ PyramidPluginEditOnRunning class >> doShortcutAction: anEvent [ editor window whenClosedDo: [ whenClosedDo value ] ] -{ #category : #'as yet unclassified' } +{ #category : #accessing } PyramidPluginEditOnRunning class >> editOnRunning [ ^ editOnRunning ifNil: [ editOnRunning := true ] ] -{ #category : #'as yet unclassified' } +{ #category : #accessing } PyramidPluginEditOnRunning class >> editOnRunning: aBoolean [ editOnRunning := aBoolean @@ -77,10 +77,10 @@ PyramidPluginEditOnRunning class >> install [ PyramidPluginEditOnRunning class >> installBreakpoint [ | node | - PyramidBreakpoint removeAllPyramidBreakpoint. + PyramidDebugPoint removeAllPyramidDebugPoint. node := (BlParallelUniverse methodNamed: #openSpace:) ast. - breakpoint := PyramidBreakpoint new. + breakpoint := PyramidDebugPoint new. breakpoint node: node. breakpoint whenHitDo: [ :context | self addShortcutInSpace: context arguments first ]. @@ -122,6 +122,6 @@ PyramidPluginEditOnRunning class >> shortcut [ PyramidPluginEditOnRunning class >> uninstall [ "Undo some stuff here when the plugin used class oriented behavior" - PyramidBreakpoint removeAllPyramidBreakpoint. + PyramidDebugPoint removeAllPyramidDebugPoint. breakpoint := nil. ] From f1f7570227e65723ee492b2e69a92c8daf5023fc Mon Sep 17 00:00:00 2001 From: Brendan Date: Tue, 22 Sep 2026 14:30:03 +0200 Subject: [PATCH 03/14] Fix PyramidDebugPoint --- src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st b/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st index 906a86d5..51652a9c 100644 --- a/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st +++ b/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st @@ -106,7 +106,7 @@ PyramidPluginEditOnRunningTest >> testOnlyOnePyramidBreakpoint [ Smalltalk image garbageCollect. Smalltalk image garbageCollect. Smalltalk image garbageCollect. - self assert: (PyramidBreakpoint allInstances select: #isInstalled) size equals: 1 + self assert: (PyramidDebugPoint allInstances select: #isInstalled) size equals: 1 ] { #category : #tests } From cdb1edd4c593087d99eed1f64c951e3b38820dfd Mon Sep 17 00:00:00 2001 From: Brendan Date: Tue, 22 Sep 2026 15:12:50 +0200 Subject: [PATCH 04/14] Try fix removePyramidDebugPoints --- src/Pyramid-Bloc/PyramidDebugPoint.class.st | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Pyramid-Bloc/PyramidDebugPoint.class.st b/src/Pyramid-Bloc/PyramidDebugPoint.class.st index b93877ab..467bf6ba 100644 --- a/src/Pyramid-Bloc/PyramidDebugPoint.class.st +++ b/src/Pyramid-Bloc/PyramidDebugPoint.class.st @@ -12,7 +12,7 @@ PyramidDebugPoint class >> removeAllPyramidDebugPoint [ | pyramidDebugPoints | - pyramidDebugPoints := self all select: [ :each | each class = self ]. + pyramidDebugPoints := PyramidDebugPoint allInstances. pyramidDebugPoints ifEmpty: [ ^ self ]. pyramidDebugPoints do: [ :each | each remove ] ] @@ -22,7 +22,7 @@ PyramidDebugPoint class >> removeAllPyramidDebugPointExceptOne [ | pyramidDebugPoints | - pyramidDebugPoints := self all select: [ :each | each class = self ]. + pyramidDebugPoints := PyramidDebugPoint allInstances. pyramidDebugPoints ifEmpty: [ ^ self ]. pyramidDebugPoints allButFirstDo: [ :each | each remove ] ] From 74f2cecdd290b5456148139dc0f43ddb0950bee8 Mon Sep 17 00:00:00 2001 From: Brendan Date: Tue, 22 Sep 2026 15:30:52 +0200 Subject: [PATCH 05/14] Fix --- src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st b/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st index d8425326..6374cc47 100644 --- a/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st +++ b/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st @@ -47,9 +47,10 @@ PyramidSaveModelVerifier class >> classPackageIsEqual [ PyramidSaveModelVerifier class >> methodIsValid [ ^ self new - verifyBlock: [ :model | model savingMethodName isValidSelector ]; + verifyBlock: [ :model | + OCScanner isSelector: model savingMethodName ]; showBlock: [ :view | view showMethodIsNotValidError ]; - yourself. + yourself ] { #category : #constructor } From 889304cac054384696df4738d255313d980f1c39 Mon Sep 17 00:00:00 2001 From: Brendan Date: Tue, 22 Sep 2026 15:36:39 +0200 Subject: [PATCH 06/14] Try fix remove --- src/Pyramid-Bloc/PyramidDebugPoint.class.st | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/Pyramid-Bloc/PyramidDebugPoint.class.st b/src/Pyramid-Bloc/PyramidDebugPoint.class.st index 467bf6ba..81b66b3a 100644 --- a/src/Pyramid-Bloc/PyramidDebugPoint.class.st +++ b/src/Pyramid-Bloc/PyramidDebugPoint.class.st @@ -13,18 +13,8 @@ PyramidDebugPoint class >> removeAllPyramidDebugPoint [ | pyramidDebugPoints | pyramidDebugPoints := PyramidDebugPoint allInstances. - pyramidDebugPoints ifEmpty: [ ^ self ]. - pyramidDebugPoints do: [ :each | each remove ] -] - -{ #category : #removing } -PyramidDebugPoint class >> removeAllPyramidDebugPointExceptOne [ - - - | pyramidDebugPoints | - pyramidDebugPoints := PyramidDebugPoint allInstances. - pyramidDebugPoints ifEmpty: [ ^ self ]. - pyramidDebugPoints allButFirstDo: [ :each | each remove ] + pyramidDebugPoints isEmptyOrNil ifTrue: [ ^ self ]. + pyramidDebugPoints do: [ :each | each link ifNotNil:[ each remove ] ] ] { #category : #API } From 27cb82895a8c3e5d162abd6f1f03d86a9aeaf99c Mon Sep 17 00:00:00 2001 From: Brendan Date: Tue, 22 Sep 2026 15:50:36 +0200 Subject: [PATCH 07/14] Fix for P12 and earlier --- src/Pyramid-Bloc/PyramidDebugPoint.class.st | 1 + src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Pyramid-Bloc/PyramidDebugPoint.class.st b/src/Pyramid-Bloc/PyramidDebugPoint.class.st index 81b66b3a..dd104693 100644 --- a/src/Pyramid-Bloc/PyramidDebugPoint.class.st +++ b/src/Pyramid-Bloc/PyramidDebugPoint.class.st @@ -38,6 +38,7 @@ PyramidDebugPoint >> initialize [ { #category : #testing } PyramidDebugPoint >> isInstalled [ + self link ifNil:[ ^false ]. ^ self link methods isNotEmpty ] diff --git a/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st b/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st index 6374cc47..0848f873 100644 --- a/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st +++ b/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st @@ -47,8 +47,7 @@ PyramidSaveModelVerifier class >> classPackageIsEqual [ PyramidSaveModelVerifier class >> methodIsValid [ ^ self new - verifyBlock: [ :model | - OCScanner isSelector: model savingMethodName ]; + verifyBlock: [ :model |model savingMethodName isValidSelector]; showBlock: [ :view | view showMethodIsNotValidError ]; yourself ] From 61bd2faf3b91abe497f12a7504ce4ce1479e6886 Mon Sep 17 00:00:00 2001 From: Brendan Date: Tue, 22 Sep 2026 16:38:36 +0200 Subject: [PATCH 08/14] Update baseline for PharoBackwardCompatbility --- src/BaselineOfPyramid/BaselineOfPyramid.class.st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BaselineOfPyramid/BaselineOfPyramid.class.st b/src/BaselineOfPyramid/BaselineOfPyramid.class.st index 523ed4a8..c03cdcc0 100644 --- a/src/BaselineOfPyramid/BaselineOfPyramid.class.st +++ b/src/BaselineOfPyramid/BaselineOfPyramid.class.st @@ -22,7 +22,7 @@ BaselineOfPyramid >> baselineForCommon: spec [ "Pharo backward compatibility: to preserve running from previous versions of Pharo" spec baseline: 'PharoBackwardCompatibility' - with: [ spec repository: 'github://jecisc/PharoBackwardCompatibility:master' ]. + with: [ spec repository: 'github://LANDAISB/PharoBackwardCompatibility:master' ]. "Dependencies" self blocDependencies: spec. From 1d2f56f6b6414bece0e3f3666b8996e4998614f4 Mon Sep 17 00:00:00 2001 From: Brendan Date: Tue, 22 Sep 2026 18:25:47 +0200 Subject: [PATCH 09/14] Fix for P12 --- src/Pyramid-Bloc/PyramidDebugPoint.class.st | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Pyramid-Bloc/PyramidDebugPoint.class.st b/src/Pyramid-Bloc/PyramidDebugPoint.class.st index dd104693..75dc06d8 100644 --- a/src/Pyramid-Bloc/PyramidDebugPoint.class.st +++ b/src/Pyramid-Bloc/PyramidDebugPoint.class.st @@ -42,6 +42,12 @@ PyramidDebugPoint >> isInstalled [ ^ self link methods isNotEmpty ] +{ #category : #accessing } +PyramidDebugPoint >> link [ + + ^ link ifNil: [ link := self metaLink ] +] + { #category : #accessing } PyramidDebugPoint >> whenHitDo [ From 32f1be18af00de433c9b78a6bbd95ab45712d400 Mon Sep 17 00:00:00 2001 From: LANDAIS Brendan <116742582+LANDAISB@users.noreply.github.com> Date: Wed, 23 Sep 2026 09:00:59 +0200 Subject: [PATCH 10/14] Update CI.yml --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 6e7b502e..85a1d649 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: os: [ ubuntu-latest, macos-latest, windows-latest ] - smalltalk: [ Pharo64-11, Pharo64-12, Pharo64-13, Pharo64-14 ] + smalltalk: [ Pharo64-12, Pharo64-13, Pharo64-14 ] ston: [ .smalltalkci.default.ston ] #Specific case for Pharo14 (experimental): ignore failures include: From 2eaeec185a078d26b4d666fe5976c09df13899c8 Mon Sep 17 00:00:00 2001 From: Brendan Date: Wed, 23 Sep 2026 09:12:55 +0200 Subject: [PATCH 11/14] Fix link --- src/Pyramid-Bloc/PyramidDebugPoint.class.st | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Pyramid-Bloc/PyramidDebugPoint.class.st b/src/Pyramid-Bloc/PyramidDebugPoint.class.st index 75dc06d8..85a67407 100644 --- a/src/Pyramid-Bloc/PyramidDebugPoint.class.st +++ b/src/Pyramid-Bloc/PyramidDebugPoint.class.st @@ -35,6 +35,15 @@ PyramidDebugPoint >> initialize [ whenHitDo := [ :c | ] ] +{ #category : #installing } +PyramidDebugPoint >> install [ + + "For compatibility P12" + self link ifNil:[ self link: self metaLink]. + + super install +] + { #category : #testing } PyramidDebugPoint >> isInstalled [ @@ -42,12 +51,6 @@ PyramidDebugPoint >> isInstalled [ ^ self link methods isNotEmpty ] -{ #category : #accessing } -PyramidDebugPoint >> link [ - - ^ link ifNil: [ link := self metaLink ] -] - { #category : #accessing } PyramidDebugPoint >> whenHitDo [ From 5886d6db9790f210086b28664240f5b71a1eabb3 Mon Sep 17 00:00:00 2001 From: Brendan Date: Wed, 23 Sep 2026 09:14:22 +0200 Subject: [PATCH 12/14] Discard changes on baseline --- src/BaselineOfPyramid/BaselineOfPyramid.class.st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BaselineOfPyramid/BaselineOfPyramid.class.st b/src/BaselineOfPyramid/BaselineOfPyramid.class.st index c03cdcc0..523ed4a8 100644 --- a/src/BaselineOfPyramid/BaselineOfPyramid.class.st +++ b/src/BaselineOfPyramid/BaselineOfPyramid.class.st @@ -22,7 +22,7 @@ BaselineOfPyramid >> baselineForCommon: spec [ "Pharo backward compatibility: to preserve running from previous versions of Pharo" spec baseline: 'PharoBackwardCompatibility' - with: [ spec repository: 'github://LANDAISB/PharoBackwardCompatibility:master' ]. + with: [ spec repository: 'github://jecisc/PharoBackwardCompatibility:master' ]. "Dependencies" self blocDependencies: spec. From e95d15caf9f61125703f6fc942334f98c84c2883 Mon Sep 17 00:00:00 2001 From: LANDAIS Brendan <116742582+LANDAISB@users.noreply.github.com> Date: Wed, 23 Sep 2026 10:07:59 +0200 Subject: [PATCH 13/14] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 94ef5ca9..7989b3e3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -[![Pharo 11](https://img.shields.io/badge/Pharo-11-%23aac9ff.svg)](https://pharo.org/download) [![Pharo 12](https://img.shields.io/badge/Pharo-12-%23aac9ff.svg)](https://pharo.org/download) [![Pharo 13](https://img.shields.io/badge/Pharo-13-%23aac9ff.svg)](https://pharo.org/download) +[![Pharo 14](https://img.shields.io/badge/Pharo-11-%23aac9ff.svg)](https://pharo.org/download) [![License](https://img.shields.io/github/license/OpenSmock/Pyramid.svg)](./LICENSE) [![Unit tests](https://github.com/OpenSmock/Pyramid/actions/workflows/CI.yml/badge.svg)](https://github.com/OpenSmock/Pyramid/actions/workflows/CI.yml) From d78c62268de2d3f618bcacab7ee103a109cc149b Mon Sep 17 00:00:00 2001 From: LANDAIS Brendan <116742582+LANDAISB@users.noreply.github.com> Date: Wed, 23 Sep 2026 10:08:25 +0200 Subject: [PATCH 14/14] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7989b3e3..94e82e8a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![Pharo 12](https://img.shields.io/badge/Pharo-12-%23aac9ff.svg)](https://pharo.org/download) [![Pharo 13](https://img.shields.io/badge/Pharo-13-%23aac9ff.svg)](https://pharo.org/download) -[![Pharo 14](https://img.shields.io/badge/Pharo-11-%23aac9ff.svg)](https://pharo.org/download) +[![Pharo 14](https://img.shields.io/badge/Pharo-14-%23aac9ff.svg)](https://pharo.org/download) [![License](https://img.shields.io/github/license/OpenSmock/Pyramid.svg)](./LICENSE) [![Unit tests](https://github.com/OpenSmock/Pyramid/actions/workflows/CI.yml/badge.svg)](https://github.com/OpenSmock/Pyramid/actions/workflows/CI.yml)