# C/igraph 0.9.1

**URL:** <https://igraph.discourse.group/t/c-igraph-0-9-1/677>\
**Category:** Announcements\
**Tags:** C\
**Created:** [23 March 2021 13:26 UTC](https://igraph.discourse.group/t/c-igraph-0-9-1/677 "2021-03-23T13:26:47Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![szhorvat](https://yyz2.discourse-cdn.com/free1/user_avatar/igraph.discourse.group/szhorvat/32/3_2.png) [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Post date:** [23 March 2021 13:26 UTC](https://igraph.discourse.group/t/c-igraph-0-9-1/677/1 "2021-03-23T13:26:47Z")

</div>

[C/igraph](https://igraph.org/c/) 0.9.1, the first bugfix release of the 0.9 series, has arrived.

The source can be obtained from [the GitHub releases page](https://github.com/igraph/igraph/releases/tag/0.9.1).

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()` and `igrapg_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 the `spring_length` parameter to an integer.
- `igraph_get_all_shortest_paths_dijkstra()` no longer modifies the `res` 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 when `csize` is requested but `membership` is not.
- `igraph_citing_cited_type_game()`: fixed memory leaks (PR #1700, thanks to Daniel Noom).
- `igraph_transitivity_undirected()`, `igraph_transitivity_avglocal_undirected()` and `igraph_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 using `IGRAPH_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 the `to` argument differed from `from` (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` and `flex`.

### 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 the `AUTO` 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 is `OFF`.
- 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()` and `igraph_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!
