-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Windows compatibilty patches (rebased to develop) #998
Conversation
Debug version of the windows build is very strict-checking. It has "Checked Iterators" feature and give assertion error for certain things:
I tried to eliminate avoid these assertions, but the solution is to be checked. |
@DennisOSRM There is only one failing test on Windows: features/testbot/oneway.feature . Compilation was performed using free Visual Studio 2013 Express command prompt without any SDKs, batch files are from https://gist.github.com/alex85k/8637217 (had to replace one incompatible boost header too). |
I tried to rebase patches to the latest develop version. Using C++ 11 code automatically drops support for Visual Studio 2012 and older (even array initializer does not compile). |
Yes, let's do this. We are moving towards C+11 now. |
Did you invent a good name for UUIDC class? I can include it to updated patches. |
I am updating the patch periodically to check compatibility with MSVC compiler. |
Testing on Windows was successful (except features/testbot/oneway.feature ). |
@alex85k thanks. Can you explain a bit what the issue on Windows is? |
Testing issue is the one incorrect routing result (route not found): |
Note: this test was passing on 2014-04-08 last time ). |
I guess someone used |
yeah, sorry about pushing with |
Hear is the updated version. |
constexpr is becoming more and more important in many ways. It is a bummer that MSVC does not support this |
Support for constexpr is in Nov 2013 CTP: http://www.microsoft.com/en-us/download/details.aspx?id=41151 |
Hi Alex, Dennis, |
Sorry, I did not manage to fix all constexpr and time_point differences today, will update the patch near the weekend. |
No problem Alex, I was just curious about the update (as the memory consumption of the 3.8 version is quite big). |
Even after avoiding constexpr and tme_point difficulties, I have a compile error on MSVS 2013. It is caused by the code std::packaged_task<void()> server_task(std::bind(&Server::Run, routing_server));
auto future = server_task.get_future();
std::thread server_thread(std::move(server_task)); the problem seems to be described here (int() works but void() does not) P.S. I am making some progress using lambda returning fake int instead std::bind... :) |
Some workaround is implemented... I do not think that using CTP compiler is stable enough for end users, so maybe we can keep #ifdefs related to constexpr (that is not working on usual VS2013)? |
@frankvandenbergh : you can use the published scripts with current version (MSVS 2013 Express - tested), win-038 is just a name, latest develop branch is used. |
Ok @alex85k I will try it. |
@frankvandenbergh : For now, git clone https://github.com/alex85k/Project-OSRM.git Project-OSRM @DennisOSRM : Is there any progress with Windows build server? ;) |
Hi Alex, Next, I build the project. 201 warnings, no errors, all executables were created. The Extractor couldn't read the extractor.ini any more (fatal error). For me it isn't important as I only set the number of threads in there, and they are still 1. So I renamed the file. It will try to extract a 2.6 Gb pbf file, after about one hour the CPU drops to zero and stays there (using 4.2 Gb memory as shown in the task manager). This is the same procedure I did with 0.38 version (I only replaced the executables and cleaned the data dir). But then it ran smoothly. The new osrm-routed.exe can read the extraction of the v0.38 version (I get the version warning). It returns only "cannot find routes". |
@frankvandenbergh: I'll check about the extractor.ini error. If you have the old sources in some folder (real 0.3.8), could you please archvie the Project-OSRM folder (without build) and put it here? I have lost the last working version when rebasing the patches and can not re-publish it. |
Hi Alex, The pbf file is an extract of the latest europe file, generated using: Here is the source code (don't know how to attach it): http://we.tl/YIvZvHQWN3 |
I can update the patches today (evening). Should we wait for some other branches and important changes? Is there some build server or testing Windows VM deployed? |
Not yet. We still have a licensing issue for Windows. |
@DennisOSRM : So the license you got in January is not suitable? Maybe Mapbox have some existing servers or licenses for other projects? Reworking the patch I got the following compile error: It is triggered because EdgeBasedEdge does not have size 16. Really, It have 4 integers and 2 booleans inside... I do not know how to solve the problem, just commented this assertion temporarily (may lead to errors?). |
OK. It is also really slow. But the compilation incompatibilities in future are unlikely (it is almost gcc except does not have some unix libraries). The necessary fix included one more failing sizeof static assertion, disabling cpuid include and explicitly adding wsock and gomp libraries. |
…ding on old Microsoft compilers
Rebased this once more, changed one patch alex85k@be5c3e4 to be mingw-compatible (other _MSC_VER and WIN32 were placed correctly). |
Any more changes to be done? Is this planned for merging after #1069 or something else will arrive? |
Thanks @alex85k. I'll get to it this afternoon |
Wow! It happened! Even with reformatting and FTP! |
Thank you. Great work. |
Going to announce it on the mailing list shortly. |
well done guys |
Latest builds of the development branch are already getting published at http://build.project-osrm.org |
@alex85k is this page on the wiki outdated? |
I guess so. Can we delete most of its contents and replace with expanded extracts from https://gist.github.com/alex85k/8637217? Should the short instruction be put into https://github.com/DennisOSRM/Project-OSRM/wiki/Building-OSRM ? |
Yep, doing that right now. |
Announcement is out: https://lists.openstreetmap.org/pipermail/osrm-talk/2014-June/000586.html |
Wiki is updated |
Thank you for fixing wiki! I propose minor fixes for gist: https://gist.github.com/alex85k/8637217 |
copy of #979
with
develop
as base branch.