Sounds like it's possible to call into TensorFlow (Python) from Pharo. That would give Pharo a tremendous boost for machine learning applications.
Am I right? kilon.alios wrote > Maybe you talk about TalkFFI which aumatically wrapped C libraries for > Pharo and i think Squeak as well but used Nativeboos, i think > > http://forum.world.st/TalkFFI-automatic-FFI-generation-for-Pharo-td4662239.html > > On the subject of Fortran yes you can use UFFI if Fortran code is compiled > as a DLL (or equivelant non Windoom OSes) > > https://software.intel.com/en-us/node/535305 > > Dynamic Library format are not exclusive to C for generation , many > languages can generate them so even though UFFI is used predominatly for C > any language that can generate a DLL without any name mangling should be > accessible via UFFI. > > if DLL generation is not possible, then you can drop down to my solution > of > Shared Memory Mapped Files. Which means you make an executable in Frotran > (or any other language) that contains the code you want to access and > creates a shared memory region and you can access that region from Pharo > via UFFI. > > This is how I built my CPPBridge project. Which one can use as a template > for generating similar bridge for Fortran or any other language where the > generation of DLLs is not practical or possible. > > The shared memory region can be used also as a means of communication > additional to sharing live state, memory mapped files automatically save > the live state so next time you open the file it behaves as you would > expect a Pharo image to behave by restoring the live state. A means to > extend Pharo image to include memory not managed by the VM. > > Because memory mapped files is mechanism of the OS Kernel and is also the > mechanism used for the loading of dynamic libraries like DLLs there is > also > no loss of performance and is the fastest way of communication between > languages, libraries and applications. > > So yes using Fortran code is possible via UFFI in more than one way. > > But in the end it should be noted here that because IPC mechanisms (common > way of using libraries from other languages) are based on core OS > functionality like , memory managment, sockets , pipes, etc its not hard > to > use libraries from any language from inside any language. > > So Pharo can use Fortran libraries and Fortran can use Pharo libraries, > its > also possible to retain live coding even when executing code written in > another language through various means. Recently I was succesful in making > Python into a basic live coding enviroment , meaning code that when > changed > in the source file it updates also existing live intances as you expect in > Pharo. Python also supports memory mapped files so its possible to create > a > joined live coding enviroment and live image that containes both Pharo and > Python bytecode. Of course without touching VM source code. > > Even though live state is not tricky to retain for compiled languages, > live > code can be a bit trickier to do but still not impossible or that hard as > most would assume. > > Sky is the limit. > > Bottom line is that if you have a favorite library in any language you can > use it from inside Pharo with at worst a few hundrend lines of setup code > you can create as a library and of coure reuse next time you want to use > again a library from another language without having to write a line of > additional code. The technology is available is just a matter of learning > how to use it. Especially if its a very large libraries it will be > thousands times easier than trying to replicate the functionality in > Pharo. > > > > On Fri, Oct 27, 2017 at 6:26 PM Sean P. DeNigris < > sean@ > > > wrote: > >> Ben Coman wrote >> > it seems to hint how to do it from Pharo UFFI. >> >> Slightly OT: I remember years ago, someone (Dave Mason?) demoed a library >> which automatically created FFI wrappers for C libs. I never heard >> anything >> about it after that, which is sad, because I was amazed and wanted to use >> it! >> >> >> >> ----- >> Cheers, >> Sean >> -- >> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html >> >> -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html