From 373af0694d5ffd1c11b1b07ecdc7b6769a6b0b20 Mon Sep 17 00:00:00 2001 From: Christoph Thiede Date: Fri, 29 Apr 2022 17:53:01 +0200 Subject: [PATCH] wip tracking simulator --- .../instance/trackingFrom.argAt..st | 4 ++++ .../instance/trackingFrom.instVarAt..st | 4 ++++ .../instance/trackingFrom.tempVarAt..st | 4 ++++ .../instance/trackingReceiverFrom..st | 4 ++++ .../instance/untracking.st | 4 ++++ .../methodProperties.json | 9 ++++++++ .../ProtoObject.extension/properties.json | 2 ++ .../TrackedObject.class/README.md | 0 .../TrackedObject.class/class/for..st | 4 ++++ .../class/tracking.from.argAt..st | 5 ++++ .../class/tracking.from.instVarAt..st | 5 ++++ .../class/tracking.from.tempVarAt..st | 5 ++++ .../class/trackingReceiver.from..st | 5 ++++ .../instance/doesNotUnderstand..st | 4 ++++ .../instance/trackingFrom.argAt..st | 5 ++++ .../instance/trackingFrom.instVarAt..st | 5 ++++ .../instance/trackingFrom.tempVarAt..st | 5 ++++ .../instance/trackingReceiverFrom..st | 5 ++++ .../instance/untracking.st | 4 ++++ .../TrackedObject.class/instance/xxxcopy.st | 4 ++++ .../instance/xxxpostCopy.st | 4 ++++ .../instance/xxxshallowCopy.st | 5 ++++ .../instance/xxxtrackFrom.argAt..st | 6 +++++ .../instance/xxxtrackFrom.instVarAt..st | 6 +++++ .../instance/xxxtrackFrom.tempVarAt..st | 6 +++++ .../instance/xxxtrackReceiverFrom..st | 5 ++++ .../instance/xxxtrackedObject..st | 4 ++++ .../instance/xxxtrackedObject.st | 4 ++++ .../TrackedObject.class/methodProperties.json | 23 +++++++++++++++++++ .../TrackedObject.class/properties.json | 18 +++++++++++++++ .../TrackingSimulator.class/README.md | 0 ...xt.activateMethod.withArgs.receiver.do..st | 13 +++++++++++ ...xt.doPrimitive.method.receiver.args.do..st | 11 +++++++++ .../context.popIntoReceiverVariable.do..st | 9 ++++++++ .../context.popIntoTemporaryVariable.do..st | 7 ++++++ .../context.send.super.numArgs.do..st | 12 ++++++++++ .../context.sendSpecial.numArgs.do..st | 4 ++++ .../context.storeIntoReceiverVariable.do..st | 9 ++++++++ .../context.storeIntoTemporaryVariable.do..st | 7 ++++++ .../instance/tracking.fromArgAt.in..st | 4 ++++ .../instance/tracking.fromInstVarAt.in..st | 4 ++++ .../instance/tracking.fromTempVarAt.in..st | 4 ++++ .../instance/trackingReceiver.in..st | 4 ++++ .../methodProperties.json | 16 +++++++++++++ .../TrackingSimulator.class/properties.json | 14 +++++++++++ 45 files changed, 286 insertions(+) create mode 100644 packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.argAt..st create mode 100644 packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.instVarAt..st create mode 100644 packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.tempVarAt..st create mode 100644 packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingReceiverFrom..st create mode 100644 packages/SimulationStudio-Support.package/ProtoObject.extension/instance/untracking.st create mode 100644 packages/SimulationStudio-Support.package/ProtoObject.extension/methodProperties.json create mode 100644 packages/SimulationStudio-Support.package/ProtoObject.extension/properties.json create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/README.md create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/class/for..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.argAt..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.instVarAt..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.tempVarAt..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/class/trackingReceiver.from..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/doesNotUnderstand..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.argAt..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.instVarAt..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.tempVarAt..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingReceiverFrom..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/untracking.st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxcopy.st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxpostCopy.st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxshallowCopy.st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.argAt..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.instVarAt..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.tempVarAt..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackReceiverFrom..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackedObject..st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackedObject.st create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/methodProperties.json create mode 100644 packages/SimulationStudio-Support.package/TrackedObject.class/properties.json create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/README.md create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.activateMethod.withArgs.receiver.do..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.doPrimitive.method.receiver.args.do..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.popIntoReceiverVariable.do..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.popIntoTemporaryVariable.do..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.send.super.numArgs.do..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.sendSpecial.numArgs.do..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.storeIntoReceiverVariable.do..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.storeIntoTemporaryVariable.do..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromArgAt.in..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromInstVarAt.in..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromTempVarAt.in..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/trackingReceiver.in..st create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/methodProperties.json create mode 100644 packages/SimulationStudio-Support.package/TrackingSimulator.class/properties.json diff --git a/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.argAt..st b/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.argAt..st new file mode 100644 index 0000000..7488dd7 --- /dev/null +++ b/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.argAt..st @@ -0,0 +1,4 @@ +*SimulationStudio-Support-tracking +trackingFrom: aContext argAt: argIndex + + ^ TrackedObject tracking: self from: aContext argAt: argIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.instVarAt..st b/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.instVarAt..st new file mode 100644 index 0000000..267584a --- /dev/null +++ b/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.instVarAt..st @@ -0,0 +1,4 @@ +*SimulationStudio-Support-tracking +trackingFrom: aContext instVarAt: instVarIndex + + ^ TrackedObject tracking: self from: aContext instVarAt: instVarIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.tempVarAt..st b/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.tempVarAt..st new file mode 100644 index 0000000..4aa8ac9 --- /dev/null +++ b/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingFrom.tempVarAt..st @@ -0,0 +1,4 @@ +*SimulationStudio-Support-tracking +trackingFrom: aContext tempVarAt: tempVarIndex + + ^ TrackedObject tracking: self from: aContext tempVarAt: tempVarIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingReceiverFrom..st b/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingReceiverFrom..st new file mode 100644 index 0000000..c7f5f3d --- /dev/null +++ b/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/trackingReceiverFrom..st @@ -0,0 +1,4 @@ +*SimulationStudio-Support-tracking +trackingReceiverFrom: aContext + + ^ TrackedObject trackingReceiver: self from: aContext \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/untracking.st b/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/untracking.st new file mode 100644 index 0000000..d9a27a0 --- /dev/null +++ b/packages/SimulationStudio-Support.package/ProtoObject.extension/instance/untracking.st @@ -0,0 +1,4 @@ +*SimulationStudio-Support-tracking +untracking + + ^ self \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/ProtoObject.extension/methodProperties.json b/packages/SimulationStudio-Support.package/ProtoObject.extension/methodProperties.json new file mode 100644 index 0000000..de43410 --- /dev/null +++ b/packages/SimulationStudio-Support.package/ProtoObject.extension/methodProperties.json @@ -0,0 +1,9 @@ +{ + "class" : { + }, + "instance" : { + "trackingFrom:argAt:" : "ct 3/21/2022 22:53", + "trackingFrom:instVarAt:" : "ct 3/21/2022 22:35", + "trackingFrom:tempVarAt:" : "ct 3/21/2022 22:34", + "trackingReceiverFrom:" : "ct 3/21/2022 22:56", + "untracking" : "ct 3/21/2022 23:04" } } diff --git a/packages/SimulationStudio-Support.package/ProtoObject.extension/properties.json b/packages/SimulationStudio-Support.package/ProtoObject.extension/properties.json new file mode 100644 index 0000000..0affe29 --- /dev/null +++ b/packages/SimulationStudio-Support.package/ProtoObject.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "ProtoObject" } diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/README.md b/packages/SimulationStudio-Support.package/TrackedObject.class/README.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/class/for..st b/packages/SimulationStudio-Support.package/TrackedObject.class/class/for..st new file mode 100644 index 0000000..5581453 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/class/for..st @@ -0,0 +1,4 @@ +instance creation +for: anObject + + ^ self new xxxtrackedObject: anObject \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.argAt..st b/packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.argAt..st new file mode 100644 index 0000000..bfbe3e6 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.argAt..st @@ -0,0 +1,5 @@ +instance creation +tracking: anObject from: aContext argAt: argIndex + + ^ (self for: anObject) + xxxtrackFrom: aContext argAt: argIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.instVarAt..st b/packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.instVarAt..st new file mode 100644 index 0000000..99f456a --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.instVarAt..st @@ -0,0 +1,5 @@ +instance creation +tracking: anObject from: aContext instVarAt: tempIndex + + ^ (self for: anObject) + xxxtrackFrom: aContext instVarAt: tempIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.tempVarAt..st b/packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.tempVarAt..st new file mode 100644 index 0000000..b73d0dc --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/class/tracking.from.tempVarAt..st @@ -0,0 +1,5 @@ +instance creation +tracking: anObject from: aContext tempVarAt: tempIndex + + ^ (self for: anObject) + xxxtrackFrom: aContext tempVarAt: tempIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/class/trackingReceiver.from..st b/packages/SimulationStudio-Support.package/TrackedObject.class/class/trackingReceiver.from..st new file mode 100644 index 0000000..728137b --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/class/trackingReceiver.from..st @@ -0,0 +1,5 @@ +instance creation +trackingReceiver: anObject from: aContext + + ^ (self for: anObject) + xxxtrackReceiverFrom: aContext \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/doesNotUnderstand..st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/doesNotUnderstand..st new file mode 100644 index 0000000..cc39c60 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/doesNotUnderstand..st @@ -0,0 +1,4 @@ +dynamic forwarding +doesNotUnderstand: aMessage + + ^ aMessage sendTo: object \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.argAt..st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.argAt..st new file mode 100644 index 0000000..ce6c7ae --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.argAt..st @@ -0,0 +1,5 @@ +tracking +trackingFrom: aContext argAt: argIndex + + ^ self xxxcopy + xxxtrackFrom: aContext argAt: argIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.instVarAt..st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.instVarAt..st new file mode 100644 index 0000000..0942332 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.instVarAt..st @@ -0,0 +1,5 @@ +tracking +trackingFrom: aContext instVarAt: instVarIndex + + ^ self xxxcopy + xxxtrackFrom: aContext instVarAt: instVarIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.tempVarAt..st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.tempVarAt..st new file mode 100644 index 0000000..194b694 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingFrom.tempVarAt..st @@ -0,0 +1,5 @@ +tracking +trackingFrom: aContext tempVarAt: tempVarIndex + + ^ self xxxcopy + xxxtrackFrom: aContext tempVarAt: tempVarIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingReceiverFrom..st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingReceiverFrom..st new file mode 100644 index 0000000..e7fdb9b --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/trackingReceiverFrom..st @@ -0,0 +1,5 @@ +tracking +trackingReceiverFrom: aContext + + ^ self xxxcopy + xxxtrackReceiverFrom: aContext \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/untracking.st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/untracking.st new file mode 100644 index 0000000..a292127 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/untracking.st @@ -0,0 +1,4 @@ +accessing +untracking + + ^ object \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxcopy.st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxcopy.st new file mode 100644 index 0000000..c4e70ce --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxcopy.st @@ -0,0 +1,4 @@ +copying +xxxcopy + + ^ self xxxshallowCopy xxxpostCopy \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxpostCopy.st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxpostCopy.st new file mode 100644 index 0000000..e942e4b --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxpostCopy.st @@ -0,0 +1,4 @@ +copying +xxxpostCopy + + tempVars := tempVars copy. \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxshallowCopy.st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxshallowCopy.st new file mode 100644 index 0000000..2b3ba43 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxshallowCopy.st @@ -0,0 +1,5 @@ +copying +xxxshallowCopy + + + ^ Error signal: 'primitive failed' \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.argAt..st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.argAt..st new file mode 100644 index 0000000..459eb4f --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.argAt..st @@ -0,0 +1,6 @@ +accessing +xxxtrackFrom: aContext argAt: argIndex + + ((args ifNil: [args := IdentityDictionary new]) + at: aContext ifAbsentPut: [Set new]) + add: argIndex. \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.instVarAt..st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.instVarAt..st new file mode 100644 index 0000000..6525b76 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.instVarAt..st @@ -0,0 +1,6 @@ +accessing +xxxtrackFrom: aContext instVarAt: instVarIndex + + ((instVars ifNil: [instVars := IdentityDictionary new]) + at: aContext ifAbsentPut: [Set new]) + add: instVarIndex. \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.tempVarAt..st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.tempVarAt..st new file mode 100644 index 0000000..e935a07 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackFrom.tempVarAt..st @@ -0,0 +1,6 @@ +accessing +xxxtrackFrom: aContext tempVarAt: tempVarIndex + + ((tempVars ifNil: [tempVars := IdentityDictionary new]) + at: aContext ifAbsentPut: [Set new]) + add: tempVarIndex. \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackReceiverFrom..st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackReceiverFrom..st new file mode 100644 index 0000000..037c76b --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackReceiverFrom..st @@ -0,0 +1,5 @@ +accessing +xxxtrackReceiverFrom: aContext + + (receivers ifNil: [receivers := IdentitySet new]) + add: aContext. \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackedObject..st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackedObject..st new file mode 100644 index 0000000..3e4c664 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackedObject..st @@ -0,0 +1,4 @@ +accessing +xxxtrackedObject: anObject + + object := anObject. \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackedObject.st b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackedObject.st new file mode 100644 index 0000000..b748d79 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/instance/xxxtrackedObject.st @@ -0,0 +1,4 @@ +accessing +xxxtrackedObject + + ^ object \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/methodProperties.json b/packages/SimulationStudio-Support.package/TrackedObject.class/methodProperties.json new file mode 100644 index 0000000..cf07a97 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/methodProperties.json @@ -0,0 +1,23 @@ +{ + "class" : { + "for:" : "ct 3/21/2022 22:24", + "tracking:from:argAt:" : "ct 3/21/2022 22:54", + "tracking:from:instVarAt:" : "ct 3/21/2022 22:33", + "tracking:from:tempVarAt:" : "ct 3/21/2022 22:26", + "trackingReceiver:from:" : "ct 3/21/2022 22:57" }, + "instance" : { + "doesNotUnderstand:" : "ct 3/21/2022 22:26", + "trackingFrom:argAt:" : "ct 3/21/2022 22:53", + "trackingFrom:instVarAt:" : "ct 3/21/2022 22:35", + "trackingFrom:tempVarAt:" : "ct 3/21/2022 22:34", + "trackingReceiverFrom:" : "ct 3/21/2022 22:55", + "untracking" : "ct 3/21/2022 23:04", + "xxxcopy" : "ct 3/21/2022 22:28", + "xxxpostCopy" : "ct 3/21/2022 22:29", + "xxxshallowCopy" : "ct 3/21/2022 22:28", + "xxxtrackFrom:argAt:" : "ct 3/21/2022 22:53", + "xxxtrackFrom:instVarAt:" : "ct 3/21/2022 22:36", + "xxxtrackFrom:tempVarAt:" : "ct 3/21/2022 22:35", + "xxxtrackReceiverFrom:" : "ct 3/21/2022 22:56", + "xxxtrackedObject" : "ct 3/21/2022 22:24", + "xxxtrackedObject:" : "ct 3/21/2022 22:25" } } diff --git a/packages/SimulationStudio-Support.package/TrackedObject.class/properties.json b/packages/SimulationStudio-Support.package/TrackedObject.class/properties.json new file mode 100644 index 0000000..a901bd0 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackedObject.class/properties.json @@ -0,0 +1,18 @@ +{ + "category" : "SimulationStudio-Support", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "object", + "tempVars", + "instVars", + "args", + "receivers" ], + "name" : "TrackedObject", + "pools" : [ + ], + "super" : "ProtoObject", + "type" : "normal" } diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/README.md b/packages/SimulationStudio-Support.package/TrackingSimulator.class/README.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.activateMethod.withArgs.receiver.do..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.activateMethod.withArgs.receiver.do..st new file mode 100644 index 0000000..0bb7c14 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.activateMethod.withArgs.receiver.do..st @@ -0,0 +1,13 @@ +controlling +context: aContext activateMethod: aCompiledMethod withArgs: arguments receiver: receiver do: aBlock + + | newContext | + newContext := super context: aContext activateMethod: aCompiledMethod withArgs: arguments receiver: receiver do: aBlock. + + newContext arguments withIndexDo: [:arg :index | + newContext at: index put: + (self tracking: arg fromArgAt: index in: newContext)]. + "newContext receiver: + (self trackingReceiver: newContext receiver in: newContext)." + + ^ newContext \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.doPrimitive.method.receiver.args.do..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.doPrimitive.method.receiver.args.do..st new file mode 100644 index 0000000..83bc5f8 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.doPrimitive.method.receiver.args.do..st @@ -0,0 +1,11 @@ +controlling +context: aContext doPrimitive: primitiveIndex method: aCompiledMethod receiver: receiver args: arguments do: aBlock + + self flag: #todo. "Do this only for non-simulated prims!" + ^ super + context: aContext + doPrimitive: primitiveIndex + method: aCompiledMethod + receiver: receiver untracking + args: (arguments collect: [:argument | argument untracking]) + do: aBlock \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.popIntoReceiverVariable.do..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.popIntoReceiverVariable.do..st new file mode 100644 index 0000000..7c10f34 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.popIntoReceiverVariable.do..st @@ -0,0 +1,9 @@ +instruction processing +context: aContext popIntoReceiverVariable: offset do: aBlock + + | top result | + top := self tracking: aContext pop fromInstVarAt: offset + 1 in: aContext. + result := aContext simulatedObject: aContext receiver instVarAt: offset + 1 put: top. + ^ (aContext object: result eqeq: top) + ifTrue: [aContext] + ifFalse: [result] \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.popIntoTemporaryVariable.do..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.popIntoTemporaryVariable.do..st new file mode 100644 index 0000000..9f5ecfe --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.popIntoTemporaryVariable.do..st @@ -0,0 +1,7 @@ +instruction processing +context: aContext popIntoTemporaryVariable: offset do: aBlock + + ^ aContext + at: offset + 1 put: + (self tracking: aContext pop fromTempVarAt: offset + 1 in: aContext); + yourself \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.send.super.numArgs.do..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.send.super.numArgs.do..st new file mode 100644 index 0000000..23a79c0 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.send.super.numArgs.do..st @@ -0,0 +1,12 @@ +controlling +context: aContext send: selector super: superFlag numArgs: numArgs do: aBlock + + "0"numArgs to: numArgs do: [:i | + aContext at: aContext stackPtr - i put: + (aContext at: aContext stackPtr - i) untracking]. + ^ super + context: aContext + send: selector + super: superFlag + numArgs: numArgs + do: aBlock \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.sendSpecial.numArgs.do..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.sendSpecial.numArgs.do..st new file mode 100644 index 0000000..b5fbf14 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.sendSpecial.numArgs.do..st @@ -0,0 +1,4 @@ +controlling +context: aContext sendSpecial: selector numArgs: numArgs do: aBlock + + ^ aContext send: selector super: false numArgs: numArgs \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.storeIntoReceiverVariable.do..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.storeIntoReceiverVariable.do..st new file mode 100644 index 0000000..b13e9a7 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.storeIntoReceiverVariable.do..st @@ -0,0 +1,9 @@ +instruction processing +context: aContext storeIntoReceiverVariable: offset do: aBlock + + | top result | + top := self tracking: aContext top fromInstVarAt: offset + 1 in: aContext. + result := aContext simulatedObject: aContext receiver instVarAt: offset + 1 put: top. + ^ (aContext object: result eqeq: top) + ifTrue: [aContext] + ifFalse: [result] \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.storeIntoTemporaryVariable.do..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.storeIntoTemporaryVariable.do..st new file mode 100644 index 0000000..f05d784 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/context.storeIntoTemporaryVariable.do..st @@ -0,0 +1,7 @@ +instruction processing +context: aContext storeIntoTemporaryVariable: offset do: aBlock + + ^ aContext + at: offset + 1 put: + (self tracking: aContext top fromTempVarAt: offset + 1 in: aContext); + yourself \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromArgAt.in..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromArgAt.in..st new file mode 100644 index 0000000..8fc1974 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromArgAt.in..st @@ -0,0 +1,4 @@ +private +tracking: anObject fromArgAt: argIndex in: aContext + + ^ anObject trackingFrom: aContext argAt: argIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromInstVarAt.in..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromInstVarAt.in..st new file mode 100644 index 0000000..5522cc3 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromInstVarAt.in..st @@ -0,0 +1,4 @@ +private +tracking: anObject fromInstVarAt: instVarIndex in: aContext + + ^ anObject trackingFrom: aContext instVarAt: instVarIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromTempVarAt.in..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromTempVarAt.in..st new file mode 100644 index 0000000..0074c06 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/tracking.fromTempVarAt.in..st @@ -0,0 +1,4 @@ +private +tracking: anObject fromTempVarAt: tempVarIndex in: aContext + + ^ anObject trackingFrom: aContext tempVarAt: tempVarIndex \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/trackingReceiver.in..st b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/trackingReceiver.in..st new file mode 100644 index 0000000..5bdfa58 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/instance/trackingReceiver.in..st @@ -0,0 +1,4 @@ +private +trackingReceiver: anObject in: aContext + + ^ anObject trackingReceiverFrom: aContext \ No newline at end of file diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/methodProperties.json b/packages/SimulationStudio-Support.package/TrackingSimulator.class/methodProperties.json new file mode 100644 index 0000000..ca61b54 --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/methodProperties.json @@ -0,0 +1,16 @@ +{ + "class" : { + }, + "instance" : { + "context:activateMethod:withArgs:receiver:do:" : "ct 3/21/2022 23:08", + "context:doPrimitive:method:receiver:args:do:" : "ct 3/21/2022 23:14", + "context:popIntoReceiverVariable:do:" : "ct 3/21/2022 22:46", + "context:popIntoTemporaryVariable:do:" : "ct 3/21/2022 22:46", + "context:send:super:numArgs:do:" : "ct 3/21/2022 23:29", + "context:sendSpecial:numArgs:do:" : "ct 3/21/2022 23:24", + "context:storeIntoReceiverVariable:do:" : "ct 3/21/2022 22:41", + "context:storeIntoTemporaryVariable:do:" : "ct 3/21/2022 22:43", + "tracking:fromArgAt:in:" : "ct 3/21/2022 22:59", + "tracking:fromInstVarAt:in:" : "ct 3/21/2022 22:35", + "tracking:fromTempVarAt:in:" : "ct 3/21/2022 22:34", + "trackingReceiver:in:" : "ct 3/21/2022 22:55" } } diff --git a/packages/SimulationStudio-Support.package/TrackingSimulator.class/properties.json b/packages/SimulationStudio-Support.package/TrackingSimulator.class/properties.json new file mode 100644 index 0000000..f939a0c --- /dev/null +++ b/packages/SimulationStudio-Support.package/TrackingSimulator.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "SimulationStudio-Support", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "TrackingSimulator", + "pools" : [ + ], + "super" : "Simulator", + "type" : "normal" }