[Vm-dev] Minheadless VM flavour status update

Ronie Salgado roniesalg at gmail.com
Sat Dec 24 21:25:50 UTC 2016


Hi all,

I am happy to announce that my latest VM refactoring experiment is almost
complete. I am only missing adding traditional style Makefiles to make
Eliot happy ;), and making this work with MSVC.

The minheadless is a VM variant that unifies a lot of the code for Windows,
Linux and OS X. To the point that I am using the same CMake scripts for
building on the three platforms.

The minheadless VM is a completely headless by default VM, unless the
configure script finds SDL2.

If the configure script finds SDL2, and the legacy display interface is
enabled(which is by default), then this VM will be built using SDL2 to
implement the normal diplay primitives. The SDL2 backend work with normal
Pharo and Squeak image.

If SDL2  is not found by the configure script, or the legacy display
primitives are disabled in the configure script, or the VM is started in
headless mode, then the traditional display primitives are just going to be
a /dev/null.

Currently I am commiting this VM variant to the MinimalisticHeadless branch
at: https://github.com/ronsaldo/opensmalltalk-vm/tree/MinimalisticHeadless

For building using CMake it can be done in two ways:

------------------------------------
Calling CMake directly

mkdir build
cmake .. -DCMAKE_BUILD_TYPE=<The build type> (or cmake-gui ..)
make

The supported build types are:
- Debug
- Assert
- RelWithDebInfo
- Release

If you are on an x86_64 system and you want to build  32 bits version, you
have to pass the -DBUILD_I386_VERSION=True option to cmake.

mkdir build
cmake .. (or cmake-gui ..)
make

------------------------------------
Using mvm style scripts

Easy mode:

cd build.minheadless.cmake/<x86 or x64>/vm_variant
./mvm

A bit more complicated/flexible mode:

This mvm will configure and build the vm for the four build types. This
behavior was present on the mvm for Windows, so I am replicating it.

In these same folders that are two other scripts: mvm_configure (calls
cmake to only configure the build types), and mvm_configure_variant

mvm_configure_variant is used to actually call cmake and configure the VM
for building. The syntax of mvm_configure_variant is the following:

mvm_configure_variant <BuildDirectory> <BuildType>

Currently my workflow for using these scripts is the following with
MSys/Cygwin/Linux:

./mvm_configure
make -j8

The makefile at build.minheadless.cmake/<x86 or x64>/vm_variant is only
used for delegating to the makefiles created by CMake.

------------------------------------
I am leaving some prebuilt Pharo VMs with the SDL2 backend for Windows for
experimenting at: http://ronie.cl/files/vm/

Using OSWindow with this VM requires loading the latest version of OSWindow
by reloading the ConfigurationOfOSWindow manually in Monticello, and then
doing ConfigurationOfOSWindow load. With this VM, there are finally no more
duplicated events.

My TODO list for this includes adding plain Makefile. BTW: during the
following week I will continue working with Lowcode. I really need it
working again.

Happy longest/shortest day of the year
Ronie
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20161224/3055604b/attachment-0001.html>


More information about the Vm-dev mailing list