> On Jul 14, 2017, at 9:35 PM, Matt Wette <matt.we...@gmail.com> wrote: > > >> On Jul 14, 2017, at 5:44 PM, Amirouche Boubekki <amirou...@hypermove.net> >> 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" >
I claim libgit2 headers are broken. The standard says, essentially, “how headers are located is implementation defined”. The file …/include/git2.h states: #include “git2/annotated_commit.h” #include “git2/common.h” … But the file include/git2/annotated_commit.h states: #include “common.h” Note this is “common.h" not “git2/common.h” How does gcc find common.h? The directory include/git2 is not in the include path. These are the ugly, undocumented, non-standard items that scare me.