Hello,
we have released a new version of the Pharo VM for Pharo 11. This VM is
accessible right now from Zero-Conf, updating it in the Pharo Launcher or
using the usual downloads (as described in pharo.org/download). OBS
packages are still in work and will come later.
This is the new VM that will be stable for Pharo 11 release, it is also
compatible with Pharo 10 images but it is not the default for Pharo 10.
It has a lot of changes and improvements, as it is the result of more than
a year and a half of improvements, clean-ups, and bug fixes.
Changelog v10.0.0
Slang (Smalltalk to C Translator)
Introducing a C AST to ease the generation of C Code
Having a Pretty Printer for C AST
Translation Tests
Fixing Translation Issues
Clear separation between Slang and VM code
Improving Cast generation
Clean Up:
Remove Old Bytecode Set
Remove Old Block Implementation
Simplification of the Primitives
Removing Unused / Old Code / Dead Code
Cleanup / Removal of Old Unused primitives
Removing Old FFI Implementation
Removing MT Experiment from the code base (Kept in own branch)
Fixing Compilation Warnings
Improving Type annotations to fix bugs in the translation / compilation
Removing Conditional Code on Old Configurations / Features
Renaming Concepts to be inline with Common terminology
Remove Newspeak, Multiple Bytecode and Old Memory Managers
Removing Unused Plugins
Tests
GNUification Tests
Tests for Math primitives including overflow and conversion testing.
Tests for comparison primitives (Equals / Not Equals / Less than / Less
or Equals / Greater Than / Greater or Equals)
Testing Primitives for objects Pinned in Memory
Testing Math Primitives for Immediate Classes (SmallFloats /
SmallIntegers)
Improving Simulation Infrastructure
Using Sista Bytecode in all Tests
Updating Unicorn version
Improving Machine Code emulation
Testing Image Read / Image Write
Using the same memory map in Tests and Execution
Testing Ephemerons
Become Primitives
Ephemeron
Fix for large ammounts
Make it available
Testing Signal Finalizations
Fixing Become Errors.
Fixing XRay Primitive
Single-Instruction Multiple-Data (SIMD) initial Support:
Initialization of new objects using SIMD (ARM64)
Adding Bytecode Extensions to support SIMD instructions
Adding Vector Registers
Vector Register bytecodes
Auto Localization of Interpreter loop variables and edge detection
simplifying development and minimizing code
ImageReader / ImageWriter reification needed for Permanent Space.
Improving the Memory Map of the VM (Using constant positions)
Dependencies Improvements
Thanks a lot, and any doubt please let us know.
Cheers,
Pablo on behalf of the whole Pharo team
--
Pablo Tesone.
tesonep@gmail.com
This is yet again an impressive list of good things. Always appreciated are "Remov*" features :)
I'm especially interested in ephemerons and how it improves the weak structures in the image. Hope the image support that makes use of the vm features follows soon.
A wish would be to know a bit more about the permanent space news.
Great work as always. Thanks!
Norbert
Am 01.03.2023 um 11:26 schrieb tesonep@gmail.com:
Hello,
we have released a new version of the Pharo VM for Pharo 11. This VM is accessible right now from Zero-Conf, updating it in the Pharo Launcher or using the usual downloads (as described in pharo.org/download http://pharo.org/download). OBS packages are still in work and will come later.
This is the new VM that will be stable for Pharo 11 release, it is also compatible with Pharo 10 images but it is not the default for Pharo 10.
It has a lot of changes and improvements, as it is the result of more than a year and a half of improvements, clean-ups, and bug fixes.
Changelog v10.0.0
Slang (Smalltalk to C Translator)
Introducing a C AST to ease the generation of C Code
Having a Pretty Printer for C AST
Translation Tests
Fixing Translation Issues
Clear separation between Slang and VM code
Improving Cast generation
Clean Up:
Remove Old Bytecode Set
Remove Old Block Implementation
Simplification of the Primitives
Removing Unused / Old Code / Dead Code
Cleanup / Removal of Old Unused primitives
Removing Old FFI Implementation
Removing MT Experiment from the code base (Kept in own branch)
Fixing Compilation Warnings
Improving Type annotations to fix bugs in the translation / compilation
Removing Conditional Code on Old Configurations / Features
Renaming Concepts to be inline with Common terminology
Remove Newspeak, Multiple Bytecode and Old Memory Managers
Removing Unused Plugins
Tests
GNUification Tests
Tests for Math primitives including overflow and conversion testing.
Tests for comparison primitives (Equals / Not Equals / Less than / Less or Equals / Greater Than / Greater or Equals)
Testing Primitives for objects Pinned in Memory
Testing Math Primitives for Immediate Classes (SmallFloats / SmallIntegers)
Improving Simulation Infrastructure
Using Sista Bytecode in all Tests
Updating Unicorn version
Improving Machine Code emulation
Testing Image Read / Image Write
Using the same memory map in Tests and Execution
Testing Ephemerons
Become Primitives
Ephemeron
Fix for large ammounts
Make it available
Testing Signal Finalizations
Fixing Become Errors.
Fixing XRay Primitive
Single-Instruction Multiple-Data (SIMD) initial Support:
Initialization of new objects using SIMD (ARM64)
Adding Bytecode Extensions to support SIMD instructions
Adding Vector Registers
Vector Register bytecodes
Auto Localization of Interpreter loop variables and edge detection simplifying development and minimizing code
ImageReader / ImageWriter reification needed for Permanent Space.
Improving the Memory Map of the VM (Using constant positions)
Dependencies Improvements
Thanks a lot, and any doubt please let us know.
Cheers,
Pablo on behalf of the whole Pharo team
--
Pablo Tesone.
tesonep@gmail.com mailto:tesonep@gmail.com
Congratulations on the new VM release!
Are there some reasons to skip this version as the default for Pharo 10
images? Or is it just not worth the effort, given the close release date of
Pharo 11?
I need to update our Pharo docker images and I want to understand if it's
better to wait for the Pharo 11 release.
On Wed, Mar 1, 2023 at 7:26 AM tesonep@gmail.com tesonep@gmail.com wrote:
Hello,
we have released a new version of the Pharo VM for Pharo 11. This VM is
accessible right now from Zero-Conf, updating it in the Pharo Launcher or
using the usual downloads (as described in pharo.org/download). OBS
packages are still in work and will come later.
This is the new VM that will be stable for Pharo 11 release, it is also
compatible with Pharo 10 images but it is not the default for Pharo 10.
It has a lot of changes and improvements, as it is the result of more than
a year and a half of improvements, clean-ups, and bug fixes.
Changelog v10.0.0
Slang (Smalltalk to C Translator)
Introducing a C AST to ease the generation of C Code
Having a Pretty Printer for C AST
Translation Tests
Fixing Translation Issues
Clear separation between Slang and VM code
Improving Cast generation
Clean Up:
Remove Old Bytecode Set
Remove Old Block Implementation
Simplification of the Primitives
Removing Unused / Old Code / Dead Code
Cleanup / Removal of Old Unused primitives
Removing Old FFI Implementation
Removing MT Experiment from the code base (Kept in own branch)
Fixing Compilation Warnings
Improving Type annotations to fix bugs in the translation / compilation
Removing Conditional Code on Old Configurations / Features
Renaming Concepts to be inline with Common terminology
Remove Newspeak, Multiple Bytecode and Old Memory Managers
Removing Unused Plugins
Tests
GNUification Tests
Tests for Math primitives including overflow and conversion testing.
Tests for comparison primitives (Equals / Not Equals / Less than / Less
or Equals / Greater Than / Greater or Equals)
Testing Primitives for objects Pinned in Memory
Testing Math Primitives for Immediate Classes (SmallFloats /
SmallIntegers)
Improving Simulation Infrastructure
Using Sista Bytecode in all Tests
Updating Unicorn version
Improving Machine Code emulation
Testing Image Read / Image Write
Using the same memory map in Tests and Execution
Testing Ephemerons
Become Primitives
Ephemeron
Fix for large ammounts
Make it available
Testing Signal Finalizations
Fixing Become Errors.
Fixing XRay Primitive
Single-Instruction Multiple-Data (SIMD) initial Support:
Initialization of new objects using SIMD (ARM64)
Adding Bytecode Extensions to support SIMD instructions
Adding Vector Registers
Vector Register bytecodes
Auto Localization of Interpreter loop variables and edge detection
simplifying development and minimizing code
ImageReader / ImageWriter reification needed for Permanent Space.
Improving the Memory Map of the VM (Using constant positions)
Dependencies Improvements
Thanks a lot, and any doubt please let us know.
Cheers,
Pablo on behalf of the whole Pharo team
--
Pablo Tesone.
tesonep@gmail.com
Norbert Hartl wrote:
I'm especially interested in ephemerons and how it improves the weak structures in the image. Hope the image support that makes use of the vm features follows soon.
+1. This has seemed to be just out of our grasp for so long. Are we “there yet” or close to completion?
PR has been green for two weeks waiting for a review
https://github.com/pharo-project/pharo/pull/12042
And the Phep was updated taking (almost) all comments into account
https://github.com/pharo-project/pheps/pull/19
:)
El 13 mar. 2023, a las 20:32, sean@clipperadams.com escribió:
Norbert Hartl wrote:
I'm especially interested in ephemerons and how it improves the weak structures in the image. Hope the image support that makes use of the vm features follows soon.
+1. This has seemed to be just out of our grasp for so long. Are we “there yet” or close to completion?