[Vm-dev] [Pharo-dev] Removing most of the windowing code
Tudor Girba
tudor at tudorgirba.com
Sat Nov 26 08:47:33 UTC 2016
+100.
Great job!
Doru
> On Nov 26, 2016, at 9:44 AM, stepharo <stepharo at free.fr> wrote:
>
> This is super coooooool
> Embedding the Vm as a static lib is a kind of dream becoming true.
>
> Stef
>
>
> 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/
--
www.tudorgirba.com
www.feenk.com
"Be rather willing to give than demanding to get."
More information about the Vm-dev
mailing list