[Top][All Lists]

[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”);


reply via email to

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