C/igraph 0.9.6

C/igraph 0.9.6 is now released.

The source can be obtained from the GitHub releases page.

In addition to bug fixes and performance improvements, this release adds support for 5- and 6-vertex undirected motifs and isoclasses.


  • Isomorphism class functions (igraph_isoclass(), igraph_isoclass_subgraph(), igraph_isoclass_create) and motif finder functions (igraph_motifs_randesu(), igraph_motifs_randesu_estimate(), igraph_motifs_randesu_callback()) now
    support undirected (sub)graphs of sizes 5 and 6. Previsouly only sizes 3 and 4 were supported.


  • igraph would not build with MinGW when using the vendored GLPK and enabling TLS.
  • Removed some uses of abort() from vendored libraries, which could unexpectedly shut down the host language of igraph’s high-level interfaces.
  • igraph_community_label_propagation() no longer leaves any vertices unlabeled when they were not reachable from any labeled ones, i.e. the returned membership vector is guaranteed not to contain negative values (#1853).
  • The Kamada-Kawai layout is now interruptible.
  • The Fruchterman-Reingold layout is now interruptible.
  • Fixed a bug in igraph_cmp_epsilon() that resulted in incorrect results for edge betweenness calculations in certain rare cases with x87 floating point math when LTO was also enabled (#1894).
  • Weighted clique related functions now fall back to the unweighted variants when a null vertex weight vector is given to them.
  • igraph_erdos_renyi_game_(gnm|gnp) would not produce self-loops for the singleton graph.
  • Fixed a bug in igraph_local_efficiency() that sometimes erroneously reported zero as the local efficiency of a vertex in directed graphs.
  • igraph_vector_update() (and its type-specific variants) did not check for memory allocation failure.
  • Fixed a potential crash in the GraphML reader that would be triggered by some invalid GraphML files.


  • igraph_is_tree() has improved performance and memory usage.
  • igraph_is_connected() has improved performance when checking weak connectedness.
  • Improved error handling in igraph_maximal_cliques() and related functions.
  • The build system now checks that GLPK is of a compatible version (4.57 or later).
  • The vendored plfit package was updated to 0.9.3.
  • You can now build igraph with an external plfit instead of the vendored one.
  • Documentation improvements.