[squeak-dev] bad MessageTrace regression (was: The Trunk: Morphic-mt.1652.mcz)
marcel.taeumel at hpi.de
Mon Jan 10 10:17:39 UTC 2022
Hi Chris --
Aha. Well, these TextEditor changes are obviously in no direct relationship with the MessageTrace tool. An indirection through the model instead a global call to #systemNavigation are *always* favorable since more expressive and configurable. A custom model such as MessageTrace should be able to easily provide the desired behavior.
You inbox suggestions via Morphic-cmm.1838 and 1839 are therefore not acceptable. I will try to solve this issue in MessageTrace directly.
P.S.: Your definition of "execution flow" is somewhat brittle since there are is no dynamic trace data involved. You rely on static analysis only. :-)
Am 10.01.2022 01:41:17 schrieb Chris Muller <asqueaker at gmail.com>:
I'm doing some testing in trunk and just noticed this. When selecting a message in the code pane and browsing senders, **it must always spawn a new MessageTrace** instead of mangling the to the list at the top.
The trace at the top is supposed to represent execution flow between the messages in the list, and NOT different random messages that derail the trace and make it a complete mess.
I also noticed this has been backported to 5.3.
On Mon, Apr 27, 2020 at 2:32 AM <commits at source.squeak.org [mailto:commits at source.squeak.org]> wrote:
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
==================== Summary ====================
Time: 27 April 2020, 9:31:57.493264 am
Fixes regression #browseIt in TraceMessages, too. Now all recent hick-ups with TraceMessages are gone. There are still some hooks missing such as #browseAllAccessTo:from:.
However, I think we should push down those backstops from Object to Model.
Note that I already backported this fix to Squeak 5.3.
=============== Diff against Morphic-ct.1651 ===============
Item was changed:
----- Method: TextEditor>>browseIt (in category 'menu messages') -----
"Launch a browser for the current selection, if appropriate."
Preferences alternativeBrowseIt ifTrue: [^ self browseClassFromIt].
self lineSelectAndEmptyCheck: [^ morph flash].
"First, try to show all accesses to instance or class variables."
self selectedInstanceVariable ifNotNil:
[:nameToClass | self systemNavigation
browseAllAccessesTo: nameToClass key
from: nameToClass value].
self selectedClassVariable ifNotNil:
+ [:binding | self model browseAllCallsOn: binding].
- [:binding | self systemNavigation browseAllCallsOn: binding].
"Then, either browse the class (from a binding) or all implementors of a selector."
self selectedBinding ifNotNil:
[:binding | ^ self systemNavigation browseClass: binding].
self selectedSelector ifNotNil:
+ [:selector | ^ self model browseAllImplementorsOf: selector].
- [:selector | ^ self systemNavigation browseAllImplementorsOf: selector].
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev