[squeak-dev] bad MessageTrace regression (was: The Trunk: Morphic-mt.1652.mcz)

Marcel Taeumel marcel.taeumel at hpi.de
Mon Jan 10 15:33:52 UTC 2022

Hi Chris --

I have an idea on how to fix this regression again. Stay tuned. :-)

Am 10.01.2022 11:17:39 schrieb Marcel Taeumel <marcel.taeumel at hpi.de>:
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>:
Hi Marcel,

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.

 - Chris

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:
http://source.squeak.org/trunk/Morphic-mt.1652.mcz [http://source.squeak.org/trunk/Morphic-mt.1652.mcz]

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

Name: Morphic-mt.1652
Author: mt
Time: 27 April 2020, 9:31:57.493264 am
UUID: d23bbde5-4e42-3547-960d-39994fc21f56
Ancestors: Morphic-ct.1651

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].

        morph flash!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220110/507c310b/attachment-0001.html>

More information about the Squeak-dev mailing list