C/igraph 0.9.1, the first bugfix release of the 0.9 series, has arrived.
The source can be obtained from the GitHub releases page.
This release includes bug fixes only, apart from a minor addition concerning lexicographic ordering of vectors. The changelog is below.
Added
-
igraph_vector_lex_cmp()
andigrapg_vector_colex_cmp()
for lexicographic
and colexicographic comparison of vectors. These functions may also be used
for sorting.
Changed
-
igraph_community_multilevel()
is now randomized (PR #1696, thanks to Daniel Noom).
Fixed
- CMake settings that controlled the library installation directory name, such as
CMAKE_INSTALL_LIBDIR
, were not respected. - Under some conditions, the generated pkg-config file contained an incorrect include directory path.
- The following functions were not exported from the shared library:
igraph_subcomponent()
,igraph_stack_ptr_free_all()
,igraph_stack_ptr_destroy_all()
,igraph_status_handler_stderr()
,igraph_progress_handler_stderr()
. - Built-in random number generators (
igraph_rngtype_mt19937
,igraph_rngtype_rand
,igraph_rngtype_glibc2
) were not exported from the shared library. -
igraph_layout_graphopt()
no longer rounds thespring_length
parameter to an integer. -
igraph_get_all_shortest_paths_dijkstra()
no longer modifies theres
vector’s item destructor. -
igraph_get_shortest_path_bellman_ford()
did not work correctly when calculating paths to all vertices. -
igraph_arpack_rnsolve()
checks its parameters more carefully. -
igraph_community_to_membership()
does not crash anymore whencsize
is requested butmembership
is not. -
igraph_citing_cited_type_game()
: fixed memory leaks (PR #1700, thanks to Daniel Noom). -
igraph_transitivity_undirected()
,igraph_transitivity_avglocal_undirected()
andigraph_transitivity_barrat()
no longer trigger an assertion failure when used with the null graph (PRs #1709, #1710). -
igraph_(personalized_)pagerank()
would return incorrect results for weighted multigraphs with fewer than 128 vertices when usingIGRAPH_PAGERANK_ALGO_PRPACK
. -
igraph_diversity()
now checks its input more carefully, and throws an error when the input graph has multi-edges or is directed. -
igraph_shortest_paths_johnson()
would return incorrect results when theto
argument differed fromfrom
(thanks to Daniel Noom). -
igraph_is_graphical()
would fail to set the result variable for certain special degree sequences in the undirected simple graph case. - Non-maximal clique finding functions would sometimes return incomplete results when finding more than 2147483647 (i.e. 2^31 - 1) cliques.
- GLPK internal errors no longer crash igraph.
- Fixed some potential memory leaks that could happen on error conditions or when certain functions were interrupted.
- When testing a DLL build on Windows, the
PATH
was sometimes not set correctly, causing the tests to fail (PR #1692). - When compiling from the git repository (as opposed to the release tarball), the build would fail with recent versions of
bison
andflex
.
Other
- Documentation improvements.
- Much faster documentation builds.
- Allow using a pre-generated
arith.h
header for f2c when cross-compiling; see the Installation section of the documentation. - The
IGRAPH_ENABLE_LTO
build option now supports theAUTO
value, which uses LTO only if the compiler supports it. Warning: CMake may not always be able to detect that LTO is not fully supported. Therefore, the default setting isOFF
. - The following functions are now interruptible:
igraph_grg_game()
,igraph_sbm_game()
,igraph_barabasi_game()
,igraph_barabasi_aging_game()
. - Functions that use GLPK, such as
igraph_feedback_arc_set()
andigraph_community_optimal_modularity()
are now interruptible. - Add support for older versions of Clang that do not recognize the
-Wno-varargs
flag.
Acknowledgments
- Big thanks to Daniel Noom for continuing to expand the test suite and discovering and fixing several bugs in the process!