Hi Clement,

Thanks for raising this question.

In short, Sparta is inspired from Athens and it has a similar structure. So, 
there is an in-image interface of the canvas, and there is a concrete 
implementation through the plugin (based on Moz2D). To target a completely 
in-image rendering, it is certainly possible to implement a BitBlt backend of 
the Sparta canvas. To implement this part, we would need help.

The goal is indeed to have only one canvas in the default Pharo distribution: 
Sparta. However, this will not happen suddenly. Ideally, when Pharo 6 will be 
released, there will be a beta version of Sparta + Bloc + some tools that will 
be loadable externally. Then my guess is that it will still take another year 
until we get the full development environment working on top of Sparta. So, it 
is to be expected that this transition will take at least 1.5 years during 
which time Athens will still provide the option of running on top of BitBlt.

Does this answer the concern?

But, now my question: Would it not be possible to get the VM to not open a 
window when in headless mode?

Cheers,
Doru

> On Oct 21, 2016, at 2:23 PM, Clément Bera <bera.clem...@gmail.com> wrote:
> 
> 
> 
> On Thu, Oct 20, 2016 at 9:07 AM, Aliaksei Syrel <alex.sy...@gmail.com> wrote:
> Hi Stéphane
> 
> Indeed, build is broken :)
> Yesterday I took a very brief look at bloc and can confirm that development 
> version is loadable in Pharo 6 and is completely Sparta based. (all examples 
> work for me)
> 
> You are right, live environment on embedded systems is great goal to achieve. 
> Sparta must not prevent pharo from getting there. It is true that plugin is 
> relatively big (windows 7mb, osx 15mb, linux 18mb). However, it is all-in-one 
> build and size can be reduced dramatically.
> 
> As I understand, Pharo for PC should not make any assumptions about user's 
> hardware. If gpu accelerated backend can not be used there should be still a 
> performant fallback backend which also needs a fallback that is guaranteed to 
> work even on Personal Calculators. (Taschenrechner). That is why library is 
> so big. For example for mac and windows Sparta is shipped with 3 (!) backends 
> that together build fallback chain, for instance on windows: direct2d1.1, 
> skia, cairo. Compiling library for mac without Skia reduces binary size from 
> 15mb to 10mb. Removing GL package and leaving only software backends may 
> reduce size even more.
> 
> It is a bit different on embedded systems, since hardware configuration is 
> already known and there is no need to have so many fallback backends. Library 
> itself allows developers to add new exotic backends quite easily.
> 
> Let's take Pharo6 for mac. It is shipped with the following libs:
> Cairo (1.4mb) + Pixman (2.8mb) + Freetype (0.8mb) = 5mb
> 
> Moz2D is self contained and does not require any additional libs.
> Moz2D = 15mb, Moz2D without Skia = 10mb. Moz2D without Skia and GL = ? 
> (estimate around 6-7mb).
> 
> As you can see we get almost the same numbers :)
> 
> Yeah but none of the libs (Cairo, Pixman, FreeType) are required to run 
> Pharo, they're required only if you use them. I compile VMs without such 
> libraires and Pharo works just fine as a development environment and for 
> simple things like web servers. The Squeak VM for example have around 2Mb 
> footprint in total, including 1Mb for the C runtime (initialized and 
> uninitialized data, executable code) and 1 Mb for the machine code zone and 
> can run most Pharo features just fine, including for examples web services 
> and the IDE. 
> 
> Right now the VM cannot start completely headless, the headless mode just 
> hides the main window, so if the main window start-up depends on Sparta, it's 
> not possible to run Pharo headless without many Mb of memory footprint.
> 
> Which leads the first question...
> 
> >> Is it possible to start your Bloc Pharo image on a 2Mb footprint VM ? By 
> >> asking this question, I imply, if there is no Cairo/Pixman/FreeType/Sparta 
> >> plugin, can the image run headless and can it run UI applications ? 
> 
> The last problem is that Pharo can currently run UI application like the IDE 
> on a 2Mb memory footprint VM. Let's assume Pharo with Bloc/Sparta/etc. can be 
> run either headless on a 2Mb memory footprint VM or with a UI on a 7Mb+ 
> memory footprint VM. It means now people doing UI would need extra memory, 
> for example, in the case of android deployment where the android app includes 
> the VM and the image, the app memory consumption at runtime would be at least 
> 5Mb bigger. 
> 
> >> Is the community ok with this or will we need to maintain both the Sparta 
> >> back-end and a Bloc to BitBlt back-end as a fall-back to run on smaller 
> >> VMs ?
> 
> 
> Cheers
> Alex
> 
> On Oct 19, 2016 22:16, "stepharo" <steph...@free.fr> wrote:
> Hi Aliaksei
> 
> It looks gorgeous. 
> I tried to launch the Bloc image from the CI and it crashes during startup on 
> my mac. I reported that to Glenn and Alain but so far I simply cannot see 
> Bloc code. Is it working for you? I mean is it me that is using the wrong VM.
> 
> Then I have a question:
> 
>     - do you think that we can have a fallback in terms of back end for the 
> case where we could like to run Pharo on coffee machines but get a live 
> environment on such machines? This is related to the discussions we got this 
> summer about the memory footprint that Moz2D will put on us. 
> 
> I do not mean that we must have one but I think that this is important to 
> check because we can say that Pharo is small but if we need 20 mb libraries 
> for rendering there are some cases where this can kill its usage. 
> 
> Stef
> 
> Le 19/10/16 à 18:06, Aliaksei Syrel a écrit :
>> Hi
>> 
>> I am happy to announce the release of Sparta v1.1 for Pharo 6.
>> https://github.com/syrel/Sparta/tree/v1.1
>> 
>> It can be bootstrapped with the following script:
>> 
>> Metacello new
>> 
>>   
>> baseline: 'Sparta'
>> ;
>>   
>> repository: 'github://syrel/sparta:v1.1/src'
>> ;
>>   
>> load: #file:core
>> Examples are on class side of: MozExamples, MozTextExamples
>> (for linux users: if you use 32bit pharo on 64bit linux, sparta will not 
>> work, since 32bit plugin depends on 32bit GTK which conflicts with 64bit 
>> GTK. Either use 32bit linux or 64bit pharo. I tested sparta with 64bit vm on 
>> mac and linux - it works, but some features fail because FFI is not ready)
>> Release of v1.1 is focused on hardware acceleration, windows support and 
>> text rendering.
>> What is new:
>>  - Default backends on all platforms changed from software to hardware 
>> accelerated.
>>  - Now also works on Windows! Default backend is Direct2D for drawings and 
>> DirectWrite for text. On multi-gpu machines per-app-default setting is 
>> respected. In case of Nvidia it can be changed in nvidia control panel. 
>> Sparta is x2 faster on discrete gpu than on integrated one.
>>  - Added initial text support, for instance rendering and high precision 
>> measurement.
>>  - Per-platform settings system is now image based. Allows to enable/disable 
>> hardware acceleration, change default backends, change font-mappings tables.
>> Some text examples:
>> (rendering)
>> <Mail Attachment.png>
>> (measurement)
>> <Mail Attachment.png>
>> Cheers,
>> Alex

--
www.tudorgirba.com
www.feenk.com

"There are no old things, there are only old ways of looking at them."





Reply via email to