Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
January 2016
- 75 participants
- 1435 messages
Re: [Pharo-dev] spotter: top search for senders and references
by Tudor Girba
Hi,
> On Jan 19, 2016, at 6:14 PM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
>
> It has to be the oposite:
>
> #implementors should show what people understand until now (a list of implementors)
> #methods should show the actual methods (as now does #implementors)
Hmm, I think I do not understand so please bare with me. You seem to suggest that #Implementors would show selectors (symbols), and #Methods would show .
> why complicate things if we can do it in a way that satisfaces everybody?
The goal is certainly not to confuse. Only that the problem is a bit more complicated than what might appear.
When you are inside a method, you will naturally want to see #Implementors and #Senders. And in both of these categories, you will have methods and the preview will show code.
If on the top search, #Implementors will just be symbols, then we have two meanings for the same label. We could also use #Methods and #Senders when inside a method, but that would not match well either.
So, that is why we use #Implementors in the top search. Does this make more sense? I am asking because these are not carved in stone :)
Cheers,
Doru
> Esteban
>
>> On 19 Jan 2016, at 18:07, Tudor Girba <tudor(a)tudorgirba.com> wrote:
>>
>> Hi,
>>
>>> On Jan 19, 2016, at 5:52 PM, stepharo <stepharo(a)free.fr> wrote:
>>>
>>> Doru
>>>
>>> on the blog you mention selectors but I'm confused, I thought that methods were implementors.
>>> So what is selectors? I checked and they are methods too.
>>
>> So, the difference is as follows.
>>
>> #Implementors lists actual methods. For example, if I search for do:, I will get multiple methods implementing do:. Also, when you preview, you get directly the source code of the method. If you trigger the action (Enter) you get the code browser opened on the method.
>>
>> <a GTSpotterMorph(804686592)2016-01-19T18-00-41-751893+01-00.png>
>>
>> #Selectors, will show only one occurrence of do:, and when you preview it, you see the list of implementors.
>>
>> <a GTSpotterMorph(804686592)2016-01-19T18-00-47-165509+01-00.png>
>>
>> Essentially, #Selectors behaves like completion and it allows you to discover new selectors. Whatâs more, if you trigger the action (Enter) on a selector, you get the implementors browser for this selector.
>>
>> Does this make sense?
>>
>> Cheers,
>> Doru
>>
>>
>>> Stef
>>>
>>> Just for the record, there are parts the world where you have to use your GSM to browse the web.
>>> Even in France there are parts of the world where you cannot access to Youtube videos.
>>>
>>>> Hi,
>>>>
>>>> With the latest GT integration, we also integrated the search for senders and references from the first step.
>>>>
>>>> Here is a detailed explanation about it, including what we still want to do, how itâs done, and how to discover what else is around:
>>>> http://www.humane-assessment.com/blog/spotting-senders-references-with-gtsp…
>>>>
>>>> <Mail Attachment.png>
>>>>
>>>> Please let us know what you think.
>>>>
>>>> Cheers,
>>>> Doru
>>>>
>>>>
>>>> --
>>>> www.tudorgirba.com
>>>> www.feenk.com
>>>>
>>>> "Problem solving efficiency grows with the abstractness level of problem understanding."
>>>
>>
>> --
>> www.tudorgirba.com
>> www.feenk.com
>>
>> "When people care, great things can happen."
>
--
www.tudorgirba.com
www.feenk.com
"We are all great at making mistakes."
Jan. 19, 2016
Re: [Pharo-dev] another spotter question
by stepharo
> Hmm. Thanks for describing this way of working.
>
> Here is the thing. We observed users working with this, and they all used predominantly the keyboard. So, we favored keyboard use. This is not an argument for anything, and it does not mean that that is the best design, I am just telling you how we designed it. Things can change, and this is why it is important to understand how people tend to use the UI.
>
> So, every (and only) selection has actions. In your example, the #Menu category has a right arrow next to it. If you click on that you âDive in categoryâ. That means that if you want to dive in #Implementors, you navigate there, and then you get the option of diving in.
>
> We consciously chose to not show all actions all the time because that would have led to an overcrowded UI with too many things to choose from. Right now, you have 5 main things to click on and that is it.
>
> Now, hearing your scenario, it seems to make sense to make the category clickable as well and make it dive in that category. We will look at it (or maybe someone else does it beforehand :)). Thanks.
>
> Does this make more sense now?
Yes! I do not get why keyboard is orthogonal to direct access.
To me what I hate in UI is UI that are showing information but do not
let you access it.
How can I see that I can do something on the list?
The arrows only arrive when I click on ........
So I was trying to click on the label and it did not work. Of
course I must click on the first element
of the list so that the arrow show up on the element and the label!!!!!
What???
Seriously doru. You should have asked UI blind like me to test
Spotter.
I would have recorded a session and you can see that there are
glitches that you do not even see.
I'm just continuously bumping on them.
This is why I could understand Spotter and use it only to find a
class.
This is why I like the grabbing possibility of file on mac via the icons
and the navigation from there
because I see the file it is in front of my nose and I do not to jump
into a file system (like a mail download folder
I have no clue where it is) to grab it.
So to me Spotter should offer the same. Show information and let me grab
it. Especially when this is on the suggstion
list.
I do not understand how you solve the problem I got with shortcut btw.
You see the point is the following. Diving can be frustrating.
If on click on the labl you get the list then it can work really well.
>
> Doru
>
>> Stef
>>
>>
>>
>> <icfedjib..png>
> --
> www.tudorgirba.com
> www.feenk.com
>
> "When people care, great things can happen."
>
>
>
>
>
>
Jan. 19, 2016
Re: [Pharo-dev] [ANN] Pharo bootstrap
by Dimitris Chloupis
I was taking a look at Docker and I was inspired to dream about self
contained pharo packages that package their dependencies with them,
essentially being isolated and independent , bootstrap is more than
welcomed. Keep up the great work :)
On Tue, Jan 19, 2016 at 8:54 PM Pavel Krivanek <pavel.krivanek(a)gmail.com>
wrote:
> Hi,
>
> amazing! Do you have any idea how to speed up it? The bootstrap process is
> now running on my machine about one and half hour and it is still far from
> finish.
>
> Cheers,
> -- Pavel
>
> 2016-01-19 15:29 GMT+01:00 Christophe Demarey <christophe.demarey(a)inria.fr
> >:
>
>> Hi all,
>>
>> In case you do not know, we work on bootstrapping Pharo, i.e. create a
>> Pharo image from sources, not based on a previous image (well, we use a
>> pharo image to produce it but no code / state from it).
>>
>> This process will allow to define a minimal Pharo kernel (currently 52
>> packages but we could have it far smaller) and to modularize the whole
>> image (currently packages have too much dependencies on packages already
>> loaded into the image).
>> The bootstrap process also allows to write down the recipe to initialize
>> a new image from scratch (some code is missing in the image or is wrong).
>> In addition, I think we will clean a lot of historical objects that are not
>> used anymore.
>>
>> With the amazing work done by Guillermo Polito during his Phd (around
>> Espell, Oz):
>> https://guillep.github.io/files/publications/Poli15Thesis.pdf, *we
>> succeeded to get a first prototype of a bootstraped Pharo 5 image (from
>> 5.392)*.
>> This prototype is able to run an eval command line handler and to log
>> output / errors. Not all classes are yet initialized and you cannot yet
>> save / restart this image but it is a big step forward.
>> It is a 4 mb image (could be half the size without unicode data). You can
>> download it at:
>> http://chercheurs.lille.inria.fr/~demarey/pmwiki/pub/pharo-bootstrap/pharo-…
>> .
>>
>> Next steps are to have a bootstrapped image fully working, then to load
>> packages on top of it (like network, sunit) to produce a minimal image.
>> Then, we need to implement an Oz VM on top of Spur.
>> After that, we need to work on a reliable way to build the bootstrap (not
>> too sensitive to changes in the image).
>>
>> Christophe.
>>
>> -------
>> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$
>> ../pharo bootstrap.image --no-default-preferences eval "1 + 1"
>> 2
>> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$
>> ../pharo bootstrap.image --no-default-preferences eval "'a' , 'b'"
>> 'ab'
>> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$
>> ../pharo bootstrap.image --no-default-preferences eval "1 / 0"
>> ZeroDivide
>> SmallInteger>>/
>> UndefinedObject>>DoIt
>> OpalCompiler>>evaluate
>> OpalCompiler(AbstractCompiler)>>evaluate:
>> SmalltalkImage>>evaluate:
>>
>> EvaluateCommandLineHandler>>no (source is Undeclared)
>> no source in EvaluateCommandLineHandler>>evaluate: in Block: no source
>> BlockClosure>>on:do:
>> EvaluateCommandLineHandler>>evaluate:
>> EvaluateCommandLineHandler>>evaluateArguments
>> EvaluateCommandLineHandler>>activate
>> EvaluateCommandLineHandler class(CommandLineHandler class)>>activateWith:
>>
>> BasicCommandLineHandler>>no (source is Undeclared)
>> no source in
>> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: in
>> Block: no source
>> BlockClosure>>on:do:
>> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
>> PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
>> PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
>>
>> BasicCommandLineHandler>>no (source is Undeclared)
>> no source in PharoCommandLineHandler(BasicCommandLineHandler)>>activate
>> in Block: no source
>> BlockClosure>>on:do:
>> PharoCommandLineHandler(BasicCommandLineHandler)>>activate
>> PharoCommandLineHandler>>activate
>> PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
>>
>> PharoCommandLineHandler class>>no (source is Undeclared)
>> no source in PharoCommandLineHandler class>>activateWith: in Block: no
>> source
>> NonInteractiveUIManager(UIManager)>>defer:
>> PharoCommandLineHandler class>>activateWith:
>> no source in BasicCommandLineHandler>>activateSubCommand: in Block: no
>> source
>> BlockClosure>>on:do:
>> BasicCommandLineHandler>>activateSubCommand:
>> BasicCommandLineHandler>>handleSubcommand
>> BasicCommandLineHandler>>handleArgument:
>> no source in BasicCommandLineHandler>>activate in Block: no source
>>
>> SmallInteger>>no (source is Undeclared)
>>
>> UndefinedObject>>no (source is Undeclared)
>>
>> AbstractCompiler>>no (source is Undeclared)
>>
>> SmalltalkImage>>no (source is Undeclared)
>>
>> BlockClosure>>no (source is Undeclared)
>>
>> EvaluateCommandLineHandler>>no (source is Undeclared)
>>
>> EvaluateCommandLineHandler>>no (source is Undeclared)
>>
>> CommandLineHandler class>>no (source is Undeclared)
>>
>> BasicCommandLineHandler>>no (source is Undeclared)
>>
>> BasicCommandLineHandler>>no (source is Undeclared)
>>
>> PharoCommandLineHandler>>no (source is Undeclared)
>>
>> UIManager>>no (source is Undeclared)
>>
>> UndefinedObject>>no (source is Undeclared)
>>
>> CommandLineUIManager>>no (source is Undeclared)
>>
>> SmalltalkImage>>no (source is Undeclared)
>>
>> DelayMicrosecondScheduler>>no (source is Undeclared)
>>
>> BlockClosure>>no (source is Undeclared)
>>
>> SmalltalkImage>>no (source is Undeclared)
>>
>> WeakArray class>>no (source is Undeclared)
>>
>>
>> ps: source cannot be displayed because there is no formatter available in
>> the bootstrap
>>
>>
>
Jan. 19, 2016
Re: [Pharo-dev] running Hapao on the String class - error: key not found in MethodDictionary for testClassComment
by Alejandro Infante
Hi,
So this is not problem of Spy2, but a bug of Hapao. There should be no problem instrumenting String with Spy2 if your profiler is correct, the proof of this is that the image does not explode when you were debugging the execution (I was actually able to open a browser and check the tests of String).
This problem happened because we naively assumed, at least in this implementation Hapao, that for every Test Object there is a Test Method associated in the class of the Test Object. This is not correct for inherited tests, where the Test Method is in one of the superclasses.
I will submit a fix for that as soon as possible ;)
Thanks for the bug report!!
Alejandro
> On Jan 19, 2016, at 8:58 AM, stepharo <stepharo(a)free.fr> wrote:
>
> Hi sheridan
>
> spy string can be a challenge.
> Now I was thikning recently that we should have tests for Ring. So if you are interested I would love to review your tests.
>
> Sef
>
>
> Le 18/1/16 22:45, sheridan(a)sheridan-mahoney.com a écrit :
>> Hi there,
>>
>> I am trying to use Hapao to check test coverage in the String class and have run across some trouble. To begin, I loaded Spy2 and Roassal2 using the following code:
>>
>> Gofer new smalltalkhubUser: 'ObjectProfile'
>> project: 'Roassal2';
>> package: 'ConfigurationOfRoassal2';
>> load.
>> (Smalltalk at: #ConfigurationOfRoassal2) load.
>>
>> Gofer it
>> smalltalkhubUser: 'ObjectProfile' project: 'Spy2';
>> configurationOf: 'Spy2';
>> loadStable.
>>
>> Hapao then showed up in the "World" menu, and I selected it. I chose "Hapao @ class ... " and entered "String".
>>
>> Hapao starts running tests, but before long a debugger comes up with the error: KeyNotFound: key #testClassComment not found in MethodDictionary . IF I click "Proceed", other keyNotFound errors come up. This is in a 50524 image.
>>
>> Is there something wrong with the way I am invoking Hapao?
>> Many thanks,
>> Sheridan
>>
>>
>>
>
>
Jan. 19, 2016
Re: [Pharo-dev] spotter: top search for senders and references
by David Allouche
BTW, thanks for the explanations for Spotter.
> On 19 Jan 2016, at 18:37, Tudor Girba <tudor(a)tudorgirba.com> wrote:
>
> And then, in Spotter we have another discovery mechanism: Shift. When you press it, all clickable things get highlighted (including the arrow). We chose Shift because it is something that you type often as part of a text, so it will be very likely that you will press it when working with Spotter as well. And this will get you to see that something happens.
I am lazy and fearful of RSI. If I can avoid using the shift key at all, I am quite happy. So I did not notice that the arrows where clickable.
Here are a few suggestions that would fit my workflow.
I also think that "Selectors" should appear after classes and before packages, and be called "Messages". Typically I want to open a specific class, or a specific message in a specific class.
The short list of implementors at the top level is usually noise and might have confused Stef. It becomes relevant once the message is fully specified.
Diving in should be done with right arrow when at the end of the command line.
Diving out with left arrow at the start of the command line.
When a list of paginated (only first N items), then the category line should be accessible with arrows, so we can dive into a category just with arrows.
That would be awesome.
Jan. 19, 2016
Re: [Pharo-dev] spotter: top search for senders and references
by stepharo
this is why we have ghost text in input field. To indicate to the user
the kind of input he may type
So Spotter could show
#class Point | #implementors do: |
in really light grey in the input place.
Stef
Le 19/1/16 18:08, Esteban A. Maringolo a écrit :
> 2016-01-19 13:34 GMT-03:00 stepharo <stepharo(a)free.fr>:
>> cool
>> now could we have an help menu that describes the key elements.
>> People cannot discover that by themselves. A menu item is cheap.
> The thing with the hybrid things is that if it is not self
> discoverable as in a menu item it can't be described by a --help flag
> like in a traditional command line.
>
> Regards!
>
>
> Esteban A. Maringolo
>
>
Jan. 19, 2016
Re: [Pharo-dev] spotter: top search for senders and references
by stepharo
Does this make sense?
>> Not really. It looks really complex to remember.
>> To me selectors is part of implementors. I find it confusing.
> I am not sure I understand.
>
> Here is the reasoning behind the names. Perhaps we can find better ones:
> - The Implementors Browser shows methods implementing a selector.
> - So, from this point of view, an implementor is a method.
I do not think that having a query for something that we do not use is
good.
I look for implementors and I'm used to get a list of methods
>> How do you get the right pane opened?
>> Because I cannot get it.
>> I clieck on the check or the arrow but it does not open.
> On which arrow? :)
>
> When I tested the UI with users, and there were some, all of them felt that the gray arrow that goes outside the border is strange, and they clicked on it to see what it does.
I never thought about clicking on it. I thought it was a decoration not
an active element.
> It seems that you do not see it like that. Perhaps the contrast is not strong enough, and we can work on that.
I see the arrow but it does not have an icon so why should I start to
click on everything to see if it
reacts. This is not the way I use User Interface. In general the UI
tells me where I should click
and I click. I did not ask the question to be dum or to show that
Spotter UI is not intuitive: I could not find how
to get the pane.
So this is totally obscure that the arrow is more than a decoration.
Putting an icon inside
would make the trick because all the other parts the clickable once have
icons.
>
> And then, in Spotter we have another discovery mechanism: Shift. When you press it, all clickable things get highlighted (including the arrow). We chose Shift because it is something that you type often as part of a text, so it will be very likely that you will press it when working with Spotter as well. And this will get you to see that something happens.
Seriously not!
Because you do not see how my hands are on the keyboard (we compared
with esteban) my hand is fully over the keyboard
with my tiptoe on numbers and higher like fn key so pressing shift =
pain to me because shift is near to my wrest. In general I do not use
shift. This is shift+ enter does not work for me. I would like to have
esc + enter because esc is on the top left and I have my finger often on
it.
The proof is that I never saw that shift had any meaning and as I told
you when I started to use Spotter
I got pain in my hand => STOP using it.
Damien has pain in all his fingers and looking for the reason (and the
reason may be emacs shortcuts) so I do not play with
strange short cuts.
I started to use Spotter when I saw that I can use the right shift below
enter.
Now shift + cmd + arrows is nearly impossible because those are all keys
at the bottom of the keyboard.
So at the end what you believe is handy is handy for certain people but
not other. I will not change my hand over
keyboard position because I'm really efficient with it and I have no pain :)
>
>> Again another discoverability problem. I think that my remarks about how to learn spotter
>> still stands. Yes I can read your blog and may be remember everything but this is the way
>> UI works.
> Thanks for describing your way of working. It is useful.
>
> In any case, a help would certainly be useful, and it is on the todo list as well.
Yes and it does not have to be perfect and a menu to reset it.
>
> Cheers,
> Doru
>
>> Stef
>>
>>
> --
> www.tudorgirba.com
> www.feenk.com
>
> "It's not how it is, it is how we see it."
>
>
>
Jan. 19, 2016
Re: [Pharo-dev] [ANN] Pharo bootstrap
by Pavel Krivanek
Hi,
amazing! Do you have any idea how to speed up it? The bootstrap process is
now running on my machine about one and half hour and it is still far from
finish.
Cheers,
-- Pavel
2016-01-19 15:29 GMT+01:00 Christophe Demarey <christophe.demarey(a)inria.fr>:
> Hi all,
>
> In case you do not know, we work on bootstrapping Pharo, i.e. create a
> Pharo image from sources, not based on a previous image (well, we use a
> pharo image to produce it but no code / state from it).
>
> This process will allow to define a minimal Pharo kernel (currently 52
> packages but we could have it far smaller) and to modularize the whole
> image (currently packages have too much dependencies on packages already
> loaded into the image).
> The bootstrap process also allows to write down the recipe to initialize a
> new image from scratch (some code is missing in the image or is wrong). In
> addition, I think we will clean a lot of historical objects that are not
> used anymore.
>
> With the amazing work done by Guillermo Polito during his Phd (around
> Espell, Oz): https://guillep.github.io/files/publications/Poli15Thesis.pdf
> , *we succeeded to get a first prototype of a bootstraped Pharo 5 image
> (from 5.392)*.
> This prototype is able to run an eval command line handler and to log
> output / errors. Not all classes are yet initialized and you cannot yet
> save / restart this image but it is a big step forward.
> It is a 4 mb image (could be half the size without unicode data). You can
> download it at:
> http://chercheurs.lille.inria.fr/~demarey/pmwiki/pub/pharo-bootstrap/pharo-…
> .
>
> Next steps are to have a bootstrapped image fully working, then to load
> packages on top of it (like network, sunit) to produce a minimal image.
> Then, we need to implement an Oz VM on top of Spur.
> After that, we need to work on a reliable way to build the bootstrap (not
> too sensitive to changes in the image).
>
> Christophe.
>
> -------
> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$
> ../pharo bootstrap.image --no-default-preferences eval "1 + 1"
> 2
> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$
> ../pharo bootstrap.image --no-default-preferences eval "'a' , 'b'"
> 'ab'
> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$
> ../pharo bootstrap.image --no-default-preferences eval "1 / 0"
> ZeroDivide
> SmallInteger>>/
> UndefinedObject>>DoIt
> OpalCompiler>>evaluate
> OpalCompiler(AbstractCompiler)>>evaluate:
> SmalltalkImage>>evaluate:
>
> EvaluateCommandLineHandler>>no (source is Undeclared)
> no source in EvaluateCommandLineHandler>>evaluate: in Block: no source
> BlockClosure>>on:do:
> EvaluateCommandLineHandler>>evaluate:
> EvaluateCommandLineHandler>>evaluateArguments
> EvaluateCommandLineHandler>>activate
> EvaluateCommandLineHandler class(CommandLineHandler class)>>activateWith:
>
> BasicCommandLineHandler>>no (source is Undeclared)
> no source in
> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: in
> Block: no source
> BlockClosure>>on:do:
> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
> PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
> PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
>
> BasicCommandLineHandler>>no (source is Undeclared)
> no source in PharoCommandLineHandler(BasicCommandLineHandler)>>activate in
> Block: no source
> BlockClosure>>on:do:
> PharoCommandLineHandler(BasicCommandLineHandler)>>activate
> PharoCommandLineHandler>>activate
> PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
>
> PharoCommandLineHandler class>>no (source is Undeclared)
> no source in PharoCommandLineHandler class>>activateWith: in Block: no
> source
> NonInteractiveUIManager(UIManager)>>defer:
> PharoCommandLineHandler class>>activateWith:
> no source in BasicCommandLineHandler>>activateSubCommand: in Block: no
> source
> BlockClosure>>on:do:
> BasicCommandLineHandler>>activateSubCommand:
> BasicCommandLineHandler>>handleSubcommand
> BasicCommandLineHandler>>handleArgument:
> no source in BasicCommandLineHandler>>activate in Block: no source
>
> SmallInteger>>no (source is Undeclared)
>
> UndefinedObject>>no (source is Undeclared)
>
> AbstractCompiler>>no (source is Undeclared)
>
> SmalltalkImage>>no (source is Undeclared)
>
> BlockClosure>>no (source is Undeclared)
>
> EvaluateCommandLineHandler>>no (source is Undeclared)
>
> EvaluateCommandLineHandler>>no (source is Undeclared)
>
> CommandLineHandler class>>no (source is Undeclared)
>
> BasicCommandLineHandler>>no (source is Undeclared)
>
> BasicCommandLineHandler>>no (source is Undeclared)
>
> PharoCommandLineHandler>>no (source is Undeclared)
>
> UIManager>>no (source is Undeclared)
>
> UndefinedObject>>no (source is Undeclared)
>
> CommandLineUIManager>>no (source is Undeclared)
>
> SmalltalkImage>>no (source is Undeclared)
>
> DelayMicrosecondScheduler>>no (source is Undeclared)
>
> BlockClosure>>no (source is Undeclared)
>
> SmalltalkImage>>no (source is Undeclared)
>
> WeakArray class>>no (source is Undeclared)
>
>
> ps: source cannot be displayed because there is no formatter available in
> the bootstrap
>
>
Jan. 19, 2016
Re: [Pharo-dev] running Hapao on the String class - error: key not found in MethodDictionary for testClassComment
by sheridan@sheridan-mahoney.com
Hi Stef,
That would be great. I have only been writing very simple tests but it
would be nice to get some feedback.
What is the best way to get you the tests? Publish a slice to the
Pharo50Inbox?
Thanks,
Sheridan
Hi sheridan spy string can be a challenge. Now I was thikning recently
that we should have tests for Ring. So if you are interested I would
love to review your tests. Sef
Le 18/1/16 22:45,
>> Hi there, I am trying to use Hapao to check test coverage in the
>> String class and have run across some trouble. To begin, I loaded Spy2
>> and Roassal2 using the following code: Gofer new smalltalkhubUser:
>> 'ObjectProfile' project: 'Roassal2'; package:
>> 'ConfigurationOfRoassal2'; load. (Smalltalk at:
>> #ConfigurationOfRoassal2) load. Gofer it smalltalkhubUser:
>> 'ObjectProfile' project: 'Spy2'; configurationOf: 'Spy2'; loadStable.
>> Hapao then showed up in the "World" menu, and I selected it. I chose
>> "Hapao @ class ... " and entered "String". Hapao starts running tests,
>> but before long a debugger comes up with the error: KeyNotFound: key
>> #testClassComment not found in MethodDictionary . IF I click
>> "Proceed", other keyNotFound errors come up. This is in a 50524 image.
>> Is there something wrong with the way I am invoking Hapao? Many
>> thanks, Sheridan
> ******************************
Jan. 19, 2016
Re: [Pharo-dev] [ANN] Pharo bootstrap
by Eliot Miranda
Hi All,
great news! Where can I read a specification of the Oz VM facilities?
_,,,^..^,,,_ (phone)
> On Jan 19, 2016, at 6:29 AM, Christophe Demarey <christophe.demarey(a)inria.fr> wrote:
>
> Hi all,
>
> In case you do not know, we work on bootstrapping Pharo, i.e. create a Pharo image from sources, not based on a previous image (well, we use a pharo image to produce it but no code / state from it).
>
> This process will allow to define a minimal Pharo kernel (currently 52 packages but we could have it far smaller) and to modularize the whole image (currently packages have too much dependencies on packages already loaded into the image).
> The bootstrap process also allows to write down the recipe to initialize a new image from scratch (some code is missing in the image or is wrong). In addition, I think we will clean a lot of historical objects that are not used anymore.
>
> With the amazing work done by Guillermo Polito during his Phd (around Espell, Oz): https://guillep.github.io/files/publications/Poli15Thesis.pdf, we succeeded to get a first prototype of a bootstraped Pharo 5 image (from 5.392).
> This prototype is able to run an eval command line handler and to log output / errors. Not all classes are yet initialized and you cannot yet save / restart this image but it is a big step forward.
> It is a 4 mb image (could be half the size without unicode data). You can download it at: http://chercheurs.lille.inria.fr/~demarey/pmwiki/pub/pharo-bootstrap/pharo-….
>
> Next steps are to have a bootstrapped image fully working, then to load packages on top of it (like network, sunit) to produce a minimal image.
> Then, we need to implement an Oz VM on top of Spur.
> After that, we need to work on a reliable way to build the bootstrap (not too sensitive to changes in the image).
>
> Christophe.
>
> -------
> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$ ../pharo bootstrap.image --no-default-preferences eval "1 + 1"
> 2
> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$ ../pharo bootstrap.image --no-default-preferences eval "'a' , 'b'"
> 'ab'
> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$ ../pharo bootstrap.image --no-default-preferences eval "1 / 0"
> ZeroDivide
> SmallInteger>>/
> UndefinedObject>>DoIt
> OpalCompiler>>evaluate
> OpalCompiler(AbstractCompiler)>>evaluate:
> SmalltalkImage>>evaluate:
>
> EvaluateCommandLineHandler>>no (source is Undeclared)
> no source in EvaluateCommandLineHandler>>evaluate: in Block: no source
> BlockClosure>>on:do:
> EvaluateCommandLineHandler>>evaluate:
> EvaluateCommandLineHandler>>evaluateArguments
> EvaluateCommandLineHandler>>activate
> EvaluateCommandLineHandler class(CommandLineHandler class)>>activateWith:
>
> BasicCommandLineHandler>>no (source is Undeclared)
> no source in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: in Block: no source
> BlockClosure>>on:do:
> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
> PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
> PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
>
> BasicCommandLineHandler>>no (source is Undeclared)
> no source in PharoCommandLineHandler(BasicCommandLineHandler)>>activate in Block: no source
> BlockClosure>>on:do:
> PharoCommandLineHandler(BasicCommandLineHandler)>>activate
> PharoCommandLineHandler>>activate
> PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
>
> PharoCommandLineHandler class>>no (source is Undeclared)
> no source in PharoCommandLineHandler class>>activateWith: in Block: no source
> NonInteractiveUIManager(UIManager)>>defer:
> PharoCommandLineHandler class>>activateWith:
> no source in BasicCommandLineHandler>>activateSubCommand: in Block: no source
> BlockClosure>>on:do:
> BasicCommandLineHandler>>activateSubCommand:
> BasicCommandLineHandler>>handleSubcommand
> BasicCommandLineHandler>>handleArgument:
> no source in BasicCommandLineHandler>>activate in Block: no source
>
> SmallInteger>>no (source is Undeclared)
>
> UndefinedObject>>no (source is Undeclared)
>
> AbstractCompiler>>no (source is Undeclared)
>
> SmalltalkImage>>no (source is Undeclared)
>
> BlockClosure>>no (source is Undeclared)
>
> EvaluateCommandLineHandler>>no (source is Undeclared)
>
> EvaluateCommandLineHandler>>no (source is Undeclared)
>
> CommandLineHandler class>>no (source is Undeclared)
>
> BasicCommandLineHandler>>no (source is Undeclared)
>
> BasicCommandLineHandler>>no (source is Undeclared)
>
> PharoCommandLineHandler>>no (source is Undeclared)
>
> UIManager>>no (source is Undeclared)
>
> UndefinedObject>>no (source is Undeclared)
>
> CommandLineUIManager>>no (source is Undeclared)
>
> SmalltalkImage>>no (source is Undeclared)
>
> DelayMicrosecondScheduler>>no (source is Undeclared)
>
> BlockClosure>>no (source is Undeclared)
>
> SmalltalkImage>>no (source is Undeclared)
>
> WeakArray class>>no (source is Undeclared)
>
>
> ps: source cannot be displayed because there is no formatter available in the bootstrap
>
Jan. 19, 2016