guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ffi-helper: looking for C libraries to try


From: Matt Wette
Subject: Re: ffi-helper: looking for C libraries to try
Date: Sat, 15 Jul 2017 05:42:33 -0700

> On Jul 15, 2017, at 5:37 AM, Matt Wette <address@hidden> wrote:
> 
> 
>> On Jul 15, 2017, at 1:24 AM, Amirouche <address@hidden> wrote:
>> 
>> 
>> 
>> Le 15/07/2017 à 06:35, Matt Wette a écrit :
>>>> On Jul 14, 2017, at 5:44 PM, Amirouche Boubekki <address@hidden> wrote:
>>>> 
>>>> On 2017-07-15 01:17, Matt Wette wrote:
>>>>>  I tried git2 but those headers are too
>>>>> broken.
>>>> What do you mean by "too broken"? Maybe it will be easier in the long run 
>>>> to maintain our own version of the headers than manually bind everything. 
>>>> Even if it requires to create a shim layer in scheme to have a proper set 
>>>> of bindings that schemer will enjoy. Also, git is a good candidate since 
>>>> there are some tests already in guile-git [1].
>>> Maybe another bug in my CPP.
>>> 
>>> (define-ffi-module (libgit2)
>>>  #:include '("git2.h")
>>>  #:inc-dirs '("/opt/local/include")
>>>  #:library '("git2")
>>>  )
>>> 
>>> mwette$ guild compile-ffi libgit2.ffi
>>> (unknown):1: not found: “common.h"
>>> 
>>> 
>> With the following .ffi file:
>> 
>> (define-ffi-module (libgit2)
>> #:include '("git2.h")
>> #:inc-dirs '("/usr/include" "/usr/include/git2" 
>> "/usr/include/x86_64-linux-gnu/"  "/usr/include/linux/")
>> #:library '("git2")
>> )
>> 
>> I now have the following output:
>> 
>> $ guild compile-ffi libgit2/libgit2.ffi
>> TODO: compile-ffi args, arrays, extern variables
>> (unknown):1: parse failed at state 59, on input "__attribute__"
>> (unknown):1: C99 parse error
>> 
> 
> No surprise that it doesn’t work right now on non-Mac.  Add  #:inc-help 
> ‘((“__builtin” “__attribute__(X)=“))
> 
> My goal is release something that works in October 2017.  That may be an 
> ambitious goal.
> 
> Matt

When I created the C parser, I tried to put in hooks that would help avoid the 
highly system-dependent, compiler-dependent rat’s nest under /usr/include.  
With the FFI I will probably not be able to avoid /usr/include.  So, I will 
likely have to deal with passing flags from guild down to the translator in 
order to deal with these things.  In addition, the Mac has non-standard 
features like int foo() adm(“foo”);

Matt




reply via email to

[Prev in Thread] Current Thread [Next in Thread]