I wil merge the PR after the test ran a last time.

> On 31 Jan 2018, at 08:30, Vincent BLONDEAU 
> <vincent.blond...@polytech-lille.net> wrote:
> 
> 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