[Pharo5] Semantic Warnings as icons in the editor
Hi, One result of Fridayâs Pharo Sprint in Chile: Use the nice icons of the new text editor to display some of the semantic errors nicely (instead of breaking flow with a intrusive dialog): This was done by Johan based on the prototype Miguel did in September: 1) unused temps: (the âdrag the crosshairâr is an artefact of the snapshot tool) 2) temps used that are not initialised: In a next step, we need to integrate that with the QA tool⦠no need to have this reported twice. What is nice is that this simplified the Compiler: instead of having an Exception and raising it, we now just annotate the AST: unusedVariable: variableNode variableNode propertyAt: #semanticWarning put: 'unused variableâ (this is very simple for now, with a node just being able to have one kind of semanticWarning). SemanticWarningIconStyler is what adds the icon. It has 4 methods with one line each. Marcus
Very nice! Doru
On Nov 28, 2015, at 11:01 PM, Marcus Denker <marcus.denker@inria.fr> wrote:
Hi,
One result of Fridayâs Pharo Sprint in Chile: Use the nice icons of the new text editor to display some of the semantic errors nicely (instead of breaking flow with a intrusive dialog):
This was done by Johan based on the prototype Miguel did in September:
1) unused temps:
<unused.png>
(the âdrag the crosshairâr is an artefact of the snapshot tool)
2) temps used that are not initialised:
<uninit.png>
In a next step, we need to integrate that with the QA tool⦠no need to have this reported twice.
What is nice is that this simplified the Compiler: instead of having an Exception and raising it, we now just annotate the AST:
unusedVariable: variableNode
variableNode propertyAt: #semanticWarning put: 'unused variableâ
(this is very simple for now, with a node just being able to have one kind of semanticWarning).
SemanticWarningIconStyler is what adds the icon. It has 4 methods with one line each.
Marcus
-- www.tudorgirba.com "Value is always contextual."
This is really cool ! :) One more step to get a nice IDE! Thank you for your efforts :) On Saturday, November 28, 2015, Marcus Denker <marcus.denker@inria.fr> wrote:
Hi,
One result of Fridayâs Pharo Sprint in Chile: Use the nice icons of the new text editor to display some of the semantic errors nicely (instead of breaking flow with a intrusive dialog):
This was done by Johan based on the prototype Miguel did in September:
1) unused temps:
(the âdrag the crosshairâr is an artefact of the snapshot tool)
2) temps used that are not initialised:
In a next step, we need to integrate that with the QA tool⦠no need to have this reported twice.
What is nice is that this simplified the Compiler: instead of having an Exception and raising it, we now just annotate the AST:
unusedVariable: variableNode
variableNode propertyAt: #semanticWarning put: 'unused variableâ
(this is very simple for now, with a node just being able to have one kind of semanticWarning).
SemanticWarningIconStyler is what adds the icon. It has 4 methods with one line each.
Marcus
-- Cheers Cyril Ferlicot
And now the question for the monday morning development effort is: what more semantic warnings of the compiler can we reveal like this? :-)
On Nov 28, 2015, at 19:06, Cyril Ferlicot <cyril.ferlicot@gmail.com> wrote:
This is really cool ! :) One more step to get a nice IDE! Thank you for your efforts :)
On Saturday, November 28, 2015, Marcus Denker <marcus.denker@inria.fr <mailto:marcus.denker@inria.fr>> wrote: Hi,
One result of Fridayâs Pharo Sprint in Chile: Use the nice icons of the new text editor to display some of the semantic errors nicely (instead of breaking flow with a intrusive dialog):
This was done by Johan based on the prototype Miguel did in September:
1) unused temps:
<unused.png>
(the âdrag the crosshairâr is an artefact of the snapshot tool)
2) temps used that are not initialised:
<uninit.png>
In a next step, we need to integrate that with the QA tool⦠no need to have this reported twice.
What is nice is that this simplified the Compiler: instead of having an Exception and raising it, we now just annotate the AST:
unusedVariable: variableNode
variableNode propertyAt: #semanticWarning put: 'unused variableâ
(this is very simple for now, with a node just being able to have one kind of semanticWarning).
SemanticWarningIconStyler is what adds the icon. It has 4 methods with one line each.
Marcus
-- Cheers Cyril Ferlicot
---> Save our in-boxes! http://emailcharter.org <--- Johan Fabry - http://pleiad.cl/~jfabry PLEIAD and RyCh labs - Computer Science Department (DCC) - University of Chile
It's nice, but I like the Compiler to be pedantic in such cases and manifest itself BEFORE accepting the method. One thing is suspicious patterns, another is obviously wrong code. Can't we have graduated responses? 2015-11-29 0:52 GMT+01:00 Johan Fabry <jfabry@dcc.uchile.cl>:
And now the question for the monday morning development effort is: what more semantic warnings of the compiler can we reveal like this? :-)
On Nov 28, 2015, at 19:06, Cyril Ferlicot <cyril.ferlicot@gmail.com> wrote:
This is really cool ! :) One more step to get a nice IDE! Thank you for your efforts :)
On Saturday, November 28, 2015, Marcus Denker <marcus.denker@inria.fr> wrote:
Hi,
One result of Fridayâs Pharo Sprint in Chile: Use the nice icons of the new text editor to display some of the semantic errors nicely (instead of breaking flow with a intrusive dialog):
This was done by Johan based on the prototype Miguel did in September:
1) unused temps:
<unused.png>
(the âdrag the crosshairâr is an artefact of the snapshot tool)
2) temps used that are not initialised:
<uninit.png>
In a next step, we need to integrate that with the QA tool⦠no need to have this reported twice.
What is nice is that this simplified the Compiler: instead of having an Exception and raising it, we now just annotate the AST:
unusedVariable: variableNode
variableNode propertyAt: #semanticWarning put: 'unused variableâ
(this is very simple for now, with a node just being able to have one kind of semanticWarning).
SemanticWarningIconStyler is what adds the icon. It has 4 methods with one line each.
Marcus
-- Cheers Cyril Ferlicot
---> Save our in-boxes! http://emailcharter.org <---
Johan Fabry - http://pleiad.cl/~jfabry PLEIAD and RyCh labs - Computer Science Department (DCC) - University of Chile
Le 29/11/2015 14:14, Nicolas Cellier a écrit :
It's nice, but I like the Compiler to be pedantic in such cases and manifest itself BEFORE accepting the method. One thing is suspicious patterns, another is obviously wrong code. Can't we have graduated responses?
The problem is that certain semantic warnings were false positives, as the recursive block definition. A := [ ... A value ]. Thierry
2015-11-29 0:52 GMT+01:00 Johan Fabry <jfabry@dcc.uchile.cl <mailto:jfabry@dcc.uchile.cl>>:
And now the question for the monday morning development effort is: what more semantic warnings of the compiler can we reveal like this? :-)
On Nov 28, 2015, at 19:06, Cyril Ferlicot <cyril.ferlicot@gmail.com <mailto:cyril.ferlicot@gmail.com>> wrote:
This is really cool ! :) One more step to get a nice IDE! Thank you for your efforts :)
On Saturday, November 28, 2015, Marcus Denker <marcus.denker@inria.fr <mailto:marcus.denker@inria.fr>> wrote:
Hi,
One result of Fridayâs Pharo Sprint in Chile: Use the nice icons of the new text editor to display some of the semantic errors nicely (instead of breaking flow with a intrusive dialog):
This was done by Johan based on the prototype Miguel did in September:
1) unused temps:
<unused.png>
(the âdrag the crosshairâr is an artefact of the snapshot tool)
2) temps used that are not initialised:
<uninit.png>
In a next step, we need to integrate that with the QA tool⦠no need to have this reported twice.
What is nice is that this simplified the Compiler: instead of having an Exception and raising it, we now just annotate the AST:
unusedVariable: variableNode
variableNode propertyAt: #semanticWarning put: 'unused variableâ
(this is very simple for now, with a node just being able to have one kind of semanticWarning).
SemanticWarningIconStyler is what adds the icon. It has 4 methods with one line each.
Marcus
-- Cheers Cyril Ferlicot
---> Save our in-boxes! http://emailcharter.org <---
Johan Fabry - http://pleiad.cl/~jfabry PLEIAD and RyCh labs - Computer Science Department (DCC) - University of Chile
On Nov 29, 2015, at 10:21, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Le 29/11/2015 14:14, Nicolas Cellier a écrit :
It's nice, but I like the Compiler to be pedantic in such cases and manifest itself BEFORE accepting the method. One thing is suspicious patterns, another is obviously wrong code. Can't we have graduated responses?
The problem is that certain semantic warnings were false positives, as the recursive block definition.
A := [ ... A value ].
Indeed, this warning happens to me from time to time (I tend to use blocks as lambdas in some cases) and it is *extremely* annoying to have to close the warning window every time. I think I will address that tomorrow ⦠---> Save our in-boxes! http://emailcharter.org <--- Johan Fabry - http://pleiad.cl/~jfabry PLEIAD and RyCh labs - Computer Science Department (DCC) - University of Chile
Oh, the rate of false positive is so low in this case, less than 1 out of 1000 I guess... Here is a super twisty workaround (I don't really recommend it, but for the fun) A := [:a | ... a value: a]. self doSomethingLike: [A value: A]. 2015-11-29 16:37 GMT+01:00 Johan Fabry <jfabry@dcc.uchile.cl>:
On Nov 29, 2015, at 10:21, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Le 29/11/2015 14:14, Nicolas Cellier a écrit :
It's nice, but I like the Compiler to be pedantic in such cases and manifest itself BEFORE accepting the method. One thing is suspicious patterns, another is obviously wrong code. Can't we have graduated responses?
The problem is that certain semantic warnings were false positives, as the recursive block definition.
A := [ ... A value ].
Indeed, this warning happens to me from time to time (I tend to use blocks as lambdas in some cases) and it is *extremely* annoying to have to close the warning window every time. I think I will address that tomorrow â¦
---> Save our in-boxes! http://emailcharter.org <---
Johan Fabry - http://pleiad.cl/~jfabry PLEIAD and RyCh labs - Computer Science Department (DCC) - University of Chile
participants (6)
-
Cyril Ferlicot -
Johan Fabry -
Marcus Denker -
Nicolas Cellier -
Thierry Goubier -
Tudor Girba