diff --git a/README.md b/README.md index 19d4298..b17e445 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# Squeak-ActiveExpressions [![Build Status][travis_b]][travis_url] [![Coverage Status][coveralls_b]][coveralls_url] +# ActiveExpression/S [![Build Status][travis_b]][travis_url] [![Coverage Status][coveralls_b]][coveralls_url] -Squeak-ActiveExpressions aims to offer an implementation of [Active Expressions] in Squeak. +ActiveExpression/S aims to offer an implementation of [Active Expressions] in [Squeak/Smalltalk][Squeak]. ## Installation Instructions -ActiveExpressions are compatible with Squeak-5.1 and Squeak-trunk (check Travis for more information). First install the latest [Metacello], then you can use the following code to load ActiveExpressions and all their prerequisites: +ActiveExpression/S is compatible with Squeak-5.2 and Squeak-trunk (check Travis for more information). First install the latest [Metacello], then you can use the following code to load ActiveExpression/S and all its prerequisites: ``` Metacello new @@ -105,6 +105,8 @@ A more complete implementation of Active Expressions in JavaScript which is also [Active Expressions]: http://programming-journal.org/2017/1/12/ [JavaScript Implementation]: https://github.com/active-expressions/active-expressions + +[Squeak]: https://squeak.org [Metacello]: https://github.com/Metacello/metacello [Issues]: https://github.com/stlutz/Squeak-ActiveExpressions/tree/master/src/ActiveExpressions-Examples.package/AExpIssues.class diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..c94ed77 --- /dev/null +++ b/TODO.md @@ -0,0 +1,12 @@ +- tests + - simulation + - quick methods + - performs + - finds accesses to instVars / tempVars / litVars + - when assignment result is used + - normally + - correct result +- AxLayer +- remember potential side effects during simulation +- fix baseline +- update README diff --git a/src/ActiveExpressions-Core.package/ActiveExpression.class/class/defaultType.st b/src/ActiveExpressions-Core.package/ActiveExpression.class/class/defaultType.st new file mode 100644 index 0000000..de0336a --- /dev/null +++ b/src/ActiveExpressions-Core.package/ActiveExpression.class/class/defaultType.st @@ -0,0 +1,4 @@ +defaults +defaultType + + ^ SynchronousActiveExpression \ No newline at end of file diff --git a/src/ActiveExpressions-Core.package/ActiveExpression.class/class/monitoring..st b/src/ActiveExpressions-Core.package/ActiveExpression.class/class/monitoring..st deleted file mode 100644 index 50c75d1..0000000 --- a/src/ActiveExpressions-Core.package/ActiveExpression.class/class/monitoring..st +++ /dev/null @@ -1,6 +0,0 @@ -instance creation -monitoring: aBlock - - ^ self basicNew - setMonitoredBlock: aBlock; - initialize \ No newline at end of file diff --git a/src/ActiveExpressions-Core.package/ActiveExpression.class/class/on..st b/src/ActiveExpressions-Core.package/ActiveExpression.class/class/on..st new file mode 100644 index 0000000..4bcc053 --- /dev/null +++ b/src/ActiveExpressions-Core.package/ActiveExpression.class/class/on..st @@ -0,0 +1,8 @@ +instance creation +on: aBlock + + | type | + type := self = ActiveExpression ifTrue: [self defaultType] ifFalse: [self]. + ^ type basicNew + setMonitoredBlock: aBlock; + initialize \ No newline at end of file diff --git a/src/ActiveExpressions-Core.package/ActiveExpression.class/methodProperties.json b/src/ActiveExpressions-Core.package/ActiveExpression.class/methodProperties.json index b550066..893db9b 100644 --- a/src/ActiveExpressions-Core.package/ActiveExpression.class/methodProperties.json +++ b/src/ActiveExpressions-Core.package/ActiveExpression.class/methodProperties.json @@ -1,7 +1,8 @@ { "class" : { "compilerClass" : "sl 10/12/2018 09:59", - "monitoring:" : "sl 12/26/2017 18:55" }, + "defaultType" : "stlu 7/29/2019 08:53", + "on:" : "stlu 7/29/2019 13:54" }, "instance" : { "addCallback:" : "sl 1/10/2018 19:51", "callbacks" : "sl 1/10/2018 19:27", diff --git a/src/ActiveExpressions-Core.package/BlockClosure.extension/instance/onChangeDo..st b/src/ActiveExpressions-Core.package/BlockClosure.extension/instance/onChangeDo..st index 7b4c709..76bab39 100644 --- a/src/ActiveExpressions-Core.package/BlockClosure.extension/instance/onChangeDo..st +++ b/src/ActiveExpressions-Core.package/BlockClosure.extension/instance/onChangeDo..st @@ -1,4 +1,4 @@ *ActiveExpressions-Core onChangeDo: aBlock - ^ (ActiveExpression monitoring: self) onChangeDo: aBlock \ No newline at end of file + ^ (ActiveExpression on: self) onChangeDo: aBlock \ No newline at end of file diff --git a/src/ActiveExpressions-Core.package/BlockClosure.extension/methodProperties.json b/src/ActiveExpressions-Core.package/BlockClosure.extension/methodProperties.json index 8228b81..e031bdb 100644 --- a/src/ActiveExpressions-Core.package/BlockClosure.extension/methodProperties.json +++ b/src/ActiveExpressions-Core.package/BlockClosure.extension/methodProperties.json @@ -2,4 +2,4 @@ "class" : { }, "instance" : { - "onChangeDo:" : "sl 1/10/2018 19:36" } } + "onChangeDo:" : "stlu 7/29/2019 13:55" } } diff --git a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/updateLastValue.st b/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/updateLastValue.st deleted file mode 100644 index d4366cc..0000000 --- a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/updateLastValue.st +++ /dev/null @@ -1,10 +0,0 @@ -change detection -updateLastValue - - | simulator | - simulator := AxSimulator new. - [simulator simulate: [monitoredBlock value]. - self updateSubscriptions: simulator] - on: Error - do: [^ self]. - self setLastValue: simulator result \ No newline at end of file diff --git a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/methodProperties.json b/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/methodProperties.json deleted file mode 100644 index 7b41d94..0000000 --- a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/methodProperties.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "class" : { - }, - "instance" : { - "dispose" : "sl 10/10/2018 10:06", - "instVarNamed:ofObject:changedFrom:to:inContext:" : "sl 10/10/2018 09:58", - "litVar:changedFrom:to:inContext:" : "sl 10/10/2018 09:59", - "tempVarNamed:changedFrom:to:inContext:" : "sl 10/10/2018 09:59", - "updateLastValue" : "sl 2/25/2019 13:22", - "updateSubscriptions:" : "sl 10/11/2018 11:43" } } diff --git a/src/ActiveExpressions-Core.package/monticello.meta/version b/src/ActiveExpressions-Core.package/monticello.meta/version index d15c886..9832e19 100644 --- a/src/ActiveExpressions-Core.package/monticello.meta/version +++ b/src/ActiveExpressions-Core.package/monticello.meta/version @@ -1 +1 @@ -(name 'ActiveExpressions-Core-stlu.4' message 'empty log message' id '34099b2e-56c9-4de8-854a-3865294d1fb1' date '25 February 2019' time '1:34:03.587085 pm' author 'stlu' ancestors ((name 'ActiveExpressions-Core-sl.3' message 'empty log message' id '9aa1eb9e-e325-4bde-bc51-f7868a4fc4ad' date '11 October 2018' time '12:52:43.435234 pm' author 'sl' ancestors ((name 'ActiveExpressions-Core-sl.2' message 'empty log message' id '41ca1443-0aeb-4357-823d-106bb24155a2' date '10 October 2018' time '10:35:53.535738 pm' author 'sl' ancestors ((name 'ActiveExpressions-Core-cypress.1' message 'fabricated from a Cypress format repository' id '2cd42bda-65a2-4a1c-94fb-5a30b7e75183' date '10 October 2018' time '9:53:46.888779 am' author '' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file +(name 'ActiveExpressions-Core-stlu.7' message 'empty log message' id 'fe862fff-2263-4c1e-8995-1269a5353e89' date '29 July 2019' time '2:00:04.848422 pm' author 'stlu' ancestors ((name 'ActiveExpressions-Core-stlu.6' message 'empty log message' id '131f6c3a-44ff-43a5-80e1-097d126a3dcd' date '14 March 2019' time '2:07:30.564715 am' author 'stlu' ancestors ((name 'ActiveExpressions-Core-stlu.5' message 'empty log message' id '97781d30-1386-41d9-9f94-14b22edb938b' date '2 March 2019' time '8:48:44.597709 am' author 'stlu' ancestors ((name 'ActiveExpressions-Core-stlu.4' message 'empty log message' id '34099b2e-56c9-4de8-854a-3865294d1fb1' date '25 February 2019' time '1:34:03.587085 pm' author 'stlu' ancestors ((name 'ActiveExpressions-Core-sl.3' message 'empty log message' id '9aa1eb9e-e325-4bde-bc51-f7868a4fc4ad' date '11 October 2018' time '12:52:43.435234 pm' author 'sl' ancestors ((name 'ActiveExpressions-Core-sl.2' message 'empty log message' id '41ca1443-0aeb-4357-823d-106bb24155a2' date '10 October 2018' time '10:35:53.535738 pm' author 'sl' ancestors ((name 'ActiveExpressions-Core-cypress.1' message 'fabricated from a Cypress format repository' id '2cd42bda-65a2-4a1c-94fb-5a30b7e75183' date '10 October 2018' time '9:53:46.888779 am' author '' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testContextMethodsInstVarsAreNotRewritten.st b/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testContextMethodsInstVarsAreNotRewritten.st deleted file mode 100644 index 8cdd9c3..0000000 --- a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testContextMethodsInstVarsAreNotRewritten.st +++ /dev/null @@ -1,11 +0,0 @@ -tests -testContextMethodsInstVarsAreNotRewritten - "At the point of rewriting the source code (to intercept all instance variable assignments), there may be methods whose old (and therefor not rewritten) version is already in execution. Since the respective contexts do not adopt the new version, all instance variable assignments made in these contexts remain undetected." - | wasCalled | - self instVar: 0. - wasCalled := false. - aexp := VarTraActiveExpression monitoring: [self instVar]. - aexp onChangeDo: [wasCalled := true]. - instVar := 1. "This line should be rewritten" - self assert: wasCalled. - \ No newline at end of file diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testContextMethodsTempVarsAreNotRewritten.st b/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testContextMethodsTempVarsAreNotRewritten.st deleted file mode 100644 index 8bc8b79..0000000 --- a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testContextMethodsTempVarsAreNotRewritten.st +++ /dev/null @@ -1,11 +0,0 @@ -tests -testContextMethodsTempVarsAreNotRewritten - "At the point of rewriting the source code, the method the ActiveExpression's monitoredBlock references (through its outherContext) is already in execution. If there are references to temporary variables in the monitoredBlock, then all assignments to them would have to be rewritten. But since said method is already in execution, no temporary variables assignments are actually rewritten." - | wasCalled tempVar | - tempVar := 0. - wasCalled := false. - aexp := VarTraActiveExpression monitoring: [tempVar]. - aexp onChangeDo: [wasCalled := true]. - tempVar := 1. "This line should be rewritten" - self assert: wasCalled. - \ No newline at end of file diff --git a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/README.md b/src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/README.md similarity index 100% rename from src/ActiveExpressions-Core.package/VarTraActiveExpression.class/README.md rename to src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/README.md diff --git a/src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/activeExpression.st b/src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/activeExpression.st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/activeExpression.st rename to src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/activeExpression.st diff --git a/src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/delete.st b/src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/delete.st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/delete.st rename to src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/delete.st diff --git a/src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/follow..st b/src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/follow..st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/follow..st rename to src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/follow..st diff --git a/src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/followTo..st b/src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/followTo..st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/followTo..st rename to src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/followTo..st diff --git a/src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/setActiveExpression..st b/src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/setActiveExpression..st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/setActiveExpression..st rename to src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/setActiveExpression..st diff --git a/src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/startFollowing..st b/src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/startFollowing..st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/startFollowing..st rename to src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/startFollowing..st diff --git a/src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/stopFollowing.st b/src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/stopFollowing.st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/instance/stopFollowing.st rename to src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/instance/stopFollowing.st diff --git a/src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/methodProperties.json b/src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/methodProperties.json similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/methodProperties.json rename to src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/methodProperties.json diff --git a/src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/properties.json b/src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/properties.json similarity index 86% rename from src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/properties.json rename to src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/properties.json index 47ca552..af0ab11 100644 --- a/src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/properties.json +++ b/src/ActiveExpressions-Examples.package/AxAnnotationMorph.class/properties.json @@ -7,7 +7,7 @@ "commentStamp" : "", "instvars" : [ "activeExpression" ], - "name" : "AExpAnnotationMorph", + "name" : "AxAnnotationMorph", "pools" : [ ], "super" : "Morph", diff --git a/src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/README.md b/src/ActiveExpressions-Examples.package/AxIssues.class/README.md similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpAnnotationMorph.class/README.md rename to src/ActiveExpressions-Examples.package/AxIssues.class/README.md diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/atomicOperation.st b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/atomicOperation.st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/instance/atomicOperation.st rename to src/ActiveExpressions-Examples.package/AxIssues.class/instance/atomicOperation.st diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/instVar..st b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/instVar..st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/instance/instVar..st rename to src/ActiveExpressions-Examples.package/AxIssues.class/instance/instVar..st diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/instVar.st b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/instVar.st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/instance/instVar.st rename to src/ActiveExpressions-Examples.package/AxIssues.class/instance/instVar.st diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/stack..st b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/stack..st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/instance/stack..st rename to src/ActiveExpressions-Examples.package/AxIssues.class/instance/stack..st diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/stack.st b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/stack.st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/instance/stack.st rename to src/ActiveExpressions-Examples.package/AxIssues.class/instance/stack.st diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/stackSize..st b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/stackSize..st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/instance/stackSize..st rename to src/ActiveExpressions-Examples.package/AxIssues.class/instance/stackSize..st diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/stackSize.st b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/stackSize.st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/instance/stackSize.st rename to src/ActiveExpressions-Examples.package/AxIssues.class/instance/stackSize.st diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/stackTop.st b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/stackTop.st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/instance/stackTop.st rename to src/ActiveExpressions-Examples.package/AxIssues.class/instance/stackTop.st diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/tearDown.st b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/tearDown.st similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/instance/tearDown.st rename to src/ActiveExpressions-Examples.package/AxIssues.class/instance/tearDown.st diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testAtomicOperationsAreNotRespected.st b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/testAtomicOperationsAreNotRespected.st similarity index 91% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testAtomicOperationsAreNotRespected.st rename to src/ActiveExpressions-Examples.package/AxIssues.class/instance/testAtomicOperationsAreNotRespected.st index 9cfa27b..3a256bd 100644 --- a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testAtomicOperationsAreNotRespected.st +++ b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/testAtomicOperationsAreNotRespected.st @@ -3,5 +3,5 @@ testAtomicOperationsAreNotRespected "Objects often have operations they consider to be atomic, where the state in between a few actions is technically undefined but usually also not visible to the outside world. During that short time frame said obejct can make no guarantees as to its correct functioning (e.g. holding its contracts) - and also doesn't need to. Installing monitors into such an operation causes us to try to use the object at exactly that point in time, which might cause errors." stack := OrderedCollection withAll: { 1 . 2 . 3 }. stackSize := 3. - aexp := VarTraActiveExpression monitoring: [self stackTop]. + aexp := SynchronousActiveExpression on: [self stackTop]. self atomicOperation "Throws an error trying to access stack (size 3) at index 4" \ No newline at end of file diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testValueObjectsAlwaysChangeIdentity.st b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/testValueObjectsAlwaysChangeIdentity.st similarity index 81% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testValueObjectsAlwaysChangeIdentity.st rename to src/ActiveExpressions-Examples.package/AxIssues.class/instance/testValueObjectsAlwaysChangeIdentity.st index ae0f1e8..e58b15e 100644 --- a/src/ActiveExpressions-Examples.package/AExpIssues.class/instance/testValueObjectsAlwaysChangeIdentity.st +++ b/src/ActiveExpressions-Examples.package/AxIssues.class/instance/testValueObjectsAlwaysChangeIdentity.st @@ -1,6 +1,6 @@ tests testValueObjectsAlwaysChangeIdentity "Value objects are usually treated as being identical to each other, so long as they are equal to each other. This is not reflected in their #== comparator, which causes the 'same' value object to be seen by an ActiveExpression as being a change in state." - aexp := ActiveExpression monitoring: [1@1]. "This expression never really changes state." + aexp := ActiveExpression on: [1@1]. "This expression never really changes state." aexp onChangeDo: [self fail]. "Therefor, this should never be executed." aexp update. "But it is..." \ No newline at end of file diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/methodProperties.json b/src/ActiveExpressions-Examples.package/AxIssues.class/methodProperties.json similarity index 57% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/methodProperties.json rename to src/ActiveExpressions-Examples.package/AxIssues.class/methodProperties.json index d0aa16d..61486fd 100644 --- a/src/ActiveExpressions-Examples.package/AExpIssues.class/methodProperties.json +++ b/src/ActiveExpressions-Examples.package/AxIssues.class/methodProperties.json @@ -11,7 +11,5 @@ "stackSize:" : "sl 2/7/2018 22:31", "stackTop" : "sl 2/7/2018 22:34", "tearDown" : "sl 2/7/2018 22:09", - "testAtomicOperationsAreNotRespected" : "sl 10/10/2018 10:16", - "testContextMethodsInstVarsAreNotRewritten" : "sl 10/10/2018 10:16", - "testContextMethodsTempVarsAreNotRewritten" : "sl 10/10/2018 10:16", - "testValueObjectsAlwaysChangeIdentity" : "sl 2/7/2018 22:13" } } + "testAtomicOperationsAreNotRespected" : "stlu 7/29/2019 13:54", + "testValueObjectsAlwaysChangeIdentity" : "stlu 7/29/2019 13:55" } } diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/properties.json b/src/ActiveExpressions-Examples.package/AxIssues.class/properties.json similarity index 91% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/properties.json rename to src/ActiveExpressions-Examples.package/AxIssues.class/properties.json index f25d05e..b662d1b 100644 --- a/src/ActiveExpressions-Examples.package/AExpIssues.class/properties.json +++ b/src/ActiveExpressions-Examples.package/AxIssues.class/properties.json @@ -10,7 +10,7 @@ "instVar", "stack", "stackSize" ], - "name" : "AExpIssues", + "name" : "AxIssues", "pools" : [ ], "super" : "TestCase", diff --git a/src/ActiveExpressions-Examples.package/monticello.meta/version b/src/ActiveExpressions-Examples.package/monticello.meta/version index 4f9946d..f190d30 100644 --- a/src/ActiveExpressions-Examples.package/monticello.meta/version +++ b/src/ActiveExpressions-Examples.package/monticello.meta/version @@ -1 +1 @@ -(name 'ActiveExpressions-Examples-sl.2' message 'empty log message' id '3d983293-fc17-4b60-bd20-fbfa28d508fe' date '10 October 2018' time '10:36:59.308802 pm' author 'sl' ancestors ((name 'ActiveExpressions-Examples-cypress.1' message 'fabricated from a Cypress format repository' id 'cf3f2556-f9c8-43b6-b686-4c70213eb05a' date '10 October 2018' time '9:53:50.185253 am' author '' ancestors () stepChildren ())) stepChildren ()) \ No newline at end of file +(name 'ActiveExpressions-Examples-stlu.4' message 'empty log message' id '4c65e06e-ea9b-4eb9-9ef9-cb0162b14060' date '29 July 2019' time '2:40:42.7763 pm' author 'stlu' ancestors ((name 'ActiveExpressions-Examples-stlu.3' message 'empty log message' id '2fb666fb-3e5f-4a39-a945-366d2e6429af' date '29 July 2019' time '2:00:22.424908 pm' author 'stlu' ancestors ((name 'ActiveExpressions-Examples-sl.2' message 'empty log message' id '3d983293-fc17-4b60-bd20-fbfa28d508fe' date '10 October 2018' time '10:36:59.308802 pm' author 'sl' ancestors ((name 'ActiveExpressions-Examples-cypress.1' message 'fabricated from a Cypress format repository' id 'cf3f2556-f9c8-43b6-b686-4c70213eb05a' date '10 October 2018' time '9:53:50.185253 am' author '' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/initialize.st b/src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/initialize.st deleted file mode 100644 index bea1513..0000000 --- a/src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/initialize.st +++ /dev/null @@ -1,5 +0,0 @@ -initialize-release -initialize - - litVarAccesses := IdentitySet new. - instVarAccesses := WeakIdentityKeyDictionary new \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/AxSimulator.class/methodProperties.json b/src/ActiveExpressions-Simulation.package/AxSimulator.class/methodProperties.json deleted file mode 100644 index 7e689fb..0000000 --- a/src/ActiveExpressions-Simulation.package/AxSimulator.class/methodProperties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "class" : { - }, - "instance" : { - "initialize" : "sl 10/11/2018 11:38", - "instVarAccessed:of:" : "sl 2/25/2019 13:27", - "instVarAccesses" : "sl 10/10/2018 21:46", - "litVarAccesses" : "sl 10/10/2018 21:46", - "pushLiteralVariable:" : "sl 2/25/2019 12:12", - "pushReceiverVariable:" : "sl 2/25/2019 13:07", - "send:super:numArgs:" : "sl 2/25/2019 13:05" } } diff --git a/src/ActiveExpressions-Simulation.package/AxSimulator.class/properties.json b/src/ActiveExpressions-Simulation.package/AxSimulator.class/properties.json deleted file mode 100644 index ad5105e..0000000 --- a/src/ActiveExpressions-Simulation.package/AxSimulator.class/properties.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "category" : "ActiveExpressions-Simulation", - "classinstvars" : [ - ], - "classvars" : [ - ], - "commentStamp" : "", - "instvars" : [ - "instVarAccesses", - "litVarAccesses" ], - "name" : "AxSimulator", - "pools" : [ - ], - "super" : "InstructionSimulator", - "type" : "normal" } diff --git a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/distanceFrom.to..st b/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/distanceFrom.to..st deleted file mode 100644 index 324e6cb..0000000 --- a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/distanceFrom.to..st +++ /dev/null @@ -1,14 +0,0 @@ -as yet unclassified -distanceFrom: topContext to: bottomContext - - | c distance | - distance := 0. - c := bottomContext. - [c ~~ nil] - whileTrue: - [c == topContext - ifTrue: [^ distance] - ifFalse: - [distance := distance + 1. - c := c sender]]. - self error: 'topContext is not in the sender chain of bottomContext' \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/logContext..st b/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/logContext..st deleted file mode 100644 index 8228446..0000000 --- a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/logContext..st +++ /dev/null @@ -1,8 +0,0 @@ -as yet unclassified -logContext: aContext - - depth * 2 timesRepeat: [Transcript space]. - aContext printOn: Transcript. - Transcript - cr; - flush \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/send.super.numArgs..st b/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/send.super.numArgs..st deleted file mode 100644 index c659ebd..0000000 --- a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/send.super.numArgs..st +++ /dev/null @@ -1,13 +0,0 @@ -as yet unclassified -send: selector super: supered numArgs: numberArguments - - | receiver nextMethod | - receiver := currentContext at: (currentContext stackPtr - numberArguments). - nextMethod := receiver class lookupSelector: selector. - nextMethod primitive > 0 ifTrue: [ - (depth + 1) * 2 timesRepeat: [Transcript space]. - Transcript nextPutAll: receiver class name. - nextMethod methodClass ~~ receiver class ifTrue: - [Transcript nextPut: $(; nextPutAll: nextMethod methodClass name; nextPut: $)]. - Transcript nextPutAll: '>>'; nextPutAll: nextMethod selector; cr]. - ^ super send: selector super: supered numArgs: numberArguments \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/simulate..st b/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/simulate..st deleted file mode 100644 index 02ab86e..0000000 --- a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/instance/simulate..st +++ /dev/null @@ -1,23 +0,0 @@ -as yet unclassified -simulate: aBlock - - | topContext | - aBlock hasMethodReturn - ifTrue: [self error: 'simulation of blocks with ^ can run loose']. - topContext := thisContext. - depth := 0. - currentContext := aBlock asContext. - currentContext pushArgs: Array new from: topContext. - Transcript nextPutAll: '#################################'; cr. - self logContext: currentContext. - [currentContext == topContext] - whileFalse: - [| previousContext previousDepth | - previousContext := currentContext. - previousDepth := depth. - currentContext := currentContext interpretNextInstructionFor: self. - depth := self distanceFrom: topContext to: currentContext. - (previousContext ~~ currentContext and: [previousDepth < depth]) ifTrue: [ - self logContext: currentContext]]. - result := topContext pop. - Transcript flush \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/methodProperties.json b/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/methodProperties.json deleted file mode 100644 index b03fa60..0000000 --- a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/methodProperties.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "class" : { - }, - "instance" : { - "distanceFrom:to:" : "sl 10/12/2018 19:29", - "logContext:" : "sl 10/12/2018 18:52", - "send:super:numArgs:" : "sl 10/12/2018 19:25", - "simulate:" : "sl 10/12/2018 18:55" } } diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/currentContext.st b/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/currentContext.st deleted file mode 100644 index e87e610..0000000 --- a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/currentContext.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -currentContext - - ^ currentContext \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/simulate..st b/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/simulate..st deleted file mode 100644 index 14eb1ce..0000000 --- a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/simulate..st +++ /dev/null @@ -1,13 +0,0 @@ -initialize-release -simulate: aBlock - - | topContext | - aBlock hasMethodReturn - ifTrue: [self error: 'simulation of blocks with ^ can run loose']. - topContext := thisContext. - currentContext := aBlock asContext. - currentContext pushArgs: Array new from: topContext. - [currentContext == topContext] - whileFalse: - [currentContext := currentContext interpretNextInstructionFor: self]. - result := topContext pop \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/monticello.meta/categories.st b/src/ActiveExpressions-Simulation.package/monticello.meta/categories.st deleted file mode 100644 index 5627dea..0000000 --- a/src/ActiveExpressions-Simulation.package/monticello.meta/categories.st +++ /dev/null @@ -1 +0,0 @@ -SystemOrganization addCategory: #'ActiveExpressions-Simulation'! diff --git a/src/ActiveExpressions-Simulation.package/monticello.meta/package b/src/ActiveExpressions-Simulation.package/monticello.meta/package deleted file mode 100644 index d1a7832..0000000 --- a/src/ActiveExpressions-Simulation.package/monticello.meta/package +++ /dev/null @@ -1 +0,0 @@ -(name 'ActiveExpressions-Simulation') \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/monticello.meta/version b/src/ActiveExpressions-Simulation.package/monticello.meta/version deleted file mode 100644 index d50e827..0000000 --- a/src/ActiveExpressions-Simulation.package/monticello.meta/version +++ /dev/null @@ -1 +0,0 @@ -(name 'ActiveExpressions-Simulation-stlu.3' message 'empty log message' id 'e18821e4-8753-4ca5-8775-260e2e448329' date '25 February 2019' time '1:34:49.78656 pm' author 'stlu' ancestors ((name 'ActiveExpressions-Simulation-sl.2' message 'empty log message' id '5c5661d6-b402-4384-b4d6-af84df4d8f00' date '11 October 2018' time '12:52:33.137125 pm' author 'sl' ancestors ((name 'ActiveExpressions-Simulation-sl.1' message 'empty log message' id 'a3005c4b-ad41-4b8d-82b9-27cfe19c9ad4' date '10 October 2018' time '10:39:40.320292 pm' author 'sl' ancestors () stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/.filetree b/src/ActiveExpressions-Synchronous.package/.filetree similarity index 100% rename from src/ActiveExpressions-Simulation.package/.filetree rename to src/ActiveExpressions-Synchronous.package/.filetree diff --git a/src/ActiveExpressions-Examples.package/AExpIssues.class/README.md b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/README.md similarity index 100% rename from src/ActiveExpressions-Examples.package/AExpIssues.class/README.md rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/README.md diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/blockReturnConstant..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/blockReturnConstant..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/blockReturnConstant..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/blockReturnConstant..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/blockReturnTop.st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/blockReturnTop.st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/blockReturnTop.st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/blockReturnTop.st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/callPrimitive..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/callPrimitive..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/callPrimitive..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/callPrimitive..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/directedSuperSend.numArgs..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/directedSuperSend.numArgs..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/directedSuperSend.numArgs..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/directedSuperSend.numArgs..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/doDup.st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/doDup.st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/doDup.st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/doDup.st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/doPop.st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/doPop.st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/doPop.st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/doPop.st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/jump..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/jump..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/jump..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/jump..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/jump.if..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/jump.if..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/jump.if..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/jump.if..st diff --git a/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/logContext.stream.offset..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/logContext.stream.offset..st new file mode 100644 index 0000000..649268a --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/logContext.stream.offset..st @@ -0,0 +1,8 @@ +utility +logContext: aContext stream: aStream offset: offset + + offset * 2 timesRepeat: [aStream space]. + aContext printOn: aStream. + aStream + cr; + flush \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/methodReturnConstant..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/methodReturnConstant..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/methodReturnConstant..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/methodReturnConstant..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/methodReturnReceiver.st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/methodReturnReceiver.st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/methodReturnReceiver.st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/methodReturnReceiver.st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/methodReturnTop.st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/methodReturnTop.st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/methodReturnTop.st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/methodReturnTop.st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/popIntoLiteralVariable..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/popIntoLiteralVariable..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/popIntoLiteralVariable..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/popIntoLiteralVariable..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/popIntoReceiverVariable..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/popIntoReceiverVariable..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/popIntoReceiverVariable..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/popIntoReceiverVariable..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/popIntoRemoteTemp.inVectorAt..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/popIntoRemoteTemp.inVectorAt..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/popIntoRemoteTemp.inVectorAt..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/popIntoRemoteTemp.inVectorAt..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/popIntoTemporaryVariable..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/popIntoTemporaryVariable..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/popIntoTemporaryVariable..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/popIntoTemporaryVariable..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushActiveContext.st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushActiveContext.st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushActiveContext.st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushActiveContext.st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushClosureCopyNumCopiedValues.numArgs.blockSize..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushClosureCopyNumCopiedValues.numArgs.blockSize..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushClosureCopyNumCopiedValues.numArgs.blockSize..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushClosureCopyNumCopiedValues.numArgs.blockSize..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushConsArrayWithElements..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushConsArrayWithElements..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushConsArrayWithElements..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushConsArrayWithElements..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushConstant..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushConstant..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushConstant..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushConstant..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushFullClosure.numCopied..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushFullClosure.numCopied..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushFullClosure.numCopied..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushFullClosure.numCopied..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushLiteralVariable..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushLiteralVariable..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushLiteralVariable..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushLiteralVariable..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushNewArrayOfSize..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushNewArrayOfSize..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushNewArrayOfSize..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushNewArrayOfSize..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushReceiver.st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushReceiver.st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushReceiver.st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushReceiver.st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushReceiverVariable..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushReceiverVariable..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushReceiverVariable..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushReceiverVariable..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushRemoteTemp.inVectorAt..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushRemoteTemp.inVectorAt..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushRemoteTemp.inVectorAt..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushRemoteTemp.inVectorAt..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushTemporaryVariable..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushTemporaryVariable..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/pushTemporaryVariable..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/pushTemporaryVariable..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/result.st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/result.st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/result.st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/result.st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/send.super.numArgs..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/send.super.numArgs..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/send.super.numArgs..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/send.super.numArgs..st diff --git a/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/simulate..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/simulate..st new file mode 100644 index 0000000..abe303b --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/simulate..st @@ -0,0 +1,12 @@ +simulation +simulate: aBlock + + | simulationContext | + aBlock hasMethodReturn + ifTrue: [self error: 'simulation of blocks with ^ can run loose']. "could probably be solved by guarding method returns" + simulationContext := thisContext. + currentContext := topContext := aBlock asContext. + currentContext pushArgs: Array new from: simulationContext. + [currentContext == simulationContext] whileFalse: [ + currentContext := currentContext interpretNextInstructionFor: self]. + result := simulationContext pop \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/simulate.log..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/simulate.log..st new file mode 100644 index 0000000..ea265d6 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/simulate.log..st @@ -0,0 +1,21 @@ +utility +simulate: aBlock log: aStream + + | simulationContext depth | + aBlock hasMethodReturn + ifTrue: [self error: 'simulation of blocks with ^ can run loose']. "could probably be solved by guarding method returns" + simulationContext := thisContext. + currentContext := topContext := aBlock asContext. + currentContext pushArgs: Array new from: simulationContext. + aStream nextPutAll: '#################################'; cr. + self logContext: currentContext stream: aStream offset: (depth := 0). + [currentContext == simulationContext] whileFalse: [ + | previousContext previousDepth | + previousContext := currentContext. + previousDepth := depth. + currentContext := currentContext interpretNextInstructionFor: self. + depth := currentContext depthBelow: topContext. + (previousDepth < depth and: [currentContext ~~ simulationContext]) ifTrue: [ + self logContext: currentContext stream: aStream offset: depth]]. + result := simulationContext pop. + aStream flush \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/storeIntoLiteralVariable..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/storeIntoLiteralVariable..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/storeIntoLiteralVariable..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/storeIntoLiteralVariable..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/storeIntoReceiverVariable..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/storeIntoReceiverVariable..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/storeIntoReceiverVariable..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/storeIntoReceiverVariable..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/storeIntoRemoteTemp.inVectorAt..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/storeIntoRemoteTemp.inVectorAt..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/storeIntoRemoteTemp.inVectorAt..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/storeIntoRemoteTemp.inVectorAt..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/storeIntoTemporaryVariable..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/storeIntoTemporaryVariable..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/storeIntoTemporaryVariable..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/storeIntoTemporaryVariable..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/trapIfNotInstanceOf..st b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/trapIfNotInstanceOf..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/instance/trapIfNotInstanceOf..st rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/instance/trapIfNotInstanceOf..st diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/methodProperties.json b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/methodProperties.json similarity index 92% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/methodProperties.json rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/methodProperties.json index cb179e6..a58d610 100644 --- a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/methodProperties.json +++ b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/methodProperties.json @@ -5,12 +5,12 @@ "blockReturnConstant:" : "sl 10/10/2018 16:28", "blockReturnTop" : "sl 10/10/2018 16:28", "callPrimitive:" : "sl 10/10/2018 16:31", - "currentContext" : "sl 10/10/2018 13:18", "directedSuperSend:numArgs:" : "sl 10/10/2018 16:32", "doDup" : "sl 10/10/2018 16:32", "doPop" : "sl 10/10/2018 16:32", "jump:" : "sl 10/10/2018 16:33", "jump:if:" : "sl 10/10/2018 16:33", + "logContext:stream:offset:" : "stlu 3/3/2019 23:48", "methodReturnConstant:" : "sl 10/10/2018 16:34", "methodReturnReceiver" : "sl 10/10/2018 16:34", "methodReturnTop" : "sl 10/10/2018 22:05", @@ -31,7 +31,8 @@ "pushTemporaryVariable:" : "sl 10/10/2018 16:40", "result" : "sl 10/11/2018 10:41", "send:super:numArgs:" : "sl 10/10/2018 16:41", - "simulate:" : "sl 10/11/2018 10:41", + "simulate:" : "stlu 3/4/2019 00:24", + "simulate:log:" : "stlu 3/19/2019 23:29", "storeIntoLiteralVariable:" : "sl 10/10/2018 16:41", "storeIntoReceiverVariable:" : "sl 10/10/2018 17:44", "storeIntoRemoteTemp:inVectorAt:" : "sl 10/10/2018 17:44", diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/properties.json b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/properties.json similarity index 66% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/properties.json rename to src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/properties.json index f3d92a0..8bbfcd6 100644 --- a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/properties.json +++ b/src/ActiveExpressions-Synchronous.package/AxInstructionSimulator.class/properties.json @@ -1,14 +1,15 @@ { - "category" : "ActiveExpressions-Simulation", + "category" : "ActiveExpressions-Synchronous", "classinstvars" : [ ], "classvars" : [ ], "commentStamp" : "", "instvars" : [ + "topContext", "currentContext", "result" ], - "name" : "InstructionSimulator", + "name" : "AxInstructionSimulator", "pools" : [ ], "super" : "InstructionClient", diff --git a/src/ActiveExpressions-Simulation.package/AxSimulator.class/README.md b/src/ActiveExpressions-Synchronous.package/AxLayer.class/README.md similarity index 100% rename from src/ActiveExpressions-Simulation.package/AxSimulator.class/README.md rename to src/ActiveExpressions-Synchronous.package/AxLayer.class/README.md diff --git a/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/add..st b/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/add..st new file mode 100644 index 0000000..9eb1b82 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/add..st @@ -0,0 +1,5 @@ +adding / removing +add: anActiveExpression + + anActiveExpression addLayer: self. + ^ self expressions add: anActiveExpression \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/expressions.st b/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/expressions.st new file mode 100644 index 0000000..70f0e7b --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/expressions.st @@ -0,0 +1,4 @@ +accessing +expressions + + ^ expressions ifNil: [expressions := OrderedCollection new] \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/install.st b/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/install.st new file mode 100644 index 0000000..ef971a0 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/install.st @@ -0,0 +1,5 @@ +installation +install + + super install. + self expressions do: [:exp | exp install] \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/remove.ifAbsent..st b/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/remove.ifAbsent..st new file mode 100644 index 0000000..c78d893 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/remove.ifAbsent..st @@ -0,0 +1,5 @@ +adding / removing +remove: anActiveExpression ifAbsent: aBlock + + anActiveExpression removeLayer: self. + ^ self expressions remove: anActiveExpression ifAbsent: aBlock \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/uninstall.st b/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/uninstall.st new file mode 100644 index 0000000..293c93a --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxLayer.class/instance/uninstall.st @@ -0,0 +1,5 @@ +installation +uninstall + + super uninstall. + self expressions do: [:exp | exp uninstall] \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxLayer.class/methodProperties.json b/src/ActiveExpressions-Synchronous.package/AxLayer.class/methodProperties.json new file mode 100644 index 0000000..5802dc3 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxLayer.class/methodProperties.json @@ -0,0 +1,9 @@ +{ + "class" : { + }, + "instance" : { + "add:" : "stlu 4/12/2019 22:44", + "expressions" : "stlu 4/12/2019 22:31", + "install" : "stlu 4/12/2019 22:30", + "remove:ifAbsent:" : "stlu 4/12/2019 22:44", + "uninstall" : "stlu 4/12/2019 22:30" } } diff --git a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/properties.json b/src/ActiveExpressions-Synchronous.package/AxLayer.class/properties.json similarity index 52% rename from src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/properties.json rename to src/ActiveExpressions-Synchronous.package/AxLayer.class/properties.json index 6478913..e1b3e31 100644 --- a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/properties.json +++ b/src/ActiveExpressions-Synchronous.package/AxLayer.class/properties.json @@ -1,14 +1,14 @@ { - "category" : "ActiveExpressions-Simulation", + "category" : "ActiveExpressions-Synchronous", "classinstvars" : [ ], "classvars" : [ ], "commentStamp" : "", "instvars" : [ - "depth" ], - "name" : "AxVerboseSimulator", + "expressions" ], + "name" : "AxLayer", "pools" : [ ], - "super" : "AxSimulator", + "super" : "Layer", "type" : "normal" } diff --git a/src/ActiveExpressions-Synchronous.package/AxSimulator.class/README.md b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/README.md new file mode 100644 index 0000000..d8beaae --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/README.md @@ -0,0 +1 @@ +I simulate a block to determine all variables accessed during its execution. \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/initialize.st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/initialize.st new file mode 100644 index 0000000..d6bb2fd --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/initialize.st @@ -0,0 +1,6 @@ +initialize-release +initialize + + litVarAccesses := IdentitySet new. + instVarAccesses := IdentityDictionary new. + tempVarAccesses := Set new \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/instVarAccessed.of..st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/instVarAccessed.of..st similarity index 93% rename from src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/instVarAccessed.of..st rename to src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/instVarAccessed.of..st index 788adaf..5458eec 100644 --- a/src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/instVarAccessed.of..st +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/instVarAccessed.of..st @@ -1,4 +1,4 @@ -accessing +tracking accesses instVarAccessed: offset of: receiver "Remembers inst var accesses as offsets instead of variable names to avoid building the complete list of variable names each time." (self instVarAccesses diff --git a/src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/instVarAccesses.st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/instVarAccesses.st similarity index 100% rename from src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/instVarAccesses.st rename to src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/instVarAccesses.st diff --git a/src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/litVarAccesses.st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/litVarAccesses.st similarity index 100% rename from src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/litVarAccesses.st rename to src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/litVarAccesses.st diff --git a/src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/pushLiteralVariable..st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/pushLiteralVariable..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/pushLiteralVariable..st rename to src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/pushLiteralVariable..st diff --git a/src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/pushReceiverVariable..st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/pushReceiverVariable..st similarity index 100% rename from src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/pushReceiverVariable..st rename to src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/pushReceiverVariable..st diff --git a/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/pushRemoteTemp.inVectorAt..st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/pushRemoteTemp.inVectorAt..st new file mode 100644 index 0000000..2b3bbea --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/pushRemoteTemp.inVectorAt..st @@ -0,0 +1,6 @@ +instruction decoding +pushRemoteTemp: remoteTempIndex inVectorAt: tempVectorIndex + + currentContext == topContext ifTrue: [ + self tempVarAccessed: { tempVectorIndex + 1 . remoteTempIndex + 1 }]. + ^ super pushRemoteTemp: remoteTempIndex inVectorAt: tempVectorIndex \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/pushTemporaryVariable..st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/pushTemporaryVariable..st new file mode 100644 index 0000000..e460d33 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/pushTemporaryVariable..st @@ -0,0 +1,6 @@ +instruction decoding +pushTemporaryVariable: offset + + currentContext == topContext ifTrue: [ + self tempVarAccessed: offset + 1]. + ^ super pushTemporaryVariable: offset \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/send.super.numArgs..st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/send.super.numArgs..st similarity index 76% rename from src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/send.super.numArgs..st rename to src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/send.super.numArgs..st index 156ecb5..9dfe13d 100644 --- a/src/ActiveExpressions-Simulation.package/AxSimulator.class/instance/send.super.numArgs..st +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/send.super.numArgs..st @@ -1,5 +1,5 @@ instruction decoding -send: selector super: supered numArgs: numberArguments +send: selector super: supered numArgs: numArgs "Probe for selectors which should not be simulated. Step over them. This has to be quick, so it was optimized for speed at the cost of code cleanliness." selector == #notify:instVarNamed:ofObject:changedFrom:to:inContext: ifTrue: [ 6 timesRepeat: [currentContext pop]. ^ currentContext]. @@ -7,10 +7,10 @@ send: selector super: supered numArgs: numberArguments or: [selector == #notify:tempVarNamed:changedFrom:to:inContext:]) ifTrue: [ 5 timesRepeat: [currentContext pop]. ^ currentContext]. "Probe for return fields (quick methods)" - numberArguments = 0 ifTrue: [ + numArgs = 0 ifTrue: [ | receiver nextMethod | - receiver := currentContext at: (currentContext stackPtr - numberArguments). + receiver := currentContext at: (currentContext stackPtr - numArgs). nextMethod := receiver class lookupSelector: selector. nextMethod isReturnField ifTrue: [ self instVarAccessed: nextMethod returnField of: receiver]]. - ^ super send: selector super: supered numArgs: numberArguments \ No newline at end of file + ^ super send: selector super: supered numArgs: numArgs \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/storeIntoReceiverVariable..st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/storeIntoReceiverVariable..st new file mode 100644 index 0000000..f6af2a0 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/storeIntoReceiverVariable..st @@ -0,0 +1,5 @@ +instruction decoding +storeIntoReceiverVariable: offset + + self instVarAccessed: offset of: currentContext receiver. + ^ super storeIntoReceiverVariable: offset \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/storeIntoTemporaryVariable..st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/storeIntoTemporaryVariable..st new file mode 100644 index 0000000..5353b99 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/storeIntoTemporaryVariable..st @@ -0,0 +1,6 @@ +instruction decoding +storeIntoTemporaryVariable: offset + + currentContext == topContext ifTrue: [ + self tempVarAccessed: offset + 1]. + ^ super storeIntoTemporaryVariable: offset \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/tempVarAccessed..st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/tempVarAccessed..st new file mode 100644 index 0000000..50b8f8d --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/tempVarAccessed..st @@ -0,0 +1,4 @@ +tracking accesses +tempVarAccessed: offsetOrArray + + self tempVarAccesses add: offsetOrArray \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/tempVarAccesses.st b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/tempVarAccesses.st new file mode 100644 index 0000000..2732b66 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/instance/tempVarAccesses.st @@ -0,0 +1,4 @@ +accessing +tempVarAccesses + + ^ tempVarAccesses \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/AxSimulator.class/methodProperties.json b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/methodProperties.json new file mode 100644 index 0000000..2c9f631 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/methodProperties.json @@ -0,0 +1,17 @@ +{ + "class" : { + }, + "instance" : { + "initialize" : "stlu 3/13/2019 10:56", + "instVarAccessed:of:" : "sl 2/25/2019 13:27", + "instVarAccesses" : "sl 10/10/2018 21:46", + "litVarAccesses" : "sl 10/10/2018 21:46", + "pushLiteralVariable:" : "sl 2/25/2019 12:12", + "pushReceiverVariable:" : "sl 2/25/2019 13:07", + "pushRemoteTemp:inVectorAt:" : "stlu 3/18/2019 15:57", + "pushTemporaryVariable:" : "stlu 3/18/2019 15:55", + "send:super:numArgs:" : "stlu 3/3/2019 23:14", + "storeIntoReceiverVariable:" : "stlu 3/18/2019 15:54", + "storeIntoTemporaryVariable:" : "stlu 3/18/2019 15:55", + "tempVarAccessed:" : "stlu 3/18/2019 15:56", + "tempVarAccesses" : "stlu 3/3/2019 23:19" } } diff --git a/src/ActiveExpressions-Synchronous.package/AxSimulator.class/properties.json b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/properties.json new file mode 100644 index 0000000..b9e427e --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/AxSimulator.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "ActiveExpressions-Synchronous", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "stlu 7/29/2019 14:06", + "instvars" : [ + "instVarAccesses", + "litVarAccesses", + "tempVarAccesses" ], + "name" : "AxSimulator", + "pools" : [ + ], + "super" : "AxInstructionSimulator", + "type" : "normal" } diff --git a/src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/README.md b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/README.md similarity index 100% rename from src/ActiveExpressions-Simulation.package/AxVerboseSimulator.class/README.md rename to src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/README.md diff --git a/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/addLayer..st b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/addLayer..st new file mode 100644 index 0000000..13396a5 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/addLayer..st @@ -0,0 +1,4 @@ +layers +addLayer: aLayer + + self layers add: aLayer \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/instVarNamed.ofObject.changedFrom.to.inContext..st b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/instVarNamed.ofObject.changedFrom.to.inContext..st new file mode 100644 index 0000000..70b6bbd --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/instVarNamed.ofObject.changedFrom.to.inContext..st @@ -0,0 +1,4 @@ +change notification +instVarNamed: varName ofObject: source changedFrom: oldValue to: newValue inContext: aContext + + self trackingEnabled ifTrue: [self update] \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/layers.st b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/layers.st new file mode 100644 index 0000000..31417ee --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/layers.st @@ -0,0 +1,4 @@ +accessing +layers + + ^ layers ifNil: [layers := IdentitySet new] \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/litVar.changedFrom.to.inContext..st b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/litVar.changedFrom.to.inContext..st new file mode 100644 index 0000000..56e77dc --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/litVar.changedFrom.to.inContext..st @@ -0,0 +1,4 @@ +change notification +litVar: litVarBinding changedFrom: oldValue to: newValue inContext: aContext + + self trackingEnabled ifTrue: [self update] \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/removeLayer..st b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/removeLayer..st new file mode 100644 index 0000000..c6115bd --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/removeLayer..st @@ -0,0 +1,4 @@ +layers +removeLayer: aLayer + + self layers remove: aLayer ifAbsent: [] \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/tempVarNamed.changedFrom.to.inContext..st b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/tempVarNamed.changedFrom.to.inContext..st new file mode 100644 index 0000000..9a2a1fa --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/tempVarNamed.changedFrom.to.inContext..st @@ -0,0 +1,4 @@ +change notification +tempVarNamed: varName changedFrom: oldValue to: newValue inContext: aContext + + self trackingEnabled ifTrue: [self update] \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/trackingEnabled.st b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/trackingEnabled.st new file mode 100644 index 0000000..0e2f591 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/instance/trackingEnabled.st @@ -0,0 +1,6 @@ +testing +trackingEnabled + + | activeLayers | + activeLayers := thisContext activeLayers. + ^ self layers anySatisfy: [:layer | activeLayers includes: layer] \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/methodProperties.json b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/methodProperties.json new file mode 100644 index 0000000..d4dcc40 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/methodProperties.json @@ -0,0 +1,11 @@ +{ + "class" : { + }, + "instance" : { + "addLayer:" : "stlu 7/29/2019 12:50", + "instVarNamed:ofObject:changedFrom:to:inContext:" : "stlu 7/29/2019 09:02", + "layers" : "stlu 7/29/2019 12:49", + "litVar:changedFrom:to:inContext:" : "stlu 7/29/2019 09:02", + "removeLayer:" : "stlu 7/29/2019 12:49", + "tempVarNamed:changedFrom:to:inContext:" : "stlu 7/29/2019 09:03", + "trackingEnabled" : "stlu 7/29/2019 12:51" } } diff --git a/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/properties.json b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/properties.json new file mode 100644 index 0000000..446356b --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/LayeredActiveExpression.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "ActiveExpressions-Synchronous", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "layers" ], + "name" : "LayeredActiveExpression", + "pools" : [ + ], + "super" : "SynchronousActiveExpression", + "type" : "normal" } diff --git a/src/ActiveExpressions-Simulation.package/InstructionSimulator.class/README.md b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/README.md similarity index 100% rename from src/ActiveExpressions-Simulation.package/InstructionSimulator.class/README.md rename to src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/README.md diff --git a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/dispose.st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/dispose.st similarity index 83% rename from src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/dispose.st rename to src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/dispose.st index 9d45384..0823f84 100644 --- a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/dispose.st +++ b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/dispose.st @@ -1,4 +1,4 @@ -initialize-release +installation dispose self flag: #aexp. "Should probably remove all subscriptions from VarTra" diff --git a/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/generateTempNameMap.st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/generateTempNameMap.st new file mode 100644 index 0000000..54dfaa6 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/generateTempNameMap.st @@ -0,0 +1,10 @@ +variable subscriptions +generateTempNameMap + + | blockExtentMap blockExtent tempsMap | + blockExtentMap := self monitoredBlock homeMethod startKeysToBlockExtents. + blockExtent := blockExtentMap at: self monitoredBlock startpc. + tempsMap := self monitoredBlock homeMethod blockExtentsToTempsMap. + ^ (tempsMap at: blockExtent) + collect: [:temp | (temp second) -> (temp first)] + as: Dictionary \ No newline at end of file diff --git a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/instVarNamed.ofObject.changedFrom.to.inContext..st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/instVarNamed.ofObject.changedFrom.to.inContext..st similarity index 100% rename from src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/instVarNamed.ofObject.changedFrom.to.inContext..st rename to src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/instVarNamed.ofObject.changedFrom.to.inContext..st diff --git a/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/install.st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/install.st new file mode 100644 index 0000000..4b94885 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/install.st @@ -0,0 +1,5 @@ +installation +install + + self trackCurrentDependencies. + self enable \ No newline at end of file diff --git a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/litVar.changedFrom.to.inContext..st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/litVar.changedFrom.to.inContext..st similarity index 100% rename from src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/litVar.changedFrom.to.inContext..st rename to src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/litVar.changedFrom.to.inContext..st diff --git a/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/simulateMonitoredBlock.st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/simulateMonitoredBlock.st new file mode 100644 index 0000000..0882cb6 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/simulateMonitoredBlock.st @@ -0,0 +1,8 @@ +change detection +simulateMonitoredBlock + + [^ AxSimulator new + simulate: self monitoredBlock; + yourself] + on: Error + do: [^ nil] \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/tempNameMap.st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/tempNameMap.st new file mode 100644 index 0000000..0b36b5c --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/tempNameMap.st @@ -0,0 +1,4 @@ +accessing +tempNameMap + + ^ tempNameMap ifNil: [tempNameMap := self generateTempNameMap] \ No newline at end of file diff --git a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/tempVarNamed.changedFrom.to.inContext..st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/tempVarNamed.changedFrom.to.inContext..st similarity index 100% rename from src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/tempVarNamed.changedFrom.to.inContext..st rename to src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/tempVarNamed.changedFrom.to.inContext..st diff --git a/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/trackCurrentDependencies.st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/trackCurrentDependencies.st new file mode 100644 index 0000000..397e575 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/trackCurrentDependencies.st @@ -0,0 +1,6 @@ +change detection +trackCurrentDependencies + + ^ self simulateMonitoredBlock ifNotNil: [:simulation | + self updateSubscriptions: simulation. + simulation]. \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/uninstall.st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/uninstall.st new file mode 100644 index 0000000..4ef63d2 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/uninstall.st @@ -0,0 +1,4 @@ +installation +uninstall + + \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/updateLastValue.st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/updateLastValue.st new file mode 100644 index 0000000..b79a14b --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/updateLastValue.st @@ -0,0 +1,5 @@ +change detection +updateLastValue + + self trackCurrentDependencies ifNotNil: [:simulation | + self setLastValue: simulation result] \ No newline at end of file diff --git a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/updateSubscriptions..st b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/updateSubscriptions..st similarity index 64% rename from src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/updateSubscriptions..st rename to src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/updateSubscriptions..st index 0781ccc..06655bc 100644 --- a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/instance/updateSubscriptions..st +++ b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/instance/updateSubscriptions..st @@ -1,4 +1,4 @@ -change detection +private updateSubscriptions: aSimulator aSimulator litVarAccesses do: [:binding | @@ -12,4 +12,9 @@ updateSubscriptions: aSimulator VarTra subscribe: self toInstVarNamed: (instVarNames at: offset + 1) - ofObject: object]] \ No newline at end of file + ofObject: object]]. + aSimulator tempVarAccesses do: [:tempAccess | + VarTra + subscribe: self + toTempVarNamed: (self tempNameMap at: tempAccess) + ofContext: self monitoredBlock home] \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/methodProperties.json b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/methodProperties.json new file mode 100644 index 0000000..f0a09c9 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/methodProperties.json @@ -0,0 +1,16 @@ +{ + "class" : { + }, + "instance" : { + "dispose" : "sl 10/10/2018 10:06", + "generateTempNameMap" : "stlu 3/14/2019 02:00", + "instVarNamed:ofObject:changedFrom:to:inContext:" : "stlu 7/29/2019 09:03", + "install" : "stlu 4/12/2019 22:29", + "litVar:changedFrom:to:inContext:" : "stlu 7/29/2019 09:03", + "simulateMonitoredBlock" : "stlu 4/12/2019 22:18", + "tempNameMap" : "stlu 3/14/2019 01:52", + "tempVarNamed:changedFrom:to:inContext:" : "stlu 7/29/2019 09:03", + "trackCurrentDependencies" : "stlu 4/12/2019 22:25", + "uninstall" : "stlu 4/12/2019 22:57", + "updateLastValue" : "stlu 4/12/2019 22:26", + "updateSubscriptions:" : "stlu 3/14/2019 02:06" } } diff --git a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/properties.json b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/properties.json similarity index 60% rename from src/ActiveExpressions-Core.package/VarTraActiveExpression.class/properties.json rename to src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/properties.json index 2997038..fc16014 100644 --- a/src/ActiveExpressions-Core.package/VarTraActiveExpression.class/properties.json +++ b/src/ActiveExpressions-Synchronous.package/SynchronousActiveExpression.class/properties.json @@ -1,13 +1,13 @@ { - "category" : "ActiveExpressions-Core", + "category" : "ActiveExpressions-Synchronous", "classinstvars" : [ ], "classvars" : [ ], "commentStamp" : "", "instvars" : [ - ], - "name" : "VarTraActiveExpression", + "tempNameMap" ], + "name" : "SynchronousActiveExpression", "pools" : [ ], "super" : "ActiveExpression", diff --git a/src/ActiveExpressions-Synchronous.package/monticello.meta/categories.st b/src/ActiveExpressions-Synchronous.package/monticello.meta/categories.st new file mode 100644 index 0000000..9195acd --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/monticello.meta/categories.st @@ -0,0 +1 @@ +SystemOrganization addCategory: #'ActiveExpressions-Synchronous'! diff --git a/src/ActiveExpressions-Simulation.package/monticello.meta/initializers.st b/src/ActiveExpressions-Synchronous.package/monticello.meta/initializers.st similarity index 100% rename from src/ActiveExpressions-Simulation.package/monticello.meta/initializers.st rename to src/ActiveExpressions-Synchronous.package/monticello.meta/initializers.st diff --git a/src/ActiveExpressions-Synchronous.package/monticello.meta/package b/src/ActiveExpressions-Synchronous.package/monticello.meta/package new file mode 100644 index 0000000..5b9b4fb --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/monticello.meta/package @@ -0,0 +1 @@ +(name 'ActiveExpressions-Synchronous') \ No newline at end of file diff --git a/src/ActiveExpressions-Synchronous.package/monticello.meta/version b/src/ActiveExpressions-Synchronous.package/monticello.meta/version new file mode 100644 index 0000000..c8090c6 --- /dev/null +++ b/src/ActiveExpressions-Synchronous.package/monticello.meta/version @@ -0,0 +1 @@ +(name 'ActiveExpressions-Synchronous-stlu.2' message 'empty log message' id '7e28b55e-7f7b-4b58-ba87-011fa5a613ac' date '29 July 2019' time '2:40:53.609717 pm' author 'stlu' ancestors ((name 'ActiveExpressions-Synchronous-stlu.1' message 'empty log message' id '7efc9d61-ccd7-446a-8a86-4e5ea2d6f380' date '29 July 2019' time '2:02:39.302975 pm' author 'stlu' ancestors () stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/src/ActiveExpressions-Simulation.package/properties.json b/src/ActiveExpressions-Synchronous.package/properties.json similarity index 100% rename from src/ActiveExpressions-Simulation.package/properties.json rename to src/ActiveExpressions-Synchronous.package/properties.json diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/instVar.of.changedFrom.to..st b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/instVar.of.changedFrom.to..st deleted file mode 100644 index 2221ca4..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/instVar.of.changedFrom.to..st +++ /dev/null @@ -1,4 +0,0 @@ -utilities -instVar: variableName of: aPublisher changedFrom: oldValue to: newValue - - self log add: { variableName . aPublisher . oldValue . newValue } \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/log..st b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/log..st deleted file mode 100644 index f6f034a..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/log..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -log: anObject - - log := anObject. diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/log.st b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/log.st deleted file mode 100644 index 1ed245e..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/log.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -log - - ^ log ifNil: [log := OrderedCollection new] diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/setUp.st b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/setUp.st deleted file mode 100644 index f9318a5..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/setUp.st +++ /dev/null @@ -1,6 +0,0 @@ -running -setUp - - log := nil. - publisher := AExpMockPublisher new. - subclassedPublisher := AExpMockPublisherSubclass new. \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/tearDown.st b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/tearDown.st deleted file mode 100644 index dcd6131..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/tearDown.st +++ /dev/null @@ -1,5 +0,0 @@ -running -tearDown - - subclassedPublisher unmonitorAllVariables. - publisher unmonitorAllVariables \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNoNotificationsAfterUnsubscribing.st b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNoNotificationsAfterUnsubscribing.st deleted file mode 100644 index 8f8bf9b..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNoNotificationsAfterUnsubscribing.st +++ /dev/null @@ -1,7 +0,0 @@ -tests -testNoNotificationsAfterUnsubscribing - - publisher onChangeOfInstVarNamed: 'variableOfInterest' notify: self. - publisher unsubscribe: self fromAssignmentNotificationsFor: 'variableOfInterest'. - publisher variableOfInterest: 42. - self assert: 0 equals: self log size. \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNotificationsWhenAssignmentsAreNested.st b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNotificationsWhenAssignmentsAreNested.st deleted file mode 100644 index e88614d..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNotificationsWhenAssignmentsAreNested.st +++ /dev/null @@ -1,7 +0,0 @@ -tests -testNotificationsWhenAssignmentsAreNested - - publisher onChangeOfInstVarNamed: 'variableOfInterest' notify: self. - publisher nestedAssignment: 42. - self assert: 1 equals: self log size. - publisher unsubscribe: self fromAssignmentNotificationsFor: 'variableOfInterest' \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNotificationsWhenInstanceVariableChanges.st b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNotificationsWhenInstanceVariableChanges.st deleted file mode 100644 index 629555e..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNotificationsWhenInstanceVariableChanges.st +++ /dev/null @@ -1,7 +0,0 @@ -tests -testNotificationsWhenInstanceVariableChanges - - publisher onChangeOfInstVarNamed: 'variableOfInterest' notify: self. - publisher variableOfInterest: 42. - self assert: 1 equals: self log size. - publisher unsubscribe: self fromAssignmentNotificationsFor: 'variableOfInterest' \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNotificationsWhenSuperclassInstanceVariableChanges.st b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNotificationsWhenSuperclassInstanceVariableChanges.st deleted file mode 100644 index ebfb9ab..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testNotificationsWhenSuperclassInstanceVariableChanges.st +++ /dev/null @@ -1,9 +0,0 @@ -tests -testNotificationsWhenSuperclassInstanceVariableChanges - - subclassedPublisher - onChangeOfInstVarNamed: 'variableOfInterest' - notify: self . - subclassedPublisher variableOfInterest: 42. - subclassedPublisher setVariableOfInterest: 43. - self assert: 2 equals: self log size \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testSubscriptionsExpireIfPublisherIsUnreferenced.st b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testSubscriptionsExpireIfPublisherIsUnreferenced.st deleted file mode 100644 index eb6a15b..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testSubscriptionsExpireIfPublisherIsUnreferenced.st +++ /dev/null @@ -1,9 +0,0 @@ -tests -testSubscriptionsExpireIfPublisherIsUnreferenced - - AExpMockPublisher new - onChangeOfInstVarNamed: 'variableOfInterest' - notify: self. - Smalltalk garbageCollect. - publisher class instVarMonitor removeObsoleteSubscriptions. - self assert: publisher class monitoredInstVarNames isEmpty \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testSubscriptionsExpireIfSubscriberIsUnreferenced.st b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testSubscriptionsExpireIfSubscriberIsUnreferenced.st deleted file mode 100644 index 31fe7e6..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/instance/testSubscriptionsExpireIfSubscriberIsUnreferenced.st +++ /dev/null @@ -1,9 +0,0 @@ -tests -testSubscriptionsExpireIfSubscriberIsUnreferenced - - publisher - onChangeOfInstVarNamed: 'variableOfInterest' - notify: Object new. - Smalltalk garbageCollect. - publisher class instVarMonitor removeObsoleteSubscriptions. - self assert: publisher class monitoredInstVarNames isEmpty \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/methodProperties.json b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/methodProperties.json deleted file mode 100644 index eb52e4a..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/methodProperties.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "class" : { - }, - "instance" : { - "instVar:of:changedFrom:to:" : "sl 2/5/2018 20:05", - "log" : "sl 1/9/2018 19:13", - "log:" : "sl 1/9/2018 19:11", - "setUp" : "sl 1/12/2018 10:17", - "tearDown" : "sl 1/9/2018 20:23", - "testNoNotificationsAfterUnsubscribing" : "sl 2/5/2018 19:00", - "testNotificationsWhenAssignmentsAreNested" : "sl 2/18/2018 14:46", - "testNotificationsWhenInstanceVariableChanges" : "sl 2/5/2018 19:00", - "testNotificationsWhenSuperclassInstanceVariableChanges" : "sl 2/5/2018 19:00", - "testSubscriptionsExpireIfPublisherIsUnreferenced" : "sl 2/9/2018 18:45", - "testSubscriptionsExpireIfSubscriberIsUnreferenced" : "sl 2/9/2018 18:46" } } diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/properties.json b/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/properties.json deleted file mode 100644 index ff6af3c..0000000 --- a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/properties.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "category" : "ActiveExpressions-Tests", - "classinstvars" : [ - ], - "classvars" : [ - ], - "commentStamp" : "", - "instvars" : [ - "log", - "publisher", - "subclassedPublisher" ], - "name" : "AExpInstanceVariableAssignmentMonitorTests", - "pools" : [ - ], - "super" : "TestCase", - "type" : "normal" } diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/binaryMessage.st b/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/binaryMessage.st deleted file mode 100644 index cd2ecc7..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/binaryMessage.st +++ /dev/null @@ -1,4 +0,0 @@ -methods -binaryMessage - - ^ self variableOfInterest == nil \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/keywordMessage1Arg.st b/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/keywordMessage1Arg.st deleted file mode 100644 index 4ee3ae0..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/keywordMessage1Arg.st +++ /dev/null @@ -1,4 +0,0 @@ -methods -keywordMessage1Arg - - ^ self variableOfInterest ifNil: [nil] \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/keywordMessage2Args.st b/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/keywordMessage2Args.st deleted file mode 100644 index a46efb4..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/keywordMessage2Args.st +++ /dev/null @@ -1,4 +0,0 @@ -methods -keywordMessage2Args - - ^ self variableOfInterest ifNil: [nil] ifNotNil: [:var | var] \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/keywordMessage3Args.st b/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/keywordMessage3Args.st deleted file mode 100644 index be6cd80..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/keywordMessage3Args.st +++ /dev/null @@ -1,4 +0,0 @@ -methods -keywordMessage3Args - - ^ self variableOfInterest perform: #ifNil:ifNotNil: with: [nil] with: [:var | var] \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/nestedAssignment..st b/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/nestedAssignment..st deleted file mode 100644 index 5b83b0e..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/nestedAssignment..st +++ /dev/null @@ -1,4 +0,0 @@ -methods -nestedAssignment: aValue - - otherVariable := variableOfInterest := aValue \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/otherVariable..st b/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/otherVariable..st deleted file mode 100644 index 7208521..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/otherVariable..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -otherVariable: anObject - - otherVariable := anObject. diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/otherVariable.st b/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/otherVariable.st deleted file mode 100644 index 8e6c579..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/otherVariable.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -otherVariable - - ^ otherVariable diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/unaryMessage.st b/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/unaryMessage.st deleted file mode 100644 index e33c940..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/unaryMessage.st +++ /dev/null @@ -1,4 +0,0 @@ -methods -unaryMessage - - ^ self variableOfInterest \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/variableOfInterest..st b/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/variableOfInterest..st deleted file mode 100644 index aad407d..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/variableOfInterest..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -variableOfInterest: anObject - - variableOfInterest := anObject. diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/variableOfInterest.st b/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/variableOfInterest.st deleted file mode 100644 index f69e42f..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/instance/variableOfInterest.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -variableOfInterest - - ^ variableOfInterest diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/methodProperties.json b/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/methodProperties.json deleted file mode 100644 index 1dc26c5..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/methodProperties.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "class" : { - }, - "instance" : { - "binaryMessage" : "sl 1/12/2018 09:58", - "keywordMessage1Arg" : "sl 1/12/2018 10:03", - "keywordMessage2Args" : "sl 1/12/2018 10:03", - "keywordMessage3Args" : "sl 1/12/2018 10:10", - "nestedAssignment:" : "sl 2/18/2018 14:44", - "otherVariable" : "sl 1/10/2018 19:29", - "otherVariable:" : "sl 1/10/2018 19:29", - "unaryMessage" : "sl 1/12/2018 09:57", - "variableOfInterest" : "sl 1/9/2018 19:07", - "variableOfInterest:" : "sl 1/9/2018 19:07" } } diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisherSubclass.class/instance/setVariableOfInterest..st b/src/ActiveExpressions-Tests.package/AExpMockPublisherSubclass.class/instance/setVariableOfInterest..st deleted file mode 100644 index bf536b4..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisherSubclass.class/instance/setVariableOfInterest..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -setVariableOfInterest: anObject - - variableOfInterest := anObject \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisherSubclass.class/methodProperties.json b/src/ActiveExpressions-Tests.package/AExpMockPublisherSubclass.class/methodProperties.json deleted file mode 100644 index a41cb29..0000000 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisherSubclass.class/methodProperties.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "class" : { - }, - "instance" : { - "setVariableOfInterest:" : "sl 1/9/2018 19:51" } } diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/README.md b/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/expectedFindings.st b/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/expectedFindings.st deleted file mode 100644 index 7fa9341..0000000 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/expectedFindings.st +++ /dev/null @@ -1,7 +0,0 @@ -utilities -expectedFindings - - ^ Dictionary new - at: publisher put: { 'variableOfInterest' } asSet; - at: self put: { 'publisher' } asSet; - yourself \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/setUp.st b/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/setUp.st deleted file mode 100644 index 29a3dae..0000000 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/setUp.st +++ /dev/null @@ -1,8 +0,0 @@ -running -setUp - - publisher := AExpMockPublisher new. - lastValue := 100. - value := self newValue. - callbackCount := 0. - callback := [callbackCount := callbackCount + 1] \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/testAutomaticChangePropagation.st b/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/testAutomaticChangePropagation.st deleted file mode 100644 index 175ee80..0000000 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/testAutomaticChangePropagation.st +++ /dev/null @@ -1,7 +0,0 @@ -tests -testAutomaticChangePropagation - - activeExpression := VarTraActiveExpression monitoring: [publisher variableOfInterest]. - activeExpression onChangeDo: callback. - publisher variableOfInterest: self newValue. - self assert: 1 equals: callbackCount \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/testInstVarsInMethodsWithKeywordMessagesAreFound.st b/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/testInstVarsInMethodsWithKeywordMessagesAreFound.st deleted file mode 100644 index a75c984..0000000 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/testInstVarsInMethodsWithKeywordMessagesAreFound.st +++ /dev/null @@ -1,8 +0,0 @@ -tests - simulation -testInstVarsInMethodsWithKeywordMessagesAreFound - - | foundVars | - expression := [publisher keywordMessage3Args]. - activeExpression := VarTraActiveExpression monitoring: expression. - foundVars := activeExpression instVarsToMonitor. - self assert: self expectedFindings equals: foundVars \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/testInstVarsInQuickMethodsAreFound.st b/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/testInstVarsInQuickMethodsAreFound.st deleted file mode 100644 index 75e5869..0000000 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/instance/testInstVarsInQuickMethodsAreFound.st +++ /dev/null @@ -1,8 +0,0 @@ -tests - simulation -testInstVarsInQuickMethodsAreFound - - | foundVars | - expression := [publisher variableOfInterest]. - activeExpression := VarTraActiveExpression monitoring: expression. - foundVars := activeExpression instVarsToMonitor. - self assert: self expectedFindings equals: foundVars \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/methodProperties.json b/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/methodProperties.json deleted file mode 100644 index 4596cb3..0000000 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/methodProperties.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "class" : { - }, - "instance" : { - "expectedFindings" : "sl 1/13/2018 00:05", - "setUp" : "sl 1/17/2018 17:00", - "testAutomaticChangePropagation" : "sl 10/10/2018 10:16", - "testInstVarsInMethodsWithKeywordMessagesAreFound" : "sl 10/10/2018 10:16", - "testInstVarsInQuickMethodsAreFound" : "sl 10/10/2018 10:16" } } diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/properties.json b/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/properties.json deleted file mode 100644 index ff5187d..0000000 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionChangeDetectionTests.class/properties.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "category" : "ActiveExpressions-Tests", - "classinstvars" : [ - ], - "classvars" : [ - ], - "commentStamp" : "", - "instvars" : [ - "publisher" ], - "name" : "ActiveExpressionChangeDetectionTests", - "pools" : [ - ], - "super" : "ActiveExpressionTests", - "type" : "normal" } diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/README.md b/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testInstanceCreationThroughBlockClosures.st b/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testInstanceCreationThroughBlockClosures.st deleted file mode 100644 index 00d5bc8..0000000 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testInstanceCreationThroughBlockClosures.st +++ /dev/null @@ -1,7 +0,0 @@ -tests -testInstanceCreationThroughBlockClosures - - | aexp | - aexp := expression onChangeDo: callback. - self assert: ActiveExpression equals: aexp class. - aexp dispose \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/README.md b/src/ActiveExpressions-Tests.package/AxManualTests.class/README.md similarity index 100% rename from src/ActiveExpressions-Tests.package/AExpInstanceVariableAssignmentMonitorTests.class/README.md rename to src/ActiveExpressions-Tests.package/AxManualTests.class/README.md diff --git a/src/ActiveExpressions-Tests.package/AxManualTests.class/instance/expressionType.st b/src/ActiveExpressions-Tests.package/AxManualTests.class/instance/expressionType.st new file mode 100644 index 0000000..6404ec1 --- /dev/null +++ b/src/ActiveExpressions-Tests.package/AxManualTests.class/instance/expressionType.st @@ -0,0 +1,4 @@ +expression type +expressionType + + ^ ManualActiveExpression \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AxManualTests.class/methodProperties.json b/src/ActiveExpressions-Tests.package/AxManualTests.class/methodProperties.json new file mode 100644 index 0000000..caebcae --- /dev/null +++ b/src/ActiveExpressions-Tests.package/AxManualTests.class/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "expressionType" : "stlu 7/29/2019 14:16" } } diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisherSubclass.class/properties.json b/src/ActiveExpressions-Tests.package/AxManualTests.class/properties.json similarity index 71% rename from src/ActiveExpressions-Tests.package/AExpMockPublisherSubclass.class/properties.json rename to src/ActiveExpressions-Tests.package/AxManualTests.class/properties.json index 3138205..c819bad 100644 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisherSubclass.class/properties.json +++ b/src/ActiveExpressions-Tests.package/AxManualTests.class/properties.json @@ -7,8 +7,8 @@ "commentStamp" : "", "instvars" : [ ], - "name" : "AExpMockPublisherSubclass", + "name" : "AxManualTests", "pools" : [ ], - "super" : "AExpMockPublisher", + "super" : "AxTests", "type" : "normal" } diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/README.md b/src/ActiveExpressions-Tests.package/AxSynchronousTests.class/README.md similarity index 100% rename from src/ActiveExpressions-Tests.package/AExpMockPublisher.class/README.md rename to src/ActiveExpressions-Tests.package/AxSynchronousTests.class/README.md diff --git a/src/ActiveExpressions-Tests.package/AxSynchronousTests.class/instance/expressionType.st b/src/ActiveExpressions-Tests.package/AxSynchronousTests.class/instance/expressionType.st new file mode 100644 index 0000000..60d3fbe --- /dev/null +++ b/src/ActiveExpressions-Tests.package/AxSynchronousTests.class/instance/expressionType.st @@ -0,0 +1,4 @@ +expression type +expressionType + + ^ SynchronousActiveExpression \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AxSynchronousTests.class/methodProperties.json b/src/ActiveExpressions-Tests.package/AxSynchronousTests.class/methodProperties.json new file mode 100644 index 0000000..3bcfdb3 --- /dev/null +++ b/src/ActiveExpressions-Tests.package/AxSynchronousTests.class/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "expressionType" : "stlu 7/29/2019 14:17" } } diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/properties.json b/src/ActiveExpressions-Tests.package/AxSynchronousTests.class/properties.json similarity index 63% rename from src/ActiveExpressions-Tests.package/AExpMockPublisher.class/properties.json rename to src/ActiveExpressions-Tests.package/AxSynchronousTests.class/properties.json index 378cdb4..01883dd 100644 --- a/src/ActiveExpressions-Tests.package/AExpMockPublisher.class/properties.json +++ b/src/ActiveExpressions-Tests.package/AxSynchronousTests.class/properties.json @@ -6,10 +6,9 @@ ], "commentStamp" : "", "instvars" : [ - "variableOfInterest", - "otherVariable" ], - "name" : "AExpMockPublisher", + ], + "name" : "AxSynchronousTests", "pools" : [ ], - "super" : "Object", + "super" : "AxTests", "type" : "normal" } diff --git a/src/ActiveExpressions-Tests.package/AExpMockPublisherSubclass.class/README.md b/src/ActiveExpressions-Tests.package/AxTests.class/README.md similarity index 100% rename from src/ActiveExpressions-Tests.package/AExpMockPublisherSubclass.class/README.md rename to src/ActiveExpressions-Tests.package/AxTests.class/README.md diff --git a/src/ActiveExpressions-Tests.package/AxTests.class/class/isAbstract.st b/src/ActiveExpressions-Tests.package/AxTests.class/class/isAbstract.st new file mode 100644 index 0000000..3d1a026 --- /dev/null +++ b/src/ActiveExpressions-Tests.package/AxTests.class/class/isAbstract.st @@ -0,0 +1,4 @@ +testing +isAbstract + + ^ self = AxTests \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/AxTests.class/instance/expressionType.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/expressionType.st new file mode 100644 index 0000000..c5e5c3c --- /dev/null +++ b/src/ActiveExpressions-Tests.package/AxTests.class/instance/expressionType.st @@ -0,0 +1,4 @@ +expression type +expressionType + + self subclassResponsibility \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/newValue.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/newValue.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/newValue.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/newValue.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/previousValue.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/previousValue.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/previousValue.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/previousValue.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/setUp.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/setUp.st similarity index 75% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/setUp.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/setUp.st index 1be1db5..aa5c998 100644 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/setUp.st +++ b/src/ActiveExpressions-Tests.package/AxTests.class/instance/setUp.st @@ -6,5 +6,5 @@ setUp expression := [value]. callbackCount := 0. callback := [callbackCount := callbackCount + 1]. - activeExpression := ActiveExpression monitoring: expression. + activeExpression := self expressionType on: expression. activeExpression onChangeDo: callback \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/tearDown.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/tearDown.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/tearDown.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/tearDown.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testCallbackInvocationWhenValueIdentityHasChanged.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testCallbackInvocationWhenValueIdentityHasChanged.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testCallbackInvocationWhenValueIdentityHasChanged.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testCallbackInvocationWhenValueIdentityHasChanged.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testCallbackInvocationWith1Argument.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testCallbackInvocationWith1Argument.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testCallbackInvocationWith1Argument.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testCallbackInvocationWith1Argument.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testCallbackInvocationWith2Arguments.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testCallbackInvocationWith2Arguments.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testCallbackInvocationWith2Arguments.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testCallbackInvocationWith2Arguments.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testCallbackInvocationWithMoreThan3ArgumentsFails.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testCallbackInvocationWithMoreThan3ArgumentsFails.st similarity index 57% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testCallbackInvocationWithMoreThan3ArgumentsFails.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testCallbackInvocationWithMoreThan3ArgumentsFails.st index 0a7b9cb..8346207 100644 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testCallbackInvocationWithMoreThan3ArgumentsFails.st +++ b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testCallbackInvocationWithMoreThan3ArgumentsFails.st @@ -2,5 +2,8 @@ tests - callbacks testCallbackInvocationWithMoreThan3ArgumentsFails activeExpression onChangeDo: [:one :two :three | 42]. - value := self newValue. - self should: [activeExpression update] raise: Error \ No newline at end of file + self + should: [ + value := self newValue.. + activeExpression update] + raise: Error \ No newline at end of file diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testDisable.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testDisable.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testDisable.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testDisable.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testEnable.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testEnable.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testEnable.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testEnable.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testInitializesToCurrentValue.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testInitializesToCurrentValue.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testInitializesToCurrentValue.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testInitializesToCurrentValue.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testNoCallbackInvocationWhenValueIdentityHasNotChanged.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testNoCallbackInvocationWhenValueIdentityHasNotChanged.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testNoCallbackInvocationWhenValueIdentityHasNotChanged.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testNoCallbackInvocationWhenValueIdentityHasNotChanged.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testPrintingShowsSourceOfMonitoredBlock.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testPrintingShowsSourceOfMonitoredBlock.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testPrintingShowsSourceOfMonitoredBlock.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testPrintingShowsSourceOfMonitoredBlock.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testRemembersOldValue.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testRemembersOldValue.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testRemembersOldValue.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testRemembersOldValue.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testUnregisteredCallbacksAreNotInvoked.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testUnregisteredCallbacksAreNotInvoked.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testUnregisteredCallbacksAreNotInvoked.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testUnregisteredCallbacksAreNotInvoked.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testUnregisteringAllCallbacks.st b/src/ActiveExpressions-Tests.package/AxTests.class/instance/testUnregisteringAllCallbacks.st similarity index 100% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/instance/testUnregisteringAllCallbacks.st rename to src/ActiveExpressions-Tests.package/AxTests.class/instance/testUnregisteringAllCallbacks.st diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/methodProperties.json b/src/ActiveExpressions-Tests.package/AxTests.class/methodProperties.json similarity index 80% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/methodProperties.json rename to src/ActiveExpressions-Tests.package/AxTests.class/methodProperties.json index 08a1d9c..8b71940 100644 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/methodProperties.json +++ b/src/ActiveExpressions-Tests.package/AxTests.class/methodProperties.json @@ -1,19 +1,19 @@ { "class" : { - }, + "isAbstract" : "stlu 7/29/2019 14:15" }, "instance" : { + "expressionType" : "stlu 7/29/2019 14:16", "newValue" : "sl 1/12/2018 10:18", "previousValue" : "sl 1/12/2018 10:22", - "setUp" : "sl 1/12/2018 10:18", + "setUp" : "stlu 7/29/2019 14:16", "tearDown" : "sl 2/4/2018 16:50", "testCallbackInvocationWhenValueIdentityHasChanged" : "sl 1/12/2018 10:20", "testCallbackInvocationWith1Argument" : "sl 1/12/2018 10:21", "testCallbackInvocationWith2Arguments" : "sl 1/12/2018 10:23", - "testCallbackInvocationWithMoreThan3ArgumentsFails" : "sl 1/12/2018 10:21", + "testCallbackInvocationWithMoreThan3ArgumentsFails" : "stlu 7/29/2019 14:40", "testDisable" : "sl 2/5/2018 22:10", "testEnable" : "sl 2/5/2018 22:13", "testInitializesToCurrentValue" : "sl 1/12/2018 10:19", - "testInstanceCreationThroughBlockClosures" : "sl 2/5/2018 22:11", "testNoCallbackInvocationWhenValueIdentityHasNotChanged" : "sl 12/26/2017 18:57", "testPrintingShowsSourceOfMonitoredBlock" : "sl 12/26/2017 20:56", "testRemembersOldValue" : "sl 1/12/2018 10:22", diff --git a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/properties.json b/src/ActiveExpressions-Tests.package/AxTests.class/properties.json similarity index 89% rename from src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/properties.json rename to src/ActiveExpressions-Tests.package/AxTests.class/properties.json index 2b4b69b..b4fd445 100644 --- a/src/ActiveExpressions-Tests.package/ActiveExpressionTests.class/properties.json +++ b/src/ActiveExpressions-Tests.package/AxTests.class/properties.json @@ -12,7 +12,7 @@ "callback", "expression", "lastValue" ], - "name" : "ActiveExpressionTests", + "name" : "AxTests", "pools" : [ ], "super" : "TestCase", diff --git a/src/ActiveExpressions-Tests.package/monticello.meta/version b/src/ActiveExpressions-Tests.package/monticello.meta/version index decf8d1..a5cc01c 100644 --- a/src/ActiveExpressions-Tests.package/monticello.meta/version +++ b/src/ActiveExpressions-Tests.package/monticello.meta/version @@ -1 +1 @@ -(name 'ActiveExpressions-Tests-sl.2' message 'empty log message' id '6c2cfd7d-d81b-4f5e-8075-597f7cfd5342' date '10 October 2018' time '10:37:09.92769 pm' author 'sl' ancestors ((name 'ActiveExpressions-Tests-cypress.1' message 'fabricated from a Cypress format repository' id '6a645dcf-e01d-45df-b3ff-107cf1ffc49c' date '10 October 2018' time '9:53:52.249806 am' author '' ancestors () stepChildren ())) stepChildren ()) \ No newline at end of file +(name 'ActiveExpressions-Tests-stlu.5' message 'empty log message' id 'f3c27292-165a-4a5f-bbf7-25f0502c608e' date '29 July 2019' time '2:41:02.099311 pm' author 'stlu' ancestors ((name 'ActiveExpressions-Tests-stlu.4' message 'empty log message' id '7e835d7b-807c-4b72-91f2-7014c341974b' date '29 July 2019' time '2:01:29.997509 pm' author 'stlu' ancestors ((name 'ActiveExpressions-Tests-stlu.3' message 'empty log message' id '0a7105a7-e6f4-4e2a-bc59-01c3d0194e37' date '11 March 2019' time '4:42:56.646507 pm' author 'stlu' ancestors ((name 'ActiveExpressions-Tests-sl.2' message 'empty log message' id '6c2cfd7d-d81b-4f5e-8075-597f7cfd5342' date '10 October 2018' time '10:37:09.92769 pm' author 'sl' ancestors ((name 'ActiveExpressions-Tests-cypress.1' message 'fabricated from a Cypress format repository' id '6a645dcf-e01d-45df-b3ff-107cf1ffc49c' date '10 October 2018' time '9:53:52.249806 am' author '' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file