Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Renewed maintenance of bindgen #23

Open
docelic opened this issue May 7, 2020 · 19 comments
Open

Renewed maintenance of bindgen #23

docelic opened this issue May 7, 2020 · 19 comments

Comments

@docelic
Copy link
Collaborator

docelic commented May 7, 2020

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!

@kalinon
Copy link
Contributor

kalinon commented May 7, 2020

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
Copy link
Contributor

kalinon commented May 7, 2020

Seems i already have a PR for formatting: #15

@Papierkorb
Copy link
Owner

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!

@ZaWertun
Copy link
Contributor

ZaWertun commented May 9, 2020

@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

@kalinon
Copy link
Contributor

kalinon commented May 9, 2020

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.

@docelic
Copy link
Collaborator Author

docelic commented May 9, 2020

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').

@ZaWertun
Copy link
Contributor

ZaWertun commented May 9, 2020

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.

@kalinon
Copy link
Contributor

kalinon commented May 10, 2020 via email

@alexanderadam
Copy link

alexanderadam commented May 12, 2020

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

@docelic
Copy link
Collaborator Author

docelic commented May 12, 2020

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
Copy link
Collaborator Author

docelic commented May 15, 2020

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!

@kalinon
Copy link
Contributor

kalinon commented May 16, 2020

Awesome! Good work!

@docelic
Copy link
Collaborator Author

docelic commented May 26, 2020

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

@kalinon
Copy link
Contributor

kalinon commented May 27, 2020

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

@kalinon
Copy link
Contributor

kalinon commented May 27, 2020

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

@docelic
Copy link
Collaborator Author

docelic commented May 27, 2020

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

Added.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants
@docelic @alexanderadam @Papierkorb @ZaWertun @kalinon and others