Le 21/11/15 15:32, Ben Coman a écrit :
An auxiliary concern here this /nice/correct/ form of using self
makes it invisible to the usual "users-of" search tools. I've been
bitten by similar before. What can we do to make this use case more
visible?
If I remember correctly the completion or something like that also use
this trick.
and registers to the tools. This is a rather ugly dependency.
This is not good to me. I do not like this DNU trick because it blurs code
A pragmatic option might be to de-tune the purity of form and use...
registry register: SyntaxErrorDebugger as: #syntaxErrorDebugger
Probably this would probably additionally need a guard to ensure that
subclasses can't run this code.
I'm sure there'll be some adverse views to this suggestion, but I
wanted raise the question and learn something along the way.
cheers -ben
On Sat, Nov 21, 2015 at 5:55 PM, Nicolai Hess <[email protected]> wrote:
2015-11-21 10:43 GMT+01:00 Max Leske <[email protected]>:
On 21 Nov 2015, at 10:22, Denis Kudriashov <[email protected]> wrote:
Ok.
I just read Nicolai comment.
So question: is SyntaxErrorDebugger used anywhere? I remove it because it
uses another way how to open debugger
My quick check didn’t turn up anything. But to be sure, go and grab the
Moose development image. Maybe they use it t
The SyntaxErrorDebugger registers itself for Smalltalk tools:
registerToolsOn: registry
"Add ourselves to registry. See [Smalltalk tools]"
registry register: self as: #syntaxErrorDebugger
And this is used by MorphicUIManager syntaxErrorNotificationDefaultAction:
anException
If you fileIn some code with syntactical error, this debugger pops up and
(if if would work: issue 16961 ) you could fix that error manually.
here in some way (though I doubt it).
21 нояб. 2015 г. 10:15 AM пользователь "Max Leske" <[email protected]>
написал:
On 21 Nov 2015, at 09:34, Denis Kudriashov <[email protected]> wrote:
Slice was declined because I remove SyntaxErrorDebugger. I not found any
reference to it. And there was no instances of it. Can anybody show me where
it is used?
Are you sure? The validation says that it failed due to “subclass
responsibility not defined” (two messages of UIManager that aren’t
implemented in all of its subclasses). It doesn’t say anything abut
SyntaxErrorDebugger.
Cheers,
Max
20 нояб. 2015 г. 19:27 пользователь "Andrei Chis"
<[email protected]> написал:
Very nice. I remember when I made GTDebugger that there were way to many
ways to open the debugger. I ended up just copy-pasting things.
Would be very useful to have a small doc with what one needs to do to
replace SpecDebugger with another debugger (e.g. what are the entry points
of the debugger in the system)
Cheers,
Andrei
On Fri, Nov 20, 2015 at 6:48 PM, Denis Kudriashov <[email protected]>
wrote:
I clean and refactor all but lowSpaceWatcher.
It is in slice 17069.
In my image it is not broke stuff. So I hope it is safe change.
2015-11-20 12:18 GMT+01:00 Denis Kudriashov <[email protected]>:
Hi
I try to investigate how debugger opens and who initiates it.
I want to cleanup this logic and simplify current debugger API.
I found that basic error debugging starts with UIManager then
UIManager calls SpecDebugger, then SpecDebugger calls UIManager and again...
At the end of this chain debugger is opened by #openFullSuspendLabel: or
#openNotifierContents:label:
There are two places where opening debugger initiated differently:
- Low space watcher calls SpecDebugger class>>openInterrupt:onProcess:
- Warning default action calls SpecDebugger
class>>openContext:label:contents: (And it not uses UIManager. I guess non
interactive mode not working here).
In latest Pharo image it is only users of this methods. Is anybody
know anyone else?
I almost cleaned basic errors debugging. And I want use it for this
two cases too. But they implements very specific logic. They both contains
primitive simulation guard 19 and some kind of recursion tracking.
I understand that low space watcher requires something clever. But why
Warning not opens debugger with way Error does it?
Any suggestions?
Best regards,
Denis