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."
