Monthly Archives: July 2019

[ann] Smalltalk WebCamp day in Ghent

Hi Seaside users,

We are organising a Smalltalk WebCamp day in the Yesplan offices in Ghent on October 22nd.
The idea originated in the Seaside channel of the Pharo discord group. However, it’s not supposed to be Seaside only. All Smalltalkers doing web development, possibly involving other technologies on top of Smalltalk, are encouraged to join. Let’s meet and exchange ideas. The topics are to be determined, following the idea of an unconference [1], except that, for practical reasons, we will ask you to confirm your attendance beforehand.
More info to follow asap.
Save the date and respond already to the group if you are interested to attend.
Cheers
Johan

Tech Talk Video: How to contribute to Pharo

[ANN] GistBrowser-Pharo.

Interact with GitHub Gist on Pharo.
https://brackendev.github.io/GistBrowser-Pharo/

brackendev.github.io

Weekly digest… a way to understand activity around Pharo

What is nice with weekly digest is that you get a feel for the activity in Pharo (at least in its master branch) and on its core. Other activities often happen in separate projects (Spec2, Iceberg, …) and each of their commit contains a large set of improvements. Still these weekly digest are nice (especially since I was doing them manually in the past).

https://github.com/pharo-project/pharo/issues/3814

S.

Moldable IDE/Feenk with Pharo at CurryOn

Really nice talk with Pharo inside or outside 🙂

https://www.youtube.com/watch?v=Pot9GnHFOVU

Well done doru!

S.

[ann] GitBridge

Hi!

Today I released the v1 of a project I wanted to do since a long time:
GitBridge.

The goal of the project is to easily access external resources stored in
the git repository of the project and other information.

For more infos check the Quick start or documentation present at:
https://github.com/jecisc/GitBridge

When Monticello was the most common VCS usable with Pharo we stored a
lot of external resources in the image. Now we are able to store them
outside, get a lighter image and make it easier to edit and version them!

This can be useful to store test resources, CSS/JS files for web
applications, documentation, etc.

This can also be useful to get from the application some information
such as the current version of the application instead of hard-coding it
in a method to update at each release.

It implementation relies on Iceberg and the repositories registered in it.


Cyril Ferlicot
https://ferlicot.fr

[ann] Moose v7.0.0

Hello everyone!

I’m glad to announce the release of Moose v7.0.0.

I’ll explain the main changes since Moose 6.1 and what are the future
plans for Moose 8 in this mail.

* What changed?

In this version of Moose a lot of things changed from the meta model
management point of view. In Moose 6.1 we only had one big metamodel
build with inheritance to analyze all languages. This had a lot of
limits and a lot of work has been done to improve Moose on those weak
points.

In Moose 7, you can now have multiple meta-models independant from
each others. This mean that we will now have one meta model by parser.
We can also create simple meta-models for test purpose. Also those MM
are build by composing stateful traits instead of using inheritance.

On top of that we now also have the possibility to use generators to
manage meta-models. Instead of writing every classes by hand, we can
describe a meta-model in a generator and use it to generate the MM.
Then we can use it to regenerate it also.

Pavel, who did most of the work, wrote some documentation you can find
here: https://pavel-krivanek.github.io/famix/

There is still a lot of work to do to make it better but this will
come with Moose 8. The reason we release now is that in Moose 7 we
started to have split MM for Java, Pharo, and other languages, but we
still have a compatibility meta-model. The work needed to improve
Moose further will require to break the compatibility MM. Thus we are
releasing a stable version now with a compatibility MM and we will
work on a Moose 8 version where the compatibility MM will be removed.

* Workflow for bugfixes

Another change with Moose 6.1 is that now Moose is managed via Github.
This will allow use to do patches or minor releases in case the
community find bugs or need some new simple features in Moose 7 as
long as it only contains backward compatible changes.

* Plan for the next release

We already stated to work on Moose 8. We plan to work on multiple aspects:
– Improve the usability of the generator, especialy while regenerating MMs
– Update the Traits contained in Moose to build our MM. Currently,
they are a reproduction of what was in Moose 6.1 in order to get the
compatibility model. The goal is to remove all the hacks and get
cleaner traits.
– Start to build new tools to use the full power of this new version of Moose
– Fix bugs that will be discovered after such a big change

* How to get Moose 7

You can get Moose 7 in two ways. First is to install it in a Pharo 7 image:

“`
Metacello new
baseline: ‘Moose’;
repository: ‘github://moosetechnology/Moose:v7.x.x/src‘;
load.
“`

The second is to get it via the Pharo Launcher. It now has a Moose 7
entry to get this version and a Moose 8 entry to get the development
version.

We will also need to update Moose technology website.

* Credits

Thank to Pavel Krivanek who did most of the work.

Thank also to:
– Benoit Verhaeghe
– Julien Delplanque
– George Ganea
– Christopher Fuhrman
– Stephane Ducasse
– Anne Etien
– Nicolas Anquetil
– Cyril Ferlicot

And any other I might have forgot who participated in the development
of Moose 7 🙂


Cyril Ferlicot
https://ferlicot.fr

[ann] MessageFlowBrowser

Hi,

I updated my MessageFlowBrowser today to work on Pharo 7 and 8, see attached screenshot
or youtube video on https://www.youtube.com/watch?v=DRd_bzGocQg

It now also works in Calypso and you just need to right click on a method in the method
pane or code pane and select “Message Flow” close to Senders, Implementors and other.

You can load the tool using

Metacello new
repository: ‘github://astares/Pharo-MessageFlowBrowser/src‘;
baseline: ‘MessageFlowBrowser’;
load

I also now moved repo from

http://www.smalltalkhub.com/#!/~TorstenBergmann/MessageFlowBrowser

to the new location

https://github.com/astares/Pharo-MessageFlowBrowser

on GitHub for future development.

Have fun,
T.

[ANN] Pharo Launcher 1.9.1 released

Hi all,

We are pleased to announce Pharo Launcher 1.9.1 release!
The goal of this release is to have a better Windows support. Indeed Pharo Launcher now uses a new library OSWinSubprocess (https://github.com/pharo-contributions/OSWinSubprocess) created for Pharo Launcher needs. This library allows to create Windows processes through ffi calls to the Windows API. It uses the unicode api, allowing paths with non-ascii characters.
In the same time, we switched from OSProcess to  OSSubprocess (Linux and OS X) that is now the preferred library to use to fork processes on Linux-based systems.
This release is not yet the default download of Pharo Launcher on Pharo web site because we want more feedback before promoting it.
Please use this link to install it: https://files.pharo.org/pharo-launcher/1.9.1 and let us know if this version works fine/better for you.
ps: For now, the binary is not signed but it will come soon.
ps2: Thanks to Keldon Alleyne for his PR on Pharo Launcher offering the first FFI binding to Windows process API
Regards,
The Pharo team.

[ANN] OSWinSubprocess a library to spawn Windows System processes

Hi,
Pharo Launcher had stability problems to spawn new processes (launch Pharo images) on Windows as well as limitations (paths could only contain ASCII characters).
To solve this problem, we developed a new library: OSWinSubprocess (https://github.com/pharo-contributions/OSWinSubprocess) and decided to make it a standalone library so that people can use it if they need to.
We tried to use the same API as OSSubprocess when possible. This library uses the Windows API to create process from both 32-bit and 64-bit Pharo images. It also supports Unicode characters.
Here are some examples on how to use it:
process := OSWSWinProcess new 
		command: 'C:\Windows\notepad.exe';
		run.
...
process terminate.
OSWSWinProcess new 
		command: 'C:\Windows\notepad.exe';
		arguments: #('notepad.exe' 'C:\foo.txt');
		runAndWait.
Important note: As of now, this library does not yet support standard streams (stdin, stdout and stderr). It could be done by setting the appropriate information in the STARTUPINFO structutre.
You can check the README for more information.
Regards,
Christophe.