On Tuesday, September 20, 2016 at 1:05:39 PM UTC+2, Maxim Kupriianov wrote:
>
> Hi Markus, nice project! I must agree that the subject-specific bindings 
> will always be superior over the generic ones. Another good example of that 
> is https://github.com/therecipe/qt bindings with custom generator as well.
>

We tried to keep a lot of code generic so that we could make something like 
cgogen later on. You beat us to it :-) I would have loved to use something 
like cgogen but could not find anything related at that time.

Wow, github.com/therecipe/qt is huge.

As for LLVM, I'm trying to avoid using it for now, because that's a very 
> heavy dependency to have. Also that'd require rewriting more than half of 
> the current code. One day we may join our efforts working on a generic C 
> code transcriber, but that's another story.
>

The dependency is not that big, it is just libclang and some other 
libraries however it is not as portable as having a C parser written in Go. 
A rewrite at this point would not make sense for either projects. Honestly, 
if something like github.com/cznic/cc had existed when I started working 
with go-clang I would not have started the whole rewrite. Are you a 
maintainer of github.com/cznic/cc ? What is your opinion of the maturity of 
the project?

> Maybe we can find some inspiration from each others projects?
>
> I find the "ArrayNameFromLength" function curious, sadly things like that 
> are almost impossible in a generic context, even with YAML hints.
>

I think that something like "ArrayNameFromLength" should be seen as a 
"first automatic draft" for a binding. If the user sees that something is 
not generated as expected, the user should be able to overwrite the 
generators heuristics. That is what we did with go-clang/gen. However, I 
agree with your concern. Such heuristics suck, but I think they are better 
than having none.

Take a look onto my helper pipeline (gen_bindings.go), I used that approach 
> instead of using templates that are pure evil for generating code.
>

We used go/ast to generate most Go code which is complicated to use. 
However, I am pretty happy with the result and after some refactoring the 
whole generation would look rather easy. I did that for an internal project 
(I hope that I can open source parts of it) and this generic approach makes 
it easy to maintain generators for more than one language.

I definitely will study your code deeply because it's interesting indeed to 
> compare our approaches to the same problems.
> Feel free to reach me out :)
>

Looking forward to your changes :-) Contact me if you need any 
ideas/opinions.

I mentioned some concerns about cgogen here 
https://github.com/go-clang/design/issues/9 if you are interested. I can 
also over my help in setting up TravisCI and Coveralls, and making the 
whole repository more "go-ish". 

On Tue, Sep 20, 2016 at 1:23 PM, Markus Zimmermann <zim...@gmail.com 
> <javascript:>> wrote:
>
>> This looks pretty neat. We did something similar for 
>> https://github.com/go-clang/ The generator is here 
>> https://github.com/go-clang/gen and a resulting binding is here 
>> https://github.com/go-clang/v3.7 Maybe we can find some inspiration from 
>> each others projects? It would be also interesting to figure out how we 
>> could merge each efforts?
>>
>> Cheers,
>> Markus
>>
>> On Tuesday, September 20, 2016 at 10:19:14 AM UTC+2, Maxim Kupriianov 
>> wrote:
>>>
>>> Hello everyone, 
>>>
>>> today I'm glad to announce that after 3 months of full-time development 
>>> back in 2015 and after 1 year of part-time field testing and improvements 
>>> in 2016,
>>> an automatic CGo bindings generator for Golang is finally released to 
>>> the public. Visit https://cgogen.com
>>>
>>> Sources: http://github.com/xlab/cgogen
>>> Documentation: https://github.com/xlab/cgogen/wiki
>>>
>>> That is the same generator that brought us Go bindings for Android NDK, 
>>> Vulkan Graphics API, CMU PocketSphinx, ALAC and Ogg/Vorbis decoders, Pure 
>>> Data embeddable library, PortAudio and PortMIDI adapters. And bindings for 
>>> the libpvpx from WebM are on their way.
>>>
>>> I hope the project will be useful for the community and awaiting for the 
>>> feedback and issues.
>>> Good luck y all!
>>>
>>> --
>>> Max
>>>
>> -- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "golang-nuts" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/golang-nuts/3I7TzmEirbo/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> golang-nuts...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to