-
Notifications
You must be signed in to change notification settings - Fork 31
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
Full Windows Support #182
Comments
@adamdruppe - I tried assigning this to you but couldn't. |
maybe it is cuz i never forked the thing, try it now |
quick update, I have it down to just 5 tests still failing. Kinda surprising that one of these would be Windows-specific, just a ctor decl outside the class (issue 115). But still getting through it all. |
So... clang --ast-dump agrees with what I'm seeing in dpp. The compound statement is included on linux, but just null on Windows. I tried a new llvm too, no change. It could be a different build flag or something, but if people are going to use the upstream Windows binaries, I think we just need to work around this. The good news is a member function definition is.... maybe something you never actually need? Unless it is trying to automatically port a template body from c++ over to D instead of just matching mangling which I don't see even Linux version attempting.. but idk, since the clang command directly is showing the same hole as found in the code it makes me fairly certain it is a problem in the upstream library/build. |
see #183 for checking off the dub test. I haven't tried the others yet, my Windows box doesn't have any ruby so that will be more painful to run there. |
i just got ruby installed on my windows box. 10 scenarios, 7 failed, 3 passed. 66 steps, 7 failed, 22 skipped, 37 passed. at least it went quickly after getting all the deps installed! i'll start looking at them now. edit: lol they assume g++ is in path. fun. |
OK, good news on that. The tests all fail because of trivial name changes like .obj instead of .o and files being in PATH. I wrote a helper program to translate those.
hacky but like it is a good sign these only failed due to trivialities too. the only other one is the Scenario: Compile but don't link and that regex fixes it. prolly time to actually try using it... I suspect it will work now. |
Excellent, this is looking very promising. |
i just ran nanomsg on Linux literally seconds ago using dpp instead of the bundled bindings (though i think the bundled bindings are a better approach...). Took a few semi-hacky things, undef VERSION and errno, and I ran dpp separately from dub (but I suppose preBuildCommands could run it automatically there i don't feel like that is a good solution)... but it worked. I'm gonna copy the files to my Windows box soon and see if it works there as well. |
the include path on Windows isn't automagically figured out... but i can add it manually (took me forever to even find it but meh). and now the .lib has leading _ and D doesn't put that out. again, it is easy enough to convert the lib but just another thing that doesn't just work... i wonder if there's any good way to know why it has it or if it does etc |
OK, nanomsg did work on Windows, I just had a 32 bit build and making dpp do that i guess Replaced the import nanomsg.bindings with
but the rest was just setup pain. The undefs are interesting as they conflicted with D stuff... but solvable right there. so I'd say dpp does work on Windows you just need to tell it where to find third party lib files. |
The appveyor build works now. The more I think of it the less I seem to care about getting cucumber to work on Windows. It's probably better to rewrite the bash scripts that test external projects into D actually. |
What are you next steps? I think it would be kinda nice if dub actually understood .dpp files in the source and just automatically read in dpp as a dependency and pulled it down. |
I worked on that a while ago. I will try to resurrect next week, or at
least point you to what I started
Regards,
John Colvin
…On Fri, 18 Oct 2019, 23:10 Adam D. Ruppe, ***@***.***> wrote:
What are you next steps? I think it would be kinda nice if dub actually
understood .dpp files in the source and just automatically read in dpp as a
dependency and pulled it down.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#182?email_source=notifications&email_token=AAOH3NM3BMSV5SNPQEGFHBDQPIX5TA5CNFSM4I7AC7XKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBWGMCQ#issuecomment-543974922>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAOH3NLXZJJJZFBMDBZMMXTQPIX5TANCNFSM4I7AC7XA>
.
|
I don't have any as far as Windows support goes. appveyor will keep us honest. |
Schrödinger's Windows support? Is it working now, or not? Is it just the cucumber support that's blocking it? |
clang say they mostly match the msvc C++ ABI on windows (https://clang.llvm.org/docs/MSVCCompatibility.html) so it should be possible to get everything working nicely just like on linux.
dub test
)bundle exec cucumber --tags ~@wip
)#include <nn.h>
(nanomsg) to work and see if you can replace the bindings at https://github.com/symmetryinvestments/nanomsg-wrapper and have the tests there still pass on windowsThe text was updated successfully, but these errors were encountered: