-
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
Force RAII to solve leaks on ubuntu - fixes #924 #1065
Conversation
It looks like build is failing because the curl dmd 2.067 download fails with error code 22 |
Hm, two questions:
|
Ok yes, a compatibility deprecation would do. I couldn't investigate further for lack of time, it looks like an edge case. I'm currently writing some high level tests to check new client/server features Both http/2 and botan are done now, but dmd32 goes out of memory on win64 :/ |
Yeah, 2.067 got a lot worse wrt memory use :( |
Wasn't there a flag or an option in dub to compile each file individually? |
Yes, |
Just tried that, looks like it's not an option. I get errors in every file regarding the Well now since openssl and botan don't go together, the dub json is going to be a little big: https://github.com/etcimon/vibe.d/blob/a5f43cfb2fb2db4fbc6a7007f1d8a8cf2b63f59e/dub.json The 32mscoff is necessary for windows, but the libs aren't included with the compiler. The DMD64 doesn't exist on windows. I won't know what to do with this branch after I'm done testing it |
Someone should write a little DEP to add "features" in addition to "configurations". But why do you need all of these? Couldn't you use platform suffixes instead?:
Also, why is 32-bit COFF needed? If there is no technical requirement, I'd leave that as a user decision. Same goes for |
I tried |
There's more than 32k symbols if you count in the botan library, so unfortunately OMF isn't an option |
Sorry, you are right about More than 32k symbols in botan alone? Shoudn't the individual packages each more or less have their own share of available symbols (except for template instantiations)? |
D doesn't have a pre-processor, so I ended up replacing all the ASM and SIMD code generation macros into CTFE functions. That stuff takes up so much symbol space it's hard not to cringe. e.g. https://github.com/etcimon/botan/blob/master/source/botan/hash/sha1_x86_64.d#L268
Yes, I just realized I can use However, for openssl/botan combinations I can't do much. |
Right, OpenSSL and Botan should both be handled by "features" rather than "configurations", but for now that should be ok. About Botan, would separating the library into multiple sub packages be an option or do the modules have too many interdependencies? |
I haven't looked into subpackages yet, but there's a lot of "version" tags that allows to start with a very light bare bone (sha256 gives me a 800kb exec), and you can add algorithms selectively. You can see the dub file here. I'm not sure if defaulting to a lower setting is easily do-able, the factory finds algorithms with string matching so the compiler can't give any warnings. If the algorithm isn't This is probably alright for the TLS general purpose, so I'd have to give that a try. |
@s-ludwig Could you explain what you meant when you said that 2.067 got worse with memory? |
I have a few projects that don't compile on Windows anymore due to out of memory errors. DMD 2.066.1 still works, though. |
I've managed to make a dmd x64 build on windows thanks to this: |
All issues with |
For some obscure reason, the Ubuntu platform that was leaking requires this.