Dear happy Pharoers,
First we wish you a good 2021 year. We really hope
that we will get out of this situation.
On the Pharo side we have excellent news.
Pharo
90 is continuing to follow its roadmap and it will be another
version a massive amount of
improvements.
We will mention them in the Pharo 90 announce but we can cite
a few: Spec2, new tools, new debugger framework,
better
parser, general speedup, new optimisations, full block and
clean block closures, support for large images, new fluid
class syntax, ...
The
key and important advance is that the VM roadmap is
delivering. We have been working on the implementation of a
MIT-licensed ARMv8
Just-In-Time
compiler for Pharo VM. We are very happy with the advance
on this subject, as we have not only implemented a new
backend but we
added
more than 2500 tests to the JIT, the primitives, code
generation, plugins and the VM in general. In the process we
fixed many problems.
We
are currently fixing ephemerons since they never really worked
in Pharo. We are stressing the infrastructure with more than
50000
ephemerons.
Also, we are improving and cleaning up the primitive
invocation scheme to fix heap corruption issues, and fixing
many open issues in the VM.
Finally,
we are working a lot to have a reproducible build in all the
platforms and easing the path to VM development,
we
are still far from our objective but the improvements are
starting to show.
We are happy that following the roadmap that was
decided during General assembly of PharoDays is successful.
We have been investing in the Pharo VM and that
our efforts are greatly paying off.
This is the current status around the VM
-
We implemented a full backend for the JIT compiler targeting
ARMv8 (AARCH64)
-
We launched the beta version for Windows, Linux and raspberry
of the new 64 JIT ARM.
-
We are waiting to receive a new mac machine to be able to test
our new JIT on it.
-
All the image side was adapted to run on it, tested on Ubuntu
ARM 64 bits and Windows ARM.
-
We have support for all third party libraries in these
platforms: Iceberg (Libgit) / Athens (Cairo) / SDL / GTK.
-
We implemented a LibFFI-based FFI backend as the default one
for Pharo 9 in aarch64 (It is also present in other platforms,
keeping the existing one as fallback, e.g. used when the VM is
not the latest).
-
We revisited the complete compilation chain on Windows to use
CMake and avoid Cigwin dependency.
-
We are starting to use OBS to build for multiple Unix and
Linux distributions (Debian-like is Done, More distributios to
come).
-
Many bugs on the VM have been fixed, for all these bugs tests
have been written to detect regressions and to to document the
solution.
-
We are always performing clean-ups of the VM base code:
removing dead-code and experiments from the main branch. All
removed code is kept in the history and it is accessible to
revisit or to improve to the level that is required to be
integrated (e.g., Newspeak Support, Lowcode)
-
We improved the implementation of Windows Network primitives,
and we have done a clean-up of the event handling code
allowing an IDLE VM.
-
We are starting to improve the JIT compiler. We are applying
some approaches developed in modern compiler such as bloc
representation.
-
We are working in statistics collection to characterize the
behavior of different components of the VM.
-
We are planning to generate a set of benchmarks that correctly
represents the workload of applications using the VM (e.g, Web
Server, Interactive Applications, FFI intensive applications).
It means that in the near future we expect to be
able to improve even more our VM applying a scientific
approach: measure, assess, improve.
-
We expect that for Pharo 10, we will continue to clean the VM
code and be more agile.
-
We will able to look again at Sista.
All these steps show that we are in much better
situation. We drastically reduce the truck factor around the
VM.
It particularly means that the consortium now does
not depend of the good will and knowledge of other people.
We want to thank every member of the consortium.
Now we have a particular thank to Lifeware that
renewed their contract and Schmidt Buro for their original
contract.
A last word — do not hesitate to contact us, we
are here to help you growing your business.
S. Ducasse on the behalf of the Pharo consortium