[Ann] Iceberg for Pharo60


Hi all,

I'm on vacations, so I've produced a new patch version of Iceberg :). This version restores compatibility with Pharo6, which was broken since latest changes done for Pharo7 64bit support.


I hope people still using Pharo6 find this useful. You should be able now to use again the update script to use latest iceberg on it. I've updated the doc to point to the latest supported version:

"load iceberg"Metacello new
  	baseline: 'Iceberg';
  	repository: 'github://pharo-vcs/iceberg:v1.5.?';

On this same direction, we have been discussing that v1.5.* will be the latest minor version supporting Pharo6. Still, we will keep integrating bugfixes and patches as they come.

New versions (>= 1.6) will host the new features and will be available and maintained for both the stable Pharo7 and the in-development Pharo8 versions.


[Ann] new version of Pharo with Style

I updated Pharo with Style.



[Ann] new release of P3 (postgreSQL)


There is a new release of P3, the modern, lean and mean PostgreSQL client for Pharo.


Version 1.2 contains the following changes:

- P3PreparedStatement is now joined by a polymorphic P3FormattedStatement working client side on text strings
- P3PreparedStatement & P3FormattedStatement now share the same double dispatch mechanism to process argument binding
- Added convenience methods #listDatabases #listSchemas & #listTablesInSchema: to P3Client
- Added convenience methods #firstColumnData & #firstFieldOfFirstRecord to P3Result
- Added dynamic ENUM support via #loadEnums in P3Client
- Add support for the 7 geometric types POINT, CIRCLE, LINE, LSEG, POLYGON & PATH with corresponding objects P3Point, P3Circle, P3Line, P3LineSegment, P3Polygon & P3Path
- Add support for the INTERVAL type with P3Interval object
- Added P3Client>>#serverVersion accessor
- Add support for BIT & VARBIT types with P3FixedBitString & P3BitString objects
- Add TIMETZ support
- Organised P3 package with tags
- More & better documentation & unit tests


The quality of open source software is determined by it being alive, supported and maintained.

The first way to help is to simply use P3 in your projects and report back about your successes and the issues that you encounter. You can ask questions on the Pharo mailing lists.



Pharo Days 2019 is now open!

Dear all,

I am pleased to announce that registration for Pharo Days 2019 is now open!

Pharo days is a gathering of the Pharo community to exchange, discuss and code with your online colleagues. 
Join us to share your experiences and help to make a better Pharo!

To register, please proceed to the Pharo Days 2019 web page: https://pharo.org/2019PharoDays <https://pharo.org/2019PharoDays>, or go directly to the association event: https://association.pharo.org/event-3255426 <https://association.pharo.org/event-3255426>.
(Yes, the schedule is still to be defined, stay tuned).

If there are any questions or problems, I am happy to answer them.


Ps: I’m sorry for multiple posts ;)

Pharo 80 Roadmap

Hi list, 

We started Pharo 8.0 development and we wanted to share (and discuss, if needed) what is our current Roadmap for Pharo 8.0.
As you can see, Windows is getting some love, and also UI.
Anyway, here it is: 

1) Missing parts for headless VM to work (explained a bit later)
2) We need to improve Epicea speed. And in general, source access speed. We want to remove the old changes file (since Epicea already does that works and a lot more).
3) Improve Refactors
4) Improve Calypso
5) Introduce Spec2 (our re-work on this framework).
	- We also want to migrate our tools to it (Inspector, Debugger, Spotter and Calypso are the remaining parts). We will see how much of this migration can be done.

VM/Low-level side
1) headless vm
We want to have a real headless VM and make it our default VM.
To it, most of the work vm-side is already made by Ronie, but there are missing parts: 
- a build on windows
- image side capabilities: we use SDL2 to start the world, and it mostly works... but not completely.

One cool thing of this is that we will -finally- be able to clean the event handling, which is ugly (and works bad).

2) Windows several missing/non working parts: 
- file primitives are slow. This is because they rely in old APIs and we need to put them in "state of the art".
- libgit2 does not processes long paths. We workarounded the problem with tonel, but at a point we need to take care about this. Real problem with this is we need to contribute the solution to libgit2, but this is also good Open Source policy (contributing back).
- OSSubprocess in windows. We believe we need to extend OSSubprocess (our solution to communicate with system) to windows. And we believe is possible ;)

3) ThreadedFFI. 
It is already too much time since we have this in agenda. Is time to make it real.

4) memory policies. 
Tweaking the VM to enhance its memory usage is possible, but hard. We want to adopt an scheme of "memory policies" that will allow users to pick what they need.

1) We will add multiple source directories to Iceberg. This is needed to allow us to put all Pharo sub-projects into an unique project without breaking modularisations.

1) Launcher
	- Launcher us getting a new UI
	- Tests
	- It needs to be more solid (in part, that's the reason why we want OSSubprocess in windows).
2) Cargo
	- We need to revisit cargo (a new dependency manager) and at a point decide if it will fly or not :)

Nice to have (most probably not this version, but in our TODO) :
- embedded VM
- event driven VM
- what happens if we split VM into main thread and vm thread?

[Ann] Pharo launcher 1.6

Hi all,

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

This new version introduces two major changes:
the list of template sources is now externalized as a Ston file. Pharo Launcher will check regularly (at startup and each day) if there are changes between your local source of templates and the one hosted in Pharo file server. If so, Pharo Launcher will propose you to update your template sources. It is a way to automatically get new official sources or to keep stable, dev versions up to date.
a small UI is now available to manage VMs of PharoLauncher (update, remove, list).
Also, this is the first release done with all sources coming from GitHub (https://github.com/pharo-project/pharo-launcher).

Big thanks to all contributors, including issue reports.

Here is the changelog:
Pharo Launcher v1.6 <https://github.com/pharo-project/pharo-launcher/releases/tag/1.6>
New features:

#283 <https://github.com/pharo-project/pharo-launcher/issues/283> Template sources should be editable without modifying PL code
#172 <https://github.com/pharo-project/pharo-launcher/issues/172> Provide a way to update / remove VMs
#131 <https://github.com/pharo-project/pharo-launcher/issues/131> Display date for "Last Modified" on the form of "X day/month/year ago"

#295 <https://github.com/pharo-project/pharo-launcher/issues/295> Pharo 7 marked as (development version)
#290 <https://github.com/pharo-project/pharo-launcher/issues/290> Add "latest" to indicate dynamic version development versions for Pharo 7.0
#299 <https://github.com/pharo-project/pharo-launcher/issues/299> About hot (more recently used) coloring schema
#287 <https://github.com/pharo-project/pharo-launcher/issues/287> Launch button is enabled despite no Current image being selected (or present)
#274 <https://github.com/pharo-project/pharo-launcher/issues/274> Copy and Rename command should not add a "-01"
Bug fixes:

#293 <https://github.com/pharo-project/pharo-launcher/issues/293> zipfile from 85bebb7 <https://github.com/pharo-project/pharo-launcher/commit/85bebb7dc75e7e78fac0f2cb02fde3ec384edbf0> has no source file
#291 <https://github.com/pharo-project/pharo-launcher/issues/291> FileDoesNotExist error at Launcher startup
#286 <https://github.com/pharo-project/pharo-launcher/issues/286> Buttons (Import > Launch an image...) are cut off in Windows 10
#281 <https://github.com/pharo-project/pharo-launcher/issues/281> Pharo Launcher does not go beyond Pharo 7 #1384 image

The Pharo team.

[ANN] Pharo open documentation

Hi everyone!

With some other members of the community we are proud to announce a new effort on Pharo documentation: https://github.com/pharo-open-documentation/awesome-pharo

We launched an organization pharo-open-documentation which is a
user-maintained documentation related to Pharo environment, language,
and libraries.

Currently it has three main projects:
– pharo-wiki : Wiki related to the Pharo programming language and environment.
– awesome-pharo : A collection of awesome Pharo libraries, tools,
frameworks and software.
– awesome-pharo-ml : List of projects, books, booklets, papers, and
applications related to machine learning, AI, data science in Pharo.

Contributions are welcomed!

If you own a cool project in Pharo others could use in their own
projects, send us a PR to awesome-pharo!
If you have knowledge on Pharo or projects of Pharo, we would be glad
if you could contribute to the pharo-wiki! Don’t forget to read the
contribution guidelines. 😉

We opened a Twitter to announce new entries on the pharo-wiki.


Have a nice day!

[Ann] Pharo 7.0 released!

Dear World and dynamic language lovers: 

The time has come for Pharo 7.0!

Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback.

This is our most significant release yet. Here are the key highlights of this release:

	• Pharo is now provided in 64-bit version in Linux and OSX and brings even better performance and stability. The 64-bit version is now recommended for Linux and Mac, and is provided as technical preview for Windows.
	• Pharo comes with a new version of the PharoLauncher (https://pharo.org/download): THE tool to manage your distributions (access to regular versions, jenkins builds, and older versions). 
	• Pharo build has a fully new build process that supports its full bootstrap from sources. This will enable the production to specific (micro) images. 
	• Iceberg, the git client for Pharo has been significantly improved, and is the default CMS.
	• Calypso, the angular stone of PharoThings, is the new system Pharo browser. It replaces Nautilus and brings better remote working and more advanced browsing capabilities. 
	• IoT is now an important part of Pharo. Installing PharoThings (https://github.com/pharo-iot/PharoThings) provides an impressive amount of tools to develop applications in small devices.
	• The unified foreign function interface (UnifiedFFI) for interfacing with the outside world is significantly improved to work properly on Windows 64-bit. 

Pharo 70’s new infrastructure and process set the stage for a new generation of version. 
The visibility of GitHub combined with the powerful tools that have been validated with more than one year of beta testing is massively pay off.

These are just the more prominent highlights, but the details are just as important. 

We have closed a massive amount of issues: 2142 issues! (A comprehensive changelog can be found at: https://github.com/pharo-project/pharo-changelogs/blob/master/Pharo70ChangeLogs.md).

While the technical improvements are significant, still the most impressive fact is that the new code that got in the main Pharo 7.0 image was contributed by more than 75 people.

Pharo is more than code. It is an exciting project involving energetic people. We thank all the contributors of this release:

Gabriel Omar Cotelli, Gustavo Santos, Marcus Denker, Torsten Bergmann, Esteban Lorenzano, Bernardo Ezequiel Contreras, Guille Polito, Pablo Tesone, Yoan Geran, Stéphane Ducasse, Cyril Ferlicot, Vincent Blondeau, Denis Kudriashov, Julien Delplanque, Tim Mackinnon, Max Leske, Andrew P. Black, Tomohiro Oda, Clément Béra, Ben Coman, Eric Gade, Yuriy Tymchuk, Nicolas Cellier, Biyalou-Sama Asbath, Myroslava, Sean DeNigris, Juraj Kubelka, Noury Bouraqadi, Holger Freyther, Geoff Reedy, Norbert Hartl, Paul DeBruicker, Alain Plantec, Martín Dias, Peter Uhnak, Tomohiro Oda, Benoît Verhaeghe, Santiago Bragagnolo, Wouter van Zuilen, Bernhard Pieber, Damien Pollet, Geoff Hill, Hans-Martin Mosner, Ronie Salgado, Philippe Back, Aliaksei Syrel, Dayne Guerra, Rafael Luque, Serge Stinckwich, Vincent Aranega, Hernán Morales Durand, Petr Fischer, Rajula Vineet Reddy, Alexandre Bergel, Esteban A. Maringolo, Jan Blizničenko, Johan Brichau, Luc Fabresse, Quentin Ducasse, Sébastien Roccaserra, Stephan Eggermont, Sven Van Caekenberghe, Takano Mitsuhiro, Pavel Krivanek, Allex Oliveira, Christophe Demarey, Lionel Akue, Nicolai Hess, Martin McClure, Alistair Grant, Pierre Tsapliayev, Milton Mamani, Matteo Marra, Thomas Dupriez, Asbathou Biyalou-Sama.
(If you contributed with Pharo 7.0 development in any way and we missed your name, please send us a mail and we will add you).

The Pharo Team

Try Pharo: http://pharo.org/download
Learn Pharo: http://pharo.org/documentation

[ANN] SETT (Store Export to Tonel Tools) for Pharo6.1

GemTalkSystems is pleased to announce SETT (Store Export to Tonel 
Tools)[1]. SETT is open source project with an MIT license.

SETT (Store Export to Tonel Tools) is a set of tools to export Smalltalk 
code from Store and
write into the Tonel file format managed using Git.

SETT is:

  * a Pharo 6.1 application, that
  * connects to a Postgres Database
  * containing source code history in VisualWorks Store format; and
  * writes to a Git repository
  * in Tonel format
  * maintaining all version history, source code and SCM metadata.

SETT was developed last year to support one of our commercial customers 
in their conversion From Store to Rowan[2]. Rowan artifacts are produced 
as part of the output of SETT, but the Rowan artifacts can be ignored. 
The important bit is that SETT converts from Store to Tonel and 
maintains version history in git.

Please see the project ReadMe[3] and Wiki[4] for additional details.


[1] https://github.com/GemTalk/SETT
[2] https://github.com/GemTalk/Rowan
[3] https://github.com/GemTalk/SETT#overview
[4] https://github.com/GemTalk/SETT/wiki