-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
defaults | ||
defaultType | ||
|
||
^ SynchronousActiveExpression |
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
instance creation | ||
on: aBlock | ||
|
||
| type | | ||
type := self = ActiveExpression ifTrue: [self defaultType] ifFalse: [self]. | ||
^ type basicNew | ||
setMonitoredBlock: aBlock; | ||
initialize |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
*ActiveExpressions-Core | ||
onChangeDo: aBlock | ||
|
||
^ (ActiveExpression monitoring: self) onChangeDo: aBlock | ||
^ (ActiveExpression on: self) onChangeDo: aBlock |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,4 +2,4 @@ | |
"class" : { | ||
}, | ||
"instance" : { | ||
"onChangeDo:" : "sl 1/10/2018 19:36" } } | ||
"onChangeDo:" : "stlu 7/29/2019 13:55" } } |
This file was deleted.
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 ()) | ||
(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 ()) |
This file was deleted.
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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..." |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 ()) | ||
(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 ()) |
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
utility | ||
logContext: aContext stream: aStream offset: offset | ||
|
||
offset * 2 timesRepeat: [aStream space]. | ||
aContext printOn: aStream. | ||
aStream | ||
cr; | ||
flush |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |