bindgen icon indicating copy to clipboard operation
bindgen copied to clipboard

Renewed maintenance of bindgen

Open docelic opened this issue 5 years ago • 19 comments

Hello @acoolstraw, @jreidinger , @kalinon , @lbguilherme , @ZaWertun

Stefan was kind to give me write access to the bindgen/qt5 repository. I would like to work on bindgen so that it builds again and runs tests successfully, and then to produce current/working Qt bindings.

Any interest or contributions from you would be much appreciated - either in the form of PRs or general comments/insights (possibly added to this thread or whatever is more appropriate).

Let's try to build a critical mass here so that we succeed in updating the Qt bindings.

(For example, reviewing your existing PRs or updating your forks to the latest version of bindgen so that it is easier to identify your own changes/improvements would be a great start, and we could coordinate from there.)

Also let's please keep any patches/PRs small and isolated so that they are easier to review and agree on.

Thanks!

docelic avatar May 07 '20 20:05 docelic

Yes. i have a fork that has some changes to improve the build system. Ill open a PR. I suggest you also run a crystal tool format on the repo. as it causes many formatting changes in the PRs to make it seem larger.

kalinon avatar May 07 '20 20:05 kalinon

Seems i already have a PR for formatting: #15

kalinon avatar May 07 '20 21:05 kalinon

Hello,

I'm delighted in the continued interest of my projects! My thanks go out to everyone who wants to help improve it! I'm sure with y'all on board they can shine again, now with a bus factor beyond 1 😅

I'll be back at some point (but not to pry away maintainership). Coding is fun, just have to sort a few other things out first.

Cheers!

Papierkorb avatar May 08 '20 08:05 Papierkorb

@ZaWertun's qt5.cr fork compiled smoothly until a point when it breaks. Someone told me a dependency is needed but they don't remember which one.

acoolstraw avatar May 08 '20 18:05 acoolstraw

I have also committed some changes to my fork, but so far I haven't been able to get it to work.

acoolstraw avatar May 08 '20 18:05 acoolstraw

@ZaWertun's qt5.cr fork compiled smoothly until a point when it breaks. Someone told me a dependency is needed but they don't remember which one.

Now with bindgen from my fork and qt5.cr from my fork I got this error (running qt5 samples):

$ crystal samples/hello_world.cr
Showing last frame. Use --error-trace for full trace.

In /usr/share/crystal/src/indexable.cr:26:16

 26 | abstract def unsafe_fetch(index : Int)
                   ^-----------
Error: abstract `def Indexable(T)#unsafe_fetch(index : Int)` must be implemented by Qt::Container_QList_qreal

ZaWertun avatar May 09 '20 11:05 ZaWertun

I think we need to focus on supporting specific LLVMs. At a minimum i think we should support the versions crystal itself supports. Right now Crystal only supports LLVM 8.0 (as far as i know). This will make the code base easier to maintain and simplify dependencies.

This also would make the management of clang versions easier as well, if we focus on using the LLVM included files.

Let me know if we need another issue for my question for further discussion.

kalinon avatar May 09 '20 13:05 kalinon

Hey, I've asked and the answer I got is that Crystal supports LLVM 6+, and that it would probably also work on latest too. But yes, the default binaries for download from Crystal's site appear to be built with 8 (crystal eval 'p ::Crystal::LLVM_VERSION').

docelic avatar May 09 '20 22:05 docelic

I think we need to focus on supporting specific LLVMs. At a minimum i think we should support the versions crystal itself supports. Right now Crystal only supports LLVM 8.0 (as far as i know). This will make the code base easier to maintain and simplify dependencies.

This also would make the management of clang versions easier as well, if we focus on using the LLVM included files.

Let me know if we need another issue for my question for further discussion.

You're not right. Crystal-0.34 supports llvm-10, you can check it in the changelog: https://github.com/crystal-lang/crystal/releases/tag/0.34.0.

ZaWertun avatar May 09 '20 22:05 ZaWertun

Good find. I went off of the published docs which must be behind. I'm also ok with supporting a range of versions, was just hoping to narrow it down.

On Sat, May 9, 2020 at 6:45 PM Yaroslav Sidlovsky [email protected] wrote:

I think we need to focus on supporting specific LLVMs. At a minimum i think we should support the versions crystal itself supports. Right now Crystal only supports LLVM 8.0 (as far as i know). This will make the code base easier to maintain and simplify dependencies.

This also would make the management of clang versions easier as well, if we focus on using the LLVM included files.

Let me know if we need another issue for my question for further discussion.

You're not right. Crystal-0.34 supports llvm-10, you can check it in the changelog: https://github.com/crystal-lang/crystal/releases/tag/0.34.0.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Papierkorb/bindgen/issues/23#issuecomment-626245335, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABK6J3DSFRUOYXMHBGMVFE3RQXMI3ANCNFSM4M3UHSKQ .

--

Holden Omans

kalinon avatar May 10 '20 01:05 kalinon

Maybe it would make sense to move this project to https://github.com/crystal-community? This could also increase visibility.

alexanderadam avatar May 12 '20 09:05 alexanderadam

Hey Alex , yeah possibly, @Papierkorb would be to decide on that. It seems we're close to having the specs for bindgen pass again, so that's very promising.

docelic avatar May 12 '20 14:05 docelic

Hey @ZaWertun @kalinon , with this last/latest commit I think we have something that works with Crystal 0.34 and passes specs out of the box in a good number of cases. Thanks for all your great contributions that made that happen!

docelic avatar May 15 '20 22:05 docelic

Awesome! Good work!

kalinon avatar May 16 '20 12:05 kalinon

YAY!

acoolstraw avatar May 17 '20 07:05 acoolstraw

I've just released 0.7.0 which we can use as the basis for working on qt5.cr now.

docelic avatar May 26 '20 23:05 docelic

Awesome! Seems the mongo lib was also abandoned. i may use bindgen to redo the bindings as well

kalinon avatar May 27 '20 17:05 kalinon

@docelic can we add some tags to the issues so we can easily identify bugs, enhancements, etc etc

kalinon avatar May 27 '20 17:05 kalinon

can we add some tags to the issues so we can easily identify bugs, enhancements, etc etc

Added.

docelic avatar May 27 '20 19:05 docelic