The Trunk: Tools-eem.1009.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Tools-eem.1009.mcz

commits-2
Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.1009.mcz

==================== Summary ====================

Name: Tools-eem.1009
Author: eem
Time: 27 October 2020, 4:13:50.404335 pm
UUID: 68ca4cb6-ce96-47f0-a039-d760321e60cb
Ancestors: Tools-tpr.1008

The debugger *must not* retain persistent references to objects, thereby preventing garbage colleciton.  This is just asking for Heisenbugs.

=============== Diff against Tools-tpr.1008 ===============

Item was changed:
  ----- Method: Debugger>>saveContextVariablesInspectorState (in category 'user interface') -----
  saveContextVariablesInspectorState
  "For the user's convenience. Save field selection and user-typed content in the context-variables inspector. See #restoreContextVariablesInspectorState."
 
  | stateToSave keyForState |
  self flag: #duplication.
  (keyForState := self keyForContextVariablesInspectorState)
  ifNil: [^ self].
  contextVariablesInspectorState
+ ifNil: [contextVariablesInspectorState := WeakIdentityKeyDictionary new].
- ifNil: [contextVariablesInspectorState := IdentityDictionary new].
  stateToSave := {
  self contextVariablesInspector selectedFieldName.
  self contextVariablesInspector contentsTyped }.
  contextVariablesInspectorState
  at: keyForState
  put: stateToSave.!

Item was changed:
  ----- Method: Debugger>>saveReceiverInspectorState (in category 'user interface') -----
  saveReceiverInspectorState
  "For the user's convenience. Save field selection and user-typed content in the receiver inspector. See #restoreReceiverInspectorState."
 
  | stateToSave keyForState |
  self flag: #duplication.
  (keyForState := self keyForReceiverInspectorState)
  ifNil: [^ self].
  receiverInspectorState
+ ifNil: [receiverInspectorState := WeakIdentityKeyDictionary new].
- ifNil: [receiverInspectorState := IdentityDictionary new].
  stateToSave := {
  self receiverInspector selectedFieldName.
  self receiverInspector contentsTyped }.
  receiverInspectorState
  at: keyForState
  put: stateToSave.!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-eem.1009.mcz

marcel.taeumel
Hi Eliot!

Nice catch! How is that preserving-inspector-state working out so far for you? You had the idea for that feature. :-)

Best,
Marcel

Am 28.10.2020 00:14:02 schrieb [hidden email] <[hidden email]>:

Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.1009.mcz

==================== Summary ====================

Name: Tools-eem.1009
Author: eem
Time: 27 October 2020, 4:13:50.404335 pm
UUID: 68ca4cb6-ce96-47f0-a039-d760321e60cb
Ancestors: Tools-tpr.1008

The debugger *must not* retain persistent references to objects, thereby preventing garbage colleciton. This is just asking for Heisenbugs.

=============== Diff against Tools-tpr.1008 ===============

Item was changed:
----- Method: Debugger>>saveContextVariablesInspectorState (in category 'user interface') -----
saveContextVariablesInspectorState
"For the user's convenience. Save field selection and user-typed content in the context-variables inspector. See #restoreContextVariablesInspectorState."

| stateToSave keyForState |
self flag: #duplication.
(keyForState := self keyForContextVariablesInspectorState)
ifNil: [^ self].
contextVariablesInspectorState
+ ifNil: [contextVariablesInspectorState := WeakIdentityKeyDictionary new].
- ifNil: [contextVariablesInspectorState := IdentityDictionary new].
stateToSave := {
self contextVariablesInspector selectedFieldName.
self contextVariablesInspector contentsTyped }.
contextVariablesInspectorState
at: keyForState
put: stateToSave.!

Item was changed:
----- Method: Debugger>>saveReceiverInspectorState (in category 'user interface') -----
saveReceiverInspectorState
"For the user's convenience. Save field selection and user-typed content in the receiver inspector. See #restoreReceiverInspectorState."

| stateToSave keyForState |
self flag: #duplication.
(keyForState := self keyForReceiverInspectorState)
ifNil: [^ self].
receiverInspectorState
+ ifNil: [receiverInspectorState := WeakIdentityKeyDictionary new].
- ifNil: [receiverInspectorState := IdentityDictionary new].
stateToSave := {
self receiverInspector selectedFieldName.
self receiverInspector contentsTyped }.
receiverInspectorState
at: keyForState
put: stateToSave.!




Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-eem.1009.mcz

Eliot Miranda-2
Hi Marcel,

On Oct 28, 2020, at 2:13 AM, Marcel Taeumel <[hidden email]> wrote:


Hi Eliot!

Nice catch! How is that preserving-inspector-state working out so far for you? You had the idea for that feature. :-)

I like the functionality, but the slow down to stepping in the debugger is painful.  Yesterday I was stepping in code in the Cogit (which has about 100 inst vars) and stepping slowed to about two sends per second.  So it is painfully slow, and on balance I want to get rid of it.  The performance issue is very very important.


Best,
Marcel

Am 28.10.2020 00:14:02 schrieb [hidden email] <[hidden email]>:

Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.1009.mcz

==================== Summary ====================

Name: Tools-eem.1009
Author: eem
Time: 27 October 2020, 4:13:50.404335 pm
UUID: 68ca4cb6-ce96-47f0-a039-d760321e60cb
Ancestors: Tools-tpr.1008

The debugger *must not* retain persistent references to objects, thereby preventing garbage colleciton. This is just asking for Heisenbugs.

=============== Diff against Tools-tpr.1008 ===============

Item was changed:
----- Method: Debugger>>saveContextVariablesInspectorState (in category 'user interface') -----
saveContextVariablesInspectorState
"For the user's convenience. Save field selection and user-typed content in the context-variables inspector. See #restoreContextVariablesInspectorState."

| stateToSave keyForState |
self flag: #duplication.
(keyForState := self keyForContextVariablesInspectorState)
ifNil: [^ self].
contextVariablesInspectorState
+ ifNil: [contextVariablesInspectorState := WeakIdentityKeyDictionary new].
- ifNil: [contextVariablesInspectorState := IdentityDictionary new].
stateToSave := {
self contextVariablesInspector selectedFieldName.
self contextVariablesInspector contentsTyped }.
contextVariablesInspectorState
at: keyForState
put: stateToSave.!

Item was changed:
----- Method: Debugger>>saveReceiverInspectorState (in category 'user interface') -----
saveReceiverInspectorState
"For the user's convenience. Save field selection and user-typed content in the receiver inspector. See #restoreReceiverInspectorState."

| stateToSave keyForState |
self flag: #duplication.
(keyForState := self keyForReceiverInspectorState)
ifNil: [^ self].
receiverInspectorState
+ ifNil: [receiverInspectorState := WeakIdentityKeyDictionary new].
- ifNil: [receiverInspectorState := IdentityDictionary new].
stateToSave := {
self receiverInspector selectedFieldName.
self receiverInspector contentsTyped }.
receiverInspectorState
at: keyForState
put: stateToSave.!