Hi, I am working in the RMoD team (INRIA) in a project called /Seed/.
One of the tasks of the project is to identify those mandatory classes
that should be part of Pharo kernel. Currently, Pharo kernel has some
"unhappy dependecies". We are using /Moose + Glamour/ to create a tool
(a browser) that help up with this task. The idea is to start by loading
in our browser the classes used in the /SpecialObjectsArray/ and then
iterate to add dependencies incrementally. This way we will be able to
detect smells and "blacklist" methods we don't want to be part of our
kernel.
During this days we will have a working version of our browser to start
the analysis.
If you want to take a look, search for Seed on SqueackSource.
We will be sharing our findings in the Pharo mailing list.
Regards,
NicoPaez.
Hello,
If soemone is interested in JNIPort, I just published a small example using
it. It is not doing yet what I was expecting :), but it already set up
correctly a Pharo 1.1 image to run the example (loading Alien, JNIPort,
making a link to the JAVAVM for mac).
In this example I try to generate a mse file with infusion, by directly
invoking the main method of Java2Mse (instead of invoking OSProcess to
execute the script). All seems to work fine (except that the mse file is not
generated, I still have to find why).
To load it, this should work (for a pharo 1.1 image):
Gofer new
url: 'www.squeaksource.com/DelaunayTmpStuffs';
package: 'JNIPortExample';
load.
There is a class comment and an example in the class side
('cyrilleOwnExample').
Hi, I started working with Moose a couple of days ago.
I am creating a new model from a script and I DON'T want the new model to
be
added to the Moose Panel
Is it possible? how?
Thanks!
Saludos!
Nico.
blog: nicopaez.wordpress.com
Hi!
I just grabbed the hudson image, and imported Mondrian in it. It is said that Mondrian is composed of 53 packages! It should be about a dozen. When I click on "All model packages", I see many repeated item.
I imported Mondrian using the class category importer.
A screenshot attached
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi Moosers!
You can now check out the FAMOOSr program online at
http://www.moosetechnology.org/events/famoosr2010
As soon as we will have all the final versions of all the
papers we will upload them and then let you know. For
those of you that won't be able to attend, we advise you
to have a look at the papers, and send questions
that could fuel the discussions. Even if you will not be
there, your name and questions will be heard.
On the other hand, if you plan to attend ICSM then consider
also attending FAMOOSr. There is no extra registration fee
for it. However, we still invite you to go to the ICSM
registration page and update the list of events you will attend.
Best regards,
Mircea & Simon.
Organizers.
--
Mircea Lungu
Researcher
Software Composition Group
University of Bern
http://lungu.org/mircea
Hi,
I tried to export as png in Mondrian Renderer.
The first time, I changed the name in the open popup. The image did not create.
The second time, I do not change it, the image was created but, it is strange (see in attachment). Texts are not taken into account.
I am not sure it comes from Mondrian itself. I am using the Cog VM.
So can anyone try to export and to give feedback ?
Thank you.
---
Jannik Laval
Begin forwarded message:
> From: Simon Denier <Simon.Denier(a)inria.fr>
> Date: 19 août 2010 18:30:51 HAEC
> To: A friendly place where any question about pharo is welcome <pharo-users(a)lists.gforge.inria.fr>
> Cc: Simon Denier <Simon.Denier(a)inria.fr>
> Subject: String insertion
>
> What's the best (most elegant/efficient...) way to insert a string into another string at a given index?
>
> Say I have the string 'Toto-Tata-Titi' and I want to build the string 'Toto-Tests-Tata-Titi'
>
> I could think of the following:
>
> | string sepIndex stream |
> string := 'Toto-Tata-Titi'.
> sepIndex := string indexOf: $-.
> stream :=String new writeStream.
> stream nextPutAll: (string copyFrom: 1 to: sepIndex).
> stream nextPutAll: 'Tests'.
> stream nextPutAll: (string copyFrom: sepIndex to: string size).
> ^ stream contents
>
>
> Any suggestion?
>
> --
> Simon
>
>
>
--
Simon
Begin forwarded message:
> From: Simon Denier <Simon.Denier(a)inria.fr>
> Date: 27 août 2010 14:06:42 HAEC
> To: A friendly place where any question about pharo is welcome <pharo-users(a)lists.gforge.inria.fr>
> Cc: Simon Denier <Simon.Denier(a)inria.fr>
> Subject: Robust flatten for collection?
>
> Hi there
>
> A question to test your sagacity :)
>
> I'm looking for a method which would flatten a collection, regardless of whether the collection is already flat or not.
>
>
> that is:
> #((1 2 3) (4 5 6)) flatten --> #(1 2 3 4 5 6)
>
> #(1 2 3 4 5 6) flatten --> #(1 2 3 4 5 6)
>
> #((1 2 3) 4 5 6) flatten --> #(1 2 3 4 5 6)
>
>
> Any idea about the best implementation for this?
>
>
> --
> Simon
>
>
>
--
Simon
Hi Nico
As you noticed, Moose is not (yet) made to load in a Pharo Core image. The full suite can only be loaded in a Pharo normal image.
Now it would be cool to have a special 'Core' configuration which could be loaded into a PharoCore for analysis. I know that Jannik worked on that a bit.
Especially since we now have good tools (dsm, blueprints) to take a look into that :)
So one dependency which we cant escape is the refactoring browser, because of the Smalltalk importer.
BTW, if you plan to use Moose regularly, the best is to subscribe to the mailing list:
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
On 27 août 2010, at 11:13, Nicolás Paez wrote:
> Hi, to workaround this issue, I started the setup again, loading first the RB package and after that Moose, that was enough to prevent the warning and everything went ok.
>
>
> Saludos!
> Nico.
> blog: nicopaez.wordpress.com
>
>
> On Fri, Aug 27, 2010 at 10:16 AM, Nicolas Paez <nicopaez(a)gmail.com> wrote:
> Hi,
>
> Summary
>
>
> Pharo image: PharoCore-1.1-11411
> VM: Squeak4.1.1.exe
> Moose: Loaded using Gofer script available in SqueakSource.
> Issue: it fails when trying to general a Smalltalk model
>
> Details
>
> This morning I have started by taking a clean PharoCore-1.1 image and launching the installation of Moose using the following command:
>
> Gofer new
> squeaksource: 'Moose';
> package: 'ConfigurationOfMoose';
> load.
> (Smalltalk at: #ConfigurationOfMoose) perform: #loadDefault
>
> After some minutes the installation started I got the following warning message. It seems that Moose depends on the Refactoring Browser that is not present in the image.
>
> <moz-screenshot-78.png>
>
> I proceeded with the process and it finished I try to create a Smalltalk Model including the following packages:
> Kernel
> System-Support
> Compiler
> Collections
> When the model generation started I get the following error (the SmalltalkMethodVisitor class is not present in the image):
>
> <moz-screenshot-81.png>
>
>
>
> Regards,
> Nicolás
>
> _______________________________________________
> Lsehub-staff mailing list
> Lsehub-staff(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/lsehub-staff
--
Simon
I am reviewing the code relating to invocations in Famix. I noticed the following.
FamixInvocation>>to
^ self receiver
Receiver can be a variable or a class, but can also be nil. This seemed a reasonable default at one time, because we do not necessarily now which method we are invoking (but again, we may not have a clear receiver to refer too).
However, with respect to other associations, consider:
FamixReference: from -> aMethod to -> aClass
FamixInheritance: form -> aClass to -> aClass
FamixAccess: from -> aMethod to -> aVariable
FamixInvocation: from -> aMethod to -> aVariable or a Class ???
(FamixExtension: from -> aPackage to -> aClass (well, this one is just future work :) )
It seems much more intuitive to have:
FamixInvocation: from -> aMethod to -> aMethod
Now of course, how do we refine that when we may have multiple candidates?
What would be a reasonable default?
FamixInvocation>>to
^ self candidates ifNotEmpty: [ self candidates any ]
FamixInvocation>>to
^ self isASureInvocation ifTrue: [ self candidates first ]
(sure invocation does not imply one candidate, so it may still break or be inconsistent)
FamixInvocation>>to
^ self candidates size = 1 ifTrue: [ self candidates first ]
or:
FamixInvocation>>to
^ self candidates
Actually, this one has my preference even if slightly different, because with the other choices we make hypothesis which are not clear.
FamixInvocation: from -> aMethod to -> a collection of Methods (candidates)
--
Simon