Thanks vincent. is it the comment of some classes? Stef On Wed, Jan 31, 2018 at 3:12 AM, <Vincent.Blondeau@lamresearch.com> wrote:
Hi,
So, I suggest this solution: https://github.com/pharo-project/pharo/pull/750
It is a plugin for the OpalCompiler that can be activated with the command "FFICompilerPlugin install." The plugin is pragma-based to detect the methods where the arguments names should be remembered. The pragma should be added in the FFI API methods, i.e., the methods that are called by the FFI methods where the arguments have to be remembered. Example:
This FFI method should remember the name of the argument named "config":
repository_config: config ^ self call: #(#LGitReturnCodeEnum #git_repository_config #(#LGitConfig #* #config #, #self)) options: #()
So, the FFI function should wear the pragma <ffiCalloutTranslator>:
call: fnSpec options: options <ffiCalloutTranslator> ^ (self safeFFICalloutIn: thisContext sender) cdecl; options: options; function: fnSpec module: self ffiLibraryName
To remove to be able to remove the sources (.changes and .sources), you only have to activate the plugin, no recompilation is necessary. You can even import new FFI methods or change the FFI API.
N.B: Users that redefine the FFI API (like TLGitCalloutTrait >> call:options:) also have to wear the pragma.
Cheers, Vincent
-----Original Message----- From: Pharo-dev [mailto:pharo-dev-bounces@lists.pharo.org] On Behalf Of Stephane Ducasse Sent: Wednesday, January 24, 2018 9:21 To: Pharo Development List <pharo-dev@lists.pharo.org> Subject: Re: [Pharo-dev] FFI without the Pharo sources
So if you implement a cool solution we will integrate it immediately :)
On Wed, Jan 24, 2018 at 6:20 PM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Thanks Vincent we are interested to make the independence on source much simpler.
Stef
On Wed, Jan 24, 2018 at 5:09 PM, Eliot Miranda <eliot.miranda@gmail.com> wrote:
Hi Vincent,
On Jan 23, 2018, at 4:54 PM, <Vincent.Blondeau@lamresearch.com> <Vincent.Blondeau@lamresearch.com> wrote:
Hi,
I am working to be able to create some standalone apps in Pharo. And for this, I would like to remove of the .sources and .changes. But, by removing them, the args names are reset to arg1, arg2, arg3, ... and the FFI cannot be used anymore.
Does someone (Esteban?) have a solution that I could implement to fix this issue?
One avenue that should be easy to implement would be to modify the compiler to save the temporary names as a property of the method.
Thanks!
Vincent
_,,,^..^,,,_ (phone)