Guys - do keep pushing on this - I think its quite important in this world of 
serverless… it shows we are very relevant. +10

> On 7 Aug 2018, at 13:36, Esteban Lorenzano <esteba...@gmail.com> wrote:
> 
> I’m slowly working on that VM because we want it to be the default for Pharo 
> 8. 
> In our vision, it should be a responsibility of the image to start or not a 
> graphical UI, so we are preparing (we have been preparing to it for years, 
> actually) to achieve this behaviour. 
> To make this work, we need all platforms covered (and another huge quantity 
> of changes here and there). 
> Anyway, I didn’t merge because I wanted to have win64 covered, not just what 
> we have now, and since no-one was using that VM I didn’t feel pression to do 
> it :)
> 
> Cheers, 
> Esteban
> 
> 
>> On 7 Aug 2018, at 08:50, Norbert Hartl <norb...@hartl.name 
>> <mailto:norb...@hartl.name>> wrote:
>> 
>> What keeps you from doing a pull request to opensmalltalk-vm ?
>> 
>> Am 07.08.2018 um 07:47 schrieb Esteban Lorenzano <esteba...@gmail.com 
>> <mailto:esteba...@gmail.com>>:
>> 
>>> Hi Ben,
>>> 
>>> Sorry for coming here so late, I didn’t see this thread before. 
>>> I already have a working minheadless branch that was adapted to Eliot’s 
>>> process. 
>>> It was working for Pharo in Linux and Mac (Windows was ongoing but not 
>>> finished, that’s why is not pushed).
>>> 
>>> You can find this branch here: 
>>> 
>>> https://github.com/estebanlm/opensmalltalk-vm/tree/add-minheadless-vm 
>>> <https://github.com/estebanlm/opensmalltalk-vm/tree/add-minheadless-vm>
>>> 
>>> Interesting part is that I didn’t tackled any of the issues you are working 
>>> on, so the work is easily mergeable :) 
>>> 
>>> Cheers, 
>>> Esteban
>>> 
>>> Ps: with some changes in image, I’m using exclusively this VM since a 
>>> couple of months and it works fine.
>>> 
>>> 
>>>> On 7 Aug 2018, at 07:22, Ben Coman <b...@openinworld.com 
>>>> <mailto:b...@openinworld.com>> wrote:
>>>> 
>>>> On 7 August 2018 at 05:12, Eliot Miranda <eliot.mira...@gmail.com 
>>>> <mailto:eliot.mira...@gmail.com>> wrote:
>>>>  
>>>> Hi Ben, 
>>>> Feel free to make this edit and commit
>>>> 
>>>> I'm pushing changes here...
>>>> https://github.com/bencoman/opensmalltalk-vm/tree/MinimalisticHeadless-x64-msvc2017
>>>>  
>>>> <https://github.com/bencoman/opensmalltalk-vm/tree/MinimalisticHeadless-x64-msvc2017>
>>>> 
>>>> and the diff can be tracked here...
>>>> https://github.com/bencoman/opensmalltalk-vm/compare/MinimalisticHeadless...bencoman:MinimalisticHeadless-x64-msvc2017
>>>>  
>>>> <https://github.com/bencoman/opensmalltalk-vm/compare/MinimalisticHeadless...bencoman:MinimalisticHeadless-x64-msvc2017>
>>>> 
>>>> 
>>>> ------------------------
>>>> On 6 August 2018 at 13:22, Ben Coman <b...@openinworld.com 
>>>> <mailto:b...@openinworld.com>> wrote:
>>>> On 6 August 2018 at 11:50, Ben Coman <b...@openinworld.com 
>>>> <mailto:b...@openinworld.com>> wrote:
>>>> 
>>>> https://github.com/ronsaldo/opensmalltalk-vm/blob/be7b1c03/platforms/minheadless/windows/sqPlatformSpecific-Win32.c#L80
>>>>  
>>>> <https://github.com/ronsaldo/opensmalltalk-vm/blob/be7b1c03/platforms/minheadless/windows/sqPlatformSpecific-Win32.c#L80>
>>>>  typedef HRESULT WINAPI (*SetProcessDpiAwarenessFunctionPointer) (int 
>>>> awareness);
>>>>     C2059 sqPlatformSpecific-Win32.c:80 syntax error: '('
>>>>     E0651 a calling convention may not be followed by a nested declarator.
>>>> 
>>>> The following change reduces build errors to 1...
>>>>   typedef HRESULT (*SetProcessDpiAwarenessFunctionPointer) (int awareness);
>>>> 
>>>> but I'm not sure of the implications.
>>>> 
>>>> I found the correct solution to this...
>>>> "The trick is placing the [call declaration] inside the parentheses"
>>>> https://stackoverflow.com/questions/4830355/function-pointer-and-calling-convention
>>>>  
>>>> <https://stackoverflow.com/questions/4830355/function-pointer-and-calling-convention>
>>>> 
>>>> i.e. the following compiles cleanly
>>>> typedef HRESULT (WINAPI *SetProcessDpiAwarenessFunctionPointer) (int 
>>>> awareness); 
>>>> 
>>>> 
>>>> -----------------------------
>>>> Now running the VM (without parameters) I get...
>>>>    Debug Assertion Failed!
>>>>    Program: ...\x64-Debug\dist\pharo.exe
>>>>    File: minkernel\crts\ucrt\src\appcrt\tran\amd64\ieee.c 
>>>>    Line: 106
>>>>    Expression: (mask&~(_MCW_DN | _MCW_EM | _MCW_RC))==0
>>>> 
>>>> at the call to _controlfp(FPU_DEFAULT, _MCW_EM | _MCW_RC | _MCW_PC | 
>>>> _MCW_IC);
>>>> https://github.com/ronsaldo/opensmalltalk-vm/blob/be7b1c03/platforms/minheadless/windows/sqPlatformSpecific-Win32.c#L118
>>>>  
>>>> <https://github.com/ronsaldo/opensmalltalk-vm/blob/be7b1c03/platforms/minheadless/windows/sqPlatformSpecific-Win32.c#L118>
>>>> 
>>>> 
>>>> According to https://msdn.microsoft.com/en-us/library/e9b52ceh.aspx 
>>>> <https://msdn.microsoft.com/en-us/library/e9b52ceh.aspx>
>>>> x64 does not support _MCW_PC or _MCW_IC
>>>> but I'm clueless about the implications of these FPU flags.
>>>> Could our math guys please advise?
>>>> 
>>>> Eliminating those two flags allows a VM run successfully without loading 
>>>> an Image.
>>>> i.e. it successfully passes...
>>>>    osvm_initialize();
>>>>    osvm_parseCommandLineArguments(argc, argv);
>>>>    osvm_initializeVM();
>>>> 
>>>> Next is to try loading an Image.
>>>> 
>>>> cheers -ben
>>> 
> 

Reply via email to