[Vm-dev] [Pharo-dev] Removing most of the windowing code

stepharo stepharo at free.fr
Sat Nov 26 08:44:35 UTC 2016

This is super coooooool
Embedding the Vm as a static lib is a kind of dream becoming true.


> Hello,
> I am working on removing most of windowing code from the VM, and in  
> trying to unify the platform specific code of the VM. In the  
> MinimalistHeadless branch of  
> https://github.com/ronsaldo/>opensmalltalk-vm I made the following  
> changes:
> - Unified standard CMake building scripts for Unixes. I hate autoconf. I  
> want to use them in Windows too.
> - Refactoring the Unix entry points. I am trying to remove a lot of code  
> for simplfying stuff.
> - Null window driver for true headless.
> - Optional SDL2 based traditional display backend for compatibility  
> reasons, and because the extra Morphic worlds using OSWindow are a bit  
> unstable.
> So far I managed to run a standard Pharo 6 image using this custom VM in  
> Linux. Windows and Mac are coming next. Hopefully this is going to fix  
> the problems with duplicated events when using >OSWindow in Windows.
> I am also planning on making a standard interface for embedding the VM  
> in an application, at least as a static library. With this new building  
> system, this seems to be easy to do.
> BTW. When I tried the minimalistic Pharo image, in a completely headless  
> VM, I got the following error:
> [ "Ugh .... now this is a biggie - a system that does not support
>        any of the display depths at all."
> Smalltalk
>    logError:
>        'Fatal error: This system has no support for any display depth at  
> all.'
>    inContext: thisContext.
> Smalltalk quitPrimitive    "There is no way to continue from here" ] in  
> DisplayScreen>>findAnyDisplayDepth
> DisplayScreen>>findAnyDisplayDepthIfNone:
> DisplayScreen>>findAnyDisplayDepth
> DisplayScreen>>setExtent:depth:
> DisplayScreen class>>startUp
> As a workaround, I am doing the following for ioHasDisplayDepth with the  
> null driver:
> sqInt ioHasDisplayDepth(sqInt depth)
> {
>    return true;
> }
> In DisplayScreen class >> startUp we have the following:
> startUp  "DisplayScreen startUp"
>    Display setExtent: self actualScreenSize depth: Display nativeDepth.
>    Display beDisplay
> Does it make sense, to always trying to create a display in startup time?
> Best regards,
> Ronie

Using Opera's mail client: http://www.opera.com/mail/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20161126/92184a78/attachment.html>

More information about the Vm-dev mailing list