Yesterday, we tracked down a serious issue in 64 bit FFI. After giving up
with our own code, we made a fresh start with the latest base image and OSWindows. We were finally able to figure out what went wrong with two simple tests that were failing in 64 bit that worked correctly in 32 bit. FFIConstantHandleType externalType is the wrong size After confirming that and making it work, we were told that a number of FFI fixes were done by Nicolas and Eliot in Squeak that did not get integrated in Pharo. Applying the changes from the latest Squeak FFI resolved the problem, and a few that we were unaware of. Stephan |
That is awesome - great work chasing all of that!
Any idea of what kinds of things would have been impacted that we can all keep an eye out for or retest? Also, Is there anything useful we can add to our process to try and avoid this in the future? Tim Sent from my iPhone > On 21 Mar 2019, at 07:00, Stephan Eggermont <[hidden email]> wrote: > > Yesterday, we tracked down a serious issue in 64 bit FFI. After giving up > with our own code, we made a fresh start with the latest base image and > OSWindows. We were finally able to figure out what went wrong with two > simple tests that were failing in 64 bit that worked correctly in 32 bit. > > FFIConstantHandleType externalType is the wrong size > > After confirming that and making it work, we were told that a number of FFI > fixes were done by Nicolas and Eliot in Squeak that did not get integrated > in Pharo. Applying the changes from the latest Squeak FFI resolved the > problem, and a few that we were unaware of. > > Stephan > > > > |
> On 21 Mar 2019, at 13:46, Tim Mackinnon <[hidden email]> wrote: > > That is awesome - great work chasing all of that! > > Any idea of what kinds of things would have been impacted that we can all keep an eye out for or retest? > > Also, Is there anything useful we can add to our process to try and avoid this in the future? tests :) tests are the only way. >> On 21 Mar 2019, at 07:00, Stephan Eggermont <[hidden email]> wrote: >> >> Yesterday, we tracked down a serious issue in 64 bit FFI. After giving up >> with our own code, we made a fresh start with the latest base image and >> OSWindows. We were finally able to figure out what went wrong with two >> simple tests that were failing in 64 bit that worked correctly in 32 bit. >> >> FFIConstantHandleType externalType is the wrong size >> >> After confirming that and making it work, we were told that a number of FFI >> fixes were done by Nicolas and Eliot in Squeak that did not get integrated >> in Pharo. Applying the changes from the latest Squeak FFI resolved the >> problem, and a few that we were unaware of. >> >> Stephan >> >> >> >> > > |
In reply to this post by Stephan Eggermont-3
Hello Stefan
Can you report the exact call you were doing? I talked with G and Pablo and the bug they fixed is not the same. Now they would like to experiment and write tests for all the platform. Stef > On 21 Mar 2019, at 08:00, Stephan Eggermont <[hidden email]> wrote: > > Yesterday, we tracked down a serious issue in 64 bit FFI. After giving up > with our own code, we made a fresh start with the latest base image and > OSWindows. We were finally able to figure out what went wrong with two > simple tests that were failing in 64 bit that worked correctly in 32 bit. > > FFIConstantHandleType externalType is the wrong size > > After confirming that and making it work, we were told that a number of FFI > fixes were done by Nicolas and Eliot in Squeak that did not get integrated > in Pharo. Applying the changes from the latest Squeak FFI resolved the > problem, and a few that we were unaware of. > > Stephan > > > > |
ducasse <[hidden email]> wrote:
> Hello Stefan > > Can you report the exact call you were doing? > I talked with G and Pablo and the bug they fixed is not the same. > Now they would like to experiment and write tests for all the platform. BOOL GetExitCodeProcess( HANDLE hProcess, LPDWORD lpExitCode ); I was trying to get the exit code of a running process on windows. That didn’t work, so we started again with OSWindows on a clean Pharo 8. There we noticed that the currentProcess was not [ 255 255 255 255 255 255 255 255] but [ 255 255 255 255 0 0 0 0]. That (and the test being green in 32 bit) triggered the idea. We did a quick and dirty change to verify, and then found out that the Squeak code had cleaner fixes. Stephan |
Hi Stephan, Le jeu. 21 mars 2019 à 21:39, Stephan Eggermont <[hidden email]> a écrit : ducasse <[hidden email]> wrote: what are your mappings for BOOL, HANDLE and LPDWORD? Those are user defined types :)
|
Guillermo Polito <[hidden email]>
wrote: >> >> BOOL GetExitCodeProcess( >> HANDLE hProcess, >> LPDWORD lpExitCode >> ); >> > > what are your mappings for BOOL, HANDLE and LPDWORD? Those are user defined > types :) > I downloaded the stable version of OSWindows from the catalog Stephan |
Free forum by Nabble | Edit this page |