On 2014-11-24 23:34, Esteban Lorenzano wrote:
now, since the most common use of NB is for FFI, and NB is not present in all platforms, we are working (Ronie, in this case) in a “unified FFI”, which will provide a common abstraction layer for several FFI frameworks (NB, OldFFI, Alien…). With that, we can choose which one of the frameworks we use depending on the situation (but ideally, we will maintain just one, the one that fits better in Pharo).
I feel that providing a common abstraction layer on top of the various approaches to interface to C/ C++ libraries won't be useful and should be considered a waste of resources. From what I understood from the documentation, NativeBoost seems to be the most complete interface technology yet. I would rather (as in: If I was capable) try to get NativeBoost into Squeak and add the functionality missing that still justifies the existence of FFI and Alien than creating an abstraction layer that can't cope with the differences in the tools (which was the reason for their first creation despite the available ones).
I tried to play around with FFI and creating plugins in Squeak and failed (I didn't try very hard though). NativeBoost was the first thing I was able to wrap a DLL myself and understand how to do it. The only thing that I wasn't able to wrap my mind around was finalization, but that is also due to the fact that I couldn't find understandable (read: understandable to me) documentation about the underlying concept in Pharo.
(OT: Finalization and concurrency probably is more about the concept rather than the implementation in Pharo?)
This is a piece of opinion. We all know, that unfortunately, one doesn't have to have knowledge to have an opinion, so if my opinion is wrong due to lack of knowledge, please ignore it.
Best regards, Markus
