-
Notifications
You must be signed in to change notification settings - Fork 54
/
ChangeLog
384 lines (246 loc) · 9.2 KB
/
ChangeLog
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