Monthly Archives: April 2020

Projects for Season of Docs 2020

Pharo is applying to season of docs 2020 https://developers.google.com/season-of-docs/

We have several tasks for technical writers:

All our books, booklets are hosted at https://github.com/SquareBracketAssociates/

We favor small tasks, fast iteration for great results. Since we are authors beside programming Pharo we know and understand the constraints and process of documenting.

Do not hesitate to contact us because you can get an impact!

The Pharo consortium

stephane.ducasse@inria.fr / board@pharo.org

[ann] Stable release of Roassal3 version 0.9

Stable release of Roassal3 version 0.9: https://github.com/ObjectProfile/Roassal3
The Roassal Visualization Engine.
Contribute to ObjectProfile/Roassal3 development by creating an account on GitHub.

Consortium Pharo VM statement

As promised the consortium engineering team composed of G. Polito, P. Tesone, E. Lorenzano, M. Denker, C. Demarey and S. Ducasse produced a statement about the Pharo VM. This statement was reviewed by the Pharo board and follows decisions taken during the 2019 consortium general assembly held during PharoDays.

S. Ducasse on the behalf of the consortium

Showing off with test numbers ;)

You have several kinds of developers

  • the ones that do not test because it is not worth, because they are too cool, do not write bugs
  • the ones that do not test because it is impossible. “My domain is so complex that I cannot” – And I’m also so smart because I can only understand it.
  • the ones that talk about tests but we do not see them because “You know this is in proprietary code”
  • the ones that believe strongly in tests and that will fight to get the cool feelings of having tests!

Pharo core development team is of the fourth kind and it eats its own dog food.

  • I thought during long time that UI testing was not possible/easy. I was lame and staying in my confort zone. The consortium engineers showed me the contrary. Little slap in my face but a cool one 🙂
  • Now they are working on writing tests for the GC of the Pharo VM, writing tests for the bytecode, the JIT and the PIC. It is not easy but it is doable AND WORTH! I learned sooooo much joing writing test dojos. I want more 🙂

As of today any PR integration is validated with 67392 tests (not counting the VM tests, the project tests like iceberg).

Enjoy

S. Ducasse (a test infected developer and super happy to be infected else I could not work).

Participate to the Magic Literal XP

Dear all,

We are running a large XP for a research around Magic Literals.

A magic literal is a literal (number, booleans,…) that is used to denote something but that it not immediately obvious to the code reader: it can be for example a number but could be also a string, a character or boolean (this is what we want to discover).
When you read the code you should be puzzled by the usage of this magic encoding and this is what we want to understand and that you report to use using a special tool.
Now identifying magic literal is not easy and we want to measure them.
We already did a publication at ESUG last year (but we only did an XP with 100 methods) and now we want to go the world. If you want to read it
Our idea is to have result first in Smalltalk and then, only then check with Java :).
But for that we should show to the world that we did a large XP.  So we build one and now we need you to help.
First we need to evaluate the situation and understand the different cases, as not all literals are “magic”. You can help us in this. It can take you 30 min for one experience.
In the shared directory
https://www.dropbox.com/sh/ag94vutsrtcs0n9/AAAEkpB2onlWpcFLqLPKOpOaa
there are images for different experiments (on whole Pharo, on Roassal, Polymath, VM maker, Seaside project, …)
We want to compare the analysis of an expert and an external person on a domain this is why we will cross comparison
between roassal expert and roassal newbie (same for Seaside, Polymath, VMMaker)
These images contain the code and the tool for the experiment and they should be open with Pharo80 you can get from http://www.pharo.org

To participate in the experiment:

– Step 1.

go to the document
https://docs.google.com/spreadsheets/d/1DrjXcfuR8Ja_7luknUUfijO8wzYYaJ2ZP_pOE0zqAPM/edit?usp=sharing

– Step 2.

select one experiment to do (for example put your name in the column ‘Doing’) add your expertise to the sheet

– Step 3.

please select the experiments in numerical order, e.g. do the
Pharo-1 experiment before the Pharo-2 one.
Note that a Lot will contain also some other methods because we are mixing methods to collect more information
so do not be surprised to see other methods that Polymath’s ones in the polymath XP.

– Step 4.

Get the tool on the experiment. From the list grab an inspector and execute MLSExperimentPresenter openOnSample: self ‘ with the batch you chose as argument
Screenshot 2020-04-21 at 17.06.13.png
You should get the following tool (with different colors 🙂 – yes that theme is funky)
Screenshot 2020-04-21 at 17.07.10.png

– Step 5.

decide whether each literal presented is Magic or not (unabling ‘Hide completed’ can help)
Remember: ‘A magic literal is a literal (number, booleans,…) that is used to denote something but that it not immediately obvious
to the code reader’

– Step 6.

completing one experiment should take less than 30 minutes

– Step 7.

when done, save the result (button at the bottom of MLSExperimentPresenter)
– this will give a STON file named after your batch.

– Step 8.

You need to send us this file (email at  nicolas.anquetil@inria.fr)

Your identity will be discarded from the data (anonymous answers). But we will owe you a beer at ESUG or Pharodays 🙂
We will use it only to assess your expertise in Pharo and/or the project evaluated.

Many thanks for your help in improving pharo and our understanding of the literals (magic or not)

Nicolas, Stephane, Julien, Christopher and Oleksandr

[Ann] Pharo Launcher 2.0

Big thanks to Christophe Demarey for his great job. Here is the anounce.

 

Hi all,

Pharo Launcher 2.0 has just been released! It is available from http://pharo.org/download.

  • This new version introduces major changes: The UI has been fully rewritten using the new Spec2 framework and the Commander2 library. UI has been revamped to increase usability, especially for newcomers. The main window is now composed of a toolbar and the list of images. The template list is now available when clicking on the new image button.
  • Documentation web site : All Pharo Launcher features are now explained in the new documentation available at https://pharo-project.github.io/pharo-launcher. You can contribute easily by clicking the *edit on GitHub* button.
  • You can now have many launch configurations for an image (VM to use, vm and image arguments). It means you can use headless Pharo VM from Pharo Launcher.
  • When creating a new image, you can specify an initialisation script that will be run once at the first image launch. It is useful to load your project code in a stock Pharo image for example. See https://pharo-project.github.io/pharo-launcher/create-images/#image-initialization-script
  • You can now define your own template sources in addition to official sources (see https://pharo-project.github.io/pharo-launcher/templates/#create-your-own-list-of-template-categories), including authenticated sources.
    Improved image metadata. Pharo Launcher now manages all image metadata in a single STON file (including description, Pharo version).

Big thanks to all contributors, including issue reports. It is also the opportunity to thanks Damien Cassou, the original author of Pharo Launcher.

Here is the changelog:
Pharo Launcher v2.0

 

The list of closed issue is too long (68) to be listed but you can browse it here: https://github.com/pharo-project/pharo-launcher/issues?q=is%3Aissue+is%3Aclosed+closed%3A2019-07-09..2020-04-17

Here are some highlights

New features:

  • Documentation web site
  • Image initialisation script
  • Launch configurations, headless VM support
  • User template file in addition to the official template file Jenkins server template now support pipeline projects
  • Support of private Jenkins server
  • Support of authenticated HTTP server

Improvements:

  • Monitoring of image launch failures to give back the error message (if any)
  • Newly created image is automatically selected in the image list
  • Allow one to set image description at creation time
  • Better error management (you will have the choice to ignore them or debug them)
  • Add a poor version column in image list
  • Speedup (especially when image repository has a lot of images)

Bug fixes:

Fix use of system unzip on Windows

Regards,
The Pharo team.

 

Quuve: an advanced portfolio manager in Pharo

It is impressive. Quuve was a really advanced portfolio manager developed in Pharo.

Quuve overview

[Ann] About GCC dead store code deletion

Pablo Tesone from the Pharo consortium wrote a nice blog post about GCC dead store code deletion and the bugs it can introduce in the VM.

https://thepharo.dev/2020/04/08/a-floating-gcc-optimization/

[Ann] Rewrite tool in Spec2.0

Dear friends,

I would like to announce that Sebastian, an intern of my company, just ported the RewriteTool to Spec2.

You may find the install instructions in the following link 🙂

https://github.com/jordanmontt/RewriteTool-Spec2  

Please, help us to test it, any feedback is welcome.

Regards,

Juan P.

SEMANTICS SRL

http://semantics.bo/

https://jpsandoval.github.io/