Now, yes it is. See FFICompilerPlugin :)

Vincent

-----Original Message-----
From: Pharo-dev [mailto:pharo-dev-boun...@lists.pharo.org] On Behalf Of 
Stephane Ducasse
Sent: mardi 30 janvier 2018 23:15
To: Pharo Development List
Subject: Re: [Pharo-dev] FFI without the Pharo sources

Thanks vincent.
is it the comment of some classes?

Stef

On Wed, Jan 31, 2018 at 3:12 AM,  <vincent.blond...@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-boun...@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.s...@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.mira...@gmail.com> 
>> wrote:
>>> Hi Vincent,
>>>
>>>> On Jan 23, 2018, at 4:54 PM, <vincent.blond...@lamresearch.com> 
>>>> <vincent.blond...@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)
>



Reply via email to