This way cooler than expected. Lot of stuff already done. Great!
Norbert > Am 08.08.2019 um 09:53 schrieb "[hidden email]" <[hidden email]>: > > 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 > |
Free forum by Nabble | Edit this page |