Hi
the methodFInder hard codes the methods that should not be executed. Now with pragma we should be able to have a fully dynamic method finder where nothing is hardcoded. If somebody wants to give a try it would be great because MF is a cool tool. Now too static. Stef _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Sun, Jun 14, 2009 at 5:59 PM, Stéphane Ducasse <[hidden email]> wrote: Hi I don't know what Pragma is, but Algernon seems VERY good from my point of view. I used it a lot in Squeak and now I really miss it on Pharo. Algernon authors won't port it to Pharo (I asked them). Perhaps when Pharo 1.0 is released I can spend some time to make it work.
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On 16.06.2009, at 19:12, Mariano Martinez Peck wrote: > > > On Sun, Jun 14, 2009 at 5:59 PM, Stéphane Ducasse <[hidden email] > > wrote: > Hi > > the methodFInder hard codes the methods that should not be executed. > Now with pragma we should be able to have a fully dynamic method > finder where nothing is hardcoded. > If somebody wants to give a try it would be great because MF is a cool > tool. Now too static. > > I don't know what Pragma is, but Algernon seems VERY good from my > point of view. I used it a lot in Squeak and now I really miss it on > Pharo. Algernon authors won't port it to Pharo (I asked them). > Perhaps when Pharo 1.0 is released I can spend some time to make it > work. > Marcus -- Marcus Denker - http://marcusdenker.de PLEIAD Lab - Computer Science Department (DCC) - University of Chile _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Tue, Jun 16, 2009 at 8:16 PM, Marcus Denker <[hidden email]> wrote:
Its really amazing. You can give it a try. Just download latest squeak-dev from Damien and try it :) I copy paste what squeaksource says about Algernon: Algernon is a productivity tool for Squeak programmers; your personal assistant for Squeak. Algernon aims to make programming in Squeak faster and more keyboard centric. It provides lightning quick access to any class, method, morph, or global variable, and even gives you a quick way to evaluate Smalltalk expressions. Press a system-wide hotkey to bring up the text box (ctrl-space by default). Start typing a class name, a morph's name, a category, or a global variable and a menu of matching items will show up and filter down as you type. Select an item from the list by navigating with the up/down arrows and hitting return. Algernon will perform a different action depending on the type of the item selected. For instance, if you selected a class or category, it will open it in a browser. If you selected a morph, a new instance of the morph will open. If you selected a global variable, an inspector will open. You can also perform actions other than the default by pressing tab and navigating a list of possible actions. Algernon also lets you drill into categories and classes. Press the right arrow key when a class is selected and you will be presented with a list of methods in that class, which you can then filter down by typing. Similarly, press the right arrow key when a category is selected and you will be presented with a list of its classes. Press the left arrow key at any point to go back to global searching. Algernon also has the capability to evaluate any one line Smalltalk expression. In this way Algernon can act as a mini workspace. Just bring up Algernon and type = and you will enter the expression mode. Type your expression (e.g., 3+5) and hit return to print the result on the Transcript. You can see a list of other actions by pressing the tab key. Algernon is also intelligent (it was named this way for a reason!). It will learn which items you open most often and will sort those higher in the list each time you use them. It will even learn which actions you like to associate with each item. Enjoy using Algernon, and we hope you love it as much as we do!
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Marcus Denker-3
a quicksilver for Squeak
>>> I don't know what Pragma is, but Algernon seems VERY good from my >> point of view. I used it a lot in Squeak and now I really miss it on >> Pharo. Algernon authors won't port it to Pharo (I asked them). :) Wonderful. >> Perhaps when Pharo 1.0 is released I can spend some time to make it >> work. >> > What is Algernon? > > Marcus > > -- > Marcus Denker - http://marcusdenker.de > PLEIAD Lab - Computer Science Department (DCC) - University of Chile > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In short, Algernon is like spotligth for squeak :)
I use it a LOT. So, I will port it to pharo as soon as I can find a little time. Said so, I need to advice: algernon and method finder are very diferent tools (I use both) Cheers, Esteban On 2009-06-17 07:15:17 -0300, Stéphane Ducasse <[hidden email]> said: > a quicksilver for Squeak > >>>> I don't know what Pragma is, but Algernon seems VERY good from my >>> point of view. I used it a lot in Squeak and now I really miss it on >>> Pharo. Algernon authors won't port it to Pharo (I asked them). > > :) > Wonderful. > >>> Perhaps when Pharo 1.0 is released I can spend some time to make it >>> work. >>> >> What is Algernon? >> >> Marcus >> >> -- >> Marcus Denker - http://marcusdenker.de >> PLEIAD Lab - Computer Science Department (DCC) - University of Chile >> >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Stéphane Ducasse
> a quicksilver for Squeak Exactly right. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
where can i find Pragma? do you have a link? because i couldnt find it. thanks On Wed, Jun 17, 2009 at 4:36 PM, Brian Brown <[hidden email]> wrote:
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On 17.06.2009, at 16:16, Bernardo Ezequiel Contreras wrote: > > where can i find Pragma? do you have a link? > because i couldnt find it. > Pragma is a class. Can be found in Squeak 3.9 and Pharo, it was introduced to Smalltalk in VisualWorks, I think, and brought to Squeak by Lukas in 3.9 (put on top of a property interface for methods inspired by Tweak). The idea is the following: In Smalltalk, there is a special syntax for Primitives: + aNumber <primitive: 1> ^ super + aNumber Why not provide a more general concept where we can use the <selector: arg> syntax to put meta-annotations in methods? And that's what pragmas are. (Conversely, in Squeak 3.9 and Pharo, primitives are pragmas and not special syntax). tt <hello: #world> is perfectly fine. For what can this now be used? One idea is meta- annotations. For example, SLint is a useful code-critic tool. But sometimes, it's wrong. So you can put a Pragma that communicates to SUnit: please don't report the problem X, because I decided it is none. Another example would be the MethodFinder. The example-mode of the method finder allows you to give an example and executes all methods of the system to find one that does what your example requests. e.g. 3. 4. 7 it finds 3 + 4, 3 bitOr: 4 and 3 bitXor: 4. Of course, executing just every method could lead to problems if the method has side-effects. (Like, quitting the image). Thus, the MethodFinder has lists of methods that should not be called (#noteDangerous). Of course, this means that all selectors are hard-coded. And one can not use this valuable information for other cases. One thing to think about would be to add a "this method has a bad side- effect" annotation. (maybe. Maybe this will not scale and just clutter the system. But it's worth a try). Back to Pragma: on the class-side there are some convenience methods, e.g. Pragma allNamed: #primitive: in: SmallInteger returns all pragmas in class SmallInteger. (and the pragma references the method it is installed in, which in turn knows it's class and selector). Marcus -- Marcus Denker - http://marcusdenker.de PLEIAD Lab - Computer Science Department (DCC) - University of Chile _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
PragmaCollector could be very useful for the purpose of collecting
pragma for a MethodFinder (or other client) I can provide more help if needed. Alain Marcus Denker a écrit : > On 17.06.2009, at 16:16, Bernardo Ezequiel Contreras wrote: > > >> where can i find Pragma? do you have a link? >> because i couldnt find it. >> >> > > Pragma is a class. Can be found in Squeak 3.9 and Pharo, it was > introduced to Smalltalk > in VisualWorks, I think, and brought to Squeak by Lukas in 3.9 (put on > top of a property > interface for methods inspired by Tweak). > > The idea is the following: In Smalltalk, there is a special syntax for > Primitives: > > + aNumber > > <primitive: 1> > ^ super + aNumber > > > Why not provide a more general concept where we can use the <selector: > arg> syntax to put meta-annotations > in methods? And that's what pragmas are. (Conversely, in Squeak 3.9 > and Pharo, primitives are pragmas and not > special syntax). > > tt > <hello: #world> > > > is perfectly fine. For what can this now be used? One idea is meta- > annotations. For example, SLint is a useful > code-critic tool. But sometimes, it's wrong. So you can put a Pragma > that communicates to SUnit: please don't > report the problem X, because I decided it is none. > Another example would be the MethodFinder. The example-mode of the > method finder allows you to give an example > and executes all methods of the system to find one that does what your > example requests. > > e.g. 3. 4. 7 > > it finds 3 + 4, 3 bitOr: 4 and 3 bitXor: 4. > > Of course, executing just every method could lead to problems if the > method has side-effects. (Like, quitting the > image). Thus, the MethodFinder has lists of methods that should not be > called (#noteDangerous). Of course, this > means that all selectors are hard-coded. And one can not use this > valuable information for other cases. > One thing to think about would be to add a "this method has a bad side- > effect" annotation. (maybe. Maybe this will > not scale and just clutter the system. But it's worth a try). > > Back to Pragma: on the class-side there are some convenience methods, > e.g. > > Pragma allNamed: #primitive: in: SmallInteger > > returns all pragmas in class SmallInteger. (and the pragma references > the method it is installed in, which in > turn knows it's class and selector). > > Marcus > > -- > Marcus Denker - http://marcusdenker.de > PLEIAD Lab - Computer Science Department (DCC) - University of Chile > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
I have to check it :)
but may be it should be part of the pragma core package. Stef On Jun 18, 2009, at 8:05 AM, Alain Plantec wrote: > PragmaCollector could be very useful for the purpose of collecting > pragma for a MethodFinder (or other client) > I can provide more help if needed. > Alain > > > Marcus Denker a écrit : >> On 17.06.2009, at 16:16, Bernardo Ezequiel Contreras wrote: >> >> >>> where can i find Pragma? do you have a link? >>> because i couldnt find it. >>> >>> >> >> Pragma is a class. Can be found in Squeak 3.9 and Pharo, it was >> introduced to Smalltalk >> in VisualWorks, I think, and brought to Squeak by Lukas in 3.9 (put >> on >> top of a property >> interface for methods inspired by Tweak). >> >> The idea is the following: In Smalltalk, there is a special syntax >> for >> Primitives: >> >> + aNumber >> >> <primitive: 1> >> ^ super + aNumber >> >> >> Why not provide a more general concept where we can use the >> <selector: >> arg> syntax to put meta-annotations >> in methods? And that's what pragmas are. (Conversely, in Squeak 3.9 >> and Pharo, primitives are pragmas and not >> special syntax). >> >> tt >> <hello: #world> >> >> >> is perfectly fine. For what can this now be used? One idea is meta- >> annotations. For example, SLint is a useful >> code-critic tool. But sometimes, it's wrong. So you can put a Pragma >> that communicates to SUnit: please don't >> report the problem X, because I decided it is none. >> Another example would be the MethodFinder. The example-mode of the >> method finder allows you to give an example >> and executes all methods of the system to find one that does what >> your >> example requests. >> >> e.g. 3. 4. 7 >> >> it finds 3 + 4, 3 bitOr: 4 and 3 bitXor: 4. >> >> Of course, executing just every method could lead to problems if the >> method has side-effects. (Like, quitting the >> image). Thus, the MethodFinder has lists of methods that should not >> be >> called (#noteDangerous). Of course, this >> means that all selectors are hard-coded. And one can not use this >> valuable information for other cases. >> One thing to think about would be to add a "this method has a bad >> side- >> effect" annotation. (maybe. Maybe this will >> not scale and just clutter the system. But it's worth a try). >> >> Back to Pragma: on the class-side there are some convenience methods, >> e.g. >> >> Pragma allNamed: #primitive: in: SmallInteger >> >> returns all pragmas in class SmallInteger. (and the pragma references >> the method it is installed in, which in >> turn knows it's class and selector). >> >> Marcus >> >> -- >> Marcus Denker - http://marcusdenker.de >> PLEIAD Lab - Computer Science Department (DCC) - University of Chile >> >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> >> > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |