12010-03-13 Jarkko Hietaniemi <jhi@iki.fi> 2 3 * Address rt.cpan.org #43580: 4 "Reversed logic on overload::StrVal() in AdjacencyMap::Vertex::__set_path" 5 Had to add a new option, refvertexed_stringified. 6 7 * Address rt.cpan.org #50210: 8 "Graph-0.91: bug in unionfind parameter" 9 10 One cannot delete from a unionfind graph: now enforcing that. 11 12 * Address rt.cpan.org #48090: 13 "all_reachable on directed $g->add_edges(['a','b'],['b','a'])" 14 15 Now if there are loops, all_reachable() will include 16 the initial vertices themselves. Also all_neighbors() 17 had some problems in certain cases, fixed those too. 18 19 * Address rt.cpan.org #50210: 20 "Graph-0.91: bug in unionfind parameter" 21 22 One cannot delete edges or vertices from a unionfind 23 graph: now enforce that in code. 24 25 * Address rt.pcan.org #42549: "stron" 26 27 Document that strongly connected components will include 28 isolated and sink and source vertices. 29 30 * Release as 0.94. 31 322010-03-07 Jarkko Hietaniemi <jhi@iki.fi> 33 34 * Revert the SPTHeapElem.pm change made in Graph 0.92, 35 installing Heap 0.80 broke Graph. Better be conservative. 36 37 * Release as 0.93. 38 392010-03-03 Jarkko Hietaniemi <jhi@iki.fi> 40 41 * Address rt.cpan.org #55912 "Broken links in the documentation" 42 43 * Address rt.cpan.org #55196 "Heap 0.80 compatibility fix" 44 45 * Add copyright and clearer license statement. 46 47 * Release as 0.92. 48 492009-01-16 Jarkko Hietaniemi <jhi@iki.fi> 50 51 * Minor documentation cleanups. 52 53 * Add 'use strict;' to lib/Graph/TransitiveClosure.pm. 54 55 * Modernize the META.yml. 56 57 * Release as 0.91. 58 592008-12-29 Jarkko Hietaniemi <jhi@iki.fi> 60 61 * Storable deparse of coderefs for deep_copy() does not 62 work at all with 5.6.2: if modern enough Storable 63 and B::Deparse are not available, fall back to 64 the previous version which used Data::Dumper. 65 66 * Release as 0.90. 67 682008-12-27 Jarkko Hietaniemi <jhi@iki.fi> 69 70 * Some PAUSE upload problem with 0.88, retrying. 71 72 * Release as 0.89. 73 742008-12-26 Jarkko Hietaniemi <jhi@iki.fi> 75 76 * The 0.87 forgot to specify the Storable (and Safe, 77 used in the deserialization step of deep_copy) 78 prerequirement(s) in Makefile.PL. 79 80 * Release as 0.88. 81 822008-12-26 Jarkko Hietaniemi <jhi@iki.fi> 83 84 * Addressed a performance problem in successors() 85 and predecessors(), reported by Jonathan Moore. 86 87 * Reimplement deep_copy() by using Storable 88 freeze() and thaw() instead of Data::Dumper, 89 inspired by Jonathan Moore. Probably now safer 90 and faster, but Storable is now a prerequirement. 91 92 * Release as 0.87. 93 942008-11-27 Jarkko Hietaniemi <jhi@iki.fi> 95 96 * Addressed a performance problem in connected_components() 97 for 1000+ vertex graphs, reported by David Grobe. 98 Should in general speed up graph traversal. 99 100 * Release as 0.86. 101 1022008-11-27 Jarkko Hietaniemi <jhi@iki.fi> 103 104 * Address rt.cpan.org #31608 "Graph::Undirected, unionfind and 105 connected_component" 106 107 * Address rt.cpan.org #34377 "recursive successors and predecessors" 108 (added all_successors/all_predecessors/all_neighbours/all_reachable) 109 110 * Address rt.cpan.org #39444 "inconsistent return value" 111 (make add_edges and add_vertices to always return the graph) 112 113 * Address rt.cpan.org #39614 "copy should retain more attributes" 114 (now copies also refvertexed/hypervertexed/countvertexed/ 115 multivertexed/hyperedged/countedged/multiedged/omniedged) 116 117 * Address rt.cpan.org #39805 "UnionFind: Repeated adds clobbers 118 graph component information" 119 120 * Address rt.cpan.org #41190 "add_edge_by_id on multigraph 121 malfunctioning" 122 123 * Added betweenness(), clustering_coefficient(), and 124 subgraph_by_radius(), contributed by Matt Spear. 125 126 * Release as 0.85. 127 1282007-08-13 Jarkko Hietaniemi <jhi@iki.fi> 129 130 * Tels found one more attributed edge problem. 131 132 * Release as 0.84. 133 1342007-08-12 Jarkko Hietaniemi <jhi@iki.fi> 135 136 * One test in 73_diameter.t had too many possible answers, 137 dependent on the hash ordering, removed the test. 138 139 * Release as 0.83. 140 1412007-08-11 Jarkko Hietaniemi <jhi@iki.fi> 142 143 * Since Heap 0.80 broke Graph, as a stop-gap measure 144 I will include the Heap::Elem and Heap::Fibonacci 145 of Heap 0.71, renamed as 'Heap071', addresses rt.cpan.org 146 #26943: "Heap 0.80 breaks Graph", and numerous bug reports 147 by email 148 149 * Address rt.cpan.org #27840: "add-edge_attributes() on 150 undirected graph wrongly depends on node order", from Tels 151 152 * Address rt.cpan.org #27959: "radius method incorrect", 153 code and test case from ROSULEK. 154 155 * Release as 0.82. 156 1572007-01-21 Jarkko Hietaniemi <jhi@iki.fi> 158 159 * Address rt.cpan.org #24417: "next_successor unavailable in 160 Traversal (PATCH)", from Ted Carnahan. 161 162 * Small pod tweaks. 163 164 * Minor internal cleanup for the caching code. 165 166 * Release as 0.81. 167 1682006-09-10 Jarkko Hietaniemi <jhi@iki.fi> 169 170 * SP_Bellman_Ford() used actually SPT_Dijkstra(), not 171 SPT_Bellman_Ford(), noticed by "aramos". This changed 172 some regression test results a bit. 173 174 * The NAME line of Graph::Undirected said "directed graphs", 175 noticed by "Ruslan", the first one to notice this in two 176 years, including the author yours truly... 177 178 * Add Scalar::Util to the prereqs listed in Makefile.PL since 179 one of the tests uses refaddr, shouldn't be a problem because 180 List::Util already is a prereq. 181 182 * Fix few broken intra-pod links. 183 184 * Release as 0.80. 185 1862006-08-06 Jarkko Hietaniemi <jhi@iki.fi> 187 188 * The u_bo_ap1.t wasn't really testing the same for 20 times, 189 which meant that one bug was waiting for Koen van der Drift. 190 (If one start vertex of biconnectivity search was a self-loop, 191 an empty list of articulation points was returned.) 192 193 * Add a new API family: $g->..._clear_cache(), which allows 194 one to forget a cached value such as biconnectivity(). 195 Without clearing the cache once the result has been computed 196 it stays the same (until the graph is modified, of course). 197 If the cache is cleared, (pseudo)randomness is applied again, 198 and the algorithm results may become different. 199 200 * Release as 0.79. 201 2022006-07-16 Jarkko Hietaniemi <jhi@iki.fi> 203 204 * Address rt.cpan.org #20476: "SPT_Bellman_Ford does not respect 205 refvertexed" - now fixed, and SPT_Dijkstra() had the same problem. 206 207 * Release as 0.78. 208 2092006-07-08 Jarkko Hietaniemi <jhi@iki.fi> 210 211 * Address rt.cpan.org #20185: "problem with SPT_Bellman_Ford", 212 SPT_Bellman_Ford() was broken for undirected graphs 213 (they were handled as directed ones, therefore missing vertices). 214 215 * weakly_connected_component_by_vertex() usage example 216 was wrong, was using weakly_connected_component(), 217 noted by 'yanick' in annocpan.org. 218 219 * Implement and document the saving of the SPT_Dijkstra() 220 and SPT_Bellman_Ford() start vertices. 221 222 * Document add_edges() alternative API. 223 224 * Aerate the Changes by adding empty lines between the * items. 225 226 * Release as 0.77. 227 2282006-06-28 Jarkko Hietaniemi <jhi@iki.fi> 229 230 * Problem found by Xiaoli Zheng in diameter(): adding vertices 231 did not change diameter, this was due to a deeper bug where 232 the transitive closure matrix was being cached wrong: 233 sometimes saved too long, sometimes recomputed too often. 234 Enhanced 73_diameter.t to detect this. 235 236 * Problem found by Andree Toonk and Ronald van der Pol: 237 SP_Dijkstra() tried too hard to find a path between 238 vertices even if there was none - and returned rubbish. 239 Added t/u_at3.t to detect this. 240 241 * Address rt.cpan.org #20021: "bridges() sometimes returns 242 empty list when isolated vertices present". biconnectivity() 243 did not work right if isolated vertices were picked as roots, 244 it either hung or returned empty. Added t/u_bill.t to detect this. 245 246 * Document that add_vertex() is often unnecessary. 247 248 * Directed.pm and Undirected.pm were missing "use strict". 249 250 * Release as 0.76. 251 2522006-06-09 Jarkko Hietaniemi <jhi@iki.fi> 253 254 * Had accidentally removed Digest::MD5 from the Makefile.PL 255 prereq list, found by Anton Berezin (using Perl 5.6.2, which 256 doesn't include that), solved by removing the dependency 257 to Digest::MD5. 258 259 * Speeded up repeated longest/shortest paths computations 260 by using a cached (Floyd-Warshall) transitive closure. 261 262 * Implemented: 263 - graph radius 264 - graph center (vertices) 265 - vertex eccentricity 266 267 * Release as 0.75. 268 2692006-05-31 Jarkko Hietaniemi <jhi@iki.fi> 270 271 * Bug in SP_Dijkstra() found by Andree Toonk and Ronald van der Pol. 272 The edge weights of the Dijkstra shortest paths graph were 273 not cumulative (if the whole graph is a-b = 1 and b-c = 2, 274 a-c should be 3), which caused the SP_Dijsktra() results 275 sometimes to be nonsense. Two test cases, one of them rather 276 large (about 5000 edges). 277 278 * Bugs when using references as vertices in bridges() 279 and (Traversal) seen() found by Brian Osborne. 280 281 * Added another articulation_points() test by Brian Obsorne. 282 283 * Explicitly disallow adding undef as a vertex. 284 285 * Release as 0.74. 286 2872006-05-27 Jarkko Hietaniemi <jhi@iki.fi> 288 289 * Still one bug hiding in articulation points: if the 290 (randomly chosen) first vertex was a self-loop, an 291 empty list was returned for articulation points. 292 t/u_bo_ap.t now tests the test case from Brian 293 Osborne 20 times to stress test more cases, 294 and extra five tests testing self-loops and 295 articulation points. 296 297 * Release as 0.73. 298 2992006-05-27 Jarkko Hietaniemi <jhi@iki.fi> 300 301 * Brian Osborne found a graph where articulation_points() 302 ended up in an infinite loop. Resolved and the graph 303 test case added as t/u_bo_ap.t. 304 305 * Release as 0.72. 306 3072006-05-22 Jarkko Hietaniemi <jhi@iki.fi> 308 309 * Tweak the pod-coverage.t so that it looks more like 310 Test::Pod::Coverage documentation suggests in this case. 311 312 * Fix the u_bo.t not to have a test class with a broken 313 stringification method to avoid spurious warnings and 314 failure (also do away with the use of Math::Complex to 315 avoid problems because of different Math::Complex releases), 316 and more even importantly fix the "next_root" logic in 317 connected components not to advance to the next component 318 if there is nothing to advance to. This seems to be prone 319 to failure in 5.6.2, for some reason 5.8.8 works fine. 320 321 * Test under Perl 5.6.2. 322 323 * Force has_cycle() to return true/false, not the list of edges, 324 reported by Casey Bergman. 325 326 * Release as 0.71. 327 3282006-05-21 Jarkko Hietaniemi <jhi@iki.fi> 329 330 * delete_vertex() from a refvertexed graph left an unnecessary 331 reference to the referenced vertex hanging around in the graph, 332 reported by Christoph Lamprecht. 333 334 * Implement new 'super_component' option for connected_graph(), 335 biconnected_graph(), and strongly_connected_graph(), to allow 336 more complex ways of forming 'supercomponents' (and more 337 customized ways of naming them). 338 339 * Address rt.cpan.org #17159: "Nodes appear to unblessed after 340 using articulation_points() - 2" (elaboration of rt.cpan.org 341 #17108: "Nodes appear to unblessed after using 342 articulation_points())" 343 344 * Address rt.cpan.org #17160: "Nodes appear to unblessed after 345 using connected_components()" 346 347 * Address rt.cpan.org #17161: "Nodes appear to unblessed after 348 using bridges()" 349 350 * Address rt.cpan.org #17162: "Nodes appear to unblessed after 351 using connected_graph()" 352 353 * Address rt.cpan.org #17163, "SP_Dijkstra() is complaining" 354 355 * Address rt.cpan.org #17164, "SP_Bellman_Ford() is complaining" 356 357 * Address rt.cpan.org #17165, documentation error in 358 SP_Bellman_Ford(). 359 360 * Address rt.cpan.org #17405: "has_cycle with empty args 361 should return FALSE" 362 363 * Address rt.cpan.org: #17592: "articulation_points doesn't 364 find all vertices" (didn't find all the vertices of non-connected 365 graphs, only the vertices of the first (randomly chosen) connected 366 subgraph) 367 368 The rt.cpan.org cases 17159-17592 reported by Brian Obsorne. 369 370 * Add Test::Pod and Test::Pod::Coverage tests. 371 372 * Release as 0.70. 373 3742005-12-06 Jarkko Hietaniemi <jhi@iki.fi> 375 376 * Add SP_Dijkstra() and SP_Bellman_Ford() to find the shortest 377 path between any two vertices, the result is returned as 378 the list of the vertices in the path. 379 380 * In addition to the SPT per vertex result weight, also add 381 a predecessor ('p') vertex attribute (the SP_Dijkstra() and 382 SP_Bellman_Ford() unsurprisingly use this.) 383 384 * Cache the SPT results for better speed. 385 386 * Document that the SPT also allow a single argument 387 as the starting (root) vertex. 388 389 * Fix a bug in SPT_Dijkstra() which would ignore an "untrue" vertex 390 (such as '0') if it was any other vertex than the root vertex 391 (boolean context is dangerous, when you really mean "exists"). 392 393 * For "components" (strongly, biconnected, and connected) graphs 394 store the list of the original vertices as a vertex attribute 395 'subvertices' (so there is no need to do split(/\+/, ...) tricks), 396 the list is stored as a array reference. 397 398 * Release as 0.69. 399 4002005-11-23 Jarkko Hietaniemi <jhi@iki.fi> 401 402 * SPT_Dijkstra() wasn't setting the vertex attributes of 403 the result graph, noticed by Susan Tang, only the edge 404 attributes were being set. SPT_Bellman_Ford() was doing neither! 405 406 * There was an actual typo in the SPT test case from Sedgewick, 407 a weight of 0.32 was mistyped as 0.22, this luckily didn't 408 affect the result graph but it of course affected the 409 resulting vertex 'weight' attributes. 410 411 * Add tests to t/70_spt.t for the vertex and egde attributes 412 of the SPT_Dijkstra() and SPT_Bellman_Ford() results. 413 414 * Minor documentation tweaks, most importantly clarify the 415 return value of the SPT_Dijkstra() and SPT_Bellman_Ford(). 416 417 * Document that Perl 5.6.0 is the minimum (because of weak references) 418 and also make Graph.pm require that (Makefile.PL was already doing 419 the probing using Scalar::Util qw(weaken)). 420 421 * Add an early test (02_trap.t) for catching the development-time-only 422 setting of __DIE__ and __WARN__ handlers (as a result of this almost 423 all the numbered tests were renumbered, so the diff is falsely 424 gigantic). (If the handlers were mistakenly left turned on, 425 a lot of later tests that checked the $@ got confusing failures.) 426 427 * Release as 0.68. 428 4292005-08-03 Jarkko Hietaniemi <jhi@iki.fi> 430 431 * The 0.66 add_edge_get_id() fix was not yet quite right, Tels 432 found another problem with it. Now with another fix, and 433 another test case (t/u_te_ae.t) 434 435 * Documentation fixes from John P. Linderman. 436 437 * Release as 0.67. 438 4392005-07-20 Jarkko Hietaniemi <jhi@iki.fi> 440 441 * Fix [rt.cpan.org #13193] "Documentation error in set_edge_attributes" 442 and [rt.cpan.org #13194] "Documentation error in set_edge_attributes" 443 (duplicate report) 444 445 * Fixes for problems listed in [rt.cpan.org #13195] 446 "add_vertex_get_id/add_edge_get_id() return wrong result on first call" 447 - add_edge_get_id() was returning an array reference instead 448 of the id with the first call (the array reference was the 449 ids of the vertices of the edge) 450 - add_vertex_get_id() was even more broken (a multivertexed 451 graph was using Graph::AdjacencyMap::Vertex for the vertex 452 map, not Graph::AdjacencyMap::Heavy) 453 - Added test t/u_te_me.t for the two above issues. 454 - document in which order multiedge ids are returned (random) 455 - require Data::Dumper only for deep_copy() and _dump() 456 (not changes for two listed items, "check directly multiedged 457 via a flag" and "remove returns for speed" because I have 458 issues with speed hacks without actual measurements, and even 459 if so would fear reduced maintainability) 460 461 * Fix [rt.cpan.org #13352] "Dijkstra heap logic" 462 Dijkstra was fine, the SPTHealElem cmp() routine was wrong 463 in having no tie breakers in case the weights compared equal. 464 Added test t/u_re_sd.t. 465 466 * Release as 0.66. 467 4682005-05-15 Jarkko Hietaniemi <jhi@iki.fi> 469 470 * Tests added to 64_ref.t to verify that using different kinds 471 of blessed references as vertices works okay. Few bugs found 472 by these tests squashed. 473 474 * Release as 0.65. 475 4762005-05-14 Jarkko Hietaniemi <jhi@iki.fi> 477 478 * Fix for [rt.cpan.org #12509] "Errors using objects as nodes", 479 patch from the reporter of the bug, add t/u/bb_rv.t. 480 481 * Fix for refvertexed isolated vertices not having overloaded cmp 482 and graph string presentation failing because of that. 483 484 * The <NOTE>s needed to be B<NOTE>s. 485 486 * Release as 0.64. 487 4882005-04-16 Jarkko Hietaniemi <jhi@iki.fi> 489 490 * After setting a vertex attribute one could not delete 491 non-attributed vertices, reported by Joseph Hamilton. 492 493 * Inlining to speed up path_vertices() slightly. 494 495 * Release as 0.63. 496 4972005-04-10 Jarkko Hietaniemi <jhi@iki.fi> 498 499 * The documentation of add_weighted_vertices was wrong: 500 the arguments are (v1, w1, v2, w2, ...) instead of (v1, v2, ..., w). 501 502 * Made calling interfaces with an "options hash" like new() 503 and random_graph() more robust, now bails out earlier instead 504 of dieing mysteriously later with an "odd number of arguments" 505 506 * Allow running under -d:DProf even when using random shuffling: 507 workaround for List::Util::shuffle and -d:DProf not working 508 together ([perl #32383]) by falling back to Fisher-Yates shuffle 509 if (any use of) the -d: is detected. 510 511 * Allow calling random_graph() also as a class method: 512 Graph::random_graph(...) (the resulting graph will be a 'Graph'). 513 514 * in_degree() and out_degree() (and therefore vertex_degree()) 515 were one too low for self-loop vertices in undirected graphs 516 (the self-loop edge was not counted). 517 518 * Release as 0.62. 519 5202005-03-27 Jarkko Hietaniemi <jhi@iki.fi> 521 522 * [rt.cpan.org #12023] from Macha Nikolski: 523 deleting an attributed vertex left the graph in a state 524 where has_vertex() returned correctly false but vertices() 525 still wrongly returned the freshly deleted vertex. 526 527 * A few missing "See":s added to the pod. 528 529 * Release as 0.61. 530 5312005-03-25 Jarkko Hietaniemi <jhi@iki.fi> 532 533 * Bug reported by Richard Ball: connected_component_by_index() 534 and connected_component_by_vertex() were starting their indexing 535 from one, not zero. 536 537 * t/27_hyperedged.t was really testing for turning on 538 hypervertexedness (the actual functionality was being 539 tested correctly in t/32_hyperedge.t). 540 541 * Release as 0.60. 542 5432005-03-03 Jarkko Hietaniemi <jhi@iki.fi> 544 545 * deep_copy_graph() could not handle code references since 546 Data::Dumper by default doesn't handle those. Now uses 547 the Deparse option for 5.8.x and later. 548 549 * The removed interfaces add_graph() and delete_graph() still 550 had their documentation hanging around. 551 552 * Release as 0.59. 553 5542005-02-19 Jarkko Hietaniemi <jhi@iki.fi> 555 556 * Document that using attributes does have a slowing down 557 effect on other graph operations 558 [rt.cpan.org #11498] 559 "Performance problem: edge attributes slow source_vertices" 560 This is unlikely to get fixed any time soon, I am afraid, 561 this is one of those working-as-designed-and-correctly-but- 562 unfortunately-slow things. 563 564 * Document that Graph 0.2xxx edges($v) is now edges_at($v) 565 [rt.cpan.org #11494] 566 567 * [rt.cpan.org #11543]: self-edges reported twice by edges_at(). 568 569 * Declare/document that any attributes beginning with an underscore 570 are reserved for the internal use of Graph. 571 572 * Various inlining optimizations: should run 5-10% faster 573 than the 0.57. 574 575 * Release as 0.58. 576 5772005-02-12 Jarkko Hietaniemi <jhi@iki.fi> 578 579 * Further 10% speedup on 'make test' on top of 0.56 by inlining 580 various code paths related to finding edges, now 'make test' 581 is cumulatively about 15% faster than the 0.55 release. 582 The test case of [rt.cpan.org #11465] is about 10 times faster. 583 584 * Release as 0.57. 585 5862005-02-12 Jarkko Hietaniemi <jhi@iki.fi> 587 588 * Rewrite edges finding code (like edges_at()) to avoid a 589 quadratic algorithm. Shame on me. Luckily this extremely 590 slow path was not touched that often, but [rt.cpan.org #11465] 591 shows one known bad case, source_vertices() for compat02 592 graphs. The removal of the slow path sped up 'make test' 593 by about 5-10%. 594 595 * Remove a voodoo keys() from vertices_at(). 596 597 * Document stubs for Graph::Directed and Graph::Undirected. 598 599 * Tiny documentation tweaks. 600 601 * Release as 0.56. 602 6032005-01-22 Jarkko Hietaniemi <jhi@iki.fi> 604 605 * Add unset_row(), get_row(), set_row(), and unset_row(), methods 606 to Graph::BitMatrix and make it public (remove the "internal use 607 only" warning from it). Add t/82_bitmatrix.t. 608 609 * Add vertex_degree() as an alias for degree(). 610 611 * One more alternative solution for spt.t from Koen. 612 613 * I seem to have this drive to misspell people's names. 614 Sorry, Koen. 615 616 * Release as 0.55. 617 6182005-01-16 Jarkko Hietaniemi <jhi@iki.fi> 619 620 * More bugs found in set_vertex_attribute(), fixed and tests 621 added. (Basically the same failure pattern as with the 622 [rt.cpan.org #9461]: after setting vertex attributes many of 623 the 'structural' methods such as predecessors() often returned 624 wrong results.) 625 626 * More alternative solutions to spt.t, diameter.t, and dump.t, 627 found by the PRNG of Koen van der Drift in Mac OS X 10.3.7, 628 Perl 5.8.1. 629 630 * Release as 0.54. 631 6322005-01-14 Jarkko Hietaniemi <jhi@iki.fi> 633 634 * The #9461 was still there. 635 But now we have a simple test case from Sebastian Nagel. 636 The real culprit seemed to be a misapplied optimisation. 637 638 * Release as 0.53. 639 6402005-01-12 Jarkko Hietaniemi <jhi@iki.fi> 641 642 * Fix set_graph_attribute() documentation not to talk about $u, $v 643 (noticed by Kurt Jaeger). 644 645 * A mysterious failure fixed by a mysterious fix: under some 646 circumstances it seems that an each() doesn't walk through 647 all the key-value pairs, the workaround is to reset the 648 each() iterator by a keys() call. Not simple test code, 649 sadly, since the existing test code (see the case) is 13 kB 650 and non-trivial. 651 [rt.cpan.org #9461] 652 653 * Add a safety guard against a missing Scalar::Util::weaken 654 [rt.cpan.org #9481] 655 656 * Release as 0.52. 657 6582005-01-09 Jarkko Hietaniemi <jhi@iki.fi> 659 660 * Allow calling Makefile.PL with arguments other than --renum 661 (which is for internal use only, and therefore undocumented). 662 [rt.cpan.org #9481] 663 664 * Remove the add_graph() and delete_graph() interfaces, sorry 665 if you were already using them, but the current interface was 666 very poor and the concept ill-planned. If you want to merge or 667 remove edges and vertices between your graph, you can probably 668 yourself implement the exactly right things to do. 669 [rt.cpan.org #9493] 670 671 * Document that one cannot assume Graphs are blessed hash references 672 (and the likely error message one will get if one so assumes). 673 [rt.cpan.org #9505] 674 675 * Fix Andras' last name (sorry). 676 677 * Merge duplicate documentation of find_a_cycle(). 678 679 * Graph::AdjacencyMap::Base does not exist, fix Graph/AdjacencyMap.pm 680 pod to comply. 681 682 * Release as 0.51. 683 6842005-01-01 Jarkko Hietaniemi <jhi@iki.fi> 685 686 * The 0.50. 687 6882004-10-30 Jarkko Hietaniemi <jhi@iki.fi> 689 690 * Start wrapping up for the 0.50 release. 691 692 * Start bothering beta testers. 693