Hi,


> On Aug 11, 2019, at 5:29 PM, ducasse <[email protected]> wrote:
> 
> 
> 
>> On 11 Aug 2019, at 13:19, Tudor Girba <[email protected]> wrote:
>> 
>> Excellent news!
>> 
>> I should say that for GT we are currently using the minheadlessVM (Ronie’s 
>> work) out of the opensmalltalk-vm repo 
>> (https://bintray.com/opensmalltalk/vm/cog) and it works remarkably well.
>> 
>> We started to play with your minheadlessVM. So far it looks like there are 
>> differences, although I am sure they are not large.
> 
> like what?

I do not know yet, but running GT in headless opens the window with the one 
from opensmalltalk-vm, but not with the new one. We did not yet look into 
details, but we will.

Cheers,
Doru


>> So, what is the difference between the minheadlessVM built by you versus the 
>> one from opensmalltalk-vm?
>> 
>> Cheers,
>> Doru
>> 
>> 
>>> On Aug 8, 2019, at 9:53 AM, [email protected] wrote:
>>> 
>>> TL;DR;
>>> ======
>>> 
>>> For the anxious, you can get real headless vm and image from zero-conf.
>>> 
>>> $ wget get.pharo.org/64/80+vmHeadlessLatest | bash
>>> 
>>> Zero conf scripts remain unchanged for users.
>>> 
>>> However, if you are launching the VM by hand from the executable
>>> instead of the launcher scripts (pharo and pharo-ui) as in
>>> 
>>> $ ./pharoexecutable Pharo.image
>>> 
>>> the image will launch in headless mode and will not open a window.
>>> To launch it in headfull, you can use the --interactive argument after
>>> the image, which will make the image open a window using SDL2.
>>> 
>>> $ ./pharoexecutable Pharo.image --interactive
>>> 
>>> Long version
>>> ============
>>> 
>>> Hi, this mail is the happy intermediate result of the work that us,
>>> the Pharo Consortium Team, has been doing in the last couple of
>>> months.
>>> Our main objective is to have a real headless implementation of Pharo
>>> where all the responsibility to open or not a World window (or other)
>>> is handled by the image.
>>> For doing so we have done a series of modifications in the image and
>>> the VM side.
>>> We consider this is the path that Pharo 8 and following versions
>>> should follow, as it will severely improve server-side and command
>>> line Pharo and in building custom desktop applications.
>>> 
>>> These modifications are available only in 64-bits machines (Windows,
>>> OSX, and Linux).
>>> ARM32 and 64bits headless is in the roadmap, but it is delayed because
>>> we have prioritized our three major platforms for this first couple of
>>> months.
>>> 
>>> All this work is based in Opensmalltalk-VM and Ronnie's initial work
>>> on headless.
>>> We are really grateful to all the contributors in the history of this
>>> nice product.
>>> To achieve a real headless VM we have brought modifications in the
>>> source tree because most of the platform code to open and manipulate
>>> windows is not required anymore.
>>> Instead, we use the SDL2 library that implements a nice layer on top
>>> of the OS and allows us to manage on the image side through FFI.
>>> 
>>> So this mail is now an open call for (beta?)testing.
>>> The sources of the current VM we are building are in the headless branch in
>>> https://github.com/pharo-project/opensmalltalk-vm
>>> And we have set up a CI that is both building and testing the VM in
>>> https://ci.inria.fr/pharo-ci-jenkins2/job/pharo-vm/job/headless/
>>> 
>>> For the future we have a lot of ideas, that will wait for another long
>>> email or a beer-talk @ESUG.
>>> We want to hear your ideas!!
>>> 
>>> Image-Side Improvements
>>> =======================
>>> 
>>> - The image handles the creation or not of the main world window.
>>> - We incorporated the idea of World renderer, where different backends
>>> are used to render the world.
>>> - We have 3 backends: VM support (compatibility with non-headless
>>> VMs), and OSWindow with two backends: SDL and GTK3+.
>>> - The modifications in the image are fully backward compatible with
>>> the non-headless VM and are pushed since weeks in the latest 8.0
>>> image.
>>> - We move the handling of events to the image side when using SDL and
>>> GTK3+, opening the door to a richer set of events and finer-grained
>>> control over them.
>>> - SDL and GTK versions are implemented using FFI calls.
>>> 
>>> VM-Side Improvements
>>> ====================
>>> 
>>> - VMMaker code migrated to Tonel thanks to Feenk and included in the
>>> repository of the VM.
>>> - Making VMMaker execute in Pharo 7 and 8.
>>> - Removing GPL code from the VM repository (GDB).
>>> 
>>> - Slowly adding new tests for the JIT / Slang and VMGeneration.
>>> - Restructuring of the source code.
>>> - A new simpler CMake build.
>>> - Generate VM code from Slang on each build.
>>> - A CI process to validate (including the run of the tests in Pharo
>>> and the ones adding to the VM).
>>> - Simplification of the codebase.
>>> 
>>> - Maximize the reuse of code between the platforms (preferring the
>>> standard versions over the platform-specific).
>>> - Cleaning up duplicated code.
>>> - All the plugins are now external plugins.
>>> - The VM is now a dynamic library. This is a first step towards
>>> embedding Pharo into other applications.
>>> - The main executable is a thin frontend (you can change it or
>>> implement your own).
>>> 
>>> - Removing unused plugins.
>>> - Improved crash dump. Especially the crash dump works now in Windows 
>>> 64bits.
>>> - Dummy implementation of Security plugin (it is going away.... eventually).
>>> - Cleanup of SSL, UUID, and Socket plugin.
>>> 
>>> - Cleanup of conditional code (Still to improve).
>>> - Improving the types used in the functions (we have to be neat to be
>>> multiplatform/multi-arch).
>>> - Improving the lookup of modules
>>> - Improving the logging of the VM
>>> - Improving the handling of VM arguments
>>> 
>>> 
>>> Thanks a lot for reading so long!!
>>> We hope you enjoy the VM and please tell us all the problems you find!!
>>> 
>>> Pablo, Guille, and Esteban
>>> 
>> 
>> --
>> feenk.com
>> 
>> "Being happy is a matter of choice."
>> 
>> 
>> 
>> 
>> 
>> 
>> 
> 
> 
> 

--
feenk.com

"Speaking louder won't make the point worthier."


Reply via email to