Monthly Archives: May 2016

Pharo 60alpha enhancements

18369 Detection lost changes should not fail when epic directory not exists

18364 Polymorph-Widgets should not extend GLMTabLabelBrick

18363 Prepare Remove package Polymorph-TaskbarIcons

18366 move Polymorph-Widgets extension ProcessBrowser>>theme

18350 Lost changes should be shown on startup by Epicea

17822 Use STON for JSON parsing in MC FileTree

18357 Update Rubric to 2.19.4

18354 Improve MorphTreeColumnButton #themeChanged

17967 IRTranslator not using compilation when created by IRMethod #generate.

18317 Dictionary>>#at:ifPresent:ifAbsentPut: does not exist, could we add it ?

18356 add protocol dialog does not list existing protocols from class side

18365 Move Polymorph-Widgets extension PSMCMergeMorph>>#initialColorInSystemWindow:

18360 Move TestReviver to SUnit-UI package

17742 inheritable process specific variables

18303 Kommiter contains 3 method sending #halt

18163 Context cannotReturn users should split return from context and blockClosure

17696 RBParser should not allow variable names for pragma arguments

18329 Make MessageBrowser work for CompiledMethods and RGMethodDefinitions

18300 Nautilus does not warn about unaccepted changes in comment pane

18196 ByteTextConverter uses EventSensorConstants

18337 Spelling mistakes in Pharo (forward port issue 18324 to Pharo 6.0)

18335 MonticelloFileTree-Core extends class MCFileRepositoryInspector

18336 StartupPreferences extends packages outside minimal Pharo

18326 add some more keymapping definitions in PharoShortcuts

18306 CompiledCode comments

14605 Integrate Epicea

17164 Komitter LoadingMorph generates garbage for nothing and has a bad design

18272 Impossible to remove a class with references

18331 Support saving custom Layouts with Monticello

17994 RBParserNode: allowed primitive pragma definition can not compile

18323 TabGroupMorph should update the hidden tabs on theme changed

17928 multiple “bug” categories in critics browser

18234 Menus is spelt incorrectly in the setting browser

18295 Object>>#confirm:onCancel: should be deprecated and users should use UIManager

18202 AbstractNautilusUI>>addIconStyle should use allSubclassesDo

18231 Define a color for secondary text in Theme

18045 Use iconNamed: instead of relying on DNU [Athens]

18284 SmallFloat64 identityHash is answering bad value

18242 list packages for a protocol environment does not work

18212 PharoTutorial class missing

15418 a RBEnvironment from #classVarRefsTo: does not list meta classes

18312 inline parameter refactoring broken

18296 DNU on split cascade refactoring

18298 duplicate elements in RBClassEnvironments result set

18314 wrong or missing metho protokoll name for WindowAnnouncements

18309 Typo in RBSmalltalkGlobalsRule

18308 “Replaces detect:ifNone: by anySatisfy:” misleading rationale

18247 deprecation warning on #isManifest for metaclasses

18079 Boolean>>xor

18297 RBSplitCascadeRefactoring broken

18277 Add Class comments to Refactoring-Core-Refactorings classes

18299 Add Class comments to Refactoring-Core-Supportclasses

18293 Add a comment to Collection>>#stdev

18294 Remove Object >> #noteSelectionIndex:for:

libnotify for Pharo


I took the libnotify [0] binding for Squeak [1], adapted it to use the Pharo UFFI API and
enhanced it. It is available here [2] and seems to work well (see attached image).

It does not cover all libnotify possibilities (see the README on github) but it is already
usable to display notifications with eventually icons, set urgency, set timeout, etc…

It was great to try UFFI, it is really easy to use. Thanks a lot for it! 🙂




OSSubProcess new version

Dear all,

I have just released a new bugfix release v0.2.3 for OSSubprocess as you can see in [1].
I recommend everyone to move to this release.

Glorp the Object-Relational mapper

Hello all,

During the first part of the year, and sponsored by the Pharo
Consortium, I started a new port of Glorp, the Object-Relational
mapper, based on the latest version available in VW 8.0.1.

This latest port was done from scratch in Pharo and brings features
and bugfixes that were accumulated in the VW port during more than 5
years (previous Pharo port) and weren't available until now; and it
uses the Garage database drivers (but not limited to them).

During the last couple of months, and also by request of the
Consortium, I wrote a chapter for one of the Pharo books describing
Glorp as much as possible, with tutorials and key concepts. The
chapter ended up being the longest in text and pages of all written;
the domain is so broad and deep that I'm considering taking it to a
whole book, who knows...

The book is available at
and I will welcome suggestions and corrections as pull requests to

The Glorp repository is the same as the previous one
(!/~DBXTalk/Glorp), and the current
Metacello configs will load the previous version for Pharo 4 and the
new version for Pharo 5. For the foreseeable future I'll continue
maintaining Glorp, but the code is MIT and I'm open to contributions
(I'll set up a Github repo in the next days).

Also I've been running production software based on Glorp for a few
years now, so my experience with it cover most of its features and
usage patterns, so if you have particular questions not covered by the
book chapter or any other material feel free to ask me, this mailing
list or to the Glorp mailing list at <>.

Best regards!

Esteban A. Maringolo

Pharo Newsletter May 2016

The big news of the month of course is that Pharo50 has been released! This is our most significant release yet. Here are some highlights:

  • The PharoVM is now based on Spur, the new memory management, and it brings with it a 35% speedup!
  • A new unified foreign function interface (UFFI) replaced.
  • …overall all 2400 issue tracker entries closed.

You can read the official announcement here:

Pharo Mooc

The Pharo Mooc saw a constant increase of participants with 2700 participants from more than 90 countries. It is entering its fourth week. More information
Pharo 6

With the stable release out, we have started a new development branch. As always, we slowed integrating changes while stabilizing the release, so this new development branch is seeing lots of changes that were held back.

As always, we do not ignore simple (even trivial) changes and have seen already many improvements related to typos, comments, cleanups… as well as some big-ticket items. One example here is support for immutable objects.

64bit Pharo: A Preview

The 64bit version of Pharo was able to run the whole image this week! Here is a screenshot:


Sysmocom: Free Software for Mobile Communication


Sysmocom is a leading provider of Free Software Mobile Communication solutions. In 2012 we have started a long term project to develop a complete ASN1, TCAP, MAP, CAP, GSM stack using the Pharo Object Environment. We have decided to use Pharo because of the increased productivity, the great tooling, the live inspection and if necessary modification of a running system to deploy a critical bugfix. Pharo has allowed us to focus on what is important.

The stack was used to uncover security and privacy issues inherent to the MAP protocol design in 2014/2015. We have used the stack to build a carrier-grade AuthenticationCenter (AuC) and helped a customer to move their production traffic off a proprietary system to ours. We look forward to move a HomeLocationRegister (HLR) into production this year.

Holger Freyther CEO.

See for more success stories.

Register to the monthly report


Some time ago we set up a very low traffic “Pharo Newsletter” Mailinglist.

The idea is that this gets:
	-> a mail for the release
	-> *one* mail at the end of the month with 2-4 topics

It seems to work well. We have until now send two monty mails and the
mail for the Pharo5 release.

If you want to be on it, here is a link to subscribe:

If you follow all blogs, twitter + read all mails, there might not be anything new, but as things
get even hard to follow for me it might be a good way to keep up with the most important things

And: if you have an idea for content (e.g. highlighting a project or a success story), please get in


Pharo 64 bits… preview :)

Today Clément Béra helped Esteban Lorenzano porting the 32 to 64 bits bootstrap to Pharo. It looks like we have a Pharo 64 bits image on 64 bits VM running on Mac & Linux.
Here is the wonderful screenshot showing the amazing result:
Screen Shot 2016-05-24 at 3.19.23 PM-1.png

Pharo 60 Development is starting

18253 formatter misplaces some block comments

18267 Add Class comments to Refactoring-Core-Model classes

18284 SmallFloat64 identityHash is answering bad value

18078 FileSystem>>ModificationTime

18185 privSaveImageWithCleanup should yield Processor during waiting

18275 Improve tests coverage of Matrix

18044 Use iconNamed: instead of relying on DNU [Nautilus]

18238 PluggableTextMorph is not well update on theme change.

18227 TestRunner use component lacking/with incomplete #themeChanged

18240 PluggableButtonMorph does not update his text color on themeChanged

18276 Update glamorousBrowse and testRunner icons

18274 improve testing of UUID and remove createStringStartingAt:for:

18132 BlockClosure>>bench prints time instead of frequency when it runs for more than benchtime

18192 InputEventFetcher class>>#deinstall uses deprecated startup API

18268 Add Class comments to Refactoring-Core-Conditions classes
18264 WriteBarrierTest are failing. Maybe put on “expected” for now

16084 introduce pragma “ignoreUnimplementedCalls:”

18262 safe usage of optional StartupPreferencesLoader in the PharoCommandLineHandler
18248 TextAction>>rubActOnClick:for:in:editor: missing

18270 add #themeChanged method for GLMTabLabelBrick

18266 OCClassScope should ask class directly to find variable

18245 StringMorph and Label morph lack #themeChanged
18256 move HTTPProgress to the Network-Kernel package

18255 Improve documentation and tests for Integer methods for digits access

17802 Convenient methods for Message and MessageSend

18260 UUID tests should be moved to Tests package
17451 Introducing Immutability


18039 Missing testing methods on vmParameter

18250 Fuel has no platform for Pharo 6.0

18235 isClassOrTrait is false for Metaclasses

18047 Use iconNamed: instead of relying on DNU [Spec]

18197 Text asUrl makes the package Network-Url dependent on Text

18251 add 50 repo for now so we can merge

18200 TextAction calls unimplemented method #cull:cull:cull:cull:cull:

18199 “close all debuggers” could also be in the taskbar context menu

18229 Allow String>>#repeat: to repeat a string 0 times

18191 remove FFI classes from ReleaseTest>>#testKeyClassesArePresentInStartupList

18201 Reflectivity depends on Relfectivity-Tools

18015 TApplyingOnClassSide class heirarchy speedup
17896 MorphTreeMorph have trouble to update his theme


18230 Critic Browser window title set to nil after deselecting a rule
18173 fix #allClasses for RBBrowserEnvironments

17938 Show abstract classes in ClassWidget with emphasis 2

18129 ThemeIcons should store icons in an IdentityDictionarry

18148 NEC should guess global variables

18193 TxText cleaning

Pharo packages for ArchLinux


I've updated Pharo packages for ArchLinux. Could you please update
install procedure on ?

Install Pharo launcher + Spur + old VM using command line:
  $ yaourt pharo-launcher

then run:
  $ pharo-launcher

(or look into your desktop menu for Pharo Launcher)

Note: PharoLauncher is automatically configured to run Pharo images
with right VM.

More informations on packages:
- pharo-launcher:
- pharo-spur-vm:
- pharo-vm (old VM):

Thanks for Pharo 5 :)

Laurent Laffont

Pharo 50 last enhancements

18203 Welcome window does not show content at startup

18208 Add changelog to welcome browser

18203 Welcome window does not show content at startup

18204 typo in Explore Pharo Environment chapter

18205 typo in chapter “Learn Pharo Smalltalk”