graph-tool 2.13 Macports build throws dyld exception at gt.purge_vertices()

Tiego -- Is this an issue with 2.13, or the Macports build process? It fails
consistently across several boxes with the underlying error "dyld: Symbol
not found".

Minimum code:

# This code creates a little graph and filters out the largest connected
component
import graph_tool.all as gt
g = gt.Graph()
v0 = g.add_vertex()
v1 = g.add_vertex()
v2 = g.add_vertex()
e01 = g.add_edge(v0,v1)
e12 = g.add_edge(v1,v2)
e20 = g.add_edge(v2,v0)
comp, hist = gt.label_components(g)
comp_sub = g.new_vertex_property('bool')
k_sub = hist.argmax()
for v in g.vertices():
    if comp[v] == k_sub:
        comp_sub[v] = True
g.set_vertex_filter(comp_sub)
g.purge_vertices()

Exception:

dyld: lazy symbol binding failed: Symbol not found:
__ZN10graph_tool6detail15action_dispatchIN5boost6lambda14lambda_functorINS3_19lambda_functor_baseINS3_12other_actionINS3_17assignment_actionEEENS2_6tuples5tupleINS4_INS3_8identityIRmEEEENS4_INS5_INS3_6actionILi2ENS3_15function_actionILi2EmEEEENSA_IKNS_15HardNumVerticesEKNS4_INS3_11placeholderILi1EEEEENS9_9null_typeESP_SP_SP_SP_SP_SP_SP_EEEEEESP_SP_SP_SP_SP_SP_SP_SP_EEEEEEN4mpl_5bool_ILb0EEEJNS0_15all_graph_viewsEEEC1ERKS10_
  Referenced from:
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/graph_tool/libgraph_tool_core.so
  Expected in: flat namespace

dyld: Symbol not found:
__ZN10graph_tool6detail15action_dispatchIN5boost6lambda14lambda_functorINS3_19lambda_functor_baseINS3_12other_actionINS3_17assignment_actionEEENS2_6tuples5tupleINS4_INS3_8identityIRmEEEENS4_INS5_INS3_6actionILi2ENS3_15function_actionILi2EmEEEENSA_IKNS_15HardNumVerticesEKNS4_INS3_11placeholderILi1EEEEENS9_9null_typeESP_SP_SP_SP_SP_SP_SP_EEEEEESP_SP_SP_SP_SP_SP_SP_SP_EEEEEEN4mpl_5bool_ILb0EEEJNS0_15all_graph_viewsEEEC1ERKS10_
  Referenced from:
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/graph_tool/libgraph_tool_core.so
  Expected in: flat namespace

This is a known bug with some MacOS compilers. You should install a
recent clang (e.g. version 3.7.1) from macports, and use that instead of
the standard system compiler. See here for more details:

    https://git.skewed.de/count0/graph-tool/issues/266

Best,
Tiago

Tiago Peixoto wrote

    dyld: lazy symbol binding failed (#266) · Issues · Tiago Peixoto / graph-tool · GitLab

Tiago -- Thanks, that did the trick with python 2.7. Weird problem.

The successful commands are:

sudo port uninstall py-graph-tool py27-graph-tool
sudo port clean --dist py-graph-tool py27-graph-tool
sudo port install py-graph-tool py27-graph-tool
configure.compiler=macports-clang-3.7