2005-08-03 Jarkko Hietaniemi <jhi@iki.fi>
* The 0.66 add_edge_get_id() fix was not yet quite right, Tels
found another problem with it. Now with another fix, and
another test case (t/u_te_ae.t)
* Documentation fixes from John P. Linderman.
* Release as 0.67.
2005-07-20 Jarkko Hietaniemi <jhi@iki.fi>
* Fix [rt.cpan.org #13193] "Documentation error in set_edge_attributes"
and [rt.cpan.org #13194] "Documentation error in set_edge_attributes"
(duplicate report)
* Fixes for problems listed in [rt.cpan.org #13195]
"add_vertex_get_id/add_edge_get_id() return wrong result on first call"
- add_edge_get_id() was returning an array reference instead
of the id with the first call (the array reference was the
ids of the vertices of the edge)
- add_vertex_get_id() was even more broken (a multivertexed
graph was using Graph::AdjacencyMap::Vertex for the vertex
map, not Graph::AdjacencyMap::Heavy)
- Added test t/u_te_me.t for the two above issues.
- document in which order multiedge ids are returned (random)
- require Data::Dumper only for deep_copy() and _dump()
(not changes for two listed items, "check directly multiedged
via a flag" and "remove returns for speed" because I have
issues with speed hacks without actual measurements, and even
if so would fear reduced maintainability)
* Fix [rt.cpan.org #13352] "Dijkstra heap logic"
Dijkstra was fine, the SPTHealElem cmp() routine was wrong
in having no tie breakers in case the weights compared equal.
Added test t/u_re_sd.t.
* Release as 0.66.
2005-05-15 Jarkko Hietaniemi <jhi@iki.fi>
* Tests added to 64_ref.t to verify that using different kinds
of blessed references as vertices works okay. Few bugs found
by these tests squashed.
* Release as 0.65.
2005-05-14 Jarkko Hietaniemi <jhi@iki.fi>
* Fix for [rt.cpan.org #12509] "Errors using objects as nodes",
patch from the reporter of the bug, add t/u/bb_rv.t.
* Fix for refvertexed isolated vertices not having overloaded cmp
and graph string presentation failing because of that.
* The <NOTE>s needed to be B<NOTE>s.
* Release as 0.64.
2005-04-16 Jarkko Hietaniemi <jhi@iki.fi>
* After setting a vertex attribute one could not delete
non-attributed vertices, reported by Joseph Hamilton.
* Inlining to speed up path_vertices() slightly.
* Release as 0.63.
2005-04-10 Jarkko Hietaniemi <jhi@iki.fi>
* The documentation of add_weighted_vertices was wrong:
the arguments are (v1, w1, v2, w2, ...) instead of (v1, v2, ..., w).
* Made calling interfaces with an "options hash" like new()
and random_graph() more robust, now bails out earlier instead
of dieing mysteriously later with an "odd number of arguments"
* Allow running under -d:DProf even when using random shuffling:
workaround for List::Util::shuffle and -d:DProf not working
together ([perl #32383]) by falling back to Fisher-Yates shuffle
if (any use of) the -d: is detected.
* Allow calling random_graph() also as a class method:
Graph::random_graph(...) (the resulting graph will be a 'Graph').
* in_degree() and out_degree() (and therefore vertex_degree())
were one too low for self-loop vertices in undirected graphs
(the self-loop edge was not counted).
* Release as 0.62.
2005-03-27 Jarkko Hietaniemi <jhi@iki.fi>
* [rt.cpan.org #12023] from Macha Nikolski:
deleting an attributed vertex left the graph in a state
where has_vertex() returned correctly false but vertices()
still wrongly returned the freshly deleted vertex.
* A few missing "See":s added to the pod.
* Release as 0.61.
2005-03-25 Jarkko Hietaniemi <jhi@iki.fi>
* Bug reported by Richard Ball: connected_component_by_index()
and connected_component_by_vertex() were starting their indexing
from one, not zero.
* t/27_hyperedged.t was really testing for turning on
hypervertexedness (the actual functionality was being
tested correctly in t/32_hyperedge.t).
* Release as 0.60.
2005-03-03 Jarkko Hietaniemi <jhi@iki.fi>
* deep_copy_graph() could not handle code references since
Data::Dumper by default doesn't handle those. Now uses
the Deparse option for 5.8.x and later.
* The removed interfaces add_graph() and delete_graph() still
had their documentation hanging around.
* Release as 0.59.
2005-02-19 Jarkko Hietaniemi <jhi@iki.fi>
* Document that using attributes does have a slowing down
effect on other graph operations
[rt.cpan.org #11498]
"Performance problem: edge attributes slow source_vertices"
This is unlikely to get fixed any time soon, I am afraid,
this is one of those working-as-designed-and-correctly-but-
unfortunately-slow things.
* Document that Graph 0.2xxx edges($v) is now edges_at($v)
[rt.cpan.org #11494]
* [rt.cpan.org #11543]: self-edges reported twice by edges_at().
* Declare/document that any attributes beginning with an underscore
are reserved for the internal use of Graph.
* Various inlining optimizations: should run 5-10% faster
than the 0.57.
* Release as 0.58.
2005-02-12 Jarkko Hietaniemi <jhi@iki.fi>
* Further 10% speedup on 'make test' on top of 0.56 by inlining
various code paths related to finding edges, now 'make test'
is cumulatively about 15% faster than the 0.55 release.
The test case of [rt.cpan.org #11465] is about 10 times faster.
* Release as 0.57.
2005-02-12 Jarkko Hietaniemi <jhi@iki.fi>
* Rewrite edges finding code (like edges_at()) to avoid a
quadratic algorithm. Shame on me. Luckily this extremely
slow path was not touched that often, but [rt.cpan.org #11465]
shows one known bad case, source_vertices() for compat02
graphs. The removal of the slow path sped up 'make test'
by about 5-10%.
* Remove a voodoo keys() from vertices_at().
* Document stubs for Graph::Directed and Graph::Undirected.
* Tiny documentation tweaks.
* Release as 0.56.
2005-01-22 Jarkko Hietaniemi <jhi@iki.fi>
* Add unset_row(), get_row(), set_row(), and unset_row(), methods
to Graph::BitMatrix and make it public (remove the "internal use
only" warning from it). Add t/82_bitmatrix.t.
* Add vertex_degree() as an alias for degree().
* One more alternative solution for spt.t from Koen.
* I seem to have this drive to misspell people's names.
Sorry, Koen.
* Release as 0.55.
2005-01-16 Jarkko Hietaniemi <jhi@iki.fi>
* More bugs found in set_vertex_attribute(), fixed and tests
added. (Basically the same failure pattern as with the
[rt.cpan.org #9461]: after setting vertex attributes many of
the 'structural' methods such as predecessors() often returned
wrong results.)
* More alternative solutions to spt.t, diameter.t, and dump.t,
found by the PRNG of Koen van der Drift in Mac OS X 10.3.7,
Perl 5.8.1.
* Release as 0.54.
2005-01-14 Jarkko Hietaniemi <jhi@iki.fi>
* The #9461 was still there.
But now we have a simple test case from Sebastian Nagel.
The real culprit seemed to be a misapplied optimisation.
* Release as 0.53.
2005-01-12 Jarkko Hietaniemi <jhi@iki.fi>
* Fix set_graph_attribute() documentation not to talk about $u, $v
(noticed by Kurt Jaeger).
* A mysterious failure fixed by a mysterious fix: under some
circumstances it seems that an each() doesn't walk through
all the key-value pairs, the workaround is to reset the
each() iterator by a keys() call. Not simple test code,
sadly, since the existing test code (see the case) is 13 kB
and non-trivial.
[rt.cpan.org #9461]
* Add a safety guard against a missing Scalar::Util::weaken
[rt.cpan.org #9481]
* Release as 0.52.
2005-01-09 Jarkko Hietaniemi <jhi@iki.fi>
* Allow calling Makefile.PL with arguments other than --renum
(which is for internal use only, and therefore undocumented).
[rt.cpan.org #9481]
* Remove the add_graph() and delete_graph() interfaces, sorry
if you were already using them, but the current interface was
very poor and the concept ill-planned. If you want to merge or
remove edges and vertices between your graph, you can probably
yourself implement the exactly right things to do.
[rt.cpan.org #9493]
* Document that one cannot assume Graphs are blessed hash references
(and the likely error message one will get if one so assumes).
[rt.cpan.org #9505]
* Fix Andras' last name (sorry).
* Merge duplicate documentation of find_a_cycle().
* Graph::AdjacencyMap::Base does not exist, fix Graph/AdjacencyMap.pm
pod to comply.
* Release as 0.51.
2005-01-01 Jarkko Hietaniemi <jhi@iki.fi>
* The 0.50.
2004-10-30 Jarkko Hietaniemi <jhi@iki.fi>
* Start wrapping up for the 0.50 release.
* Start bothering beta testers.