Skip to content

PharoVM Versions

Guille Polito edited this page May 31, 2024 · 14 revisions

Headless vs headfull

Traditionally, the Pharo VM used to drive the opening of the UI, the rendering, and the event handling. For a couple of years already, that support was moved as normal Pharo code using FFI, and the code has been removed from the VM. This allows a cleaner VM focusing on "VM concerns" (execution, GC, FFI...).

In Pharo, opening or not the window with the IDE is driven with the --interactive command line argument expected by the image.

$ pharo-vm-exe [VM Options] MyImage.image --interactive [Other Image Options]

Shipped VM

Notice that the VM that we ship sends the --interactive argument by default to the image. This behaviour, controllable at build time, has been chosen for backward compatibility because people expect to double-click the VM and have a window opening ^^.

This means that the following command will behave as if it is interactive:

$ pharo-vm-exe [VM Options] MyImage.image [Other Image Options]

Conversely, the VM flag --headless flag prevents this behavior (the VM does not send the --interactive flag to the image)

$ pharo-vm-exe --headless [Other VM Options] MyImage.image [Other Image Options]
Clone this wiki locally