1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384
|
5.8.3.0
-------
* Data.Graph.Inductive.NodeMap now has functions mkLookupNode,
insMapLookupNode, memberNode, and lookupNode for detecting whether a
graph already contains a node (issue #72, PR #77).
5.8.2.0
-------
* Data.Graph.Inductive.Graph now only requires Graph, not DynGraph
(issue #100).
* Documented that some functions are partial (issue #98).
* Add `insert` function as synonym for `&` (issue #90).
5.8.1.1
-------
* Data.Graph.Inductive.Query.Dominators.{dom,iDom} could fail for some
graphs (issue #109, regression in 5.8.1.0).
5.8.1.0
-------
* Data.Graph.Inductive.PatriciaTree.Gr and
Data.Graph.Inductive.Tree.Gr now have Functor instances.
* 'Gr a' is now an instance of Functor.
5.8.0.0
-------
* Breaking change: MonadFail is no longer a superclass of GraphM.
This is to support GHC 9.4. This has no effect on the IO and ST
instances of GraphM, but may affect users.
5.7.0.3
-------
* Bump QuickCheck dependency
5.7.0.2
-------
* Bump dependencies.
5.7.0.1
-------
* Accidentally released the wrong version.
5.7.0.0
-------
* Updating the GraphM class to be compatible with the MonadFail proposal and GHC's
MonadFailDesugaring language extension which is enabled by default by GHC-8.6.1.
5.6.0.0
-------
* The previous version should have been a major version bump due to
the API change.
5.5.4.0
-------
* Improved type safety of shortest-path functions (in
`Data.Graph.Inductive.Query.SP`) thanks to Nathan Collins.
- `getDistance`, `spLength` and `sp` now return `Maybe` values.
* Fixed building on GHC < 7.4; previously uncaught due to
cabal-install doing the wrong thing on Travis-CI.
5.5.3.1
-------
* Hopefully clearer documentation for `&`, `Context` and the
`ufold`-based functions.
* Thanks to David Feuer, the existing benchmark suite is now runnable
with `cabal bench`.
* Some performance improvements for `PatriciaTree`, thanks to David
Feuer.
5.5.3.0
-------
* Additional closure functions by Matthew Danish.
* `Bifunctor` instances for base >= 4.8.0.0.
* An `ST`-based `GraphM` instance.
* Addition of `order` and `size` functions for finding the number of
nodes and edges respectively in a graph (the former is an alias for
the existing `noNodes` function).
* The rules for faster implementations of `insNode` and `insEdge` for
`PatriciaTree` should fire more often now.
5.5.2.3
-------
* Earlier fix for `NFData` wasn't quite complete/correct.
5.5.2.2
-------
* Ensure firing of specialised rules for `PatriciaTree`.
* Better way of only creating `NFData` instances when possible.
5.5.2.1
-------
* Only create `NFData` instances for GHC >= 7.4.1.
5.5.2.0
-------
* Documentation, clean-up and refactoring of various parts of the
library.
- As part of this, various types now have instances for classes
like `Show`, `Eq`, `Ord`, `NFData`, etc. where applicable.
- In particular, the various options for use with depth-first
search and shortest path queries was documented by David
Luposchainsky.
* Addition of a proper test-suite. So far it covers the
`Data.Graph.Inductive.Graph` module and all
`Data.Graph.Inductive.Query.*` modules except for `Monad`.
- The tests are also automatically run for every (set of) commits
thanks to Travis-CI.
* Arbitrary instances for the two graph types are now available in the
new `fgl-arbitrary` sub-package.
* Now depends solely on the `transformers` library rather than `mtl`.
* Potentially breaking changes:
These changes are those where the behaviour was un-specified or
didn't match the documentation.
- `nodeRange` and `nodeRangeM` for the various graph data
structures erroneously returned `(0,0)` for empty graphs (making
them indistinguishable from graphs containing the single node
`0`). They now match the default implementation of throwing an
error.
- The behaviour of `delLEdge` when dealing with multiple edges was
unspecified; it now deletes only a single edge and the new
function `delAllLEdge` deletes all edges matching the one
provided.
* Additional functions thanks to Sergiu Ivanov:
- Creating sub-graphs by `Node`- and `Context`-filtering as well
as induced by a set of `Node`s.
- Graph condensation (i.e. graph of
strongly-connected-components).
- Various edge- and neighbor-based helper functions.
* The graph types now have `Generic` instances thanks to Piotr
Mlodawski.
* The `OrdGr` wrapper by Trevor Cook allows performing `Ord`-based
comparisons on graphs.
5.5.1.0
-------
* Support added for GHC 7.10 by Herbert Valerio Riedel.
* Additional DFS query functions added by Conrad Parker.
* Repository location changed to GitHub.
* Code cleanup:
- Replaced usage of internal FiniteMap copy with Data.Map and
Data.Set from the containers library.
- Remove usage of data type contexts.
- Use newtypes where applicable.
5.5.0.1
-------
* Fix up Eq instances for Tree and PatriciaTree so that they work with
multiple edges.
5.5.0.0
-------
* Add proper Show, Read and Eq instances to Data.Graph.Inductive.Tree
and Data.Graph.Inductive.PatriciaTree.
* Add pretty-printing functions to Data.Graph.Inductive.Graph. These
are based upon the old Show implementation for
Data.Graph.Inductive.Tree.
* Now use PatriciaTree by default rather than Tree (and recommend as
such). IntMap has been receiving a lot of optimisation work on it,
whereas the internal FiniteMap implementation hasn't received any
attention.
* The `version :: IO ()` action now uses the actual Cabal version.
* Remove Data.Graph.Inductive.Graphviz; use the graphviz package
instead.
5.4.2.4
-------
* Update to work with GHC-7.2 and Cabal-1.6.
5.4.2.3
-------
* Maintainership taken over by Ivan Miljenovic.
* Allow Data.Graph.Inductive.PatriciaTree to deal with multiple edges
between nodes.
5.4.2.2 (November 2008)
-----------------------
* Bugfix in Graphviz.sq
5.4.2.1 (June 2008)
-------------------
* bug fix in bcc by Reid Barton
* added new dynamic graph implementation:
Data.Graph.Inductive.PatriciaTree (thanks to Pho)
* added test/benchmark.hs: a benchmark to compare Tree and PatriciaTree
implementations (thanks to Pho)
5.4.2 (May 2008)
----------------
* added Setup.hs to tar file
* reimplementation of Data.Graph.Inductive.Query.Dominators
by Bertram Felgenhauer:
It was buggy and very slow for large graphs. See
http://www.haskell.org/pipermail/haskell-cafe/2008-April/041739.html
This patch also adds a new function, iDom, that returns the
immediate dominators of the graph nodes.
* Exported xdf*With functions from DFS.hs
* many little cleanups thanks to many people
(use 'darcs changes' to see the details)
5.4 (April 2007)
----------------
* changed the implementation for inspection functions (suc, pred, ...)
to correct the behavior in the presence of loops (thanks to Ralf
Juengling for pointing out the inconsistency)
5.3 (June 2006)
---------------
* fixed a bug in findP (thanks to lnagy@fit.edu)
* added function delLEdge in Graph.hs (thanks to Jose Labra)
* changed implementation of updFM and mkGraph (thanks to Don Stewart)
February 2005
-------------
* fixed an import error in Basic.hs
* removed Eq instance of gr because it caused overlapping instance
problems. Instead the function equal defined in Graph.hs can be
used
* added some more functions to the export list of DFS.hs
* changed the definition of LPath into a newtype to avoid overlapping
instances with lists
* fixed the Makefile (for GHC and GHCi)
January 2004
------------
* bug fix for nearestNode (src/Data/Graph/Inductive/Query/GVD.hs)
Update contributed by Aetion Technologies LLC (www.aetion.com)
* Refactor into hierarchical namespace
* Build changes:
- build a standard haskell library (libHSfgl.a, HSfgl.o)
- install as ghc package (fgl), uses Auto so no -package is needed
* Automatic Node generation for labels: Data.Graph.Inductive.NodeMap
* Graphviz output: Data.Graph.Inductive.Graphviz
September 2002
--------------
* Introduction of graph classes
* Monadic graphs and graph computation monad
* Graph implementation based on balanced (AVL) trees
* Fast graph implementation based on IO arrays
* New algorithms:
- Maximum flow
- Articulation points
- biconnected components
- dominators
- transitive closure
* minor changes in utility functions
- changed signatures (swapped order of arguments) of
functions context and lab to be consistent with other graph functions
- changed function first in RootPath: not existing path is now reported
as an empty list and will not produce an error
- esp version that returns a list of labeled edges
(to find minimum label in maxflow algorithm)
- BFS uses amortized O(1) queue
- Heap stores key and value separately
- ...
March 2001
----------
* Changes to User Guide
* a couple of new functions
* some internal changes
April 2000
----------
* User Guide
* Systematic structure for all depth-first search functions
* Graph Voronoi diagram
* Several small changes and additions in utility functions
February 2000
-------------
* Representation for inward-directed trees
* Breadth-first search
* Dijkstra's algorithm
* Minimum-spanning-tree algorithm
August 1999
-----------
* First Haskell version
|