[Pharo-project] fulltext method search
I was bored today (after yet another kernel panic) so I implemented a quick fulltext search for methods. "this takes around 1.5mins" Search default buildIndex. "this is an instantaneous (~2ms!) search over all method sources" Search default matchSentence: 'Convert to a String with Characters' I think we should integrate that into some kind of "SpotLight" search for accessing the sources much much faster... The current draft is available here: http://smalltalkhub.com/#!/~dh83/spotlight
Loaded in my 1.4 image but... crashes. Float>>isByteString doesn't seems to exist. Phil 2012/6/25 Camillo Bruni <camillobruni@gmail.com>
I was bored today (after yet another kernel panic) so I implemented a quick fulltext search for methods.
"this takes around 1.5mins" Search default buildIndex.
"this is an instantaneous (~2ms!) search over all method sources" Search default matchSentence: 'Convert to a String with Characters'
I think we should integrate that into some kind of "SpotLight" search for accessing the sources much much faster...
The current draft is available here: http://smalltalkhub.com/#!/~dh83/spotlight
-- Philippe Back Dramatic Performance Improvements Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027 Mail: phil@highoctane.be| Web: http://philippeback.eu | Blog: http://philippeback.be High Octane SPRL rue cour Boisacq 101 1301 Bierges Belgium
Error is due to the Progress Morph (guess you use the new thing in 2.0) 2012/6/25 Camillo Bruni <camillobruni@gmail.com>
I was bored today (after yet another kernel panic) so I implemented a quick fulltext search for methods.
"this takes around 1.5mins" Search default buildIndex.
"this is an instantaneous (~2ms!) search over all method sources" Search default matchSentence: 'Convert to a String with Characters'
I think we should integrate that into some kind of "SpotLight" search for accessing the sources much much faster...
The current draft is available here: http://smalltalkhub.com/#!/~dh83/spotlight
-- Philippe Back Dramatic Performance Improvements Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027 Mail: phil@highoctane.be| Web: http://philippeback.eu | Blog: http://philippeback.be High Octane SPRL rue cour Boisacq 101 1301 Bierges Belgium
not that I would do something fancy :) (and yeas 2.0) do:displayingProgress: is the only thing I do basically (and you can remove the display... part so it should even work under 1.4 I think) On 2012-06-25, at 00:38, phil@highoctane.be wrote:
Error is due to the Progress Morph (guess you use the new thing in 2.0)
2012/6/25 Camillo Bruni <camillobruni@gmail.com>
I was bored today (after yet another kernel panic) so I implemented a quick fulltext search for methods.
"this takes around 1.5mins" Search default buildIndex.
"this is an instantaneous (~2ms!) search over all method sources" Search default matchSentence: 'Convert to a String with Characters'
I think we should integrate that into some kind of "SpotLight" search for accessing the sources much much faster...
The current draft is available here: http://smalltalkhub.com/#!/~dh83/spotlight
Ok, removed it. So now, I see a "method indexing" progress bar popping for a while repeatedly :-). Well, it works. And I tried it out: "this is an instantaneous (~2ms!) search over all method sources" Search default matchSentence: 'Convert to a String with Characters' {(ByteArray>>#asString "a CompiledMethod(108265472)")} I am looking into how to integrate this with Spotlight [which is really fantastic and improves productivity a lot!] (I guess I'll do another binding like Ctrl-Enter instead of Shift-Enter). So, how do you get the results? Is there a quick way to open the browser on a given CompliedMethod right away? (Ah! So much to learn.... Sound is working nicely now BTW, got a couple clues!) Phil 2012/6/25 Camillo Bruni <camillobruni@gmail.com>
not that I would do something fancy :) (and yeas 2.0)
do:displayingProgress:
is the only thing I do basically (and you can remove the display... part so it should even work under 1.4 I think)
On 2012-06-25, at 00:38, phil@highoctane.be wrote:
Error is due to the Progress Morph (guess you use the new thing in 2.0)
2012/6/25 Camillo Bruni <camillobruni@gmail.com>
I was bored today (after yet another kernel panic) so I implemented a quick fulltext search for methods.
"this takes around 1.5mins" Search default buildIndex.
"this is an instantaneous (~2ms!) search over all method sources" Search default matchSentence: 'Convert to a String with Characters'
I think we should integrate that into some kind of "SpotLight" search for accessing the sources much much faster...
The current draft is available here: http://smalltalkhub.com/#!/~dh83/spotlight
Did you changed OB? don't forget to commit changes to the PharoOB repository :) On Jun 25, 2012, at 9:53 AM, phil@highoctane.be wrote:
Ok, removed it. So now, I see a "method indexing" progress bar popping for a while repeatedly :-).
Well, it works. And I tried it out:
"this is an instantaneous (~2ms!) search over all method sources" Search default matchSentence: 'Convert to a String with Characters' {(ByteArray>>#asString "a CompiledMethod(108265472)")}
I am looking into how to integrate this with Spotlight [which is really fantastic and improves productivity a lot!] (I guess I'll do another binding like Ctrl-Enter instead of Shift-Enter). So, how do you get the results? Is there a quick way to open the browser on a given CompliedMethod right away? (Ah! So much to learn.... Sound is working nicely now BTW, got a couple clues!)
Phil
2012/6/25 Camillo Bruni <camillobruni@gmail.com>
not that I would do something fancy :) (and yeas 2.0)
do:displayingProgress:
is the only thing I do basically (and you can remove the display... part so it should even work under 1.4 I think)
On 2012-06-25, at 00:38, phil@highoctane.be wrote:
Error is due to the Progress Morph (guess you use the new thing in 2.0)
2012/6/25 Camillo Bruni <camillobruni@gmail.com>
I was bored today (after yet another kernel panic) so I implemented a quick fulltext search for methods.
"this takes around 1.5mins" Search default buildIndex.
"this is an instantaneous (~2ms!) search over all method sources" Search default matchSentence: 'Convert to a String with Characters'
I think we should integrate that into some kind of "SpotLight" search for accessing the sources much much faster...
The current draft is available here: http://smalltalkhub.com/#!/~dh83/spotlight
On 2012-06-25, at 09:54, phil@highoctane.be wrote:
Ok, removed it. So now, I see a "method indexing" progress bar popping for a while repeatedly :-).
Well, it works. And I tried it out:
"this is an instantaneous (~2ms!) search over all method sources" Search default matchSentence: 'Convert to a String with Characters' {(ByteArray>>#asString "a CompiledMethod(108265472)")}
I am looking into how to integrate this with Spotlight [which is really fantastic and improves productivity a lot!] (I guess I'll do another binding like Ctrl-Enter instead of Shift-Enter). So, how do you get the results? Is there a quick way to open the browser on a given CompliedMethod right away? (Ah! So much to learn.... Sound is working nicely now BTW, got a couple clues!)
AS you saw the #searchSentence: returns a list of possible method matches. l := Search default matchSentence: 'copyFrom:to:' SystemNavigation default browseMessageList: l name: 'Messages with the string "copyFrom:to:"' - Since it is really an early hack, I don't support case sensitive searching. I wonder though if that is really necessary... Since the results are not fully exact (e.g. some false positives are here and there..) - Integration with system announcements is missing (I do not add new methods to the index..) - the code is rather messy (half of it is still in uncategorized :S) - no test coverage yet :D (bad cami, bad cami!!)
participants (3)
-
Camillo Bruni -
Esteban Lorenzano -
phil@highoctane.be