From cf044aea053c13844577d81fab9c0ef18b21564c Mon Sep 17 00:00:00 2001 From: Patrick R Date: Tue, 15 Aug 2023 15:56:56 +0200 Subject: [PATCH 01/25] Enables continuous updates in the probe log. --- .../instance/executeSynchronously.st | 5 ++++- .../BPAbstractExample.class/methodProperties.json | 2 +- .../instance/addTracedValue.forAssertion..st | 3 ++- .../BPTrace.class/instance/addTracedValue.forProbe..st | 3 ++- .../BPTrace.class/instance/initialize.st | 1 + .../BPTrace.class/instance/notifyDependents.st | 6 ++++++ .../BPTrace.class/methodProperties.json | 7 ++++--- .../BPTrace.class/properties.json | 3 ++- .../BPSwimlane.class/instance/update.with..st | 9 ++++++++- .../BPSwimlane.class/methodProperties.json | 2 +- 10 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 packages/Babylonian-Core.package/BPTrace.class/instance/notifyDependents.st diff --git a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/executeSynchronously.st b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/executeSynchronously.st index d3351786..9cd45e66 100644 --- a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/executeSynchronously.st +++ b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/executeSynchronously.st @@ -5,4 +5,7 @@ executeSynchronously | state | state := self prepareRunState. self runSetUpWith: state. - [ ^ self runWithTimeoutOn: state] ensure: [self runTearDownWith: state] \ No newline at end of file + [ ^ self runWithTimeoutOn: state] + ensure: [ + self runTearDownWith: state. + self changed: #exampleCompleted with: self] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json b/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json index 816436b6..5d5ad774 100644 --- a/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json @@ -16,7 +16,7 @@ "exampleName" : "pre 1/11/2023 10:47", "exampleName:" : "pre 1/11/2023 10:47", "execute" : "pre 7/13/2023 10:44", - "executeSynchronously" : "pre 7/13/2023 10:44", + "executeSynchronously" : "pre 8/15/2023 15:45", "expectedResult" : "pre 1/11/2023 10:47", "expectedResult:" : "pre 1/11/2023 10:47", "hasExpectedResult" : "joabe 9/28/2022 22:56", diff --git a/packages/Babylonian-Core.package/BPTrace.class/instance/addTracedValue.forAssertion..st b/packages/Babylonian-Core.package/BPTrace.class/instance/addTracedValue.forAssertion..st index 8cce5e8f..d38f7003 100644 --- a/packages/Babylonian-Core.package/BPTrace.class/instance/addTracedValue.forAssertion..st +++ b/packages/Babylonian-Core.package/BPTrace.class/instance/addTracedValue.forAssertion..st @@ -3,4 +3,5 @@ addTracedValue: aTraceValue forAssertion: anAssertionId mutex critical: [ (self assertions at: anAssertionId ifAbsentPut: [OrderedCollection new]) add: aTraceValue]. - self addChronologicalPositionTo: aTraceValue forAnnotation: anAssertionId. \ No newline at end of file + self addChronologicalPositionTo: aTraceValue forAnnotation: anAssertionId. + self notifyDependents. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPTrace.class/instance/addTracedValue.forProbe..st b/packages/Babylonian-Core.package/BPTrace.class/instance/addTracedValue.forProbe..st index 896668cf..dbe7731f 100644 --- a/packages/Babylonian-Core.package/BPTrace.class/instance/addTracedValue.forProbe..st +++ b/packages/Babylonian-Core.package/BPTrace.class/instance/addTracedValue.forProbe..st @@ -3,4 +3,5 @@ addTracedValue: aTraceValue forProbe: aProbeId mutex critical: [ (self probes at: aProbeId ifAbsentPut: [OrderedCollection new]) add: aTraceValue]. - self addChronologicalPositionTo: aTraceValue forAnnotation: aProbeId. \ No newline at end of file + self addChronologicalPositionTo: aTraceValue forAnnotation: aProbeId. + self notifyDependents. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPTrace.class/instance/initialize.st b/packages/Babylonian-Core.package/BPTrace.class/instance/initialize.st index c2bc7948..b74e6f2f 100644 --- a/packages/Babylonian-Core.package/BPTrace.class/instance/initialize.st +++ b/packages/Babylonian-Core.package/BPTrace.class/instance/initialize.st @@ -10,6 +10,7 @@ initialize blockRecord := Dictionary new. chronologicallyTrackedTraceValuesCount := 0. mutex := Mutex new. + notificationSent := false. controlFlowPaths := IdentityDictionary new. diff --git a/packages/Babylonian-Core.package/BPTrace.class/instance/notifyDependents.st b/packages/Babylonian-Core.package/BPTrace.class/instance/notifyDependents.st new file mode 100644 index 00000000..aa6ebbd7 --- /dev/null +++ b/packages/Babylonian-Core.package/BPTrace.class/instance/notifyDependents.st @@ -0,0 +1,6 @@ +private +notifyDependents + + notificationSent ifFalse: [ + notificationSent := true. + ([[self changed: #traceChanged with: self] ensure: [notificationSent := false]] future: 10 "ms") value.] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPTrace.class/methodProperties.json b/packages/Babylonian-Core.package/BPTrace.class/methodProperties.json index b6416faf..2aad1453 100644 --- a/packages/Babylonian-Core.package/BPTrace.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPTrace.class/methodProperties.json @@ -3,8 +3,8 @@ "maxStackSize" : "jb 6/30/2021 01:13" }, "instance" : { "addChronologicalPositionTo:forAnnotation:" : "lu 11/21/2021 18:56", - "addTracedValue:forAssertion:" : "pre 1/11/2023 16:24", - "addTracedValue:forProbe:" : "pre 1/11/2023 16:25", + "addTracedValue:forAssertion:" : "pre 8/15/2023 15:50", + "addTracedValue:forProbe:" : "pre 8/15/2023 15:50", "assertions" : "pre 5/10/2019 10:09", "chronologicallyTrackedTraceValuesCount" : "lu 11/22/2021 22:03", "controlFlowPathAt:ifAbsentPut:" : "pre 6/29/2023 08:19", @@ -18,10 +18,11 @@ "hasTraceCompleted" : "pre 8/17/2020 09:55", "hasTraceCompleted:" : "jb 12/7/2020 18:54", "includesValuesForProbeId:" : "pre 1/11/2023 16:27", - "initialize" : "pre 6/29/2023 11:26", + "initialize" : "pre 8/15/2023 15:51", "mementoFor:" : "pre 6/29/2023 11:17", "newTracedAssignmentValue:previousValues:expression:stackFrom:" : "pre 10/12/2020 17:58", "newTracedValue:expression:stackFrom:" : "pre 10/12/2020 17:57", + "notifyDependents" : "pre 8/15/2023 15:52", "pathForTraceValue:" : "pre 6/29/2023 08:18", "probes" : "pre 5/8/2019 16:44", "recordedException" : "pre 7/25/2019 12:28", diff --git a/packages/Babylonian-Core.package/BPTrace.class/properties.json b/packages/Babylonian-Core.package/BPTrace.class/properties.json index e0004160..456b9ba0 100644 --- a/packages/Babylonian-Core.package/BPTrace.class/properties.json +++ b/packages/Babylonian-Core.package/BPTrace.class/properties.json @@ -17,7 +17,8 @@ "mutex", "erroredProcess", "controlFlowPaths", - "allPaths" ], + "allPaths", + "notificationSent" ], "name" : "BPTrace", "pools" : [ ], diff --git a/packages/Babylonian-ProbeLog.package/BPSwimlane.class/instance/update.with..st b/packages/Babylonian-ProbeLog.package/BPSwimlane.class/instance/update.with..st index 7e035103..0a8db8a6 100644 --- a/packages/Babylonian-ProbeLog.package/BPSwimlane.class/instance/update.with..st +++ b/packages/Babylonian-ProbeLog.package/BPSwimlane.class/instance/update.with..st @@ -4,7 +4,14 @@ update: anAspect with: anObject super update: anAspect with: anObject. anAspect = #newTrace ifTrue: [ - anObject first ifNotNil: [ + Project current addDeferredUIMessage: [ + anObject first ifNotNil: [ + anObject first addDependent: self. + self removeAllMorphs. + self visualize]]]. + + (anAspect = #exampleCompleted or: [anAspect = #traceChanged]) ifTrue: [ + Project current addDeferredUIMessage: [ self removeAllMorphs. self visualize]]. diff --git a/packages/Babylonian-ProbeLog.package/BPSwimlane.class/methodProperties.json b/packages/Babylonian-ProbeLog.package/BPSwimlane.class/methodProperties.json index b5c2aa5c..58063118 100644 --- a/packages/Babylonian-ProbeLog.package/BPSwimlane.class/methodProperties.json +++ b/packages/Babylonian-ProbeLog.package/BPSwimlane.class/methodProperties.json @@ -20,7 +20,7 @@ "newTitleMorphFor:" : "jb 2/22/2022 21:29", "stacksFor:" : "pre 11/16/2022 16:05", "titleMorphCloses" : "jb 1/27/2022 17:58", - "update:with:" : "lu 3/7/2022 01:54", + "update:with:" : "pre 8/15/2023 15:52", "updateLayoutToContext" : "jb 11/20/2021 01:33", "visualize" : "lu 3/6/2022 22:45", "visualizeLinesFor:" : "pre 11/16/2022 16:22" } } From e21dd9043e80791c83107f790f265f6964d1441f Mon Sep 17 00:00:00 2001 From: Patrick R Date: Thu, 17 Aug 2023 09:33:57 +0200 Subject: [PATCH 02/25] Removes the remnants of SOH --- .../BPSky.class/instance/drawOn..st | 2 +- .../BPSky.class/methodProperties.json | 2 +- .../instance/resetForm.st | 13 +++--------- .../methodProperties.json | 2 +- .../instance/setUp.st | 4 ++-- .../instance/testRenderingSimpleSlider.st | 4 ++-- .../testRenderingSliderWithNestedProbe.st | 6 +++--- .../instance/testRenderingWithoutExamples.st | 2 +- .../methodProperties.json | 8 +++---- ...tylerReusesExamplesMorphWhenStyledAgain.st | 4 ++-- .../BPStylerTest.class/methodProperties.json | 2 +- .../isAlreadyAnnotatedExpressionAt.in..st | 3 +-- .../BPStyler.class/methodProperties.json | 2 +- .../instance/isBPDecoration.st | 4 ++++ .../methodProperties.json | 1 + .../instance/writeContent..st | 2 +- .../methodProperties.json | 2 +- .../instance/addAnnotation.in..st | 21 +++++++------------ .../methodProperties.json | 2 +- .../instance/isBPDecoration.st | 4 ++++ .../methodProperties.json | 1 + 21 files changed, 43 insertions(+), 48 deletions(-) create mode 100644 packages/Babylonian-UI.package/BPTextDecoration.class/instance/isBPDecoration.st create mode 100644 packages/Babylonian-UI.package/TextAttribute.extension/instance/isBPDecoration.st diff --git a/packages/Babylonian-Demo.package/BPSky.class/instance/drawOn..st b/packages/Babylonian-Demo.package/BPSky.class/instance/drawOn..st index 19fa8edf..48957709 100644 --- a/packages/Babylonian-Demo.package/BPSky.class/instance/drawOn..st +++ b/packages/Babylonian-Demo.package/BPSky.class/instance/drawOn..st @@ -7,5 +7,5 @@ drawOn: aCanvas colors: {Color white . self color}) origin: (aCanvas form extent * ((2/3)@(1/2))) rounded; direction: (aCanvas extent / 2) rounded; - radial: true) + radial: true) \ No newline at end of file diff --git a/packages/Babylonian-Demo.package/BPSky.class/methodProperties.json b/packages/Babylonian-Demo.package/BPSky.class/methodProperties.json index 37293c31..c374f263 100644 --- a/packages/Babylonian-Demo.package/BPSky.class/methodProperties.json +++ b/packages/Babylonian-Demo.package/BPSky.class/methodProperties.json @@ -4,5 +4,5 @@ "instance" : { "color" : "lu 12/7/2021 11:59", "color:" : "pre 2/5/2021 10:03", - "drawOn:" : "pre 2/5/2021 14:23", + "drawOn:" : "pre 8/15/2023 15:32", "initialize" : "pre 2/5/2021 10:04" } } diff --git a/packages/Babylonian-Demo.package/BPTreeSceneMorph.class/instance/resetForm.st b/packages/Babylonian-Demo.package/BPTreeSceneMorph.class/instance/resetForm.st index a3b0a147..b544487f 100644 --- a/packages/Babylonian-Demo.package/BPTreeSceneMorph.class/instance/resetForm.st +++ b/packages/Babylonian-Demo.package/BPTreeSceneMorph.class/instance/resetForm.st @@ -1,21 +1,14 @@ accessing resetForm - | canvas | - super resetForm. - + super resetForm. + self sceneParts do: [:part | canvas := cachedForm getCanvas. part drawOn: canvas. - ""canvas"" flush]. + canvas flush]. ^ cachedForm \ No newline at end of file diff --git a/packages/Babylonian-Demo.package/BPTreeSceneMorph.class/methodProperties.json b/packages/Babylonian-Demo.package/BPTreeSceneMorph.class/methodProperties.json index c80a1554..b0ebf55b 100644 --- a/packages/Babylonian-Demo.package/BPTreeSceneMorph.class/methodProperties.json +++ b/packages/Babylonian-Demo.package/BPTreeSceneMorph.class/methodProperties.json @@ -10,7 +10,7 @@ "initializeParts" : "pre 2/5/2021 10:02", "mountains" : "pre 2/4/2021 19:54", "mountains:" : "pre 2/4/2021 19:54", - "resetForm" : "pre 7/15/2022 16:55", + "resetForm" : "pre 8/17/2023 08:41", "sceneParts" : "pre 2/5/2021 10:02", "sky" : "pre 2/5/2021 10:02", "sky:" : "pre 2/5/2021 10:02", diff --git a/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/setUp.st b/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/setUp.st index bf65293f..edfdcbeb 100644 --- a/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/setUp.st +++ b/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/setUp.st @@ -3,7 +3,7 @@ setUp methodReference := MethodReference class: BPAnnotationMorphsTest selector: #method. source := ('method - -^ ' , Character startOfHeader , '2 + 3') asText. + +^ 2 + 3') asText. expressionInterval := 39 to: 43. \ No newline at end of file diff --git a/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingSimpleSlider.st b/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingSimpleSlider.st index 62f6b812..4fd0dac8 100644 --- a/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingSimpleSlider.st +++ b/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingSimpleSlider.st @@ -8,10 +8,10 @@ testRenderingSimpleSlider id: 10; asMorph. anchorAttribute := BPTextDecoration new anchoredMorph: slideMorph. - expressionInterval := 57 to: 69. + expressionInterval := 57 to: 68. source := ('methodWithBlock -^ self do: ',Character startOfHeader,'[:r | 2 + 3]') asText. +^ self do: [:r | 2 + 3]') asText. source addAttribute: anchorAttribute from: expressionInterval start to: expressionInterval stop. renderedSource := source asBPSource. diff --git a/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingSliderWithNestedProbe.st b/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingSliderWithNestedProbe.st index 422bb643..251df171 100644 --- a/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingSliderWithNestedProbe.st +++ b/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingSliderWithNestedProbe.st @@ -5,21 +5,21 @@ testRenderingSliderWithNestedProbe methodReference := MethodReference class: BPAnnotationMorphsTest selector: #methodWithBlock. source := ('methodWithBlock -^ self do: ',Character startOfHeader,'[:r | ',Character startOfHeader,'2 + 3]') asText. +^ self do: [:r | 2 + 3]') asText. sliderMorph := BPSlider new methodReference: methodReference; id: 10; asMorph. anchorAttribute := BPTextDecoration new anchoredMorph: sliderMorph. - source addAttribute: anchorAttribute from: 57 to: 70. + source addAttribute: anchorAttribute from: 57 to: 68. probeMorph := BPProbe new id: 1; methodReference: methodReference; asMorph. anchorAttribute := BPTextDecoration new anchoredMorph: probeMorph. - source addAttribute: anchorAttribute from: 65 to: 69. + source addAttribute: anchorAttribute from: 63 to: 67. renderedSource := source asBPSource. self assert: 'methodWithBlock diff --git a/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingWithoutExamples.st b/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingWithoutExamples.st index 0716847c..2b9a0b79 100644 --- a/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingWithoutExamples.st +++ b/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/instance/testRenderingWithoutExamples.st @@ -3,7 +3,7 @@ testRenderingWithoutExamples | example renderedSource anchorAttribute examplesAnnotation examplesMorph | source := ('method -',Character startOfHeader,' + ^ 2 + 3') asText. example := BPMethodExample new method: methodReference compiledMethod; diff --git a/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/methodProperties.json b/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/methodProperties.json index f7f0a05b..11cf9999 100644 --- a/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/methodProperties.json +++ b/packages/Babylonian-Tests.package/BPAnnotationMorphsTest.class/methodProperties.json @@ -8,7 +8,7 @@ "methodWithBlock" : "jb 12/3/2020 22:59", "methodWithBlockAndProbe" : "jb 12/7/2020 19:05", "runCase" : "pre 5/6/2021 17:00", - "setUp" : "pre 7/25/2019 12:06", + "setUp" : "pre 8/17/2023 08:30", "testRenderingExample" : "pre 7/20/2022 15:26", "testRenderingExampleSpecificReplacement" : "pre 7/20/2022 09:30", "testRenderingExampleWithLiveSpecimen" : "pre 1/10/2023 16:41", @@ -23,9 +23,9 @@ "testRenderingSimpleLabelProbe" : "lu 7/9/2021 22:21", "testRenderingSimpleProbe" : "pre 7/20/2022 09:26", "testRenderingSimpleReplacement" : "pre 7/20/2022 09:26", - "testRenderingSimpleSlider" : "pre 7/20/2022 09:26", + "testRenderingSimpleSlider" : "pre 8/17/2023 08:33", "testRenderingSimpleTemporaryProbe" : "pre 11/30/2022 09:52", "testRenderingSimpleTypeProbe" : "pre 11/30/2022 09:50", - "testRenderingSliderWithNestedProbe" : "pre 7/20/2022 09:26", - "testRenderingWithoutExamples" : "pre 7/20/2022 09:30", + "testRenderingSliderWithNestedProbe" : "pre 8/17/2023 09:32", + "testRenderingWithoutExamples" : "pre 8/17/2023 08:35", "testRenderingWorldExample" : "pre 9/6/2022 11:18" } } diff --git a/packages/Babylonian-Tests.package/BPStylerTest.class/instance/testStylerReusesExamplesMorphWhenStyledAgain.st b/packages/Babylonian-Tests.package/BPStylerTest.class/instance/testStylerReusesExamplesMorphWhenStyledAgain.st index 0abbf99c..1034b220 100644 --- a/packages/Babylonian-Tests.package/BPStylerTest.class/instance/testStylerReusesExamplesMorphWhenStyledAgain.st +++ b/packages/Babylonian-Tests.package/BPStylerTest.class/instance/testStylerReusesExamplesMorphWhenStyledAgain.st @@ -5,11 +5,11 @@ testStylerReusesExamplesMorphWhenStyledAgain originalSourceCode := 'method' asText. formattedSourceCode := styler format: originalSourceCode. - oldAttributes := formattedSourceCode attributesAt: (formattedSourceCode asString indexOf: Character startOfHeader). + oldAttributes := formattedSourceCode attributesAt: 1. oldAttributes := oldAttributes select: [:anAttribute | styler hasExamplesMorph: anAttribute]. formattedSourceCode := styler format: formattedSourceCode. - newAttributes := formattedSourceCode attributesAt: (formattedSourceCode asString indexOf: Character startOfHeader). + newAttributes := formattedSourceCode attributesAt: 1. newAttributes := newAttributes select: [:anAttribute | styler hasExamplesMorph: anAttribute]. self assert: oldAttributes first identical: newAttributes first. diff --git a/packages/Babylonian-Tests.package/BPStylerTest.class/methodProperties.json b/packages/Babylonian-Tests.package/BPStylerTest.class/methodProperties.json index fcdafa54..6f2db5c5 100644 --- a/packages/Babylonian-Tests.package/BPStylerTest.class/methodProperties.json +++ b/packages/Babylonian-Tests.package/BPStylerTest.class/methodProperties.json @@ -15,7 +15,7 @@ "testStylerAddsExamplesMorphForEmptyTwoNewLinedMethodBody" : "jb 8/29/2021 20:32", "testStylerAddsExamplesMorphForSomeFilledMethodBody" : "jb 8/29/2021 20:44", "testStylerCanCopeWithProbeWithinSliderRange" : "pre 9/2/2022 16:10", - "testStylerReusesExamplesMorphWhenStyledAgain" : "jb 8/29/2021 20:43", + "testStylerReusesExamplesMorphWhenStyledAgain" : "pre 8/17/2023 08:38", "testStylerSetsAnchorAttributeForAttributeProbe" : "pre 7/23/2022 16:14", "testStylerSetsAnchorAttributeForNestedProbes" : "jb 10/24/2021 22:16", "testStylerSetsAnchorAttributeForProbe" : "jb 10/24/2021 22:16", diff --git a/packages/Babylonian-UI.package/BPStyler.class/instance/isAlreadyAnnotatedExpressionAt.in..st b/packages/Babylonian-UI.package/BPStyler.class/instance/isAlreadyAnnotatedExpressionAt.in..st index 4ebeb5d8..00fa6482 100644 --- a/packages/Babylonian-UI.package/BPStyler.class/instance/isAlreadyAnnotatedExpressionAt.in..st +++ b/packages/Babylonian-UI.package/BPStyler.class/instance/isAlreadyAnnotatedExpressionAt.in..st @@ -1,5 +1,4 @@ private isAlreadyAnnotatedExpressionAt: expressionStart in: aText - ^ (aText at: expressionStart - 1) = Character startOfHeader - \ No newline at end of file + ^ (aText attributesAt: expressionStart - 1) anySatisfy: [:a | a isBPDecoration] \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPStyler.class/methodProperties.json b/packages/Babylonian-UI.package/BPStyler.class/methodProperties.json index 654fa918..c713aa8d 100644 --- a/packages/Babylonian-UI.package/BPStyler.class/methodProperties.json +++ b/packages/Babylonian-UI.package/BPStyler.class/methodProperties.json @@ -15,7 +15,7 @@ "hasExamplesMorph:" : "pre 7/20/2022 09:31", "ifNoSelectedMethod:" : "pre 3/19/2020 11:07", "insertExamplesMorphInto:" : "pre 7/20/2022 10:45", - "isAlreadyAnnotatedExpressionAt:in:" : "pre 5/29/2019 22:40", + "isAlreadyAnnotatedExpressionAt:in:" : "pre 8/17/2023 08:38", "privateFormat:" : "jb 12/3/2020 23:35", "reformat:basedOn:" : "pre 7/20/2022 16:59", "selectedMethod:" : "ct 8/20/2021 06:24", diff --git a/packages/Babylonian-UI.package/BPTextDecoration.class/instance/isBPDecoration.st b/packages/Babylonian-UI.package/BPTextDecoration.class/instance/isBPDecoration.st new file mode 100644 index 00000000..a6ea6cd1 --- /dev/null +++ b/packages/Babylonian-UI.package/BPTextDecoration.class/instance/isBPDecoration.st @@ -0,0 +1,4 @@ +testing +isBPDecoration + + ^ true \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPTextDecoration.class/methodProperties.json b/packages/Babylonian-UI.package/BPTextDecoration.class/methodProperties.json index 2d5dfcb3..bc5dade6 100644 --- a/packages/Babylonian-UI.package/BPTextDecoration.class/methodProperties.json +++ b/packages/Babylonian-UI.package/BPTextDecoration.class/methodProperties.json @@ -5,6 +5,7 @@ "emphasisCode" : "pre 11/8/2019 13:33", "emphasizeScanner:" : "pre 9/2/2022 15:35", "initialize" : "pre 7/19/2022 17:54", + "isBPDecoration" : "pre 8/17/2023 08:37", "isOblivious" : "pre 7/9/2021 16:59", "mayBeExtended" : "pre 11/9/2019 16:10", "placeObject:from:at:" : "pre 8/18/2022 09:19", diff --git a/packages/Babylonian-UI.package/BPTextReadWriter.class/instance/writeContent..st b/packages/Babylonian-UI.package/BPTextReadWriter.class/instance/writeContent..st index 329f16f8..0f315f70 100644 --- a/packages/Babylonian-UI.package/BPTextReadWriter.class/instance/writeContent..st +++ b/packages/Babylonian-UI.package/BPTextReadWriter.class/instance/writeContent..st @@ -1,4 +1,4 @@ writing writeContent: aString - aString do: [:char | char = Character startOfHeader ifFalse: [self nextPut: char]]. \ No newline at end of file + aString do: [:char | self nextPut: char]. \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPTextReadWriter.class/methodProperties.json b/packages/Babylonian-UI.package/BPTextReadWriter.class/methodProperties.json index 30174b03..ea364c59 100644 --- a/packages/Babylonian-UI.package/BPTextReadWriter.class/methodProperties.json +++ b/packages/Babylonian-UI.package/BPTextReadWriter.class/methodProperties.json @@ -12,6 +12,6 @@ "nextPut:" : "pre 7/3/2019 10:48", "nextPutAll:" : "pre 7/3/2019 10:45", "nextPutText:" : "pre 7/20/2022 14:25", - "writeContent:" : "jb 12/7/2020 19:03", + "writeContent:" : "pre 8/17/2023 08:39", "writeEndTagFor:" : "jb 12/7/2020 19:03", "writeStartTagFor:" : "pre 7/20/2022 14:27" } } diff --git a/packages/Babylonian-UI.package/CodeHolder.extension/instance/addAnnotation.in..st b/packages/Babylonian-UI.package/CodeHolder.extension/instance/addAnnotation.in..st index e39bd0ad..071c91dd 100644 --- a/packages/Babylonian-UI.package/CodeHolder.extension/instance/addAnnotation.in..st +++ b/packages/Babylonian-UI.package/CodeHolder.extension/instance/addAnnotation.in..st @@ -1,24 +1,17 @@ *Babylonian-UI-private addAnnotation: anAnnotation in: interval - | newContent text actualInterval newMorph | + | text actualInterval newMorph | actualInterval := self determineIntervalToAnnotateFor: interval forNodes: anAnnotation canBeAnnotatedTo. actualInterval ifNil: [self codeTextMorph textMorph flash. ^ self]. anAnnotation methodReference: self methodReference. text := self codeTextMorph text. newMorph := anAnnotation asMorph. - newContent := Character startOfHeader asString asText - addAllAttributes: (text attributesAt: actualInterval start); - yourself. - newContent := newContent , (text copyFrom: actualInterval start to: actualInterval stop). - newContent addAttribute: (BPTextDecoration new + text + addAttribute: (BPTextDecoration new anchoredMorph: newMorph; - yourself). - newContent := text - copyReplaceFrom: actualInterval start - to: actualInterval stop - with: newContent. - (self codeTextMorph) - addMorph: newMorph; - setText: newContent. + yourself) + from: actualInterval start + to: actualInterval stop. + (self codeTextMorph) addMorph: newMorph. self saveMethodWithExamples. \ No newline at end of file diff --git a/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json b/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json index 390e861a..36fd9f1e 100644 --- a/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json +++ b/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json @@ -2,7 +2,7 @@ "class" : { }, "instance" : { - "addAnnotation:in:" : "pre 9/2/2022 14:59", + "addAnnotation:in:" : "pre 8/17/2023 08:41", "addAnnotationAtSelection:" : "pre 7/23/2022 20:17", "addAssertionToSelection" : "pre 11/13/2019 17:37", "addProbeToSelection" : "pre 8/6/2019 16:11", diff --git a/packages/Babylonian-UI.package/TextAttribute.extension/instance/isBPDecoration.st b/packages/Babylonian-UI.package/TextAttribute.extension/instance/isBPDecoration.st new file mode 100644 index 00000000..cec3d06a --- /dev/null +++ b/packages/Babylonian-UI.package/TextAttribute.extension/instance/isBPDecoration.st @@ -0,0 +1,4 @@ +*Babylonian-UI +isBPDecoration + + ^ false \ No newline at end of file diff --git a/packages/Babylonian-UI.package/TextAttribute.extension/methodProperties.json b/packages/Babylonian-UI.package/TextAttribute.extension/methodProperties.json index eb60373c..f67b980b 100644 --- a/packages/Babylonian-UI.package/TextAttribute.extension/methodProperties.json +++ b/packages/Babylonian-UI.package/TextAttribute.extension/methodProperties.json @@ -3,4 +3,5 @@ }, "instance" : { "intervalIn:" : "pre 7/3/2019 11:39", + "isBPDecoration" : "pre 8/17/2023 08:37", "placeObject:from:at:" : "pre 8/16/2022 08:34" } } From 3f0f5d1db2fc9a16df7750fec297097fbd4ef983 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Thu, 17 Aug 2023 11:49:39 +0200 Subject: [PATCH 03/25] Minor refactoring to speed up the benchmark script. --- .../instance/addAnnotation.in..st | 14 +------------- .../instance/doAddAnnotation.in..st | 16 ++++++++++++++++ .../CodeHolder.extension/methodProperties.json | 3 ++- 3 files changed, 19 insertions(+), 14 deletions(-) create mode 100644 packages/Babylonian-UI.package/CodeHolder.extension/instance/doAddAnnotation.in..st diff --git a/packages/Babylonian-UI.package/CodeHolder.extension/instance/addAnnotation.in..st b/packages/Babylonian-UI.package/CodeHolder.extension/instance/addAnnotation.in..st index 071c91dd..41f5deec 100644 --- a/packages/Babylonian-UI.package/CodeHolder.extension/instance/addAnnotation.in..st +++ b/packages/Babylonian-UI.package/CodeHolder.extension/instance/addAnnotation.in..st @@ -1,17 +1,5 @@ *Babylonian-UI-private addAnnotation: anAnnotation in: interval - | text actualInterval newMorph | - actualInterval := self determineIntervalToAnnotateFor: interval forNodes: anAnnotation canBeAnnotatedTo. - actualInterval ifNil: [self codeTextMorph textMorph flash. ^ self]. - anAnnotation methodReference: self methodReference. - text := self codeTextMorph text. - newMorph := anAnnotation asMorph. - text - addAttribute: (BPTextDecoration new - anchoredMorph: newMorph; - yourself) - from: actualInterval start - to: actualInterval stop. - (self codeTextMorph) addMorph: newMorph. + self doAddAnnotation: anAnnotation in: interval. self saveMethodWithExamples. \ No newline at end of file diff --git a/packages/Babylonian-UI.package/CodeHolder.extension/instance/doAddAnnotation.in..st b/packages/Babylonian-UI.package/CodeHolder.extension/instance/doAddAnnotation.in..st new file mode 100644 index 00000000..19f06976 --- /dev/null +++ b/packages/Babylonian-UI.package/CodeHolder.extension/instance/doAddAnnotation.in..st @@ -0,0 +1,16 @@ +*Babylonian-UI-private +doAddAnnotation: anAnnotation in: interval + "Separated from addAnotationIn: to allow for multiple annotations to be added without saving first." + | text actualInterval newMorph | + actualInterval := self determineIntervalToAnnotateFor: interval forNodes: anAnnotation canBeAnnotatedTo. + actualInterval ifNil: [self codeTextMorph textMorph flash. ^ self]. + anAnnotation methodReference: self methodReference. + text := self codeTextMorph text. + newMorph := anAnnotation asMorph. + text + addAttribute: (BPTextDecoration new + anchoredMorph: newMorph; + yourself) + from: actualInterval start + to: actualInterval stop. + (self codeTextMorph) addMorph: newMorph. \ No newline at end of file diff --git a/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json b/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json index 36fd9f1e..0e3c72e1 100644 --- a/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json +++ b/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json @@ -2,7 +2,7 @@ "class" : { }, "instance" : { - "addAnnotation:in:" : "pre 8/17/2023 08:41", + "addAnnotation:in:" : "pre 8/17/2023 11:49", "addAnnotationAtSelection:" : "pre 7/23/2022 20:17", "addAssertionToSelection" : "pre 11/13/2019 17:37", "addProbeToSelection" : "pre 8/6/2019 16:11", @@ -21,6 +21,7 @@ "determineIntervalToAnnotateFor:forNodes:" : "pre 9/1/2022 22:03", "determineMessageSendNodeIn:" : "pre 9/2/2022 14:06", "determineSelectorOfMessageSend:" : "pre 9/2/2022 14:49", + "doAddAnnotation:in:" : "pre 8/17/2023 11:48", "doBrowseActualImplementersFromProbe:andSelector:" : "pre 9/2/2022 15:54", "doItReceiver" : "ct 3/30/2022 16:48", "exampleForEvaluation" : "ct 8/18/2021 23:15", From 332eb135ebeefae5220b0d872ac3bbd3b6cbd7d9 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Thu, 17 Aug 2023 11:51:20 +0200 Subject: [PATCH 04/25] Changes snapshotting of BlockClosures to simple copy to prevent copying the whole stack. --- .../BlockClosure.extension/instance/bpSnapshot.st | 4 ++++ .../BlockClosure.extension/methodProperties.json | 1 + 2 files changed, 5 insertions(+) create mode 100644 packages/Babylonian-Core.package/BlockClosure.extension/instance/bpSnapshot.st diff --git a/packages/Babylonian-Core.package/BlockClosure.extension/instance/bpSnapshot.st b/packages/Babylonian-Core.package/BlockClosure.extension/instance/bpSnapshot.st new file mode 100644 index 00000000..020340f2 --- /dev/null +++ b/packages/Babylonian-Core.package/BlockClosure.extension/instance/bpSnapshot.st @@ -0,0 +1,4 @@ +*Babylonian-Core +bpSnapshot + + ^ self copy \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BlockClosure.extension/methodProperties.json b/packages/Babylonian-Core.package/BlockClosure.extension/methodProperties.json index cc4cfe98..83a6f802 100644 --- a/packages/Babylonian-Core.package/BlockClosure.extension/methodProperties.json +++ b/packages/Babylonian-Core.package/BlockClosure.extension/methodProperties.json @@ -2,6 +2,7 @@ "class" : { }, "instance" : { + "bpSnapshot" : "pre 8/17/2023 11:50", "bpTraceForExample:" : "pre 5/6/2021 18:20", "bpTraceForExample:andHaltAt:onCount:" : "lu 11/27/2021 13:26", "bpTraceInBackgroundForExample:" : "pre 1/12/2023 09:32", From 7395cfdb45f82ff50e7808326d47941dee1a247a Mon Sep 17 00:00:00 2001 From: Patrick R Date: Thu, 17 Aug 2023 16:53:26 +0200 Subject: [PATCH 05/25] Caches argument names as parsing them requires accessing the source files, which is expensive. --- .../BPMethodExample.class/instance/argumentNames.st | 11 ++++++++--- .../BPMethodExample.class/instance/method..st | 6 ++++++ .../BPMethodExample.class/methodProperties.json | 3 ++- .../BPMethodExample.class/properties.json | 4 +++- 4 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 packages/Babylonian-Core.package/BPMethodExample.class/instance/method..st diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/argumentNames.st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/argumentNames.st index 08cbc701..546bb091 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/instance/argumentNames.st +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/argumentNames.st @@ -1,7 +1,12 @@ accessing argumentNames + "Caches argument names as parsing them requires accessing the source files, which is expensive." | parts | - parts := self method methodClass formalHeaderPartsFor: self method selector. - ^ (1 to: self method selector numArgs) collect: [:anIndex | - parts at: (4 * anIndex)] \ No newline at end of file + (cachedArgumentNames isNil or: [cachedArgNamesKey ~~ self method]) ifTrue: [ + parts := self method methodClass formalHeaderPartsFor: self method selector. + cachedArgumentNames := (1 to: self method selector numArgs) collect: [:anIndex | + parts at: (4 * anIndex)]]. + ^ cachedArgumentNames + + \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/method..st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/method..st new file mode 100644 index 00000000..123febae --- /dev/null +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/method..st @@ -0,0 +1,6 @@ +accessing +method: aCompiledMethod + + super method: aCompiledMethod. + "Force cache invalidation" + self argumentNames. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json b/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json index e3071d65..0f9586a5 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json @@ -2,7 +2,7 @@ "class" : { "bpExamplePragmaPrefix" : "pre 1/21/2021 15:45" }, "instance" : { - "argumentNames" : "pre 8/25/2020 09:41", + "argumentNames" : "pre 8/17/2023 16:53", "argumentScriptStringAt:" : "ek 7/24/2023 19:06", "argumentScripts" : "pre 7/23/2019 12:20", "argumentScripts:" : "pre 7/23/2019 09:23", @@ -13,6 +13,7 @@ "initializeFromPragma:" : "pre 7/22/2022 21:06", "liveSpecimen" : "pre 1/10/2023 16:19", "liveSpecimenAt:" : "pre 1/10/2023 16:20", + "method:" : "pre 8/17/2023 16:52", "morphClass" : "pre 9/30/2020 10:40", "newArguments" : "pre 1/11/2023 15:15", "newArgumentsDictionary" : "pre 8/6/2021 18:27", diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/properties.json b/packages/Babylonian-Core.package/BPMethodExample.class/properties.json index 1a6f3b71..abf0fdaa 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/properties.json +++ b/packages/Babylonian-Core.package/BPMethodExample.class/properties.json @@ -7,7 +7,9 @@ "commentStamp" : "pre 8/20/2020 10:29", "instvars" : [ "receiverConstructor", - "argumentScripts" ], + "argumentScripts", + "cachedArgumentNames", + "cachedArgNamesKey" ], "name" : "BPMethodExample", "pools" : [ ], From 0e48b43c832284a1dadf1a6b1b137e70107ae558 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Thu, 17 Aug 2023 17:09:12 +0200 Subject: [PATCH 06/25] Adds missing setting of cached arg names key --- .../BPMethodExample.class/instance/argumentNames.st | 3 ++- .../BPMethodExample.class/methodProperties.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/argumentNames.st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/argumentNames.st index 546bb091..cecc767f 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/instance/argumentNames.st +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/argumentNames.st @@ -6,7 +6,8 @@ argumentNames (cachedArgumentNames isNil or: [cachedArgNamesKey ~~ self method]) ifTrue: [ parts := self method methodClass formalHeaderPartsFor: self method selector. cachedArgumentNames := (1 to: self method selector numArgs) collect: [:anIndex | - parts at: (4 * anIndex)]]. + parts at: (4 * anIndex)]. + cachedArgNamesKey := self method]. ^ cachedArgumentNames \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json b/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json index 0f9586a5..eec34f4a 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json @@ -2,7 +2,7 @@ "class" : { "bpExamplePragmaPrefix" : "pre 1/21/2021 15:45" }, "instance" : { - "argumentNames" : "pre 8/17/2023 16:53", + "argumentNames" : "pre 8/17/2023 17:08", "argumentScriptStringAt:" : "ek 7/24/2023 19:06", "argumentScripts" : "pre 7/23/2019 12:20", "argumentScripts:" : "pre 7/23/2019 09:23", From 2a32c22901b2e61e6319c7c1acdd7524fc7fcc3d Mon Sep 17 00:00:00 2001 From: Patrick R Date: Mon, 21 Aug 2023 10:31:49 +0200 Subject: [PATCH 07/25] Fixes the package pane in the ExamplesBrowser --- .../BPExamplesBrowser.class/instance/actualPackageList.st | 2 +- .../BPExamplesBrowser.class/methodProperties.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/actualPackageList.st b/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/actualPackageList.st index 97b190f6..0b8313b0 100644 --- a/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/actualPackageList.st +++ b/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/actualPackageList.st @@ -3,5 +3,5 @@ actualPackageList ^ packageList ifNil: [ packageList := (SystemNavigation default allExamples - collect: [:anExample | anExample method methodClass package]) asSet + collect: [:anExample | PackageOrganizer default packageOfMethod: anExample method methodReference]) asSet sorted: [:aPackage | aPackage name] ascending] \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPExamplesBrowser.class/methodProperties.json b/packages/Babylonian-UI.package/BPExamplesBrowser.class/methodProperties.json index dfe32559..6df9d628 100644 --- a/packages/Babylonian-UI.package/BPExamplesBrowser.class/methodProperties.json +++ b/packages/Babylonian-UI.package/BPExamplesBrowser.class/methodProperties.json @@ -3,7 +3,7 @@ "open" : "pre 10/13/2020 15:15" }, "instance" : { "actualExampleList" : "pre 2/15/2021 11:15", - "actualPackageList" : "pre 1/10/2023 12:26", + "actualPackageList" : "pre 8/21/2023 10:31", "buildExamplesListWith:" : "pre 10/13/2020 14:49", "buildPackagesListWith:" : "pre 10/13/2020 14:45", "buildWith:" : "pre 10/13/2020 14:51", From d8dc2a89c643461ed5ec66164cee10898b69db79 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Mon, 21 Aug 2023 11:51:33 +0200 Subject: [PATCH 08/25] Fixes sorting in the examples browser method list --- .../BPExamplesBrowser.class/instance/actualExampleList.st | 2 +- .../BPExamplesBrowser.class/instance/exampleLabelFor..st | 8 ++++++++ .../BPExamplesBrowser.class/instance/exampleList.st | 6 +----- .../BPExamplesBrowser.class/methodProperties.json | 5 +++-- 4 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/exampleLabelFor..st diff --git a/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/actualExampleList.st b/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/actualExampleList.st index f09d2635..8eaf2e40 100644 --- a/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/actualExampleList.st +++ b/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/actualExampleList.st @@ -10,4 +10,4 @@ actualExampleList writing browsers is boring --pre" (anExample isActive ifTrue: ['aaa'] - ifFalse: ['xxx']) , anExample exampleName] ascending] \ No newline at end of file + ifFalse: ['xxx']) , (self exampleLabelFor: anExample)] ascending] \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/exampleLabelFor..st b/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/exampleLabelFor..st new file mode 100644 index 00000000..e84210fe --- /dev/null +++ b/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/exampleLabelFor..st @@ -0,0 +1,8 @@ +accessing +exampleLabelFor: anExample + + ^ anExample method methodClass className asString , + ' - ' , + anExample method selector asString , + ' - ' , + anExample exampleName asString \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/exampleList.st b/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/exampleList.st index 88437c9f..6f058cd3 100644 --- a/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/exampleList.st +++ b/packages/Babylonian-UI.package/BPExamplesBrowser.class/instance/exampleList.st @@ -2,10 +2,6 @@ accessing exampleList ^ self actualExampleList collect: [:e | |text| - text := (e method methodClass className asString , - ' - ' , - e method selector asString , - ' - ' , - e exampleName asString) asText. + text := (self exampleLabelFor: e) asText. e isActive ifTrue: [text allBold]. text] \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPExamplesBrowser.class/methodProperties.json b/packages/Babylonian-UI.package/BPExamplesBrowser.class/methodProperties.json index 6df9d628..55f052f6 100644 --- a/packages/Babylonian-UI.package/BPExamplesBrowser.class/methodProperties.json +++ b/packages/Babylonian-UI.package/BPExamplesBrowser.class/methodProperties.json @@ -2,12 +2,13 @@ "class" : { "open" : "pre 10/13/2020 15:15" }, "instance" : { - "actualExampleList" : "pre 2/15/2021 11:15", + "actualExampleList" : "pre 8/21/2023 11:49", "actualPackageList" : "pre 8/21/2023 10:31", "buildExamplesListWith:" : "pre 10/13/2020 14:49", "buildPackagesListWith:" : "pre 10/13/2020 14:45", "buildWith:" : "pre 10/13/2020 14:51", - "exampleList" : "pre 10/13/2020 15:11", + "exampleLabelFor:" : "pre 8/21/2023 11:49", + "exampleList" : "pre 8/21/2023 11:50", "exampleList:" : "jb 12/7/2020 19:02", "exampleListIndex" : "pre 10/13/2020 14:52", "exampleListIndex:" : "jb 12/7/2020 19:02", From a1347a1688abb184c9bd1939f743b6341b5806ba Mon Sep 17 00:00:00 2001 From: Patrick R Date: Mon, 21 Aug 2023 12:30:43 +0200 Subject: [PATCH 09/25] Fixes an issue with multi-level concurrent behavior. --- .../Process.extension/class/forContext.priority..st | 6 ++++-- .../Process.extension/methodProperties.json | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/Babylonian-Core.package/Process.extension/class/forContext.priority..st b/packages/Babylonian-Core.package/Process.extension/class/forContext.priority..st index 695d1d00..744c44e6 100644 --- a/packages/Babylonian-Core.package/Process.extension/class/forContext.priority..st +++ b/packages/Babylonian-Core.package/Process.extension/class/forContext.priority..st @@ -13,10 +13,12 @@ forContext: aContext priority: anInteger "-------------- BP ContextS2 additions start --------------" activeProcess := Processor activeProcess. activeProcess propagatesCSLayers ifTrue: [ - newProcess csInfo activeLayers: activeProcess csInfo activeLayers]. + newProcess csInfo activeLayers: activeProcess csInfo activeLayers. + newProcess propagateCSLayers.]. activeProcess propagatesDynamicVariables ifTrue: [ activeProcess setDynamicVariables do: [:dynamicVariable | - newProcess environmentAt: dynamicVariable put: (activeProcess environmentAt: dynamicVariable)]]. + newProcess environmentAt: dynamicVariable put: (activeProcess environmentAt: dynamicVariable)]. + newProcess propagateDynamicVariables.]. (activeProcess environmentAt: BPActiveTracer ifAbsent: [nil]) ifNotNil: [ | handlerContext | "we are tracing so record process genealogy" BPProcessGenealogy newProcess: newProcess descendsFrom: activeProcess. diff --git a/packages/Babylonian-Core.package/Process.extension/methodProperties.json b/packages/Babylonian-Core.package/Process.extension/methodProperties.json index 07245bb0..a2fb51fe 100644 --- a/packages/Babylonian-Core.package/Process.extension/methodProperties.json +++ b/packages/Babylonian-Core.package/Process.extension/methodProperties.json @@ -1,6 +1,6 @@ { "class" : { - "forContext:priority:" : "pre 1/12/2023 13:30" }, + "forContext:priority:" : "pre 8/21/2023 12:30" }, "instance" : { "dontPropagateCSLayers" : "pre 1/11/2023 15:44", "dontPropagateDynamicVariables" : "pre 1/11/2023 15:52", From f0d68adcde0664c19b32cedabaf19cf73dd65154 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Mon, 21 Aug 2023 12:39:23 +0200 Subject: [PATCH 10/25] Fixes the explore button to deal with updating probe morphs --- .../BPProbeMorph.class/instance/exploreButtonClickedFor..st | 4 ++-- .../BPProbeMorph.class/instance/newExploreButtonFor..st | 2 +- .../BPProbeMorph.class/methodProperties.json | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/Babylonian-UI.package/BPProbeMorph.class/instance/exploreButtonClickedFor..st b/packages/Babylonian-UI.package/BPProbeMorph.class/instance/exploreButtonClickedFor..st index 82c52f31..c17d144b 100644 --- a/packages/Babylonian-UI.package/BPProbeMorph.class/instance/exploreButtonClickedFor..st +++ b/packages/Babylonian-UI.package/BPProbeMorph.class/instance/exploreButtonClickedFor..st @@ -1,4 +1,4 @@ actions -exploreButtonClickedFor: tracedValues +exploreButtonClickedFor: trace - (tracedValues collect: [:aValue | aValue tracedValue]) explore. \ No newline at end of file + ((trace valuesForProbeId: self id) collect: [:aValue | aValue tracedValue]) explore. \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPProbeMorph.class/instance/newExploreButtonFor..st b/packages/Babylonian-UI.package/BPProbeMorph.class/instance/newExploreButtonFor..st index 5c3c91aa..65c2a3fa 100644 --- a/packages/Babylonian-UI.package/BPProbeMorph.class/instance/newExploreButtonFor..st +++ b/packages/Babylonian-UI.package/BPProbeMorph.class/instance/newExploreButtonFor..st @@ -10,7 +10,7 @@ newExploreButtonFor: aTrace extent: (exploreButton extent x * 0.9)@(exploreButton extent y + self scrollBarSize). exploreButton actionSelector: #exploreButtonClickedFor:; - arguments: {aTrace valuesForProbeId: self id}; + arguments: {aTrace}; target: self; balloonText: 'click to see the traced values of this probe'. ^ exploreButton \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPProbeMorph.class/methodProperties.json b/packages/Babylonian-UI.package/BPProbeMorph.class/methodProperties.json index 8765ae17..d872c408 100644 --- a/packages/Babylonian-UI.package/BPProbeMorph.class/methodProperties.json +++ b/packages/Babylonian-UI.package/BPProbeMorph.class/methodProperties.json @@ -9,13 +9,13 @@ "ensureInputBoxNamed:atFront:" : "lu 6/1/2021 22:26", "ensureLineMorphFor:" : "jb 4/17/2021 01:37", "exceptionTextFor:" : "pre 5/3/2021 11:09", - "exploreButtonClickedFor:" : "jb 12/7/2020 19:00", + "exploreButtonClickedFor:" : "pre 8/21/2023 12:38", "haltButtonClickedFor:and:" : "pre 2/22/2021 12:17", "iconForValue:" : "pre 5/19/2021 21:28", "isProbe" : "pre 7/3/2019 11:11", "newButtonMorphWithLabel:doOnClick:" : "joabe 7/1/2023 20:22", "newContainerMorph" : "lu 6/7/2021 15:36", - "newExploreButtonFor:" : "jb 4/18/2021 03:41", + "newExploreButtonFor:" : "pre 8/21/2023 12:37", "newExpressionMorph" : "jb 12/5/2021 01:22", "newHaltButtonFor:" : "lu 6/23/2021 23:06", "newLabelContainerMorph" : "pre 6/8/2021 10:52", From 9784a9b4e49a829c7c63801c43836556fccadf8a Mon Sep 17 00:00:00 2001 From: Patrick R Date: Tue, 22 Aug 2023 11:18:28 +0200 Subject: [PATCH 11/25] Fixes method example run state preparation --- .squot | 10 +++++----- .../instance/hasBindingThatBeginsWith..st | 4 ++++ .../methodProperties.json | 1 + .../instance/newArguments.st | 6 +----- .../instance/newArgumentsDictionary.st | 4 +--- .../instance/newArgumentsDictionaryIn..st | 6 ++++++ .../instance/newArgumentsIn..st | 11 +++++++++++ .../instance/newReceiver.st | 13 +------------ .../instance/newReceiverIn..st | 18 ++++++++++++++++++ .../instance/prepareRunState.st | 10 +++++----- .../methodProperties.json | 11 +++++++---- .../instance/arguments..st | 4 ++-- .../instance/bindingOf..st | 7 ++++--- .../instance/hasBindingOf..st | 4 +++- .../instance/hasBindingThatBeginsWith..st | 6 ++++++ .../instance/initialize.st | 5 +++++ .../methodProperties.json | 8 +++++--- .../instance/aboutToStyle..st | 2 +- .../methodProperties.json | 2 +- 19 files changed, 87 insertions(+), 45 deletions(-) create mode 100644 packages/Babylonian-Core.package/BPExampleRunState.class/instance/hasBindingThatBeginsWith..st create mode 100644 packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsDictionaryIn..st create mode 100644 packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsIn..st create mode 100644 packages/Babylonian-Core.package/BPMethodExample.class/instance/newReceiverIn..st create mode 100644 packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/hasBindingThatBeginsWith..st create mode 100644 packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/initialize.st diff --git a/.squot b/.squot index 8778b1d6..9aa7c1ae 100644 --- a/.squot +++ b/.squot @@ -1,10 +1,10 @@ OrderedDictionary { + 'packages/BaselineOfBabylonianProgramming.package' : #SquotCypressCodeSerializer, + 'packages/Babylonian-Core.package' : #SquotCypressCodeSerializer, 'packages/Babylonian-Demo.package' : #SquotCypressCodeSerializer, + 'packages/Babylonian-ExampleMining.package' : #SquotCypressCodeSerializer, + 'packages/Babylonian-ProbeLog.package' : #SquotCypressCodeSerializer, 'packages/Babylonian-Compiler.package' : #SquotCypressCodeSerializer, - 'packages/Babylonian-Core.package' : #SquotCypressCodeSerializer, - 'packages/Babylonian-Tests.package' : #SquotCypressCodeSerializer, 'packages/Babylonian-UI.package' : #SquotCypressCodeSerializer, - 'packages/BaselineOfBabylonianProgramming.package' : #SquotCypressCodeSerializer, - 'packages/Babylonian-ProbeLog.package' : #SquotCypressCodeSerializer, - 'packages/Babylonian-ExampleMining.package' : #SquotCypressCodeSerializer + 'packages/Babylonian-Tests.package' : #SquotCypressCodeSerializer } \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPExampleRunState.class/instance/hasBindingThatBeginsWith..st b/packages/Babylonian-Core.package/BPExampleRunState.class/instance/hasBindingThatBeginsWith..st new file mode 100644 index 00000000..e30c9c2b --- /dev/null +++ b/packages/Babylonian-Core.package/BPExampleRunState.class/instance/hasBindingThatBeginsWith..st @@ -0,0 +1,4 @@ +binding +hasBindingThatBeginsWith: aString + + ^ state keys anySatisfy: [:key | key isString and: [key beginsWith: aString]] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPExampleRunState.class/methodProperties.json b/packages/Babylonian-Core.package/BPExampleRunState.class/methodProperties.json index 41a28ab1..7c4da05b 100644 --- a/packages/Babylonian-Core.package/BPExampleRunState.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPExampleRunState.class/methodProperties.json @@ -4,6 +4,7 @@ "instance" : { "bindingOf:" : "pre 1/19/2023 10:19", "hasBindingOf:" : "pre 1/19/2023 10:19", + "hasBindingThatBeginsWith:" : "pre 8/22/2023 09:46", "initialize" : "pre 1/19/2023 10:19", "selectFrom:to:" : "pre 7/22/2022 21:24", "selectionInterval" : "pre 7/22/2022 21:24", diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArguments.st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArguments.st index e19c36df..72fdb1b6 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArguments.st +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArguments.st @@ -1,8 +1,4 @@ accessing newArguments - ^ (argumentScripts first: self argumentNames size) - collect: [:script | - script isLiveSpecimenReference - ifTrue: [self resolveLiveSpecimen: script] - ifFalse: [Compiler evaluate: script for: self method methodClass]] \ No newline at end of file + ^ self newArgumentsIn: BPMethodExampleRunConfiguration new \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsDictionary.st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsDictionary.st index 7bf7ab2c..50c5af79 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsDictionary.st +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsDictionary.st @@ -1,6 +1,4 @@ accessing newArgumentsDictionary - ^ OrderedDictionary newFrom: (self argumentNames - with: (self newArguments first: self argumentNames size) - collect: [:name :value | name asSymbol -> value]) \ No newline at end of file + ^ self newArgumentsDictionaryIn: BPMethodExampleRunConfiguration new \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsDictionaryIn..st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsDictionaryIn..st new file mode 100644 index 00000000..b3ee9845 --- /dev/null +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsDictionaryIn..st @@ -0,0 +1,6 @@ +accessing +newArgumentsDictionaryIn: aMethodExampleState + + ^ OrderedDictionary newFrom: (self argumentNames + with: ((self newArgumentsIn: aMethodExampleState) first: self argumentNames size) + collect: [:name :value | name asSymbol -> value]) \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsIn..st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsIn..st new file mode 100644 index 00000000..08a266a4 --- /dev/null +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newArgumentsIn..st @@ -0,0 +1,11 @@ +accessing +newArgumentsIn: aMethodExampleRunState + + ^ (argumentScripts first: self argumentNames size) + collect: [:script | + script isLiveSpecimenReference + ifTrue: [self resolveLiveSpecimen: script] + ifFalse: [Compiler + evaluate: script + for: self method methodClass + notifying: aMethodExampleRunState]] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/newReceiver.st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newReceiver.st index cdf8379a..949b0e0e 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/instance/newReceiver.st +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newReceiver.st @@ -1,15 +1,4 @@ accessing newReceiver - | result | - ^ self receiverConstructor isEmptyOrNil - ifFalse: [ - self receiverConstructor isSymbol ifTrue: [ - ^ self method methodClass perform: self receiverConstructor]. - self receiverConstructor isLiveSpecimenReference ifTrue: [ - ^ self resolveLiveSpecimen: self receiverConstructor]. - result := Compiler evaluate: self receiverConstructor for: self method methodClass. - result isSymbol - ifTrue: [self method methodClass perform: result] - ifFalse: [result]] - ifTrue: [self method methodClass new]. \ No newline at end of file + ^ self newReceiverIn: BPMethodExampleRunConfiguration new \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/newReceiverIn..st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newReceiverIn..st new file mode 100644 index 00000000..aeab1339 --- /dev/null +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/newReceiverIn..st @@ -0,0 +1,18 @@ +accessing +newReceiverIn: aMethodExampleState + + | result | + ^ self receiverConstructor isEmptyOrNil + ifFalse: [ + self receiverConstructor isSymbol ifTrue: [ + ^ self method methodClass perform: self receiverConstructor]. + self receiverConstructor isLiveSpecimenReference ifTrue: [ + ^ self resolveLiveSpecimen: self receiverConstructor]. + result := Compiler + evaluate: self receiverConstructor + for: self method methodClass + notifying: aMethodExampleState. + result isSymbol + ifTrue: [self method methodClass perform: result] + ifFalse: [result]] + ifTrue: [self method methodClass new]. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/prepareRunState.st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/prepareRunState.st index ed31ce14..bb9d2bc2 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/instance/prepareRunState.st +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/prepareRunState.st @@ -1,8 +1,8 @@ tracing prepareRunState - #bpInstrumented withoutLayerDo: [ - ^ BPMethodExampleRunConfiguration new - receiver: self newReceiver; - arguments: self newArgumentsDictionary; - yourself]. \ No newline at end of file + #bpInstrumented withoutLayerDo: [ | newState | + newState := BPMethodExampleRunConfiguration new. + newState receiver: (self newReceiverIn: newState). + newState arguments: (self newArgumentsDictionaryIn: newState). + ^ newState]. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json b/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json index eec34f4a..92c57a4a 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json @@ -15,10 +15,13 @@ "liveSpecimenAt:" : "pre 1/10/2023 16:20", "method:" : "pre 8/17/2023 16:52", "morphClass" : "pre 9/30/2020 10:40", - "newArguments" : "pre 1/11/2023 15:15", - "newArgumentsDictionary" : "pre 8/6/2021 18:27", - "newReceiver" : "pre 1/11/2023 15:13", - "prepareRunState" : "pre 1/19/2023 10:18", + "newArguments" : "pre 8/22/2023 10:25", + "newArgumentsDictionary" : "pre 8/22/2023 10:24", + "newArgumentsDictionaryIn:" : "pre 8/22/2023 10:24", + "newArgumentsIn:" : "pre 8/22/2023 10:24", + "newReceiver" : "pre 8/22/2023 10:23", + "newReceiverIn:" : "pre 8/22/2023 10:23", + "prepareRunState" : "pre 8/22/2023 10:25", "receiverConstructor" : "pre 5/17/2019 14:06", "receiverConstructor:" : "pre 5/17/2019 14:06", "receiverConstructorLiveSpecimen" : "pre 1/10/2023 16:20", diff --git a/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/arguments..st b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/arguments..st index 65e882eb..7ffc4108 100644 --- a/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/arguments..st +++ b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/arguments..st @@ -1,4 +1,4 @@ accessing -arguments: anOrderedDcitionary +arguments: anOrderedDictionary - arguments := anOrderedDcitionary. \ No newline at end of file + arguments := anOrderedDictionary. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/bindingOf..st b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/bindingOf..st index b6903ec2..c2d73fe1 100644 --- a/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/bindingOf..st +++ b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/bindingOf..st @@ -2,6 +2,7 @@ binding bindingOf: varName ^ varName = #self - ifTrue: [#self -> self receiver] - ifFalse: [arguments associations detect: [:assoc | - assoc key = varName]] \ No newline at end of file + ifTrue: [state at: #self ifAbsentPut: [self receiver]] + ifFalse: [arguments associations + detect: [:assoc | assoc key = varName] + ifNone: [super bindingOf: varName]] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/hasBindingOf..st b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/hasBindingOf..st index c8582d67..f09dc002 100644 --- a/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/hasBindingOf..st +++ b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/hasBindingOf..st @@ -1,4 +1,6 @@ requestor compatibility hasBindingOf: aString - ^ arguments includesKey: aString asSymbol \ No newline at end of file + ^ (arguments includesKey: aString asSymbol) + or: [aString = #self + or: [super hasBindingOf: aString]] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/hasBindingThatBeginsWith..st b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/hasBindingThatBeginsWith..st new file mode 100644 index 00000000..0c1be3d6 --- /dev/null +++ b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/hasBindingThatBeginsWith..st @@ -0,0 +1,6 @@ +binding +hasBindingThatBeginsWith: varName + + ^ (#(self) , arguments keys anySatisfy: [:key | key beginsWith: varName]) + ifTrue: [true] + ifFalse: [super hasBindingThatBeginsWith: varName] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/initialize.st b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/initialize.st new file mode 100644 index 00000000..d2d57a1f --- /dev/null +++ b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/instance/initialize.st @@ -0,0 +1,5 @@ +initialize-release +initialize + + super initialize. + arguments := OrderedDictionary new. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/methodProperties.json b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/methodProperties.json index 29d6686f..18028116 100644 --- a/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPMethodExampleRunConfiguration.class/methodProperties.json @@ -3,8 +3,10 @@ }, "instance" : { "arguments" : "pre 8/6/2021 18:01", - "arguments:" : "pre 8/6/2021 18:02", - "bindingOf:" : "pre 8/6/2021 18:04", - "hasBindingOf:" : "pre 8/6/2021 18:11", + "arguments:" : "pre 8/22/2023 10:26", + "bindingOf:" : "pre 8/22/2023 09:52", + "hasBindingOf:" : "pre 8/22/2023 09:50", + "hasBindingThatBeginsWith:" : "pre 8/22/2023 09:50", + "initialize" : "pre 8/22/2023 10:26", "receiver" : "pre 5/3/2021 14:16", "receiver:" : "pre 5/3/2021 14:16" } } diff --git a/packages/Babylonian-UI.package/BPExampleConfigurationEditor.class/instance/aboutToStyle..st b/packages/Babylonian-UI.package/BPExampleConfigurationEditor.class/instance/aboutToStyle..st index fe7cedb9..37240c7d 100644 --- a/packages/Babylonian-UI.package/BPExampleConfigurationEditor.class/instance/aboutToStyle..st +++ b/packages/Babylonian-UI.package/BPExampleConfigurationEditor.class/instance/aboutToStyle..st @@ -3,5 +3,5 @@ aboutToStyle: aStyler aStyler classOrMetaClass: nil; - workspace: self example prepareRunState. + workspace: ([self example prepareRunState] on: Error do: [:e | nil]). ^true \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPExampleConfigurationEditor.class/methodProperties.json b/packages/Babylonian-UI.package/BPExampleConfigurationEditor.class/methodProperties.json index 0bde483d..388e5a85 100644 --- a/packages/Babylonian-UI.package/BPExampleConfigurationEditor.class/methodProperties.json +++ b/packages/Babylonian-UI.package/BPExampleConfigurationEditor.class/methodProperties.json @@ -2,7 +2,7 @@ "class" : { }, "instance" : { - "aboutToStyle:" : "pre 8/6/2021 18:10", + "aboutToStyle:" : "pre 8/22/2023 09:56", "buildWith:" : "pre 8/6/2021 18:08", "example" : "pre 1/21/2021 16:31", "example:" : "pre 1/21/2021 16:31", From 446dbe9569f71dd1c3dbc23526b3257259b841c0 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Tue, 22 Aug 2023 11:19:09 +0200 Subject: [PATCH 12/25] Fixes a fixture --- .../instance/binarySearchIn.theElement..st | 8 ++++---- .../BPTestExamplesClass.class/methodProperties.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/Babylonian-Tests.package/BPTestExamplesClass.class/instance/binarySearchIn.theElement..st b/packages/Babylonian-Tests.package/BPTestExamplesClass.class/instance/binarySearchIn.theElement..st index ba8f74a9..59a99962 100644 --- a/packages/Babylonian-Tests.package/BPTestExamplesClass.class/instance/binarySearchIn.theElement..st +++ b/packages/Babylonian-Tests.package/BPTestExamplesClass.class/instance/binarySearchIn.theElement..st @@ -1,9 +1,9 @@ example methods binarySearchIn: aCollection theElement: anElement - - - - + + + + | index low test distance high | low := 1. high := aCollection size. diff --git a/packages/Babylonian-Tests.package/BPTestExamplesClass.class/methodProperties.json b/packages/Babylonian-Tests.package/BPTestExamplesClass.class/methodProperties.json index 9a1ac90e..eaac63da 100644 --- a/packages/Babylonian-Tests.package/BPTestExamplesClass.class/methodProperties.json +++ b/packages/Babylonian-Tests.package/BPTestExamplesClass.class/methodProperties.json @@ -9,7 +9,7 @@ "instance" : { "+" : "pre 7/1/2019 14:23", "addAndLog:" : "pre 5/3/2021 10:36", - "binarySearchIn:theElement:" : "pre 1/21/2021 16:48", + "binarySearchIn:theElement:" : "pre 8/21/2023 11:38", "methodOnlyWithExample" : "pre 11/18/2019 12:07", "methodWithExampleCallingOnlyProbedMethod" : "jb 7/2/2021 00:56", "methodWithLiveSpecimen:" : "pre 9/30/2020 09:41", From 87e7dfb1dafe86312e52b59b1d6e952dd5cb3824 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Tue, 22 Aug 2023 11:40:03 +0200 Subject: [PATCH 13/25] Change setup of method example state again to correspond to the logic described in the thesis. --- .../BPMethodExample.class/instance/prepareRunState.st | 2 -- .../BPMethodExample.class/instance/runOn..st | 4 ++++ .../BPMethodExample.class/methodProperties.json | 4 ++-- .../BPExampleTest.class/instance/expectedFailures.st | 2 +- .../BPExampleTest.class/methodProperties.json | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/prepareRunState.st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/prepareRunState.st index bb9d2bc2..0736f67a 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/instance/prepareRunState.st +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/prepareRunState.st @@ -3,6 +3,4 @@ prepareRunState #bpInstrumented withoutLayerDo: [ | newState | newState := BPMethodExampleRunConfiguration new. - newState receiver: (self newReceiverIn: newState). - newState arguments: (self newArgumentsDictionaryIn: newState). ^ newState]. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/instance/runOn..st b/packages/Babylonian-Core.package/BPMethodExample.class/instance/runOn..st index 702ed433..7f2d84df 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/instance/runOn..st +++ b/packages/Babylonian-Core.package/BPMethodExample.class/instance/runOn..st @@ -1,6 +1,10 @@ tracing runOn: aState + #bpInstrumented withoutLayerDo: [ + aState receiver: (self newReceiverIn: aState). + aState arguments: (self newArgumentsDictionaryIn: aState).]. + ^ aState receiver perform: self method selector withArguments: aState arguments \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json b/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json index 92c57a4a..b0258003 100644 --- a/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPMethodExample.class/methodProperties.json @@ -21,10 +21,10 @@ "newArgumentsIn:" : "pre 8/22/2023 10:24", "newReceiver" : "pre 8/22/2023 10:23", "newReceiverIn:" : "pre 8/22/2023 10:23", - "prepareRunState" : "pre 8/22/2023 10:25", + "prepareRunState" : "pre 8/22/2023 11:23", "receiverConstructor" : "pre 5/17/2019 14:06", "receiverConstructor:" : "pre 5/17/2019 14:06", "receiverConstructorLiveSpecimen" : "pre 1/10/2023 16:20", "receiverConstructorString" : "pre 1/10/2023 16:17", "resolveLiveSpecimen:" : "pre 1/10/2023 16:21", - "runOn:" : "pre 5/3/2021 14:18" } } + "runOn:" : "pre 8/22/2023 11:23" } } diff --git a/packages/Babylonian-Tests.package/BPExampleTest.class/instance/expectedFailures.st b/packages/Babylonian-Tests.package/BPExampleTest.class/instance/expectedFailures.st index 252459fb..a1728dc9 100644 --- a/packages/Babylonian-Tests.package/BPExampleTest.class/instance/expectedFailures.st +++ b/packages/Babylonian-Tests.package/BPExampleTest.class/instance/expectedFailures.st @@ -1,4 +1,4 @@ failures expectedFailures - ^ #() \ No newline at end of file + ^ #(testMethodExamplesCanAccessArgumentsInTheTeardown testMethodExamplesCanAccessArgumentsInTheSetup testMethodExamplesCanChangeArgumentsInTheSetup) "Nowadays it is the other way around. Information from the setup is available in the receiver and argument scripts" \ No newline at end of file diff --git a/packages/Babylonian-Tests.package/BPExampleTest.class/methodProperties.json b/packages/Babylonian-Tests.package/BPExampleTest.class/methodProperties.json index f826de4d..38f81e03 100644 --- a/packages/Babylonian-Tests.package/BPExampleTest.class/methodProperties.json +++ b/packages/Babylonian-Tests.package/BPExampleTest.class/methodProperties.json @@ -3,7 +3,7 @@ }, "instance" : { "createExamples" : "pre 1/11/2023 14:05", - "expectedFailures" : "pre 2/22/2021 17:24", + "expectedFailures" : "pre 8/22/2023 11:39", "runCase" : "pre 5/4/2021 15:23", "setUp" : "pre 1/11/2023 14:04", "tearDown" : "pre 5/20/2021 15:33", From cb51bfd8240b98f47b03add0231eb39a9119b6c3 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Tue, 22 Aug 2023 12:05:17 +0200 Subject: [PATCH 14/25] Prevent memory leaks from stored test results and stored tracing processes that are actually obsolete --- .../instance/releaseProcess.st | 5 +++++ .../BPExampleTraceInformation.class/methodProperties.json | 1 + .../BPTestCaseExample.class/instance/runOn..st | 2 +- .../BPTestCaseExample.class/instance/testResult..st | 4 ---- .../BPTestCaseExample.class/instance/testResult.st | 4 ---- .../BPTestCaseExample.class/methodProperties.json | 6 ++---- .../BPTestCaseExample.class/properties.json | 3 +-- 7 files changed, 10 insertions(+), 15 deletions(-) create mode 100644 packages/Babylonian-Core.package/BPExampleTraceInformation.class/instance/releaseProcess.st delete mode 100644 packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/testResult..st delete mode 100644 packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/testResult.st diff --git a/packages/Babylonian-Core.package/BPExampleTraceInformation.class/instance/releaseProcess.st b/packages/Babylonian-Core.package/BPExampleTraceInformation.class/instance/releaseProcess.st new file mode 100644 index 00000000..c4280bcc --- /dev/null +++ b/packages/Babylonian-Core.package/BPExampleTraceInformation.class/instance/releaseProcess.st @@ -0,0 +1,5 @@ +process control +releaseProcess + + self assert: (self tracingProcessAndDescendants allSatisfy: [:p | p isTerminated]). + tracingProcess := nil. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPExampleTraceInformation.class/methodProperties.json b/packages/Babylonian-Core.package/BPExampleTraceInformation.class/methodProperties.json index f9c17a17..33403b63 100644 --- a/packages/Babylonian-Core.package/BPExampleTraceInformation.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPExampleTraceInformation.class/methodProperties.json @@ -4,6 +4,7 @@ "instance" : { "isProcessSuspended" : "pre 1/12/2023 09:37", "probes" : "jb 5/19/2021 19:35", + "releaseProcess" : "pre 8/22/2023 12:01", "resumeProcess" : "pre 1/12/2023 13:28", "suspendProcess" : "pre 1/12/2023 13:27", "terminateTracingProcess" : "pre 1/12/2023 13:28", diff --git a/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/runOn..st b/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/runOn..st index c18392f6..51e1581f 100644 --- a/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/runOn..st +++ b/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/runOn..st @@ -2,4 +2,4 @@ executing runOn: unused self testCaseClass ifNotNil: [ - self testResult: (self testCaseClass run: self methodSelector)] \ No newline at end of file + self testCaseClass run: self methodSelector] \ No newline at end of file diff --git a/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/testResult..st b/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/testResult..st deleted file mode 100644 index 66c9cf7f..00000000 --- a/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/testResult..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -testResult: aTestResult - - testResult := aTestResult \ No newline at end of file diff --git a/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/testResult.st b/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/testResult.st deleted file mode 100644 index 6b3ac61e..00000000 --- a/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/instance/testResult.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -testResult - - ^ testResult \ No newline at end of file diff --git a/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/methodProperties.json b/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/methodProperties.json index 5c62d224..90a56946 100644 --- a/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/methodProperties.json +++ b/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/methodProperties.json @@ -8,9 +8,7 @@ "methodSelector" : "joabe 7/10/2023 16:01", "methodSelector:" : "joabe 7/10/2023 16:01", "morphClass" : "joabe 7/10/2023 16:00", - "runOn:" : "joabe 7/10/2023 16:02", + "runOn:" : "pre 8/22/2023 12:04", "testCaseClass" : "joabe 7/10/2023 16:02", "testCaseClass:" : "joabe 7/10/2023 16:01", - "testCaseClassFrom:" : "joabe 7/10/2023 16:04", - "testResult" : "joabe 7/10/2023 16:03", - "testResult:" : "joabe 7/10/2023 16:03" } } + "testCaseClassFrom:" : "joabe 7/10/2023 16:04" } } diff --git a/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/properties.json b/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/properties.json index 966e962c..fccbb7ab 100644 --- a/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/properties.json +++ b/packages/Babylonian-ExampleMining.package/BPTestCaseExample.class/properties.json @@ -7,8 +7,7 @@ "commentStamp" : "", "instvars" : [ "testCaseClass", - "methodSelector", - "testResult" ], + "methodSelector" ], "name" : "BPTestCaseExample", "pools" : [ ], From 6a1a36a0233fd176a48896b40b57762007eeef97 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Tue, 22 Aug 2023 17:22:24 +0200 Subject: [PATCH 15/25] Some stability improvements to timeout and snapshotting. --- .../BPAbstractExample.class/instance/runWithTimeoutOn..st | 4 ++-- .../BPAbstractExample.class/methodProperties.json | 2 +- .../BPExample.class/instance/timeout.st | 2 +- .../BPExample.class/methodProperties.json | 2 +- .../BPReferencingExample.class/instance/addDependent..st | 4 ++++ .../BPReferencingExample.class/instance/removeDependent..st | 4 ++++ .../BPReferencingExample.class/methodProperties.json | 2 ++ .../Behavior.extension/instance/bpSnapshot.st | 4 ++++ .../Behavior.extension/methodProperties.json | 5 +++++ .../Behavior.extension/properties.json | 2 ++ .../Babylonian-Core.package/monticello.meta/categories.st | 2 +- 11 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 packages/Babylonian-Core.package/BPReferencingExample.class/instance/addDependent..st create mode 100644 packages/Babylonian-Core.package/BPReferencingExample.class/instance/removeDependent..st create mode 100644 packages/Babylonian-Core.package/Behavior.extension/instance/bpSnapshot.st create mode 100644 packages/Babylonian-Core.package/Behavior.extension/methodProperties.json create mode 100644 packages/Babylonian-Core.package/Behavior.extension/properties.json diff --git a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runWithTimeoutOn..st b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runWithTimeoutOn..st index 6cd091a0..24d413b0 100644 --- a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runWithTimeoutOn..st +++ b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runWithTimeoutOn..st @@ -11,5 +11,5 @@ runWithTimeoutOn: initialState complete ifFalse: [self suspendTracingProcess]]. [ ^ self runOn: initialState] ensure: [ - complete := true. - semaphore signal] \ No newline at end of file + complete := true. + semaphore terminateProcess.] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json b/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json index 5d5ad774..dde8c446 100644 --- a/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json @@ -38,7 +38,7 @@ "runOn:" : "pre 1/11/2023 10:47", "runSetUpWith:" : "pre 7/22/2022 21:17", "runTearDownWith:" : "pre 7/22/2022 21:17", - "runWithTimeoutOn:" : "pre 11/2/2022 11:42", + "runWithTimeoutOn:" : "pre 8/22/2023 17:14", "setIsActive:" : "pre 1/11/2023 10:47", "setUpScript" : "pre 1/11/2023 10:47", "setUpScript:" : "pre 1/11/2023 10:48", diff --git a/packages/Babylonian-Core.package/BPExample.class/instance/timeout.st b/packages/Babylonian-Core.package/BPExample.class/instance/timeout.st index 6b61d2b5..519e5fd6 100644 --- a/packages/Babylonian-Core.package/BPExample.class/instance/timeout.st +++ b/packages/Babylonian-Core.package/BPExample.class/instance/timeout.st @@ -1,4 +1,4 @@ accessing timeout - ^ timeout ifNil: [timeout := 30000] \ No newline at end of file + ^ timeout ifNil: [timeout := 5000] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPExample.class/methodProperties.json b/packages/Babylonian-Core.package/BPExample.class/methodProperties.json index 70312555..7732d86c 100644 --- a/packages/Babylonian-Core.package/BPExample.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPExample.class/methodProperties.json @@ -16,6 +16,6 @@ "setUpScript:" : "pre 1/21/2021 15:36", "tearDownScript" : "pre 1/21/2021 15:36", "tearDownScript:" : "pre 1/21/2021 15:36", - "timeout" : "joabe 9/27/2022 23:28", + "timeout" : "pre 8/22/2023 17:13", "timeout:" : "joabe 9/27/2022 20:26", "traceInformation" : "pre 1/11/2023 10:49" } } diff --git a/packages/Babylonian-Core.package/BPReferencingExample.class/instance/addDependent..st b/packages/Babylonian-Core.package/BPReferencingExample.class/instance/addDependent..st new file mode 100644 index 00000000..ebbd5926 --- /dev/null +++ b/packages/Babylonian-Core.package/BPReferencingExample.class/instance/addDependent..st @@ -0,0 +1,4 @@ +dependents access +addDependent: aDependent + + referencedExample addDependent: aDependent. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPReferencingExample.class/instance/removeDependent..st b/packages/Babylonian-Core.package/BPReferencingExample.class/instance/removeDependent..st new file mode 100644 index 00000000..aa098991 --- /dev/null +++ b/packages/Babylonian-Core.package/BPReferencingExample.class/instance/removeDependent..st @@ -0,0 +1,4 @@ +dependents access +removeDependent: aDependent + + referencedExample removeDependent: aDependent. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPReferencingExample.class/methodProperties.json b/packages/Babylonian-Core.package/BPReferencingExample.class/methodProperties.json index 662b69b9..0769efd5 100644 --- a/packages/Babylonian-Core.package/BPReferencingExample.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPReferencingExample.class/methodProperties.json @@ -2,6 +2,7 @@ "class" : { "bpExamplePragmaPrefix" : "pre 1/11/2023 14:39" }, "instance" : { + "addDependent:" : "pre 8/22/2023 15:00", "asPragma" : "pre 1/11/2023 14:54", "canBeUsedForDoIts" : "pre 1/11/2023 13:27", "exampleName" : "pre 1/11/2023 14:51", @@ -18,6 +19,7 @@ "morphClass" : "pre 1/11/2023 13:28", "referencedExample:" : "pre 1/11/2023 14:29", "referencedExampleName" : "pre 1/11/2023 14:52", + "removeDependent:" : "pre 8/22/2023 15:00", "setIsActive:" : "pre 1/11/2023 13:22", "setUpScript" : "pre 1/11/2023 13:22", "setUpScript:" : "pre 1/11/2023 13:22", diff --git a/packages/Babylonian-Core.package/Behavior.extension/instance/bpSnapshot.st b/packages/Babylonian-Core.package/Behavior.extension/instance/bpSnapshot.st new file mode 100644 index 00000000..90060215 --- /dev/null +++ b/packages/Babylonian-Core.package/Behavior.extension/instance/bpSnapshot.st @@ -0,0 +1,4 @@ +*Babylonian-Core +bpSnapshot + + ^ self \ No newline at end of file diff --git a/packages/Babylonian-Core.package/Behavior.extension/methodProperties.json b/packages/Babylonian-Core.package/Behavior.extension/methodProperties.json new file mode 100644 index 00000000..3e12b6fd --- /dev/null +++ b/packages/Babylonian-Core.package/Behavior.extension/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "bpSnapshot" : "pre 8/22/2023 16:22" } } diff --git a/packages/Babylonian-Core.package/Behavior.extension/properties.json b/packages/Babylonian-Core.package/Behavior.extension/properties.json new file mode 100644 index 00000000..37061187 --- /dev/null +++ b/packages/Babylonian-Core.package/Behavior.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Behavior" } diff --git a/packages/Babylonian-Core.package/monticello.meta/categories.st b/packages/Babylonian-Core.package/monticello.meta/categories.st index f07e3ae4..34caed09 100644 --- a/packages/Babylonian-Core.package/monticello.meta/categories.st +++ b/packages/Babylonian-Core.package/monticello.meta/categories.st @@ -1,4 +1,4 @@ SystemOrganization addCategory: #'Babylonian-Core-Annotations'! -SystemOrganization addCategory: #'Babylonian-Core-Explorations'! SystemOrganization addCategory: #'Babylonian-Core-Examples'! +SystemOrganization addCategory: #'Babylonian-Core-Explorations'! SystemOrganization addCategory: #'Babylonian-Core-Tracing'! From a5e5c23f929ccb44f4f845f487f1ed84fad00acc Mon Sep 17 00:00:00 2001 From: Eva Date: Tue, 22 Aug 2023 17:38:28 +0200 Subject: [PATCH 16/25] Update README.md Printbugger -> ProbeLog --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index adc24b05..9b62b7ee 100644 --- a/README.md +++ b/README.md @@ -30,17 +30,17 @@ compilerClass on your class' side. Otherwise, the trace will disregard that class for performance reasons. -## Babylonian Printbugger -Due to their self-contained nature, traced values of multiple annotations are not entangled, meaning developers must manually reconstruct the program flow in order to know which trace values precede or succeed others in different annotations (possibly throughout different methods). To solve this problem, one can use the Printbugger. It sets probes and assertions - independent from their origin - into a chronological context. Hence, truthfully bringing printf-like tracing with live feedback to Babylonian Programming. The Printbugger additionally offers multiple features to enhance it from typical printf-traces: +## Babylonian ProbeLog +Due to their self-contained nature, traced values of multiple annotations are not entangled, meaning developers must manually reconstruct the program flow in order to know which trace values precede or succeed others in different annotations (possibly throughout different methods). To solve this problem, one can use the ProbeLog. It sets probes and assertions - independent from their origin - into a chronological context. Hence, truthfully bringing printf-like tracing with live feedback to Babylonian Programming. The ProbeLog additionally offers multiple features to enhance it from typical printf-traces: - Start debugging from a certain point in the trace by clicking the pause button - Know which methods were called starting from an example to the responding trace value with the generated Flame Graph - Navigate to a trace value's or example's origin by clicking on it - Change an example directly from a lane's title - Filter trace values of an annotation by clicking on the eye-icon - Double click a trace value to highlight its originating annotation (given the responding morph is visible) -- Individualize your trace with the Printbugger's theme support +- Individualize your trace with the ProbeLog's theme support -More detailed information on the interactions and classes can be read [here](https://github.com/hpi-swa-lab/babylonian-programming-smalltalk/blob/develop/printbugger_docs.md). +More detailed information on the interactions and classes can be read [here](https://github.com/hpi-swa-lab/babylonian-programming-smalltalk/blob/develop/probelog.md). ![image](https://user-images.githubusercontent.com/33000454/158557998-b81bea53-4d6e-4fd9-b8ec-a87939c7e6c1.png) From 222059762fa856d274ef7e24de4a74b85494fefa Mon Sep 17 00:00:00 2001 From: Patrick R Date: Wed, 23 Aug 2023 11:03:03 +0200 Subject: [PATCH 17/25] Finally changes the probe updating to changed/update. --- .../BPExamples.class/instance/add..st | 1 + .../BPExamples.class/instance/remove..st | 1 + .../BPExamples.class/instance/update.with..st | 8 ++++++++ .../BPExamples.class/methodProperties.json | 5 +++-- .../instance/getTraces.st | 4 +--- .../methodProperties.json | 2 +- .../instance/annotation..st | 5 +++++ .../instance/initialize.st | 5 +++-- .../BPTraceBasedMorph.class/instance/step.st | 18 ------------------ .../instance/stepTime.st | 4 ---- .../instance/update..st | 10 ++++++++-- .../instance/update.with..st | 9 +++++++++ .../instance/updateTraces.st | 17 +++++++++++++++++ .../methodProperties.json | 11 ++++++----- 14 files changed, 63 insertions(+), 37 deletions(-) create mode 100644 packages/Babylonian-Core.package/BPExamples.class/instance/update.with..st create mode 100644 packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/annotation..st delete mode 100644 packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/step.st delete mode 100644 packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/stepTime.st create mode 100644 packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/update.with..st create mode 100644 packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/updateTraces.st diff --git a/packages/Babylonian-Core.package/BPExamples.class/instance/add..st b/packages/Babylonian-Core.package/BPExamples.class/instance/add..st index 63cfaee4..de1b06a5 100644 --- a/packages/Babylonian-Core.package/BPExamples.class/instance/add..st +++ b/packages/Babylonian-Core.package/BPExamples.class/instance/add..st @@ -3,4 +3,5 @@ add: aBPExample mutex critical: [examples add: aBPExample]. + aBPExample addDependent: self. self changed: #bpExamples. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPExamples.class/instance/remove..st b/packages/Babylonian-Core.package/BPExamples.class/instance/remove..st index ca582ec4..4869d583 100644 --- a/packages/Babylonian-Core.package/BPExamples.class/instance/remove..st +++ b/packages/Babylonian-Core.package/BPExamples.class/instance/remove..st @@ -4,4 +4,5 @@ remove: aBPExample mutex critical: [ examples remove: aBPExample ifAbsent: ["dont care"]. aBPExample ensureTerminatedProcess]. + aBPExample removeDependent: self. self changed: #bpExamples. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPExamples.class/instance/update.with..st b/packages/Babylonian-Core.package/BPExamples.class/instance/update.with..st new file mode 100644 index 00000000..a2e7b829 --- /dev/null +++ b/packages/Babylonian-Core.package/BPExamples.class/instance/update.with..st @@ -0,0 +1,8 @@ +change notifications +update: anAspect with: anObject + + anAspect = #exampleIsActive ifTrue: [ + ^ self changed: #activeExamples]. + + anAspect = #newTrace ifTrue: [ + ^ self changed: #tracesChanged]. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPExamples.class/methodProperties.json b/packages/Babylonian-Core.package/BPExamples.class/methodProperties.json index 858b0a00..0073663f 100644 --- a/packages/Babylonian-Core.package/BPExamples.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPExamples.class/methodProperties.json @@ -6,7 +6,7 @@ "shutDown:" : "pre 5/26/2021 17:17" }, "instance" : { "activeExamples" : "pre 5/3/2021 16:55", - "add:" : "pre 5/6/2021 18:30", + "add:" : "pre 8/23/2023 10:39", "doSilently:" : "pre 9/2/2022 14:46", "exampleIdentifiers" : "pre 5/3/2021 16:41", "examples" : "pre 5/4/2021 15:20", @@ -14,7 +14,7 @@ "initialize" : "pre 5/3/2021 16:42", "paddedTracesOfActiveExamples" : "pre 5/3/2021 16:55", "rehash" : "pre 5/19/2021 21:36", - "remove:" : "pre 5/6/2021 16:54", + "remove:" : "pre 8/23/2023 11:02", "removeAll:" : "jb 12/7/2020 18:52", "removeTraces" : "jb 12/7/2020 18:52", "runActiveExamples" : "pre 5/6/2021 18:31", @@ -25,4 +25,5 @@ "systemChangeEvent:" : "pre 1/11/2023 13:42", "tracesOfActiveExamples" : "pre 5/6/2021 18:31", "update:" : "pre 9/2/2022 14:46", + "update:with:" : "pre 8/23/2023 10:42", "updateExamplesOnEvent:" : "pre 1/11/2023 13:38" } } diff --git a/packages/Babylonian-UI.package/BPAnnotationMorph.class/instance/getTraces.st b/packages/Babylonian-UI.package/BPAnnotationMorph.class/instance/getTraces.st index b507f5df..98001f87 100644 --- a/packages/Babylonian-UI.package/BPAnnotationMorph.class/instance/getTraces.st +++ b/packages/Babylonian-UI.package/BPAnnotationMorph.class/instance/getTraces.st @@ -1,6 +1,4 @@ private getTraces - ^ BPExamples value paddedTracesOfActiveExamples - reject: [:aTrace | aTrace isNil] - \ No newline at end of file + ^ BPExamples value paddedTracesOfActiveExamples \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPAnnotationMorph.class/methodProperties.json b/packages/Babylonian-UI.package/BPAnnotationMorph.class/methodProperties.json index ea0bf0b6..8e01f64b 100644 --- a/packages/Babylonian-UI.package/BPAnnotationMorph.class/methodProperties.json +++ b/packages/Babylonian-UI.package/BPAnnotationMorph.class/methodProperties.json @@ -27,7 +27,7 @@ "fontHeight" : "pre 11/18/2019 10:40", "fontWidth" : "pre 11/18/2019 10:43", "getErrorIndicator" : "pre 8/17/2020 09:17", - "getTraces" : "pre 5/3/2021 16:56", + "getTraces" : "pre 8/23/2023 10:53", "iconSize" : "pre 7/24/2019 13:18", "id" : "pre 7/2/2019 16:38", "id:" : "pre 7/2/2019 16:38", diff --git a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/annotation..st b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/annotation..st new file mode 100644 index 00000000..7c6c7cf9 --- /dev/null +++ b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/annotation..st @@ -0,0 +1,5 @@ +accessing +annotation: aBPAnnotation + + super annotation: aBPAnnotation. + self updateTraces. \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/initialize.st b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/initialize.st index 4b674f13..20b2d7a0 100644 --- a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/initialize.st +++ b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/initialize.st @@ -5,7 +5,6 @@ initialize | removeButton | super initialize. - allTracesCompleted := false. slidersForFiltering := Set new. displayedTraces := Set new. @@ -19,4 +18,6 @@ initialize self addMorphBack: widgetsMorph. widgetsMorph addMorphBack: tracesMorph. - self addMorphBack: removeButton. \ No newline at end of file + self addMorphBack: removeButton. + + BPExamples value addDependent: self. \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/step.st b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/step.st deleted file mode 100644 index 5c2d58ab..00000000 --- a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/step.st +++ /dev/null @@ -1,18 +0,0 @@ -stepping and presenter -step - - | newTraces tracesChanged | - self methodReference ifNil: [^ false]. - self resetHeight. - - newTraces := self getTraces asIdentitySet. - tracesChanged := newTraces ~= displayedTraces. - - (allTracesCompleted not or: [tracesChanged]) ifTrue: [ - allTracesCompleted := newTraces - ifEmpty: [true] - ifNotEmpty: [:ts | ts allSatisfy: [:t | t hasTraceCompleted]]. - self updateFrom: (newTraces ifEmpty: [self emptyTraces]). - displayedTraces := newTraces]. - - tracesChanged ifTrue: [self refreshTextComposition]. \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/stepTime.st b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/stepTime.st deleted file mode 100644 index b7fabca7..00000000 --- a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/stepTime.st +++ /dev/null @@ -1,4 +0,0 @@ -stepping and presenter -stepTime - - ^ 100 \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/update..st b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/update..st index 74a75ab2..5494d995 100644 --- a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/update..st +++ b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/update..st @@ -1,4 +1,10 @@ -private +change notification update: anAspect - anAspect = #filterContext ifTrue: [self updateFrom: displayedTraces]. \ No newline at end of file + anAspect = #filterContext ifTrue: [self updateFrom: displayedTraces]. + + (#(activeExamples tracesChanged) includes: anAspect) ifTrue: [ + Project current addDeferredUIMessage: [self updateTraces]]. + + + \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/update.with..st b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/update.with..st new file mode 100644 index 00000000..89a76b1e --- /dev/null +++ b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/update.with..st @@ -0,0 +1,9 @@ +change notification +update: anAspect with: anObject + + anAspect = #traceChanged ifTrue: [ + Project current addDeferredUIMessage: [ + self updateFrom: displayedTraces]]. + + + \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/updateTraces.st b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/updateTraces.st new file mode 100644 index 00000000..fe2f10e2 --- /dev/null +++ b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/instance/updateTraces.st @@ -0,0 +1,17 @@ +stepping and presenter +updateTraces + + | newTraces tracesChanged | + self methodReference ifNil: [^ false]. + self resetHeight. + + newTraces := self getTraces asIdentitySet. + tracesChanged := newTraces ~= displayedTraces. + + tracesChanged ifTrue: [ + displayedTraces do: [:trace | trace removeDependent: self]. + newTraces do: [:trace | trace addDependent: self]. + self updateFrom: newTraces. + displayedTraces := newTraces. + "Height might have changed so we have to recompose the text." + self refreshTextComposition]. \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/methodProperties.json b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/methodProperties.json index eec4bbe2..811617ec 100644 --- a/packages/Babylonian-UI.package/BPTraceBasedMorph.class/methodProperties.json +++ b/packages/Babylonian-UI.package/BPTraceBasedMorph.class/methodProperties.json @@ -2,16 +2,17 @@ "class" : { "isAbstract" : "pre 9/25/2020 10:15" }, "instance" : { + "annotation:" : "pre 8/23/2023 10:54", "annotationLabel" : "pre 2/22/2021 12:19", "filterValues:throughSliderForTrace:" : "pre 9/28/2020 11:21", - "initialize" : "pre 2/22/2021 12:19", + "initialize" : "pre 8/23/2023 10:50", "listenToSlider:" : "jb 12/7/2020 18:59", "newExampleLineMorph" : "pre 2/22/2021 12:17", "newTracesMorph" : "pre 12/16/2020 18:52", "newWidgetsMorph" : "pre 11/23/2020 13:43", "removeLinesWithoutCurrentTrace:" : "jb 12/7/2020 19:00", "resetHeight" : "pre 1/11/2021 13:59", - "step" : "pre 1/11/2021 13:59", - "stepTime" : "pre 8/20/2020 17:35", - "update:" : "jb 12/7/2020 19:00", - "updateFrom:" : "jb 12/7/2020 19:00" } } + "update:" : "pre 8/23/2023 10:56", + "update:with:" : "pre 8/23/2023 10:49", + "updateFrom:" : "jb 12/7/2020 19:00", + "updateTraces" : "pre 8/23/2023 10:53" } } From f0c5b0116cfa532611b1187a29471ceafadead27 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Wed, 23 Aug 2023 13:22:12 +0200 Subject: [PATCH 18/25] Adds multiple bpSnapshot methods to critical classes. --- .../Context.extension/instance/bpSnapshot.st | 4 ++++ .../Context.extension/methodProperties.json | 5 +++++ .../Context.extension/properties.json | 2 ++ .../Parser.extension/instance/bpSnapshot.st | 4 ++++ .../Parser.extension/instance/postCopy.st | 6 ++++++ .../Parser.extension/methodProperties.json | 6 ++++++ .../Parser.extension/properties.json | 2 ++ .../TestResult.extension/instance/bpSnapshot.st | 4 ++++ .../TestResult.extension/methodProperties.json | 5 +++++ .../TestResult.extension/properties.json | 2 ++ .../TranscriptStream.extension/instance/bpSnapshot.st | 4 ++++ .../TranscriptStream.extension/methodProperties.json | 5 +++++ .../TranscriptStream.extension/properties.json | 2 ++ .../WebClient.extension/instance/bpSnapshot.st | 4 ++++ .../WebClient.extension/methodProperties.json | 5 +++++ .../WebClient.extension/properties.json | 2 ++ .../WebMessage.extension/instance/bpSnapshot.st | 4 ++++ .../WebMessage.extension/methodProperties.json | 5 +++++ .../WebMessage.extension/properties.json | 2 ++ .../WebServer.extension/instance/bpSnapshot.st | 4 ++++ .../WebServer.extension/methodProperties.json | 5 +++++ .../WebServer.extension/properties.json | 2 ++ .../WebSocket.extension/instance/bpSnapshot.st | 4 ++++ .../WebSocket.extension/methodProperties.json | 5 +++++ .../WebSocket.extension/properties.json | 2 ++ 25 files changed, 95 insertions(+) create mode 100644 packages/Babylonian-Core.package/Context.extension/instance/bpSnapshot.st create mode 100644 packages/Babylonian-Core.package/Context.extension/methodProperties.json create mode 100644 packages/Babylonian-Core.package/Context.extension/properties.json create mode 100644 packages/Babylonian-Core.package/Parser.extension/instance/bpSnapshot.st create mode 100644 packages/Babylonian-Core.package/Parser.extension/instance/postCopy.st create mode 100644 packages/Babylonian-Core.package/Parser.extension/methodProperties.json create mode 100644 packages/Babylonian-Core.package/Parser.extension/properties.json create mode 100644 packages/Babylonian-Core.package/TestResult.extension/instance/bpSnapshot.st create mode 100644 packages/Babylonian-Core.package/TestResult.extension/methodProperties.json create mode 100644 packages/Babylonian-Core.package/TestResult.extension/properties.json create mode 100644 packages/Babylonian-Core.package/TranscriptStream.extension/instance/bpSnapshot.st create mode 100644 packages/Babylonian-Core.package/TranscriptStream.extension/methodProperties.json create mode 100644 packages/Babylonian-Core.package/TranscriptStream.extension/properties.json create mode 100644 packages/Babylonian-Core.package/WebClient.extension/instance/bpSnapshot.st create mode 100644 packages/Babylonian-Core.package/WebClient.extension/methodProperties.json create mode 100644 packages/Babylonian-Core.package/WebClient.extension/properties.json create mode 100644 packages/Babylonian-Core.package/WebMessage.extension/instance/bpSnapshot.st create mode 100644 packages/Babylonian-Core.package/WebMessage.extension/methodProperties.json create mode 100644 packages/Babylonian-Core.package/WebMessage.extension/properties.json create mode 100644 packages/Babylonian-Core.package/WebServer.extension/instance/bpSnapshot.st create mode 100644 packages/Babylonian-Core.package/WebServer.extension/methodProperties.json create mode 100644 packages/Babylonian-Core.package/WebServer.extension/properties.json create mode 100644 packages/Babylonian-Core.package/WebSocket.extension/instance/bpSnapshot.st create mode 100644 packages/Babylonian-Core.package/WebSocket.extension/methodProperties.json create mode 100644 packages/Babylonian-Core.package/WebSocket.extension/properties.json diff --git a/packages/Babylonian-Core.package/Context.extension/instance/bpSnapshot.st b/packages/Babylonian-Core.package/Context.extension/instance/bpSnapshot.st new file mode 100644 index 00000000..020340f2 --- /dev/null +++ b/packages/Babylonian-Core.package/Context.extension/instance/bpSnapshot.st @@ -0,0 +1,4 @@ +*Babylonian-Core +bpSnapshot + + ^ self copy \ No newline at end of file diff --git a/packages/Babylonian-Core.package/Context.extension/methodProperties.json b/packages/Babylonian-Core.package/Context.extension/methodProperties.json new file mode 100644 index 00000000..42354f5f --- /dev/null +++ b/packages/Babylonian-Core.package/Context.extension/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "bpSnapshot" : "pre 8/23/2023 12:49" } } diff --git a/packages/Babylonian-Core.package/Context.extension/properties.json b/packages/Babylonian-Core.package/Context.extension/properties.json new file mode 100644 index 00000000..c6678adb --- /dev/null +++ b/packages/Babylonian-Core.package/Context.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Context" } diff --git a/packages/Babylonian-Core.package/Parser.extension/instance/bpSnapshot.st b/packages/Babylonian-Core.package/Parser.extension/instance/bpSnapshot.st new file mode 100644 index 00000000..020340f2 --- /dev/null +++ b/packages/Babylonian-Core.package/Parser.extension/instance/bpSnapshot.st @@ -0,0 +1,4 @@ +*Babylonian-Core +bpSnapshot + + ^ self copy \ No newline at end of file diff --git a/packages/Babylonian-Core.package/Parser.extension/instance/postCopy.st b/packages/Babylonian-Core.package/Parser.extension/instance/postCopy.st new file mode 100644 index 00000000..6dbb4b56 --- /dev/null +++ b/packages/Babylonian-Core.package/Parser.extension/instance/postCopy.st @@ -0,0 +1,6 @@ +*Babylonian-Core +postCopy + + super postCopy. + parseNode := parseNode copy. + \ No newline at end of file diff --git a/packages/Babylonian-Core.package/Parser.extension/methodProperties.json b/packages/Babylonian-Core.package/Parser.extension/methodProperties.json new file mode 100644 index 00000000..3996c6c6 --- /dev/null +++ b/packages/Babylonian-Core.package/Parser.extension/methodProperties.json @@ -0,0 +1,6 @@ +{ + "class" : { + }, + "instance" : { + "bpSnapshot" : "pre 8/23/2023 12:18", + "postCopy" : "pre 8/23/2023 12:19" } } diff --git a/packages/Babylonian-Core.package/Parser.extension/properties.json b/packages/Babylonian-Core.package/Parser.extension/properties.json new file mode 100644 index 00000000..ce73e0aa --- /dev/null +++ b/packages/Babylonian-Core.package/Parser.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Parser" } diff --git a/packages/Babylonian-Core.package/TestResult.extension/instance/bpSnapshot.st b/packages/Babylonian-Core.package/TestResult.extension/instance/bpSnapshot.st new file mode 100644 index 00000000..020340f2 --- /dev/null +++ b/packages/Babylonian-Core.package/TestResult.extension/instance/bpSnapshot.st @@ -0,0 +1,4 @@ +*Babylonian-Core +bpSnapshot + + ^ self copy \ No newline at end of file diff --git a/packages/Babylonian-Core.package/TestResult.extension/methodProperties.json b/packages/Babylonian-Core.package/TestResult.extension/methodProperties.json new file mode 100644 index 00000000..e266660b --- /dev/null +++ b/packages/Babylonian-Core.package/TestResult.extension/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "bpSnapshot" : "pre 8/23/2023 12:20" } } diff --git a/packages/Babylonian-Core.package/TestResult.extension/properties.json b/packages/Babylonian-Core.package/TestResult.extension/properties.json new file mode 100644 index 00000000..b365fc86 --- /dev/null +++ b/packages/Babylonian-Core.package/TestResult.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "TestResult" } diff --git a/packages/Babylonian-Core.package/TranscriptStream.extension/instance/bpSnapshot.st b/packages/Babylonian-Core.package/TranscriptStream.extension/instance/bpSnapshot.st new file mode 100644 index 00000000..020340f2 --- /dev/null +++ b/packages/Babylonian-Core.package/TranscriptStream.extension/instance/bpSnapshot.st @@ -0,0 +1,4 @@ +*Babylonian-Core +bpSnapshot + + ^ self copy \ No newline at end of file diff --git a/packages/Babylonian-Core.package/TranscriptStream.extension/methodProperties.json b/packages/Babylonian-Core.package/TranscriptStream.extension/methodProperties.json new file mode 100644 index 00000000..52aa4439 --- /dev/null +++ b/packages/Babylonian-Core.package/TranscriptStream.extension/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "bpSnapshot" : "pre 8/23/2023 12:50" } } diff --git a/packages/Babylonian-Core.package/TranscriptStream.extension/properties.json b/packages/Babylonian-Core.package/TranscriptStream.extension/properties.json new file mode 100644 index 00000000..dc3c3127 --- /dev/null +++ b/packages/Babylonian-Core.package/TranscriptStream.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "TranscriptStream" } diff --git a/packages/Babylonian-Core.package/WebClient.extension/instance/bpSnapshot.st b/packages/Babylonian-Core.package/WebClient.extension/instance/bpSnapshot.st new file mode 100644 index 00000000..020340f2 --- /dev/null +++ b/packages/Babylonian-Core.package/WebClient.extension/instance/bpSnapshot.st @@ -0,0 +1,4 @@ +*Babylonian-Core +bpSnapshot + + ^ self copy \ No newline at end of file diff --git a/packages/Babylonian-Core.package/WebClient.extension/methodProperties.json b/packages/Babylonian-Core.package/WebClient.extension/methodProperties.json new file mode 100644 index 00000000..552d01c0 --- /dev/null +++ b/packages/Babylonian-Core.package/WebClient.extension/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "bpSnapshot" : "pre 8/23/2023 13:04" } } diff --git a/packages/Babylonian-Core.package/WebClient.extension/properties.json b/packages/Babylonian-Core.package/WebClient.extension/properties.json new file mode 100644 index 00000000..c1fd833c --- /dev/null +++ b/packages/Babylonian-Core.package/WebClient.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "WebClient" } diff --git a/packages/Babylonian-Core.package/WebMessage.extension/instance/bpSnapshot.st b/packages/Babylonian-Core.package/WebMessage.extension/instance/bpSnapshot.st new file mode 100644 index 00000000..020340f2 --- /dev/null +++ b/packages/Babylonian-Core.package/WebMessage.extension/instance/bpSnapshot.st @@ -0,0 +1,4 @@ +*Babylonian-Core +bpSnapshot + + ^ self copy \ No newline at end of file diff --git a/packages/Babylonian-Core.package/WebMessage.extension/methodProperties.json b/packages/Babylonian-Core.package/WebMessage.extension/methodProperties.json new file mode 100644 index 00000000..552d01c0 --- /dev/null +++ b/packages/Babylonian-Core.package/WebMessage.extension/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "bpSnapshot" : "pre 8/23/2023 13:04" } } diff --git a/packages/Babylonian-Core.package/WebMessage.extension/properties.json b/packages/Babylonian-Core.package/WebMessage.extension/properties.json new file mode 100644 index 00000000..3bd559e6 --- /dev/null +++ b/packages/Babylonian-Core.package/WebMessage.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "WebMessage" } diff --git a/packages/Babylonian-Core.package/WebServer.extension/instance/bpSnapshot.st b/packages/Babylonian-Core.package/WebServer.extension/instance/bpSnapshot.st new file mode 100644 index 00000000..020340f2 --- /dev/null +++ b/packages/Babylonian-Core.package/WebServer.extension/instance/bpSnapshot.st @@ -0,0 +1,4 @@ +*Babylonian-Core +bpSnapshot + + ^ self copy \ No newline at end of file diff --git a/packages/Babylonian-Core.package/WebServer.extension/methodProperties.json b/packages/Babylonian-Core.package/WebServer.extension/methodProperties.json new file mode 100644 index 00000000..552d01c0 --- /dev/null +++ b/packages/Babylonian-Core.package/WebServer.extension/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "bpSnapshot" : "pre 8/23/2023 13:04" } } diff --git a/packages/Babylonian-Core.package/WebServer.extension/properties.json b/packages/Babylonian-Core.package/WebServer.extension/properties.json new file mode 100644 index 00000000..63d68fda --- /dev/null +++ b/packages/Babylonian-Core.package/WebServer.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "WebServer" } diff --git a/packages/Babylonian-Core.package/WebSocket.extension/instance/bpSnapshot.st b/packages/Babylonian-Core.package/WebSocket.extension/instance/bpSnapshot.st new file mode 100644 index 00000000..020340f2 --- /dev/null +++ b/packages/Babylonian-Core.package/WebSocket.extension/instance/bpSnapshot.st @@ -0,0 +1,4 @@ +*Babylonian-Core +bpSnapshot + + ^ self copy \ No newline at end of file diff --git a/packages/Babylonian-Core.package/WebSocket.extension/methodProperties.json b/packages/Babylonian-Core.package/WebSocket.extension/methodProperties.json new file mode 100644 index 00000000..57268af7 --- /dev/null +++ b/packages/Babylonian-Core.package/WebSocket.extension/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "bpSnapshot" : "pre 8/23/2023 13:07" } } diff --git a/packages/Babylonian-Core.package/WebSocket.extension/properties.json b/packages/Babylonian-Core.package/WebSocket.extension/properties.json new file mode 100644 index 00000000..04e3a0f7 --- /dev/null +++ b/packages/Babylonian-Core.package/WebSocket.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "WebSocket" } From 802deac475b18e21740601a9883616029bd3a1c2 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Wed, 23 Aug 2023 13:33:28 +0200 Subject: [PATCH 19/25] Protects setup and tear down scripts and simplifies timeout watchdog. --- .../BPAbstractExample.class/instance/runSetUpWith..st | 9 +++++---- .../BPAbstractExample.class/instance/runTearDownWith..st | 9 +++++---- .../instance/runWithTimeoutOn..st | 2 +- .../BPAbstractExample.class/instance/startWatchdog..st | 7 +++---- .../BPAbstractExample.class/methodProperties.json | 8 ++++---- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runSetUpWith..st b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runSetUpWith..st index d9c8d133..8912eb45 100644 --- a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runSetUpWith..st +++ b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runSetUpWith..st @@ -2,7 +2,8 @@ tracing runSetUpWith: aState | result | - self setUpScript ifNotNil: [ - result := Compiler evaluate: self setUpScript notifying: aState. - result isSymbol ifTrue: [ - self method methodClass perform: result]] \ No newline at end of file + #bpInstrumented withoutLayerDo: [ + self setUpScript ifNotNil: [ + result := Compiler evaluate: self setUpScript notifying: aState. + result isSymbol ifTrue: [ + self method methodClass perform: result]]] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runTearDownWith..st b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runTearDownWith..st index 7783b8c7..aef141dd 100644 --- a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runTearDownWith..st +++ b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runTearDownWith..st @@ -2,7 +2,8 @@ tracing runTearDownWith: aState | result | - self tearDownScript ifNotNil: [ - result := Compiler evaluate: self tearDownScript notifying: aState. - result isSymbol ifTrue: [ - self method methodClass perform: result]] \ No newline at end of file + #bpInstrumented withoutLayerDo: [ + self tearDownScript ifNotNil: [ + result := Compiler evaluate: self tearDownScript notifying: aState. + result isSymbol ifTrue: [ + self method methodClass perform: result]]] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runWithTimeoutOn..st b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runWithTimeoutOn..st index 24d413b0..251759a4 100644 --- a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runWithTimeoutOn..st +++ b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/runWithTimeoutOn..st @@ -5,7 +5,7 @@ runWithTimeoutOn: initialState complete := false. self startWatchdog: [ - semaphore waitTimeoutMSecs: self timeout. + self timeout milliSeconds wait. "We sadly cannot simply ask self tracingIsStillRunning as the values rely on this method's return value which is not done at this point. So uglyish complete workaround" complete ifFalse: [self suspendTracingProcess]]. diff --git a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/startWatchdog..st b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/startWatchdog..st index a7dad26b..3d26ac49 100644 --- a/packages/Babylonian-Core.package/BPAbstractExample.class/instance/startWatchdog..st +++ b/packages/Babylonian-Core.package/BPAbstractExample.class/instance/startWatchdog..st @@ -1,7 +1,6 @@ private startWatchdog: watchdogBlock - | watchdog | - watchdog := watchdogBlock newProcess. - watchdog priority: Processor timingPriority-1. - watchdog resume. \ No newline at end of file + watchdogBlock + forkAt: Processor timingPriority-1 + named: 'watchdog for ' , self exampleName. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json b/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json index dde8c446..19472003 100644 --- a/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPAbstractExample.class/methodProperties.json @@ -36,13 +36,13 @@ "removeTrace" : "pre 1/11/2023 10:43", "resumeTracing" : "pre 1/12/2023 09:39", "runOn:" : "pre 1/11/2023 10:47", - "runSetUpWith:" : "pre 7/22/2022 21:17", - "runTearDownWith:" : "pre 7/22/2022 21:17", - "runWithTimeoutOn:" : "pre 8/22/2023 17:14", + "runSetUpWith:" : "pre 8/23/2023 11:07", + "runTearDownWith:" : "pre 8/23/2023 11:07", + "runWithTimeoutOn:" : "pre 8/23/2023 12:04", "setIsActive:" : "pre 1/11/2023 10:47", "setUpScript" : "pre 1/11/2023 10:47", "setUpScript:" : "pre 1/11/2023 10:48", - "startWatchdog:" : "pre 11/2/2022 11:40", + "startWatchdog:" : "pre 8/23/2023 12:01", "suspendTracingProcess" : "pre 1/12/2023 09:39", "tearDownScript" : "pre 1/11/2023 10:48", "tearDownScript:" : "pre 1/11/2023 10:48", From b46aace3b6f491f4b234a83de38593ab145a3deb Mon Sep 17 00:00:00 2001 From: Patrick R Date: Wed, 23 Aug 2023 14:41:44 +0200 Subject: [PATCH 20/25] Fixes an issue in ContextS2 resulting from using class identity instead of name when determining whether two partial methods are the same. As a result the partial method is not correctly removed in case of a recompile within a new class. --- .../CSPartialMethod.extension/instance/^equals.st | 8 ++++++++ .../CSPartialMethod.extension/instance/hash.st | 5 +++++ .../CSPartialMethod.extension/methodProperties.json | 6 ++++++ .../CSPartialMethod.extension/properties.json | 2 ++ 4 files changed, 21 insertions(+) create mode 100644 packages/Babylonian-Compiler.package/CSPartialMethod.extension/instance/^equals.st create mode 100644 packages/Babylonian-Compiler.package/CSPartialMethod.extension/instance/hash.st create mode 100644 packages/Babylonian-Compiler.package/CSPartialMethod.extension/methodProperties.json create mode 100644 packages/Babylonian-Compiler.package/CSPartialMethod.extension/properties.json diff --git a/packages/Babylonian-Compiler.package/CSPartialMethod.extension/instance/^equals.st b/packages/Babylonian-Compiler.package/CSPartialMethod.extension/instance/^equals.st new file mode 100644 index 00000000..15b956dd --- /dev/null +++ b/packages/Babylonian-Compiler.package/CSPartialMethod.extension/instance/^equals.st @@ -0,0 +1,8 @@ +*Babylonian-Compiler += anotherPartialMethod + "see #hash" + + ^ anotherPartialMethod class == self class + and: [self basicLayers = anotherPartialMethod basicLayers + and: [self selector = anotherPartialMethod selector + and: [self methodClass name = anotherPartialMethod methodClass name]]] \ No newline at end of file diff --git a/packages/Babylonian-Compiler.package/CSPartialMethod.extension/instance/hash.st b/packages/Babylonian-Compiler.package/CSPartialMethod.extension/instance/hash.st new file mode 100644 index 00000000..9341fe90 --- /dev/null +++ b/packages/Babylonian-Compiler.package/CSPartialMethod.extension/instance/hash.st @@ -0,0 +1,5 @@ +*Babylonian-Compiler +hash + "see #=" + + ^ (self basicLayers hash bitXor: self selector hash) bitXor: self class name hash \ No newline at end of file diff --git a/packages/Babylonian-Compiler.package/CSPartialMethod.extension/methodProperties.json b/packages/Babylonian-Compiler.package/CSPartialMethod.extension/methodProperties.json new file mode 100644 index 00000000..5f9fff49 --- /dev/null +++ b/packages/Babylonian-Compiler.package/CSPartialMethod.extension/methodProperties.json @@ -0,0 +1,6 @@ +{ + "class" : { + }, + "instance" : { + "=" : "sp 8/23/2023 14:35", + "hash" : "sp 8/23/2023 14:36" } } diff --git a/packages/Babylonian-Compiler.package/CSPartialMethod.extension/properties.json b/packages/Babylonian-Compiler.package/CSPartialMethod.extension/properties.json new file mode 100644 index 00000000..70e6d6e7 --- /dev/null +++ b/packages/Babylonian-Compiler.package/CSPartialMethod.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "CSPartialMethod" } From e31af77787e041095695dbcf273daae7e81a1ee7 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Wed, 23 Aug 2023 14:46:25 +0200 Subject: [PATCH 21/25] Updates a test with the new (lower) timeout. --- .../instance/testExamplesKnowTheirTimeout.st | 2 +- .../BPExampleTest.class/methodProperties.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/Babylonian-Tests.package/BPExampleTest.class/instance/testExamplesKnowTheirTimeout.st b/packages/Babylonian-Tests.package/BPExampleTest.class/instance/testExamplesKnowTheirTimeout.st index 362ac1cf..83837855 100644 --- a/packages/Babylonian-Tests.package/BPExampleTest.class/instance/testExamplesKnowTheirTimeout.st +++ b/packages/Babylonian-Tests.package/BPExampleTest.class/instance/testExamplesKnowTheirTimeout.st @@ -1,4 +1,4 @@ tests testExamplesKnowTheirTimeout - self assert: ((method bpExamples collect: [:example | example timeout]) includes: 30000). \ No newline at end of file + self assert: ((method bpExamples collect: [:example | example timeout]) includes: 5000). \ No newline at end of file diff --git a/packages/Babylonian-Tests.package/BPExampleTest.class/methodProperties.json b/packages/Babylonian-Tests.package/BPExampleTest.class/methodProperties.json index 38f81e03..d1bcc769 100644 --- a/packages/Babylonian-Tests.package/BPExampleTest.class/methodProperties.json +++ b/packages/Babylonian-Tests.package/BPExampleTest.class/methodProperties.json @@ -19,7 +19,7 @@ "testExamplesKnowTheirOriginalMethod" : "jb 12/7/2020 19:08", "testExamplesKnowTheirSetUp" : "pre 1/21/2021 16:49", "testExamplesKnowTheirTearDown" : "pre 1/21/2021 16:46", - "testExamplesKnowTheirTimeout" : "joabe 9/29/2022 22:59", + "testExamplesKnowTheirTimeout" : "pre 8/23/2023 13:32", "testGetExamplesForAMethod" : "jb 12/7/2020 19:08", "testGetScriptExamplesForAMethod" : "pre 7/22/2022 21:39", "testLiveSpecimenExample" : "pre 1/10/2023 16:30", From f16828f7141831e38fc04ad626caa6cc9414ccc7 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Wed, 27 Sep 2023 14:35:43 +0200 Subject: [PATCH 22/25] Caches ignored classes and messages --- .../class}/allBabylonianInternalClasses.st | 2 +- .../class/ignoredClassesInStack.st | 17 +++++++++++++++ .../class/ignoredMessagesInStack.st | 21 +++++++++++++++++++ .../instance/allBabylonianInternalClasses.st | 8 ------- .../instance/ignoredClassesInStack.st | 15 +------------ .../instance/ignoredMessagesInStack.st | 19 +---------------- .../BPTraceValue.class/methodProperties.json | 8 ++++--- .../BPTraceValue.class/properties.json | 3 ++- .../methodProperties.json | 5 ----- .../BPTraceValue.extension/properties.json | 2 -- .../monticello.meta/categories.st | 2 +- 11 files changed, 49 insertions(+), 53 deletions(-) rename packages/{Babylonian-ExampleMining.package/BPTraceValue.extension/instance => Babylonian-Core.package/BPTraceValue.class/class}/allBabylonianInternalClasses.st (90%) create mode 100644 packages/Babylonian-Core.package/BPTraceValue.class/class/ignoredClassesInStack.st create mode 100644 packages/Babylonian-Core.package/BPTraceValue.class/class/ignoredMessagesInStack.st delete mode 100644 packages/Babylonian-Core.package/BPTraceValue.class/instance/allBabylonianInternalClasses.st delete mode 100644 packages/Babylonian-ExampleMining.package/BPTraceValue.extension/methodProperties.json delete mode 100644 packages/Babylonian-ExampleMining.package/BPTraceValue.extension/properties.json diff --git a/packages/Babylonian-ExampleMining.package/BPTraceValue.extension/instance/allBabylonianInternalClasses.st b/packages/Babylonian-Core.package/BPTraceValue.class/class/allBabylonianInternalClasses.st similarity index 90% rename from packages/Babylonian-ExampleMining.package/BPTraceValue.extension/instance/allBabylonianInternalClasses.st rename to packages/Babylonian-Core.package/BPTraceValue.class/class/allBabylonianInternalClasses.st index fa2c5b9e..a6733e52 100644 --- a/packages/Babylonian-ExampleMining.package/BPTraceValue.extension/instance/allBabylonianInternalClasses.st +++ b/packages/Babylonian-Core.package/BPTraceValue.class/class/allBabylonianInternalClasses.st @@ -1,4 +1,4 @@ -*Babylonian-ExampleMining-Core-override +as yet unclassified allBabylonianInternalClasses ^ #('Babylonian-Core' 'Babylonian-Compiler' 'Babylonian-UI' 'Babylonian-ProbeLog' 'Babylonian-ExampleMining') inject: OrderedCollection new diff --git a/packages/Babylonian-Core.package/BPTraceValue.class/class/ignoredClassesInStack.st b/packages/Babylonian-Core.package/BPTraceValue.class/class/ignoredClassesInStack.st new file mode 100644 index 00000000..0410b2b2 --- /dev/null +++ b/packages/Babylonian-Core.package/BPTraceValue.class/class/ignoredClassesInStack.st @@ -0,0 +1,17 @@ +as yet unclassified +ignoredClassesInStack + + ^ IgnoredClassesInStack ifNil: [IgnoredClassesInStack := { Symbol. + DynamicVariable class. + ActiveEventVariable class. + CSProcessContextInformation. + CSMethodObject. + CSLayeredMethod. + CSPartialMethod. + TestCase. + TestResult. + BPProbeLogTest. + BPExample. + BPAbstractExample. + MorphicEventDispatcher. + }, self allBabylonianInternalClasses] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPTraceValue.class/class/ignoredMessagesInStack.st b/packages/Babylonian-Core.package/BPTraceValue.class/class/ignoredMessagesInStack.st new file mode 100644 index 00000000..a8f1d89c --- /dev/null +++ b/packages/Babylonian-Core.package/BPTraceValue.class/class/ignoredMessagesInStack.st @@ -0,0 +1,21 @@ +as yet unclassified +ignoredMessagesInStack + + ^ IgnoredMessagesInStack ifNil: [IgnoredMessagesInStack := {MethodReference class: BlockClosure selector: #newProcess. + MethodReference class: BPExample selector: #traceInBackground. + MethodReference class: BlockClosure selector: #on:do:. + MethodReference class: BPExample selector: #traceAsyncNotifying:. + MethodReference class: BlockClosure selector: #bpTraceInBackgroundForExample:. + MethodReference class: BlockClosure selector: #bpTraceWith:. + MethodReference class: Symbol selector: #withLayerDo:. + MethodReference class: Array selector: #withLayersDo:. + MethodReference class: CSProcessContextInformation selector: #withLayers:do:. + MethodReference class: BlockClosure selector: #ensure:. + MethodReference class: DynamicVariable class selector: #value:during:. + MethodReference class: BPExample selector: #traceAsyncNotifying:. + MethodReference class: BPExample selector: #execute. + MethodReference class: BPExample selector: #executeSynchronously. + MethodReference class: BPMethodExample selector: #runOn:. + MethodReference class: CSMethodObject selector: #run:with:in:. + MethodReference class: CSLayeredMethod selector: #valueWithReceiver:arguments:. + MethodReference class: CSPartialMethod selector: #valueWithReceiver:arguments:.}] \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPTraceValue.class/instance/allBabylonianInternalClasses.st b/packages/Babylonian-Core.package/BPTraceValue.class/instance/allBabylonianInternalClasses.st deleted file mode 100644 index 657b195c..00000000 --- a/packages/Babylonian-Core.package/BPTraceValue.class/instance/allBabylonianInternalClasses.st +++ /dev/null @@ -1,8 +0,0 @@ -private -allBabylonianInternalClasses - ^ #('Babylonian-Core' 'Babylonian-Compiler' 'Babylonian-UI' 'Babylonian-ProbeLog') - inject: OrderedCollection new - into: [:theClasses :aPackage | - theClasses, (PackageOrganizer default packageNamed: aPackage - ifPresent: [:thePackage | thePackage classes] - ifAbsent: [#()])]. \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPTraceValue.class/instance/ignoredClassesInStack.st b/packages/Babylonian-Core.package/BPTraceValue.class/instance/ignoredClassesInStack.st index 0b129141..85a9bf9a 100644 --- a/packages/Babylonian-Core.package/BPTraceValue.class/instance/ignoredClassesInStack.st +++ b/packages/Babylonian-Core.package/BPTraceValue.class/instance/ignoredClassesInStack.st @@ -1,17 +1,4 @@ private ignoredClassesInStack - ^ { Symbol. - DynamicVariable class. - ActiveEventVariable class. - CSProcessContextInformation. - CSMethodObject. - CSLayeredMethod. - CSPartialMethod. - TestCase. - TestResult. - BPProbeLogTest. - BPExample. - BPAbstractExample. - MorphicEventDispatcher. - }, self allBabylonianInternalClasses \ No newline at end of file + ^ self class ignoredClassesInStack \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPTraceValue.class/instance/ignoredMessagesInStack.st b/packages/Babylonian-Core.package/BPTraceValue.class/instance/ignoredMessagesInStack.st index d61156fb..13f33a82 100644 --- a/packages/Babylonian-Core.package/BPTraceValue.class/instance/ignoredMessagesInStack.st +++ b/packages/Babylonian-Core.package/BPTraceValue.class/instance/ignoredMessagesInStack.st @@ -1,21 +1,4 @@ private ignoredMessagesInStack - ^ {MethodReference class: BlockClosure selector: #newProcess. - MethodReference class: BPExample selector: #traceInBackground. - MethodReference class: BlockClosure selector: #on:do:. - MethodReference class: BPExample selector: #traceAsyncNotifying:. - MethodReference class: BlockClosure selector: #bpTraceInBackgroundForExample:. - MethodReference class: BlockClosure selector: #bpTraceWith:. - MethodReference class: Symbol selector: #withLayerDo:. - MethodReference class: Array selector: #withLayersDo:. - MethodReference class: CSProcessContextInformation selector: #withLayers:do:. - MethodReference class: BlockClosure selector: #ensure:. - MethodReference class: DynamicVariable class selector: #value:during:. - MethodReference class: BPExample selector: #traceAsyncNotifying:. - MethodReference class: BPExample selector: #execute. - MethodReference class: BPExample selector: #executeSynchronously. - MethodReference class: BPMethodExample selector: #runOn:. - MethodReference class: CSMethodObject selector: #run:with:in:. - MethodReference class: CSLayeredMethod selector: #valueWithReceiver:arguments:. - MethodReference class: CSPartialMethod selector: #valueWithReceiver:arguments:.} \ No newline at end of file + ^ self class ignoredMessagesInStack \ No newline at end of file diff --git a/packages/Babylonian-Core.package/BPTraceValue.class/methodProperties.json b/packages/Babylonian-Core.package/BPTraceValue.class/methodProperties.json index 727df3fa..a73dc3a1 100644 --- a/packages/Babylonian-Core.package/BPTraceValue.class/methodProperties.json +++ b/packages/Babylonian-Core.package/BPTraceValue.class/methodProperties.json @@ -1,8 +1,10 @@ { "class" : { + "allBabylonianInternalClasses" : "pre 9/27/2023 14:33", + "ignoredClassesInStack" : "pre 9/27/2023 14:33", + "ignoredMessagesInStack" : "pre 9/27/2023 14:34", "value:identityHash:stack:" : "pre 10/12/2020 17:57" }, "instance" : { - "allBabylonianInternalClasses" : "joabe 7/2/2023 23:54", "asValueMorph" : "jb 5/20/2021 01:00", "belongingAnnotation" : "lu 1/31/2022 16:59", "belongingAnnotationId" : "lu 12/1/2021 07:32", @@ -11,8 +13,8 @@ "chronologicalPosition:" : "jb 5/20/2021 14:50", "containedMethodReference" : "pre 11/16/2022 16:04", "filteredStack" : "pre 11/16/2022 15:57", - "ignoredClassesInStack" : "joabe 7/2/2023 23:53", - "ignoredMessagesInStack" : "pre 7/13/2023 10:45", + "ignoredClassesInStack" : "pre 9/27/2023 14:33", + "ignoredMessagesInStack" : "pre 9/27/2023 14:33", "isStackFull" : "jb 6/30/2021 01:26", "printOn:" : "jb 5/19/2021 20:59", "shouldBeIgnored:" : "pre 11/16/2022 16:04", diff --git a/packages/Babylonian-Core.package/BPTraceValue.class/properties.json b/packages/Babylonian-Core.package/BPTraceValue.class/properties.json index 31d7f3f8..fb894704 100644 --- a/packages/Babylonian-Core.package/BPTraceValue.class/properties.json +++ b/packages/Babylonian-Core.package/BPTraceValue.class/properties.json @@ -3,7 +3,8 @@ "classinstvars" : [ ], "classvars" : [ - ], + "IgnoredClassesInStack", + "IgnoredMessagesInStack" ], "commentStamp" : "", "instvars" : [ "tracedValue", diff --git a/packages/Babylonian-ExampleMining.package/BPTraceValue.extension/methodProperties.json b/packages/Babylonian-ExampleMining.package/BPTraceValue.extension/methodProperties.json deleted file mode 100644 index 236bfdc2..00000000 --- a/packages/Babylonian-ExampleMining.package/BPTraceValue.extension/methodProperties.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "class" : { - }, - "instance" : { - "allBabylonianInternalClasses" : "joabe 7/11/2023 15:28" } } diff --git a/packages/Babylonian-ExampleMining.package/BPTraceValue.extension/properties.json b/packages/Babylonian-ExampleMining.package/BPTraceValue.extension/properties.json deleted file mode 100644 index 8c3e8d06..00000000 --- a/packages/Babylonian-ExampleMining.package/BPTraceValue.extension/properties.json +++ /dev/null @@ -1,2 +0,0 @@ -{ - "name" : "BPTraceValue" } diff --git a/packages/Babylonian-ExampleMining.package/monticello.meta/categories.st b/packages/Babylonian-ExampleMining.package/monticello.meta/categories.st index 0b6eeaa7..b0583e43 100644 --- a/packages/Babylonian-ExampleMining.package/monticello.meta/categories.st +++ b/packages/Babylonian-ExampleMining.package/monticello.meta/categories.st @@ -1,3 +1,3 @@ +SystemOrganization addCategory: #'Babylonian-ExampleMining-Core'! SystemOrganization addCategory: #'Babylonian-ExampleMining-Minimization'! SystemOrganization addCategory: #'Babylonian-ExampleMining-Tests'! -SystemOrganization addCategory: #'Babylonian-ExampleMining-Core'! From e443aa8cd97751d4f8423b88142911ec10ead134 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Thu, 28 Sep 2023 13:59:56 +0200 Subject: [PATCH 23/25] Fixes an editor is nil failure. --- .../CodeHolder.extension/instance/doAddAnnotation.in..st | 2 +- .../CodeHolder.extension/methodProperties.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/Babylonian-UI.package/CodeHolder.extension/instance/doAddAnnotation.in..st b/packages/Babylonian-UI.package/CodeHolder.extension/instance/doAddAnnotation.in..st index 19f06976..2879bbc4 100644 --- a/packages/Babylonian-UI.package/CodeHolder.extension/instance/doAddAnnotation.in..st +++ b/packages/Babylonian-UI.package/CodeHolder.extension/instance/doAddAnnotation.in..st @@ -13,4 +13,4 @@ doAddAnnotation: anAnnotation in: interval yourself) from: actualInterval start to: actualInterval stop. - (self codeTextMorph) addMorph: newMorph. \ No newline at end of file + self codeTextMorph textMorph addMorph: newMorph. \ No newline at end of file diff --git a/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json b/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json index 0e3c72e1..70532448 100644 --- a/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json +++ b/packages/Babylonian-UI.package/CodeHolder.extension/methodProperties.json @@ -21,7 +21,7 @@ "determineIntervalToAnnotateFor:forNodes:" : "pre 9/1/2022 22:03", "determineMessageSendNodeIn:" : "pre 9/2/2022 14:06", "determineSelectorOfMessageSend:" : "pre 9/2/2022 14:49", - "doAddAnnotation:in:" : "pre 8/17/2023 11:48", + "doAddAnnotation:in:" : "pre 9/28/2023 13:58", "doBrowseActualImplementersFromProbe:andSelector:" : "pre 9/2/2022 15:54", "doItReceiver" : "ct 3/30/2022 16:48", "exampleForEvaluation" : "ct 8/18/2021 23:15", From 4a415fa1d82440c6c11b0f994a6717e490f5c4d1 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Thu, 28 Sep 2023 14:11:53 +0200 Subject: [PATCH 24/25] Adds shortcut to browser init to ensure that it works directly after install. --- .../Babylonian-UI.package/BPBrowser.class/class/initialize.st | 4 +++- .../BPBrowser.class/methodProperties.json | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/Babylonian-UI.package/BPBrowser.class/class/initialize.st b/packages/Babylonian-UI.package/BPBrowser.class/class/initialize.st index 05867e72..8e6cffe2 100644 --- a/packages/Babylonian-UI.package/BPBrowser.class/class/initialize.st +++ b/packages/Babylonian-UI.package/BPBrowser.class/class/initialize.st @@ -11,4 +11,6 @@ initialize menu registerOpenCommand: {'Babylonian Browser'. {self. #open}}]]. ContentsSymbolQuints := self defaultContentsSymbolQuints asOrderedCollection. - Smalltalk addToStartUpList: self. \ No newline at end of file + Smalltalk addToStartUpList: self. + + SmalltalkEditor cmdActions at: $u asciiValue + 1 put: #probeIt:. \ No newline at end of file diff --git a/packages/Babylonian-UI.package/BPBrowser.class/methodProperties.json b/packages/Babylonian-UI.package/BPBrowser.class/methodProperties.json index 514985ae..052a5991 100644 --- a/packages/Babylonian-UI.package/BPBrowser.class/methodProperties.json +++ b/packages/Babylonian-UI.package/BPBrowser.class/methodProperties.json @@ -4,7 +4,7 @@ "automaticallyAcceptMethodOnAddingAnnotations:" : "pre 6/7/2021 14:35", "compilerClass" : "pre 7/26/2019 10:07", "defaultContentsSymbolQuints" : "jb 10/30/2021 17:40", - "initialize" : "joabe 5/30/2023 16:17", + "initialize" : "pre 9/28/2023 14:10", "probeLogSymbol" : "joabe 5/9/2023 17:05", "startUp" : "jb 12/3/2020 23:07" }, "instance" : { From 90e3c6fd44f317f054b242bc24266bfa294c5b56 Mon Sep 17 00:00:00 2001 From: Patrick R Date: Thu, 28 Sep 2023 14:25:15 +0200 Subject: [PATCH 25/25] Adds hint to disable confirmFirstUseOfStyle to README [ci skip] --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b62b7ee..8fb78e7c 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A Smalltalk implementation of the Babylonian Programming System. ## How to install -1. Get [a recent trunk Squeak][squeakorg] +1. Get [a recent Squeak][squeakorg] 2. Load [Metacello][metacello] 3. Finally, load Babylonian/S with the following command: @@ -15,6 +15,11 @@ Metacello new repository: 'github://hpi-swa-lab/babylonian-programming-smalltalk:main/packages'; load. ``` +4. (Recommended) Disable the preference for notifications on saving methods with styles. This prevents that you will be asked whether you want to save style information whenever you save a method with probes. + +```Smalltalk +Preferences disable: #confirmFirstUseOfStyle. +``` ## Current State