← Back to team overview

oqgraph-dev team mailing list archive

Re: Windows build problems was Re: steps before v3 merge into MariaDB

 

Hi Andrew

Let's prioritise general build issues and bugs over Windows build.

If there are, for instance, issues building on Linux with different Boost version, then that's a serious issue that needs to be sorted out now.

Had a chat on IRC #maria yesterday and I really think we need to merge very soon.

Regards,
Arjen.


On 09/08/13 08:30, Andrew McDonnell wrote:
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







--
Arjen Lentz, Exec.Director @ Open Query (http://openquery.com)
Australian peace of mind for your MySQL/MariaDB infrastructure.

Follow us at http://openquery.com/blog/ & http://twitter.com/openquery


Follow ups

References