oqgraph-dev team mailing list archive
-
oqgraph-dev team
-
Mailing list archive
-
Message #00192
Re: Windows build problems was Re: steps before v3 merge into MariaDB
One fix I did need to make as well:
cmakelists need -DJUWIN for Judy
On 08/08/13 22:29, Andrew McDonnell wrote:
> Made some closer inspections, took a while to untangle the templates and warnings
>
> <extract>
> // --> MSVC2008 fails inside here
> dijkstra_shortest_paths_no_init(share->g, *orig,
> make_lazy_property_map(p, identity_initializer<Vertex>()),
> make_lazy_property_map(d, value_initializer<EdgeWeight>(
> (std::numeric_limits<EdgeWeight>::max)())),
> get(edge_weight, share->g),
> get(vertex_index, share->g),
> std::less<EdgeWeight>(),
> closed_plus<EdgeWeight>(),
> EdgeWeight(),
> make_dijkstra_visitor(
> make_oqgraph_goal<true, on_finish_vertex>(
> *dest,
> boost::make_assoc_property_map(p),
> static_cast<stack_cursor*>(cursor)
> )
> ),
> make_two_bit_judy_map(get(vertex_index, share->g))); <--
> possibly here
>
> I got similar bit subtly different errors using MSVC2010 in 64-bit on Win7
> Note this required installing the 7.1 SDK (and uninstalling the previously
> present MSVC2010 redsitriutable!)
>
> On MSVC2010/64 instead I was seeing unable to match and of the 12 overloads
> for get(...)
>
>
> In both cases though seems to hinge on being unable to resolve a property map
> of weights to edges (or something)...
>
> The above statement is a bit vague, I know.... more concretely, I noted the
> following differences between Boost 1.54 (MSVC2008, fails) and 1.42 on debian
> squeeze:
>
> inside djisktra_shortest_paths() :
>
> boost 1_54
>
> void examine_edge(Edge e, Graph& g) {
> // Comparison needs to be more complicated because distance and weight
> // types may not be the same; see bug 8398
> // (https://svn.boost.org/trac/boost/ticket/8398)
> D source_dist = get(m_distance, source(e, g));
> if (m_compare(m_combine(source_dist, get(m_weight, e)), source_dist))
> boost::throw_exception(negative_edge());
> m_vis.examine_edge(e, g);
> }
>
> boost 1_42
> template <class Edge, class Graph>
> void examine_edge(Edge e, Graph& g) {
> if (m_compare(get(m_weight, e), m_zero))
> boost::throw_exception(negative_edge());
> m_
>
>
> I am currently rebuilding with boost 1.42 to see if that succeeds on MSVC2008...
>
>
> this will be a slow process, because I find myself reverse engineering how it
> all hangs together and having to write chains to find out what a type
> ultimately resolves to and untangle all the 'legendary' template compiler
> messages, being currently unfamiliar with this end of the code
>
> Ultimately I may end up having to write some test harnesses that narrow things
> down (and speed up the build process!)
>
>
>
>
> On 08/08/13 02:06, Antony T Curtis wrote:
>> Boost should be reasonably well supported on Windows but BGL is very
>> challenging for compilers. Iirc from MSVC++, sometimes required hinting for it
>> to derive the correct type templates. Gcc will literally try every possible
>> combination as required by C++ spec but MS compiler does not in order to get
>> faster compile times.
>>
>> On Aug 7, 2013 6:22 AM, "Andrew McDonnell" <bugs@xxxxxxxxxxxxxxxxxxx
>> <mailto:bugs@xxxxxxxxxxxxxxxxxxx>> wrote:
>>
>> Hiya,
>>
>> 64-bit on Windows 7 + MS7.1SDK fails with same error as XP+32bit+MSVC8
>>
>> I'm wondering if boost_1_54 is the culprit, using some lately added C++
>> standard stuff unsupported by MS
>>
>> Next move is to try boost_1_42 (same as squeeze) and see if that works
>>
>> Othwrwise time to start debugging...
>>
>> On 06/08/13 08:10, Arjen Lentz wrote:
>> > Hi Andrew
>> >
>> > Ok what steps still need to be done before we can submit this for
>> merging into
>> > MariaDB 10.0 ?
>> > tnx
>> >
>> >
>> > Cheers,
>> > Arjen.
>>
>>
>> --
>> Mailing list: https://launchpad.net/~oqgraph-dev
>> Post to : oqgraph-dev@xxxxxxxxxxxxxxxxxxx
>> <mailto:oqgraph-dev@xxxxxxxxxxxxxxxxxxx>
>> Unsubscribe : https://launchpad.net/~oqgraph-dev
>> More help : https://help.launchpad.net/ListHelp
>>
>
>
Follow ups
References