-
Notifications
You must be signed in to change notification settings - Fork 284
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
Use the stable stdx-allocator DUB package #1983
Conversation
Like! Thx @wilzbach |
Thanks! 2.072 and 2.073 still fail with
And we need to make a Meson package for |
bdbe940
to
2f27cb4
Compare
CC @ximion When I try to build the vibe-d package locally with
Which is weird, because it detects that it needs the package and clones it correctly. |
You did hit one of the dumbest Meson bugs: It Meson is unable to configure a subproject, it will throw a "Project not found" issue instead of telling you what the actual problem is. The stdx-allocator Meson build file looks good to me, all you need for Vibe is adding a wrap file like https://github.com/vibe-d/vibe.d/blob/master/lib/subprojects/diet.wrap and reference it like https://github.com/vibe-d/vibe.d/blob/master/meson.build#L58 - it also needs to be added to the dependency line of each target that uses it (like in https://github.com/vibe-d/vibe.d/blob/master/web/meson.build#L52 - I should probably have made a variable for this, so dependencies could be set globally). |
43f9712
to
1333e32
Compare
Hmm, it turns out that my problem was related to using Meson 0.43. When I downgraded to 0.42 everything worked fine.
Once I realized that I manually have to update all meson build files and add the @ximion As you are the sole user of this meson setup here, please let me know if Meson dependencies like I have used them here would work for you. Thanks. |
@wilzbach I found the cause for this issue by luck when reporting a - what I initially thought - different request to Meson. See mesonbuild/meson#2719 - depending on what the outcome of that discussion there is we might need to change the directory of the .wrap files to some toplevel dir if that is okay with @s-ludwig. On the Meson file changes: They look good, and this is the way this should have been done initially. Thank you very much for doing all that work! :-) |
version: project_version, | ||
soversion: project_soversion | ||
) | ||
pkgc.generate(name: 'vibe-core', | ||
libraries: [vibe_core_lib] + core_link_with, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should instead gain a requires: ['vibe-utils', 'vibe-data']
line to ensure that if someone links a project with vibe-core, those two get linked to as well (since pretty much all of vibe-core depends on utils and data in its public routines).
This applies to all of these instances.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok. Done for all meson files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot! I haven't tested this yet, but the Meson files themselves look fine to me, even much better than before :-)
http/meson.build
Outdated
vibe_inet_dep, | ||
vibe_tls_dep, | ||
vibe_crypto_dep, | ||
diet_dep], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Formatting got weird, in a couple of other occasions below as well.
1333e32
to
6887cca
Compare
Thanks a lot for looking into this!
Thanks! If we already talk about Meson there are two things that I find rather irritating:
|
This in a way is the "fault" of D's feature of embedding unittests. In any other language, especially C/C++ you will compile dedicated binaries which contain the tests, which can then be installed to some places and run as self-tests or just be run upon a
Yes, that's what I would suggest as well. The dependencies line for all of these could be put into a variable and just be reused. AFAIK there is no other way to do this at the moment. Btw, a small summary on how to use D with Meson exists for a while now: http://mesonbuild.com/D.html |
Btw the vibe-core failures will be fixed by vibe-d/vibe-core#43, otherwise we are more or less green. |
6887cca
to
1b1593e
Compare
c212157
to
b2edc7f
Compare
@s-ludwig Is vibe-core ready, btw? In other words, should it get a Meson definition and should the libevent linkage dropped by default soon? (in Debian I am still building it with libevent, because I thought that was the recommended option back then) |
Okay so now it looks a lot better: Only DMD 2.071.1 and LDC 1.1.0 failing - as discussed at vibe-core, I removed those and hopefully now this PR finally gets green.
I use vibe-core for my projects actively and vibe-core had its 1.0.0 release this summer. For DUB the old |
Alrighty - finally everything is green :) |
Thanks a lot for moving forward with this! |
Yep, will do after the compatibility code PR is merged. And thanks again for your help with the allocator stuff! |
Available now on code.dlang.org. |
It's a good hint that developing in std.experimental is a worse choice than developing sth. as a dub package. |
As discussed before,
stdx-allocator
is a frozen version of std.experimental.allocator to avoid the frequent breakages.See also: dlang-community/discussions#27