[Pharo-project] Smalllint for Traits
Hi all, as part of a thesis I have been working on, I extended Smalllint to let it check Traits and Traits specific errors. The enviroment objects and the refactoring scope browsers now handles and list classes and traits (before they just handled classes). The new refactoring scope selection is available at "refactoring scope>selection all behaviors" menu option. The smalllint framework have been extended and is available at "refactor>code critics extended". These are some of the changes: smalllint rules can now check traits and traits methods. a new rule presentation schema is available, which lets to spot the place where the error is actually located and also add extra information to the rule result (but is more difficult to define the rules in this way). For extra information about the changes and how can they be used you can refer to: http://dc.uba.ar/inv/tesis/licenciatura/2012/aizcorbe.pdf (refer to chapter 4 if you want to bypass all the conceptual background ) there was also added some rules to check Traits specific errors. The Smalllint for Traits extension is available for pharo 1.3 and is located in: http://www.squeaksource.com/TesisTraitLint the packages are organized as follows: OBLintTraitExtension.1.3 (the smalltalk environment extension to add Traits handling capabilities). TraitLint.1.3 (the Smalllint extension itself and the Traits rules implementation). TraitLintTest.1.3 (the unit tests for the Smalllint extension and the rules implementation, it is not mandatory). I hope you find this useful. cheers -- View this message in context: http://forum.world.st/Smalllint-for-Traits-tp4662559.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
Thanks We will have a look and integrate your smallLint rules. Stef On Jan 9, 2013, at 2:04 AM, aizcorbe wrote:
Hi all, as part of a thesis I have been working on, I extended Smalllint to let it check Traits and Traits specific errors.
The enviroment objects and the refactoring scope browsers now handles and list classes and traits (before they just handled classes). The new refactoring scope selection is available at "refactoring scope>selection all behaviors" menu option.
The smalllint framework have been extended and is available at "refactor>code critics extended". These are some of the changes: smalllint rules can now check traits and traits methods. a new rule presentation schema is available, which lets to spot the place where the error is actually located and also add extra information to the rule result (but is more difficult to define the rules in this way).
For extra information about the changes and how can they be used you can refer to:
http://dc.uba.ar/inv/tesis/licenciatura/2012/aizcorbe.pdf (refer to chapter 4 if you want to bypass all the conceptual background )
there was also added some rules to check Traits specific errors.
The Smalllint for Traits extension is available for pharo 1.3 and is located in:
http://www.squeaksource.com/TesisTraitLint
the packages are organized as follows:
OBLintTraitExtension.1.3 (the smalltalk environment extension to add Traits handling capabilities). TraitLint.1.3 (the Smalllint extension itself and the Traits rules implementation). TraitLintTest.1.3 (the unit tests for the Smalllint extension and the rules implementation, it is not mandatory).
I hope you find this useful. cheers
-- View this message in context: http://forum.world.st/Smalllint-for-Traits-tp4662559.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
n Wed, Jan 9, 2013 at 2:04 AM, aizcorbe <juansebastian.aizcorbe@gmail.com> wrote:
I hope you find this useful.
sure we do, thank you very much. Unfortunately, we are mainly focused on Pharo 2.0 currently. Would you mind porting your work to Pharo 2.0? I created the issue to track your work: http://code.google.com/p/pharo/issues/detail?id=7223 Best -- Damien Cassou http://damiencassou.seasidehosting.st "Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
I have taken a look to pharo 2.0 and i didn't see omnibrowser there, is it going to be kept? Anyway the available smalllint implementation can be modified to let it check traits, but without all the omnibrowser extension. Btw... there are 14 smalllint traits rules implemented, including unit tests, but in the thesis there are identified a total of 36 traits errors, just in case someone what to take a look or implement them. btw2... On my experience working with pharo and traits, i had many problems because it was usual to get errors on browsers, environments and others because they didn't handled traits properly. I think it would be nice if the environment tools didn't differenciate (whenever it makes sense) between classes and traits. In my thesis I propose the idea of behavior (since both define behavior) as a unifying entity for traits and classes. In this way, the environment tools would handle behaviors instead of just classes. cheers -- View this message in context: http://forum.world.st/Smalllint-for-Traits-tp4662559p4662687.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
On Thu, Jan 10, 2013 at 12:30 AM, aizcorbe <juansebastian.aizcorbe@gmail.com> wrote:
I have taken a look to pharo 2.0 and i didn't see omnibrowser there, is it going to be kept? Anyway the available smalllint implementation can be modified to let it check traits, but without all the omnibrowser extension. Btw... there are 14 smalllint traits rules implemented, including unit tests, but in the thesis there are identified a total of 36 traits errors, just in case someone what to take a look or implement them.
we don't plan to include omnibrowser in Pharo 2 as nobody is maintaining it and we have Nautilus now. Still, we would be interested in your rules and their integration inside Nautilus (there shouldn't be too many things to change)
btw2... On my experience working with pharo and traits, i had many problems because it was usual to get errors on browsers, environments and others because they didn't handled traits properly. I think it would be nice if the environment tools didn't differenciate (whenever it makes sense) between classes and traits. In my thesis I propose the idea of behavior (since both define behavior) as a unifying entity for traits and classes. In this way, the environment tools would handle behaviors instead of just classes.
I agree with you, a lot of work has to be done so that developers can play with traits nicely. Thank you for your work and thesism I'm looking forward to read it -- Damien Cassou http://damiencassou.seasidehosting.st "Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
On 10 January 2013 08:17, Damien Cassou <damien.cassou@gmail.com> wrote:
On Thu, Jan 10, 2013 at 12:30 AM, aizcorbe <juansebastian.aizcorbe@gmail.com> wrote:
I have taken a look to pharo 2.0 and i didn't see omnibrowser there, is it going to be kept? Anyway the available smalllint implementation can be modified to let it check traits, but without all the omnibrowser extension. Btw... there are 14 smalllint traits rules implemented, including unit tests, but in the thesis there are identified a total of 36 traits errors, just in case someone what to take a look or implement them.
we don't plan to include omnibrowser in Pharo 2 as nobody is maintaining it and we have Nautilus now. Still, we would be interested in your rules and their integration inside Nautilus (there shouldn't be too many things to change)
The lint rules ought to be in a separate package so that both OmniBrowser and Nautilus folk could use and improve the same set of rules, shouldn't they? Each could have their own package hooking the rules up to the relevant UIs, of course. frank
btw2... On my experience working with pharo and traits, i had many problems because it was usual to get errors on browsers, environments and others because they didn't handled traits properly. I think it would be nice if the environment tools didn't differenciate (whenever it makes sense) between classes and traits. In my thesis I propose the idea of behavior (since both define behavior) as a unifying entity for traits and classes. In this way, the environment tools would handle behaviors instead of just classes.
I agree with you, a lot of work has to be done so that developers can play with traits nicely.
Thank you for your work and thesism I'm looking forward to read it
-- Damien Cassou http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
We agree. In fact the problem is that trait and classes are not polymorphic and this is what the implementation of andreas ws resolving. We will have to propose a solution to this problem one of these days. Stef
btw2... On my experience working with pharo and traits, i had many problems because it was usual to get errors on browsers, environments and others because they didn't handled traits properly. I think it would be nice if the environment tools didn't differenciate (whenever it makes sense) between classes and traits. In my thesis I propose the idea of behavior (since both define behavior) as a unifying entity for traits and classes. In this way, the environment tools would handle behaviors instead of just classes.
cheers
-- View this message in context: http://forum.world.st/Smalllint-for-Traits-tp4662559p4662687.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
I just uploaded an migration of the Smalllint for Traits using Nautilus and Pharo 2.0. I added the information here: http://code.google.com/p/pharo/issues/detail?id=7223. Cheers -- View this message in context: http://forum.world.st/Smalllint-for-Traits-tp4662559p4670421.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
On Feb 18, 2013, at 5:44 AM, aizcorbe <juansebastian.aizcorbe@gmail.com> wrote:
I just uploaded an migration of the Smalllint for Traits using Nautilus and Pharo 2.0. I added the information here: http://code.google.com/p/pharo/issues/detail?id=7223.
Very good! We should have a look at this and integrate it early in 3.0 Marcus
Thanks Juan Sebastian. Did you sign the license agreement? Stef On Feb 18, 2013, at 5:44 AM, aizcorbe <juansebastian.aizcorbe@gmail.com> wrote:
I just uploaded an migration of the Smalllint for Traits using Nautilus and Pharo 2.0. I added the information here: http://code.google.com/p/pharo/issues/detail?id=7223.
Cheers
-- View this message in context: http://forum.world.st/Smalllint-for-Traits-tp4662559p4670421.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
No, i didn't sign any licence, what is this about? -- View this message in context: http://forum.world.st/Smalllint-for-Traits-tp4662559p4670573.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
participants (6)
-
aizcorbe -
Damien Cassou -
Frank Shearar -
Marcus Denker -
stephane ducasse -
Stéphane Ducasse