Status of Pharo VM for FreeBSD

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] Re: Status of Pharo VM for FreeBSD

EstebanLM

> On 06 Apr 2015, at 09:58, Andreas Wacknitz <[hidden email]> wrote:
>
>
> Am 06.04.15 09:51, schrieb Esteban Lorenzano:
>>> On 06 Apr 2015, at 09:41, Andreas Wacknitz <[hidden email]> wrote:
>>>
>>>
>>> Am 06.04.15 09:01, schrieb Esteban Lorenzano:
>>>> Hi,
>>>>
>>>> there is no real rationale :(
>>>> the reason why they are there now and not in their corresponding #defaultInternalPlugins or #defaultExternalPlugins is historic, configurations growth organically (we would need a refactor there).
>>> I fear not so many people could do that. I am scratching my head quite often while reading the code.
>>> BTW: PharoS is being used for Stack vm's so you should either find another abbreviation for Spur or choose the full name (that's what I would prefer).
>>> Otherwise it will get even harder in the future…
>> we plan to drop support for plain cog vm and replace it for spur… so Pharo and PharoS will be both spur VMs… no need to complicate things here.
> Ah, OK. So probably I should wait until this happened and everythings settled down.
> One more question regarding the future: I guess there will be Spur32 and Spur64 vm's, right?
> If so, what are the plans regarding NativeBoost? Will there be a 64 bit version, too? (Ok, that's more than one question :))

I’m working on a replacement that takes same syntax but uses regular FFI implementation instead ASM.
This will re-orientate our efforts into a common FFI strategy in all platforms and joint with Eliot work.
In that direction, there is some important work to speed up (with a new bytecode set and functions to FFI, Ronie and Eliot were working on it), plus a threaded ffi implementation, plus 64bits, plus ARM.
So, no need on reinvent the wheel here.
NB was important and a very good idea, but sadly we cannot maintain it as-is.

Esteban

>
> Regards
> Andreas
>
>>
>>>> at least: FT2Plugin and SqueakSSLPlugin should be in defaults (and in the future SDL2 too).
>>>>
>>>> for starting your build I suggest you to exclude all the additions (plugins and external libraries).
>>>> then add them one by one.
>>> I already have a running version from almost one year ago. This time I will try to get further (eg. NativeBoost) and want to enhance my documentation.
>>> But it is time consuming and I would like to spend my time with more interesting things (using Pharo :))
>> :)
>>
>>> Cheers,
>>> Andreas
>>>> cheers,
>>>> Esteban
>>>>
>>>>> On 06 Apr 2015, at 08:49, Andreas Wacknitz <[hidden email]> wrote:
>>>>>
>>>>>
>>>>> Am 03.04.15 17:31, schrieb Esteban Lorenzano:
>>>>>>>>> I have more questions but I am reluctant to disturb you further as you must be quite busy atm.
>>>>>>>> ask, I will answer when I can :)
>>>>> Hi Esteban,
>>>>>
>>>>> I am trying to understand the rationale behind PharoVMBuilder>>buildUnix32 (and similar methods like >>buildMacOSX32, >>buildFreeBSD32).
>>>>> How to determine which plugins and libraries to use?
>>>>>    Linux makes use of
>>>>>        PharoUnixConfig new
>>>>>        "generateForDebug;"
>>>>>        addExternalPlugins: #( FT2Plugin SqueakSSLPlugin SDL2DisplayPlugin );
>>>>>        addThirdpartyLibraries: #(
>>>>>            'libssh2'
>>>>>            'libgit2'
>>>>>            'libsdl2');
>>>>>
>>>>>    For FreeBSD it looks like this:
>>>>>        PharoFreeBSDConfig new
>>>>>        "generateForDebug;"
>>>>>        addExternalPlugins: #( SqueakSSLPlugin );
>>>>>        addInternalPlugins: #( UnixOSProcessPlugin  );
>>>>>        addThirdpartyLibraries: #(
>>>>>            'libssh2'
>>>>>            'libgit2' );
>>>>>
>>>>>    Mac OSX:
>>>>>        PharoOSXConfig new
>>>>>        "generateForDebug;"
>>>>>        addExternalPlugins: #( FT2Plugin SDL2DisplayPlugin );
>>>>>        addInternalPlugins: #( UnixOSProcessPlugin );
>>>>>        addThirdpartyLibraries: #(
>>>>>            'cairo'
>>>>>            'libgit2'
>>>>>            'libssh2'
>>>>>            'libsdl2');
>>>>>
>>>>>    Windows:
>>>>>        PharoWindowsConfig new
>>>>>        addExternalPlugins: #( FT2Plugin SqueakSSLPlugin );
>>>>>        addInternalPlugins: #( SDL2DisplayPlugin );
>>>>>        addThirdpartyLibraries: #(
>>>>>            'cairo'
>>>>>            'libssh2'
>>>>>            'libgit2'
>>>>>            'libsdl2');
>>>>>
>>>>> I assume that FreeBSD's configuration is not up-to-date (sdl2 and cairo not yet available?).
>>>>> Should I try to configure cairo, libssh2, libgit2 and libsdl2 libraries for openindiana, like it is done for Windows and MacOSX?
>>>>> Furthermore, should I try to configure SqueakSSLPlugin, FT2Plugin and SDL2DisplayPlugin as external plugins and UnixOSProcessPlugin as internal plugin?
>>>>>
>>>>> Regards
>>>>> Andreas
>>>>>
>


Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] Re: Status of Pharo VM for FreeBSD

EstebanLM

On 06 Apr 2015, at 10:08, Esteban Lorenzano <[hidden email]> wrote:


On 06 Apr 2015, at 09:58, Andreas Wacknitz <[hidden email]> wrote:


Am 06.04.15 09:51, schrieb Esteban Lorenzano:
On 06 Apr 2015, at 09:41, Andreas Wacknitz <[hidden email]> wrote:


Am 06.04.15 09:01, schrieb Esteban Lorenzano:
Hi,

there is no real rationale :(
the reason why they are there now and not in their corresponding #defaultInternalPlugins or #defaultExternalPlugins is historic, configurations growth organically (we would need a refactor there).
I fear not so many people could do that. I am scratching my head quite often while reading the code.
BTW: PharoS is being used for Stack vm's so you should either find another abbreviation for Spur or choose the full name (that's what I would prefer).
Otherwise it will get even harder in the future…
we plan to drop support for plain cog vm and replace it for spur… so Pharo and PharoS will be both spur VMs… no need to complicate things here.
Ah, OK. So probably I should wait until this happened and everythings settled down.
One more question regarding the future: I guess there will be Spur32 and Spur64 vm's, right?
If so, what are the plans regarding NativeBoost? Will there be a 64 bit version, too? (Ok, that's more than one question :))

I’m working on a replacement that takes same syntax but uses regular FFI implementation instead ASM. 
This will re-orientate our efforts into a common FFI strategy in all platforms and joint with Eliot work. 
In that direction, there is some important work to speed up (with a new bytecode set and functions to FFI, Ronie and Eliot were working on it), plus a threaded ffi implementation, plus 64bits, plus ARM. 
So, no need on reinvent the wheel here. 
NB was important and a very good idea, but sadly we cannot maintain it as-is. 
ah, in case it was not clear: the replacement will be backward-compatible so no need to be scared here :)



Esteban


Regards
Andreas


at least: FT2Plugin and SqueakSSLPlugin should be in defaults (and in the future SDL2 too).

for starting your build I suggest you to exclude all the additions (plugins and external libraries).
then add them one by one.
I already have a running version from almost one year ago. This time I will try to get further (eg. NativeBoost) and want to enhance my documentation.
But it is time consuming and I would like to spend my time with more interesting things (using Pharo :))
:)

Cheers,
Andreas
cheers,
Esteban

On 06 Apr 2015, at 08:49, Andreas Wacknitz <[hidden email]> wrote:


Am 03.04.15 17:31, schrieb Esteban Lorenzano:
I have more questions but I am reluctant to disturb you further as you must be quite busy atm.
ask, I will answer when I can :)
Hi Esteban,

I am trying to understand the rationale behind PharoVMBuilder>>buildUnix32 (and similar methods like >>buildMacOSX32, >>buildFreeBSD32).
How to determine which plugins and libraries to use?
  Linux makes use of
      PharoUnixConfig new
      "generateForDebug;"
      addExternalPlugins: #( FT2Plugin SqueakSSLPlugin SDL2DisplayPlugin );
      addThirdpartyLibraries: #(
          'libssh2'
          'libgit2'
          'libsdl2');

  For FreeBSD it looks like this:
      PharoFreeBSDConfig new
      "generateForDebug;"
      addExternalPlugins: #( SqueakSSLPlugin );
      addInternalPlugins: #( UnixOSProcessPlugin  );
      addThirdpartyLibraries: #(
          'libssh2'
          'libgit2' );

  Mac OSX:
      PharoOSXConfig new
      "generateForDebug;"
      addExternalPlugins: #( FT2Plugin SDL2DisplayPlugin );
      addInternalPlugins: #( UnixOSProcessPlugin );
      addThirdpartyLibraries: #(
          'cairo'
          'libgit2'
          'libssh2'
          'libsdl2');

  Windows:
      PharoWindowsConfig new
      addExternalPlugins: #( FT2Plugin SqueakSSLPlugin );
      addInternalPlugins: #( SDL2DisplayPlugin );
      addThirdpartyLibraries: #(
          'cairo'
          'libssh2'
          'libgit2'
          'libsdl2');

I assume that FreeBSD's configuration is not up-to-date (sdl2 and cairo not yet available?).
Should I try to configure cairo, libssh2, libgit2 and libsdl2 libraries for openindiana, like it is done for Windows and MacOSX?
Furthermore, should I try to configure SqueakSSLPlugin, FT2Plugin and SDL2DisplayPlugin as external plugins and UnixOSProcessPlugin as internal plugin?

Regards
Andreas

12