diff options
Diffstat (limited to 'tcllib/modules/struct/ChangeLog')
-rw-r--r-- | tcllib/modules/struct/ChangeLog | 2433 |
1 files changed, 2433 insertions, 0 deletions
diff --git a/tcllib/modules/struct/ChangeLog b/tcllib/modules/struct/ChangeLog new file mode 100644 index 0000000..096ab45 --- /dev/null +++ b/tcllib/modules/struct/ChangeLog @@ -0,0 +1,2433 @@ +2013-10-21 Andreas Kupries <andreask@activestate.com> + + * matrix.tcl: [_columnwidth]: Recognize ANSI color control + * matrix.man: sequences and exclude them from the + * matrix.test: calculation. They are logically of no width and + * pkgIndex.tcl: thus their characters must not be counted when + determining a column's width. + +2013-03-26 Andreas Kupries <andreask@activestate.com> + + * pkgIndex.tcl: Fixed, was missing struct::queue version bump + causing mismatch. + +2013-03-18 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * queue.testsuite: [Bug 3608240]: Fixed get/peek not taking + * queue_oo.tcl: the amount of already delivered elements + * queue_tcl.tcl: into account. Extended testsuite. Bumped version + to 1.4.5 + +2013-02-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.15 ======================== + * + +2013-01-21 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * queue.tcl: Rewritten, simplified. The 8.5 requisite means + * queue_oo.tcl: that we have extended requirement syntax allowing + * stack.tcl: us to jump the major version barrier without fuss. + * stack_oo.tcl: + +2013-01-08 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * pkgIndex.tcl: Fixed package require mismatch for use of TclOO + * queue.man: in Tcl 8.6+. This is TclOO v1 (major version change). + * queue.tcl: Now accepting 0.6.1+ and 1+. Versions bumped to + * queue_oo.tcl: 1.4.4 and 1.5.3 respectively. + * stack.man: + * stack.tcl: + * stack_oo.tcl: + +2012-12-07 Andreas Kupries <andreask@activestate.com> + + * list.tcl: [Bug 3593689]. Applied patch by Donal Fellows fixing + * list.test: a busyloop in [nextperm] due to use of the wrong + * pkgIndex.tcl: comparison operator. Bumped version to 1.8.2. + * struct_list.man: Added test for this. + +2012-11-21 Andreas Kupries <andreask@activestate.com> + + * pkgIndex.tcl: Fixed package require mismatch for use of TclOO. + * queue.man: Load check accepts anything, code restricts to 0.6.1. + * queue.tcl: Now both restrict to 0.6.1+. Versions bumped to + * stack.man: 1.4.3 and 1.5.2 respectively. + * stack.tcl: + +2012-07-09 Andreas Kupries <andreask@activestate.com> + + * tree/m.c (tm_ATTR): Fixed non-static string array used in call + of Tcl_GetIndexFromObj(). Memory smash waiting to happen. Thanks + to Brian Griffin for alerting us all to the problem. + +2012-06-22 Andreas Kupries <andreask@activestate.com> + + * queue.man: [Bug 3537006] Fixed typos. + +2012-01-08 Andreas Kupries <andreask@activestate.com> + + * struct_tree.man: [Bug 3471182] Fixed typo. + * struct_tree1.man: + +2011-12-13 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.14 ======================== + * + +2011-09-17 Michael Schlenker <mic42@users.sourceforge.ner> + + * list.tcl: [Bug 3308051]: Fixed noncommutative equal check + * list.test: + +2011-01-24 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.13 ======================== + * + +2010-10-26 Andreas Kupries <andreask@activestate.com> + + * graphops.man: [Bug 3090738]: Fixed typo in command names. + +2010-10-05 Andreas Kupries <andreask@activestate.com> + + * list.tcl (::struct::list::Lshuffle): New command, shuffling a + * list.test: list into random order. Bumped version to 1.8. + * struct_list.man: Extended testsuite, updated documentation. + * pkgIndex.tcl: Removed the backward compatibility implementation + of 'lset' from code and tests and bumped the runtime + requirements to Tcl 8.4. + +2010-09-10 Andreas Kupries <andreask@activestate.com> + + * queue_oo.tcl: Established minimum requirements for TclOO + * stack_oo.tcl: to support the two classes. Bug 3062782 was + a very old TclOO (0.3) interfering in the test. + +2010-09-09 Andreas Kupries <andreask@activestate.com> + + * graph/tests/ops/adjmatrix.test: Converted to tcltest v2 for + * graph/tests/ops/components.test: proper independence of the + * graph/tests/ops/componentof.test: tests. Preparation for + * graph/tests/ops/bipartite.test: the investigation of Bug + * graph/tests/ops/kruskal.test: 3062782. + * graph/tests/ops/prim.test: + * graph/tests/ops/tarjan.test: + +2010-05-25 Andreas Kupries <andreask@activestate.com> + + * queue.testsuite: Fixed bug in C implementation of 'unget'. + * queue/m.c: Used bogus variable in assert, hit only when trying + * ../tcllibc.tcl: to reuse a list Tcl_Obj for the unget + buffer. Tcllibc version bumped to 0.3.9. Testsuite extended. + +2010-03-25 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph/arcshimmer.c: Squash a number of warnings in the C + * graph/methods.c: implementations of graph, sets, and trees, + * graph/nodeshimmer.c: using casts, and including missing + * sets/s.c: headers. + * tree/m.c: + * tree/shimmer.c: + * tree/walk.c: + + * stack_oo.tcl: Remove superfluous 'package require'. Handled by + stack.tcl. + +2010-03-23 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * stack_oo.tcl: Tcl implementation of struct::stack based + * stack.tcl: on TclOO. Available in 8.5+TclOO, and 8.6+. + * stack.bench: Fixed missing dependency in benchmarks. + * stack.test: Updated tests (different error messages). + * stack.testsuite: Bumped version to 1.5.1. + * stack.man: + * pkgIndex.tcl: + + * queue_oo.tcl: Tcl implementation of struct::queue based + * queue.tcl: on TclOO. Available in 8.5+TclOO, and 8.6+. + * queue.bench: Updated and fixed benchmarks, and tests + * queue.test: (different error messages). Bumped version + * queue.testsuite: to 1.4.2. + * queue.man: + * pkgIndex.tcl: + + * sets.bench: Updated to allow switching of implementations. + +2010-03-16 Andreas Kupries <andreask@activestate.com> + + * pkgIndex.tcl: Fix version mismatch for struct::stack. + +2009-03-15 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * stack.man: struct::stack bumped to version 1.5. API extensions: + * stack.tcl: New methods getr, peekr, trim*. The first two return + * stack.test: their results in reversed order. For use in places + * stack.testsuite: which need the reverted order. As the regular + * stack/m.c: order requires an internal [lreverse], to be undone + * stack/m.h: by the caller it is better to simply avoid both + * stack/ms.c: [lreverse]s. Similarly, trim* does the trim, without + * stack/s.c: returning the trimmed items, for use where they are + * stack/s.h: thrown away anyway. ... Further, inlined the peek/pop + * stack_tcl.tcl: calls internal to get and trim, allowing + * pkgIndex.tcl: simplification of the resulting code, like + avoidance of additional argument checks. ... At last, now using + 8.5 features when detecting Tcl 8.5+ as our runtime ... I.e. + ensembles for the method dispatch instead of doing everything on + our own, with eval and uplevel. Result: The speed of the Tcl + implementation roughly doubles. + + * stack.bench: Updated to use the ability to switch between the + various implementations. + +2009-12-07 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.12 ======================== + * + +2009-11-25 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph_tcl.tcl: Fixed mismatches due to the 2009-11-03 change. + * graph/tests/command.test: + + * pkgIndex.tcl: Extended struct::stack with convenience methods + * stack.man: 'get' and 'trim', to get whole stack, and alternate + * stack.tcl: argument specification of 'pop'. Bumped version to + * stack_tcl.tcl: 1.4. Bumped the tcllibc umbrella package to + * stack.testsuite: version 0.3.7. + * stack/m.c: version + * stack/m.h: + * stack/ms.c: + * stack/ms.h: + * stack/s.c: + * stack/s.h: + +2009-11-03 Andreas Kupries <andreask@activestate.com> + + * graph/tests/XOpsSetup: [Bug 2811747]: Removed the import of + * graph/tests/Xsetup: command struct::graph into the global + * graph/tests/Xsupport: namespace in the testsuite, and updated + * graph/tests/arcs.test: all users. This prevents the masking + * graph/tests/command.test: of scope errors in the graph::op + * graph1.test: package when its testsuite is run. + +2009-09-24 Andreas Kupries <andreask@activestate.com> + + * list.test: [Bug 2557046]: Updated the testsuite to for changes + to lassign and lrepeat in 8.6 (do nothing gracefully, and + changes to error messages). Affected tests are either skipped or + get conditional results. + + * tree.testsuite (tree-*-1.8): Pattern match the name, do not + expect a particular id number (Depends on which previous tests + have run, especially in graphops). + +2009-09-24 Andreas Kupries <andreask@activestate.com> + + * The integration of Michal Antoniewski's (<antoniewsli@gmail.com>) + work on graph operations for GSoC 2009 is now complete, with all + testsuites integrated and fixed up to handle both Tcl and C + implementations of struct::graph, tree, set, etc., and some bugs + uncovered by this work fixed as well. + + * graphops.tcl (::struct::graph::op::WeightedKCenter): Fixed + * graphops.man: object leak. Added the missing release of the + * pkgIndex.tcl: Gi(SQ) in error case (no solution). Bumped + * graphops.test: version to 0.11.3. Tweaked comment in testsuite + regarding repetition. + + * graph/tests/XOpsControl: Added testsuite for weighted k-center. + * graph/tests/ops/weightedkcenter.test: Testsuite for weighted k-center. + Changes compared to GSoC result: + - Test names extended with 'treeimpl'. + - Indentation, line-endings + - Several tests demonstrates how the result is influenced by + node/arc ordering. Extended to accept the variations. + This passes the testsuite for both tcl and critcl + implementations of struct::graph. + * graph/tests/ops/kcenter.test: Moved the custom matcher/verifier for + * graph/tests/XOpsSupport: max-independent-set to shared file. + * graph/tests/XOpsSetup: Simplified some setup procedures a bit. + + * graphops.tcl (::struct::graph::op::MaximumFlowByDinic): Fixed + * graphops.man: object leak. Added the missing release of the + * pkgIndex.tcl: residual graph generated in each iteration. Bumped + version to 0.11.2. + + * graph/tests/XOpsControl: Added testsuite for Dinic Maximum Flow. + * graph/tests/ops/dinicmaximumflow.test: Testsuite for Dinic Maximum + Flow. Changes compared to GSoC result: + - Test names extended with 'treeimpl'. + - Indentation, line-endings + - Added dictsort to force a canonical ordering on the + results. + - Results updated to be in the canonical ordering. + This passes the testsuite for both tcl and critcl + implementations of struct::graph. + + * graphops.man: [Bug 2800387]: Updated descriptions of Kruskal and + Prim with time complexity information, tweaked terminology a bit + (minimum _weight_ spanning tree), and noted the exceptional + handling of 1-vertex components (they are not shown in the + results). + + * graph.man: Added method 'arc nodes' to the Tcl and C + * graph.tcl: implementations. Extended testsuite and + * graph_tcl.tcl: documentation. Bumped package to + * graph/methods.c: version 2.4. Bumped the tcllibc + * graph/objcmd.c: umbrella package to version 0.3.6. + * graph/tests/arc/nodes.test: + * graph/tests/command.test: + * graph/tests/Xcontrol: + * pkgIndex.tcl: + * ../tcllibc.tcl: + +2009-09-23 Andreas Kupries <andreask@activestate.com> + + * graphops.tcl (::struct::graph::op::MinimumDegreeSpanningTree): + Stop search+insertion loop after it has added the candidate + arc. (::struct::graph::op::MinimumDiameterSpanningTree): Fix two + object leaks. + + * graph/tests/XOpsControl: Added testsuite for Min D Spanning Trees. + * graph/tests/ops/mdst.test: Testsuite for MDST. + Blocking Flow. Changes compared to GSoC result: + - Test names extended with 'treeimpl'. + - Indentation, line-endings + - Added undirected to force a canonical ordering on the + results. + - Results updated to be in the canonical ordering. + - Several tests demonstrates how the result is influenced by + node ordering. Extended to accept the variations. + This passes the testsuite for both tcl and critcl + implementations of struct::graph. + + * graphops.tcl (::struct::graph::op::BlockingFlowByMKM): Fixed + * graphops.man: object leak. Added the missing release of the + * pkgIndex.tcl: LevelGraph on exceptional return (No path between + nodes s and t). Bumped version to 0.11.1. + + * graph/tests/XOpsControl: Added testsuite for MKM Blocking Flow. + * graph/tests/ops/mkmblockingflow.test: Testsuite for MKM + Blocking Flow. Changes compared to GSoC result: + - Test names extended with 'treeimpl'. + - Indentation, line-endings + - Added dictsort to force a canonical ordering on the + results. + - Results updated to be in the canonical ordering. + This passes the testsuite for both tcl and critcl + implementations of struct::graph. + +2009-09-22 Andreas Kupries <andreask@activestate.com> + + * graph/tests/XOpsControl: Added testsuite for Dinic Blocking Flow. + * graph/tests/ops/dinicblockingflow.test: Testsuite for Dinic + Blocking Flow. Changes compared to GSoC result: + - Test names extended with 'treeimpl'. + - Indentation, line-endings + - Added dictsort to force a canonical ordering on the + results. + - Results updated to be in the canonical ordering. + This passes the testsuite for both tcl and critcl + implementations of struct::graph. + + * graph/tests/XOpsControl: Added testsuite for k-center. + * graph/tests/ops/kcenter.test: Testsuite for k-center. + Changes compared to GSoC result: + - Test names extended with 'treeimpl'. + - Indentation, line-endings + - Several tests demonstrates how the result is influenced by + node ordering. Extended to accept the variations. + - Custom matcher/verifier for max-independent-set. + Note: SETUP_KCENTER_1 is not creating a complete graph, + violating the pre-conditions of the algorithm. This affects test + cases 1.3 - 1.6, it is not clear if their results are correct in + general. + This passes the testsuite for both tcl and critcl + implementations of struct::graph. + * graph/tests/XOpsSetup: Re-indented, some notes added, loop + conditions tweaked. + + * graph/tests/XOpsControl: Added testsuite for vertex cover. + * graph/tests/ops/verticescover.test: Testsuite for vertex cover. + Changes compared to GSoC result: + - Test names extended with 'treeimpl'. + - Indentation, line-endings + - Several tests demonstrates how the result is influenced by + node ordering. Extended to accept the variations. + This passes the testsuite for both tcl and critcl + implementations of struct::graph. + +2009-09-21 Andreas Kupries <andreask@activestate.com> + + * graph/tests/XOpsControl: Added the testsuites for metrictsp, + christofides and tspheuristics. + * graph/tests/ops/metrictsp.test: Testsuite for metrictsp. + * graph/tests/ops/christofides.test: Testsuite for christofides. + * graph/tests/ops/tspheuristics.test: Testsuite for tspheuristics. + Changes compared to GSoC result: + - Test names extended with 'treeimpl'. + - Indentation, line-endings + - Conversion to v2 syntax, and cleanup of resource handling. + - Updated results for different implementations, sorting. + + * graph/tests/XOpsSetup (SETUP_TSPHEURISTIC_1): Fixed growing + cycle list throwing of repeated execution of the same test. + + * graph/tests/Xsupport: Added helper commands for the test cases + of the various metric tsp commands (canonical tours, ...). + + * graph/tests/Xsetup (tmSE): Added result selection based on + implementation of struct::set. + + * graphops.tcl (::struct::graph::op::MetricTravellingSalesman): + Fixed problem in algorithm for asymmetric TSP, selecting the + tour in the wrong (higher-weight) direction. The Fleury + underneath does not care about arc direction. + (::struct::graph::op::Christofides): Dropped superfluous + variable and fixed M+T operation. The matching does not care + about arc direction, and we have insert anti-parallel arcs to + avoid any existing. + (::struct::graph::op::isEulerian?): Extended API to return + tour start. Computable from the arcs, but not easy. Better to get + it from the algorithm which knows by definition. + (::struct::graph::op::findHamiltonCycle): Get tour start from + isEulerian, and drop bogus computation from the tour arcs. + (::struct::graph::op::createTGraph): Moved graph creation after + error check to avoid a leak when the check fails. + * graphops.man: Bumped version to 0.11 + * pkgIndex.tcl: (isEulerian API extension, plus bugfixes). + +2009-09-17 Andreas Kupries <andreask@activestate.com> + + * queue/m.c (qum_PEEK): Convert C99/C++ comment to C89 + comment. Some unix compilers, like AIX are strict C89 and fail + on this. + +2009-09-16 Andreas Kupries <andreask@activestate.com> + + * graph/tests/XOpsControl: Added testsuite for maxcut. + * graph/tests/ops/maxcut.test: Testsuite for maxcut. + Changes compared to GSoC result: + - Test names extended with 'treeimpl'. + - Indentation, line-endings + - test 1.4 demonstrates not only how the heuristic can run into + local optimum, but also how the result is influenced by node + ordering, critcl implementation gives optimal solution + instead, now accepted. + This passes the testsuite for both tcl and critcl + implementations of struct::graph. + + * graphops.tcl: Fixed indentation, and removed trailing + whitespace. + + * graph/tests/XOpsControl: Added testsuite for BFS. + * graph/tests/ops/bfs.test: Testsuite for breadth-first + search. Changes compared to GSoC result: + - Test names extended with 'treeimpl'. + - Added dictsort and lsort to force a canonical ordering on + results. Where sorting was not possible we provide the two + valid results for Tcl and Critcl implementations. + - Results updated to be in the canonical ordering. + - Indentation, line-endings + This passes the testsuite for both tcl and critcl + implementations of struct::graph. + +2009-09-15 Andreas Kupries <andreask@activestate.com> + + * graph/tests/XOpsControl: Added new testsuites. + + * graph/tests/ops/busackergowen.test: Changes like for + edmondskarp.test, i.e. equivalent data leakage bugs (1.4-1.6). + + * graph/tests/ops/edmondskarp.test: Ditto, plus conversion of a + few tests to tcltest v2 form, to make the setup and cleanup of + resources more explicit, fixing data leakage between tests + (FF-1.5-1.9), and fixing test results of these. First actual bug + fixes. + + * graph/tests/ops/adjlist.test: Ditto, except this one is using a + custom sorting command. + + * graph/tests/ops/floydwarshall.test: Ditto. + * graph/tests/ops/johnsons.test: Ditto. + + * graph/tests/ops/bellmanford.test: New testsuite for bellman-ford + algorithm. Changes compared to GSoC result: + - Test names extended with 'treeimpl'. + - Added dictsort to force a canonical ordering on the + results. + - Results updated to be in the canonical ordering. + - Indentation, line-endings + This passes the testsuite for both tcl and critcl + implementations of struct::graph. + + * graphops.tcl: Starting on the integration of Michal + * graphops.man: Antoniewski's (<antoniewsli@gmail.com>) work on + * graphops.test: graph operations for GSoC 2009. Added all + * graphops.man: operations, and their documentation. Version + * graphops.tcl: bumped to 0.10. The graphops package now requires + * graphops.test: Tcl 8.5. The testsuite requires tcltest v2. + * pkgIndex.tcl: Extended setup commands for upcoming new tests. + * graph/tests/XOpsSetup: The package and tests now require + * graph/tests/ops/adjmatrix.test: struct::tree, another package + * graph/tests/ops/bipartite.test: with acceleration via critcl. + * graph/tests/ops/bridge.test: Testsuite updated to switch its + * graph/tests/ops/componentof.test: implementations well. The + * graph/tests/ops/components.test: testsuites for the new + * graph/tests/ops/connected.test: commands will be added + * graph/tests/ops/cutvertex.test: incrementally over the next + * graph/tests/ops/diameter.test: days. + * graph/tests/ops/dijkstra.test: + * graph/tests/ops/distance.test: + * graph/tests/ops/eccentricity.test: + * graph/tests/ops/eulerpath.test: + * graph/tests/ops/eulertour.test: + * graph/tests/ops/kruskal.test: + * graph/tests/ops/maxmatching.test: + * graph/tests/ops/prim.test: + * graph/tests/ops/radius.test: + * graph/tests/ops/tarjan.test: + +2009-09-14 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph/filter.c: Fixed bug in 'arcs -adj' implementation. Wrong + * graph/tests/arcs.test: range check. Extended testsuite. Bumped + * ../tcllibc.tcl: version of tcllibc containing this fix to 0.3.5. + + * graphops.tcl: Destroy internal temporary object on internal + * graphops.man: error. Bumped version to 0.9.2. + * pkgIndex.tcl: + + * graph/tests/ops/eulerpath.test: Converted to tcltest v2 form. + + * graph/tests/XOpsControl: Added sourcing of the support code + needed when the graphops testsuite is run standalone. + +2009-07-10 Andreas Kupries <andreask@activestate.com> + + * graphops.tcl (::struct::graph::op::TarjanSub): + * graphops.tcl (::struct::graph::op::isCutVertex?): + * graphops.tcl (::struct::graph::op::Fleury): + * pkgIndex.tcl: Fixed [Bug 2815302]. Replaced a number of uses of + * graphops.man: struct::set subtract' with the proper 'struct::set + exclude', as these places remove a single element, not a + set. Use of the wrong method then breaks the code if elements + (node/arc names) with whitespace in them is used. Bumped version + to 0.9.1. + +2009-06-22 Andreas Kupries <andreask@activestate.com> + + * tree_tcl.tcl (::struct::tree::_swap): Removed code which flipped + the attributes around. This is wrong. They stay with their + nodes, per the node name. Thanks to Tom Krehbiel for the report. + + * tree.testsuite : Extended with a test for method swap which + checks that the attributes of the nodes are handled correctly. + + * pkgIndex.tcl: Bumped to version 2.1.2. + * tree.tcl: + +2009-04-13 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct_tree.man: Fixed typo. + +2008-12-12 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.11.1 ======================== + * + +2008-12-12 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph_tcl.tcl (::struct::graph::_walk): Fixed post-order dfs + * graph/tests/walk.test: problem [Bug 2420330] in Tcl side. + * pkgIndex.tcl: Extended testsuite. Bumped to version 2.3.1 + +2008-11-19 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph1.test: Cleanup to avoid interference with the accelerators + * graphops.test: of graph v2. Bring in the accelerators for queues + * graph/tests/ops/adjmatrix.test: and stacks. Fixed bug in tarjan + * graph/tests/ops/bipartite.test: exposed by the accelerator (*). + * graph/tests/ops/bridge.test: (*) Changed order of arc traversal. + * graph/tests/ops/componentof.test: + * graph/tests/ops/components.test: + * graph/tests/ops/connected.test: + * graph/tests/ops/cutvertex.test: + * graph/tests/ops/diameter.test: + * graph/tests/ops/dijkstra.test: + * graph/tests/ops/distance.test: + * graph/tests/ops/eccentricity.test: + * graph/tests/ops/eulerpath.test: + * graph/tests/ops/eulertour.test: + * graph/tests/ops/kruskal.test: + * graph/tests/ops/maxmatching.test: + * graph/tests/ops/prim.test: + * graph/tests/ops/radius.test: + * graph/tests/ops/tarjan.test: + + * graphops.tcl: Near-completed integration of graph algorithms. + * graphops.man: Node distances, eccentricity, radius, diameter. + * graph/tests/ops/distance.test: Bumped package version to 0.9. + * graph/tests/ops/radius.test: Disabled the placeholders for max- + * graph/tests/ops/diameter.test: matching, the only algorithm we + * graph/tests/ops/eccentricity.test: are missing. + * graph/tests/XOpsControl: + * pkgIndex.tcl: + +2008-11-18 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graphops.tcl: Continued integration of graph algorithms. Node + * graphops.man: distances, dijkstra's algorithm. Bumped the + * graph/tests/ops/dijkstra.test: package version to 0.8. + * graph/tests/XOpsControl: + * graph/tests/XOpsSetup: + * pkgIndex.tcl: + +2008-11-17 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graphops.tcl: Continued integration of graph algorithms. Euler + * graphops.man: paths and tours. Bumped the package version + * graph/tests/ops/eulertour.test: to 0.7. + * graph/tests/ops/eulerpath.test: + * graph/tests/XOpsControl: + * graph/tests/XOpsSetup: + * graph/tests/XOpsSupport: + * pkgIndex.tcl: + +2008-11-14 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graphops.tcl: Continued integration of graph algorithms. More + * graphops.man: about connectivity. Bumped the package version + * graph/tests/ops/connected.test: to 0.6. + * graph/tests/ops/cutvertex.test: + * graph/tests/ops/bridge.test: + * graph/tests/XOpsControl: + * pkgIndex.tcl: + +2008-11-13 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graphops.tcl: Continued integration of graph algorithms. + * graphops.man: Connected components. Bumped package version + * graph/tests/ops/components.test: to 0.5. + * graph/tests/ops/componentof.test: + * graph/tests/XOpsControl: + * graph/tests/XOpsSetup: + * graph/tests/XOpsSupport: + * pkgIndex.tcl: + +2008-11-12 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graphops.tcl: Continued integration of graph algorithms. + * graphops.man: SCCs via Tarjan. Placeholder for max matching. + * graph/tests/ops/tarjan.test: Bumped version to 0.4. + * graph/tests/ops/maxmatching.test: + * graph/tests/XOpsControl: + * graph/tests/XOpsSetup: + * graph/tests/XOpsSupport: + * pkgIndex.tcl: + +2008-11-08 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graphops.tcl: Continued integration of graph algorithms. + * graphops.man: Test for bipartite graph. Bumped version + * graph/tests/ops/bipartite.test: to 0.3 + * graph/tests/XOpsControl: + * graph/tests/XOpsSetup: + * graph/tests/XOpsSupport: + * pkgIndex.tcl: + +2008-11-07 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graphops.tcl: Continued integration of graph algorithms. + * graphops.man: Minimum spanning tree/forest as per Prim. + * graph/tests/ops/prim.test: Bumped version to 0.2 + * graph/tests/XOpsControl: + * graph/tests/XOpsSetup: + * pkgIndex.tcl: + +2008-11-06 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graphops.tcl: Continued integration of graph algorithms. + * graphops.man: Minimum spanning tree/forest as per Kruskal. + * graph/tests/ops/kruskal.test: + * graph/tests/XOpsControl: + * graph/tests/XOpsSetup: + +2008-11-04 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graphops.tcl: Starting on the integration of Alejandro Paz's + * graphops.man: (<vidriloco@gmail.com>) work on graph operations + * graphops.test: for GSoC 2008. First operation: Adjacency matrix. + * pkgIndex.tcl: + * graph/test/XOpsControl: + * graph/test/XOpsSetup: + * graph/test/XOpsSupport: + * graph/test/ops/adjmatrix.test: + +2008-10-16 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.11 ======================== + * + +2008-10-16 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph/graph.c (dup): Fixed duplication of an empty graph, mis- + * graph/tests/command.test: handled the re-chaining of the node- + list in the source. Added test for this case. + +2008-10-12 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph/graph.c (dup): Fixed missing propagation of arc weights. + * graph/tests/command.test: Added test for graph assignment with + weights. + +2008-10-11 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.man: Extended graphs with the ability to define arc + * graph.tcl: weights. Added methods to query and manipulate weight + * graph_tcl.tcl: information. Extended the serialization format to + * pkgIndex.tcl: handle graphs with and without arc weights. + * graph/arc.c: Implemented in both Tcl and C. The Tcl code is + * graph/ds.h: derived from Alejandro Paz's (<vidriloco@gmail.com>) + * graph/methods.c: work during GSoC 2008. Extended testsuite and + * graph/methods.h: documentation. The package now requires Tcl 8.4 + * graph/objcmd.c: for operation. Bumped the package version to 2.3. + * graph/tests/Xcontrol: + * graph/tests/arc/getunweighted.test: + * graph/tests/arc/getweight.test: + * graph/tests/arc/hasweight.test: + * graph/tests/arc/setunweighted.test: + * graph/tests/arc/setweight.test: + * graph/tests/arc/unsetweight.test: + * graph/tests/arc/weights.test: + * graph/tests/command.test: + * graph/tests/deserialize.test: + * graph/tests/serialize.test: + * graph/tests/Xsupport: + +2008-09-09 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * disjointset.man: Added a modified form of the disjoint-set class + * disjointset.tcl: created by Alejandro Paz <vidriloco@gmail.com> + * disjointset.test: for the Google Summer Of Code 2008. Version 1.0. + * disjointset.testsuite: + * pkgIndex.tcl: + +2008-09-03 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * prioqueue.man: Extended with a 'remove' method for the + * prioqueue.tcl: deletion of items from queues before their + * prioqueue.test: time comes up with 'get'. Bumped version + * pkgIndex.tcl: to 1.4. Code originally by Alejandro Paz + <vidriloco@gmail.com> for GSoC 2008, with modifications by + myself to make the item search more efficient. + +2008-09-02 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.testsuite: Updated tests based on walk error stack traces + to handle new differences between 8.4 and 8.5. + + * tree.testsuite.4417b84.txt: Moved the stacktraces to separate files + * tree.testsuite.4417=84tcl.txt: for better readability of both the + * tree.testsuite.4417a84tcl.txt: traces and the test using it. + * tree.testsuite.4417a83critcl.txt: + +2008-08-12 Michael Schlenker <mic42@users.sourceforge.net> + + * graph1.tcl: Removed reference to the cgraph download. + * graph1.man: Its no longer available from that site, + and there is currently no replacement site. Newer + code should use graph 2 with the critcl accelerators. + +2008-07-11 Andreas Kupries <andreask@activestate.com> + + * list.tcl (::struct::list::Ldelete): Added a 'delete' command + * struct_list.man: for removing of elements from a list by name + * list.test: Bumped version to 1.7. + * pkgIndex.tcl: + +2008-07-03 Andreas Kupries <andreask@activestate.com> + + * queue/m.c: Separated qdump from queue_debug mode. + * queue/util.h: Brought all assert macros in line with the + * stack/util.h: definitions provided to graph (which print + * tree/util.h: file/line information). Also activated assertions + throughout for regular build. + +2008-07-02 Andreas Kupries <andreask@activestate.com> + + * queue.tcl: Changed core queue code to support multiple + * queue_tcl.tcl: implementations, and Tcl implementation. Bumped + * queue.man: to version 1.4.1. Updated documentation to mention + * pkgIndex.tcl: the critcl implementation, version number, + etc. Reworked the Tcl implementation as well for speed (split + buffer, indexing, avoid memcopies, K-operator). + + * queue_c.tcl: Critcl based implementation of queues. + * queue/ds.h: + * queue/m.c: + * queue/m.h: + * queue/q.c: + * queue/q.h: + + * queue.testsuite: Reworked the testsuite to handle both Tcl and + * queue.test: critcl implementations. + +2008-06-19 Andreas Kupries <andreask@activestate.com> + + * stack.tcl: Changed core stack code to support multiple + * stack_tcl.tcl: implementations, and Tcl implementation. Bumped + * stack.man: to version 1.3.3. Updated documentation to mention + * pkgIndex.tcl: the critcl implementation, version number, etc. + + * stack_c.tcl: Critcl based implementation of stacks. + * stack/ds.h: + * stack/m.c: + * stack/m.h: + * stack/s.c: + * stack/s.h: + + * stack.testsuite: Reworked the testsuite to handle both Tcl and + * stack.test: critcl implementations. + +2008-06-18 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * stack.bench: New file, added benchmarks for stack objects. + * stack.tcl: Rewrites of various commands for speed, using K + * pkgIndex.tcl: operator etc. Bumped to version 1.3.2. + * stack.man: + +2008-03-23 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph/tests/nodes.test: Extended with tests to capture the + situation of [Bug 1923685]. They properly crash without the fix + and pass when the fix is applied. + + * graph/util.h (ASSERT): Extended to reported the asserted expression, + and the file and line the assert is at. + + * graph/filter.c (filter_mode_n_in, filter_mode_n_out): Fixed bug + in checking for duplicate nodes. Allowed dups to remain, causing + parallel arcs more than the number of total nodes to trigger the + overrun assertion. Reported as [Bug 1923685] by Georgios Petasis + <petasis@users.sourceforge.net>. Thanks. + +2008-03-08 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * sets_tcl.tcl (::struct::set::S_subtract,::struct::set::S_exclude): + * sets.testsuite: Added an explicit check for the existence of the + variable so that we can report the actual name of the missing + variable instead of the name internally used by the + implementation. Modified the relevant testcases to use a + variable name different from the internal name to expose this + properly. This should fix [Bug 1680176]. + + * sets/m.c (sm_ADD): Brought the behaviour of method 'add' back + * sets.testsuite: into line with the behaviour of 'include', + * sets.tcl: i.e. create a missing variable, in both Tcl and critcl + * struct_set.man: implementations. Updated the relevant tests as + * pkgIndex.tcl: well. See changelog entry 2006-01-30 as well, + and [SF Tcllib Bug 1414051]. Bumped version to 2.2.3. + + * sets/m.c (sm_INCLUDE): Replaced bogus TCL_LEAVE_ERR_MSG when + * sets.testsuite: checking for variable existence, as the variable + is created if missing. In contrast to exclude/subtract which + require the variable to exist. This is likely a copy/paste + error. The bogus error message was returned as the result of the + command, not an error trace, but could be mistaken for it in + interactive use. This fixes [Bug 1908098] reported by Stephane + Jeanjean <sjeanjean@users.sourceforge.net>. Testsuite extended. + +2008-03-06 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * sets.test: Updated tests to have error messages in line with the + * graph/tests/Xsetup: 8.5 core. + * graph/tests/attr/append.test: + * graph/tests/attr/get.test: + * graph/tests/attr/getall.test: + * graph/tests/attr/keyexists.test: + * graph/tests/attr/keys.test: + * graph/tests/attr/lappend.test: + * graph/tests/attr/set.test: + * graph/tests/attr/unset.test: + +2008-02-27 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * list.test: Updated tests to have error messages in line with the + * list.tcl: 8.5 core. Added light comments to make separation of + 8.4 and 8.5+ clear. This fixes the SF Tcllib Bugs [1897846] + and [1897848] (and their duplicates). + +2008-02-14 Andreas Kupries <andreask@activestate.com> + + * matrix.tcl: Changed uses of abbreviated '-regex' in switch + * pkgIndex.tcl: commands to the full option, '-regexp'. Bumped + version to 2.0.2. + +2008-01-28 Andreas Kupries <andreask@activestate.com> + + * sets_tcl.tcl (::struct::set::Cleanup): Fixed handling of set + * sets.testsuite: elements looking like namespace variable + * sets.test: names. They break our hack of using the proc-local + * sets.tcl: var hashtable. We have to use an explicit + * pkgIndex.tcl: array. Updated the testsuite to use such + * struct_set.man: elements. Bumped version to 2.2.2. + +2008-01-28 Andreas Kupries <andreask@activestate.com> + + * graph_c.tcl: Disabled the critcl::debug and critcl::cheaders -g + * sets_c.tcl: definitions. + * tree_c.tcl: + +2007-09-19 Andreas Kupries <andreask@activestate.com> + + * list.tcl (::struct::list::Lpermutations): Fixed use of + unqualified 'list' command for case of 1-element list. This + fixes [SF Tcllib Bug 1798337]. Thanks to Glenn Jackman + <glennjnn@users.sourceforge.net> for both report and fix. + * pkgIndex.tcl: Version bumped to 1.6.2. Extended the + * struct_list.man: testsuite with a test for this case. + * list.test: + +2007-09-12 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.10 ======================== + * + +2007-08-29 Andreas Kupries <andreask@activestate.com> + + * tree.testsuite: Simplified constraint definition, we now have a + standard syntax (backward compat def for tcltest 1.0 in the + devtools/testutilities.tcl). + + * sets.testsuite: Added a test demonstrating a shimmering problem + in the C implementation of struct::set (handling of pure list + values is bad). + + * sets/s.c: Fixed the bug demonstrated by the new test, see + * pkgIndex.tcl: above. Version of package bumped to 2.2.1. Version + of tcllibc bumped to 0.3.2. + +2007-08-22 Andreas Kupries <andreask@activestate.com> + + * struct_list.man: Fixed example for 'filterfor', removed the + bogus 'expr' layer. The command runs 'expr' itself. This fixes + [SF Tcllib Bug 1779424]. + +2007-08-03 Andreas Kupries <andreask@activestate.com> + + * sets.test (Nothing): Updated to changes in reporting of errors + with alias commands in 8.5. + +2007-05-16 Kevin B. Kenny <kennykb@acm.org> + + * list.tcl (LlcsInvertMerge2): Fixed a bug where incorrect + "unchanged" entries were generated on a merged list. + * list.test (lcsInv-4.2,lcsInv-4.3): Corrected the test cases + because they were expecting incorrect results from + the above bug. [Bug 1720331] + * pkgIndex.tcl: Advanced version number of 'struct::list' to 1.6.1 + +2007-04-12 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.tcl: Renamed various commands handling accelerators. This + brought their names into compliance with the requirements of the + 'TestAccel*' commands in devtools. + + * sets.tcl: Fixed use of KnownImplementations missed by last + change. + +2007-04-11 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * sets.tcl: Renamed various commands handling accelerators. This + brought their names into compliance with the requirements of the + 'TestAccel*' commands in devtools. + + * sets.test: Rewritten to use the 'TestAccel*' convenience + commands. + + * tree.test: Rewritten to use the 'TestAccel*' convenience + commands. Additionally moved the helper commands into a new, + separate file + + * tree/tests/Xsupport: New file now containing the helper commands + for testing struct::tree. + + * graph.test: Rewritten to make use of 'useAccel'. + + * graph.test: The testsuite already switches various + * graph/tests/arcs.test: implementations of struct::graph. Added + * graph/tests/assign.test: the switching of struct::set + * graph/tests/command.test: implementations. + * graph/tests/deserialize.test: + * graph/tests/nodes.test: + * graph/tests/rassign.test: + * graph/tests/serialize.test: + * graph/tests/swap.test: + * graph/tests/walk.test: + * graph/tests/arc/attr.test: + * graph/tests/arc/delete.test: + * graph/tests/arc/exists.test: + * graph/tests/arc/flip.test: + * graph/tests/arc/insert.test: + * graph/tests/arc/move-source.test: + * graph/tests/arc/move-target.test: + * graph/tests/arc/move.test: + * graph/tests/arc/rename.test: + * graph/tests/arc/source.test: + * graph/tests/arc/target.test: + * graph/tests/attr/append.test: + * graph/tests/attr/get.test: + * graph/tests/attr/getall.test: + * graph/tests/attr/keyexists.test: + * graph/tests/attr/keys.test: + * graph/tests/attr/lappend.test: + * graph/tests/attr/set.test: + * graph/tests/attr/unset.test: + * graph/tests/node/attr.test: + * graph/tests/node/degree.test: + * graph/tests/node/delete.test: + * graph/tests/node/exists.test: + * graph/tests/node/insert.test: + * graph/tests/node/opposite.test: + * graph/tests/node/rename.test: + +2007-03-26 Andreas Kupries <andreask@activestate.com> + + * struct_tree.man: Documentation improvements as suggested by Lars + * struct_tree1.man: Bergstrom ([Bug 1687902]). + +2007-03-22 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.man: Fixed all warnings due to use of now + * graph1.man: deprecated. Added a section about how + * matrix.man: to give feedback. + * matrix1.man: + * pool.man: + * prioqueue.man: + * queue.man: + * record.man: + * skiplist.man: + * stack.man: + * struct_list.man: + * struct_set.man: + * struct_tree.man: + * struct_tree1.man: + +2007-02-27 Andreas Kupries <andreask@activestate.com> + + * sets/s.c (from_any): Crashing bug in the Critcl implementation + of 'struct::set'. Remembered the old object type X in the + from_any conversion function, then converted to type 'list', and + at the end tried to release the list using the freeintrep + function of type X instead of type 'list'. Fixed by moving the + code to remember the type after the conversion to a 'list'. + +2007-02-15 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.tcl: pragma/hint for md generator. + +2007-01-22 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * sets.bench: Added more benchmarks, add/include, + subtract/exclude, equality. + + * sets/m.c: Rewrote sm_ADD, inlined s_add to enable us to defer + set duplication until the set actually changes. This also + ensures that the string-rep is invalidated only in cvase of a + true change. Ditto rewrites of sm_INCLUDE, sm_SUBTRACT, and + sm_EXCLUDE. + +2007-01-21 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct_set.man: Updated documentation to mention the critcl + implementation, version number, etc. + + * pkgIndex.tcl: Version of sets bumped to 2.2. + + * sets.bench: New, benchmarks for set operations, incomplete. + + * sets.tcl: Changed core sets code to support multiple + * sets_tcl.tcl: implementations, and Tcl implementation. + + * sets_c.tcl: Critcl based implementation of sets. + * sets/ds.h: + * sets/m.c: + * sets/m.h: + * sets/s.c: + * sets/s.h: + + * sets.testsuite: Reworked the testsuite to handle both Tcl and + * sets.test: critcl implementations. + +2006-11-15 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * pkgIndex.tcl: Version of graph bumped to 2.2. + + * graph.man: Updated documentation for new features, extended + abilities, critcl implementation, etc. + + * graph.tcl: Changed core graph code to support multiple + * graph_tcl.tcl: implementations, and Tcl implementation. Added + some more features (arc|node delete multiple nodes, insertion of + multiple nodes, flipping the direction of arcs), internal + refactoring of common argument checks, additional checks closing + some holes. + + * graph_c.tcl: Critcl based implementation of graph. + * graph/arc.c: + * graph/methods.c: + * graph/ds.h: + * graph/node.c: + * graph/objcmd.h: + * graph/attr.c: + * graph/arcshimmer.c: + * graph/objcmd.c: + * graph/arc.h: + * graph/filter.c: + * graph/methods.h: + * graph/util.c: + * graph/util.h: + * graph/node.h: + * graph/graph.h: + * graph/graph.c: + * graph/nacommon.c: + * graph/walk.c: + * graph/walk.h: + * graph/global.h: + * graph/nodeshimmer.c: + * graph/attr.h: + * graph/global.c: + * graph/nacommon.h: + + * graph.test: Reworked testsuite, split into about one file per + * graph/tests/Xsetup: tested method, plus helper and control + * graph/tests/arc/delete.test: files. Extended testsuite testing + * graph/tests/arc/exists.test: several of the holes which were + * graph/tests/arc/flip.test: closed and had never been tested + * graph/tests/arc/insert.test: before. + * graph/tests/arc/move.test: + * graph/tests/arc/move-source.test: + * graph/tests/arc/move-target.test: + * graph/tests/arc/rename.test: + * graph/tests/arc/source.test: + * graph/tests/arc/target.test: + * graph/tests/arc/attr.test: + * graph/tests/attr/get.test: + * graph/tests/attr/getall.test: + * graph/tests/attr/keyexists.test: + * graph/tests/attr/keys.test: + * graph/tests/attr/lappend.test: + * graph/tests/attr/set.test: + * graph/tests/attr/unset.test: + * graph/tests/attr/append.test: + * graph/tests/attr/Xsetup: + * graph/tests/node/degree.test: + * graph/tests/node/delete.test: + * graph/tests/node/exists.test: + * graph/tests/node/insert.test: + * graph/tests/node/rename.test: + * graph/tests/node/opposite.test: + * graph/tests/node/attr.test: + * graph/tests/walk.test: + * graph/tests/Xsupport: + * graph/tests/Xcontrol: + * graph/tests/arcs.test: + * graph/tests/nodes.test: + * graph/tests/deserialize.test: + * graph/tests/assign.test: + * graph/tests/serialize.test: + * graph/tests/command.test: + * graph/tests/rassign.test: + * graph/tests/swap.test: + +2006-10-03 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.9 ======================== + * + +2006-09-27 Andreas Kupries <andreask@activestate.com> + + * list.test: Fixed expected error message for 8.5. + [SF Tcllib Bug 1566439]. + +2006-09-19 Andreas Kupries <andreask@activestate.com> + + * struct_set.man: Bumped versions to 2.1.1 + * sets.tcl: + * struct_tree.man: + * tree.tcl: + * pkgIndex.tcl: + +2006-09-16 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree/tn.c (tn_leaf): Fixed mangling of the list of leaves when + trying to add a node which is already in the list. Tracked down + with valgrind and instrumentation due intermittent failure of + treeql testsuite (seg fault). + (tn_new): Added initialization of list pointers to allow + checking by "tn_leaf". + + * tree/t.c (t_dump): Added function to dump the internal linkage + of nodes. Not used by regular code. For debugging. + +2006-09-14 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.test: Fixed the new tests for the arc move method. They + used hardcoded wrong#args messages. Now the proper the + compatibility commands are in place. + +2006-07-27 Andreas Kupries <andreask@activestate.com> + + * tree/t.c (t_newnodename): Fixed bug [SF TCllib Bug 1528614], + * tree/tn.c (tn_new): reported by Helmut Giese + * tree.testsuite: <hgiese@users.sourceforge.net>. + Auto-generation of node names was able to generate + duplicates. Now it checks new handles for existence. Also added + a check to the function doing actual node creation to check + again, and panic on duplicates. Extended testsuite with variant + of Helmut's example. + +2006-06-25 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.tcl : Added three new arc commands, 'move', 'move-target', + and 'move-source'. They change the nodes an arc is attached to, + without changing the identity of the arc itself. This makes + certain graph operations easier, as there is no need to save the + attributes of a node, delete it, create in the new location, + then recreate the attribute data. + * pkgIndex.tcl: Bumped version number for this. + * graph.man: Added documentation for them. + * graph.test: Extended the testsuite to cover them as well. + +2006-06-13 Andreas Kupries <andreask@activestate.com> + + * list.tcl: Added two commands requested by Sarnold75, + * list.test: see [SF Tcllib RFE 1484791], variants of + * struct_list.man: map and filter. Implemented, documented, + * pkgIndex.tcl: and tested. + +2006-01-30 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * sets.tcl: Fixed [SF Tcllib Bug 1414051], brought implementation + of 'include' into sync with documentation. Behaving like + 'lappend' means that we have to create the variable if it does + not exist. Thanks to michael Schlenker <mic42@users.sf.net>. + * sets.test: Corrected the testsuite as well. + +2006-01-28 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix1.test: Replaced [aget] with usage of the standard + * matrix.test: [dictsort]. Moved helper commands out of the + testsuites proper into a supporting file. + + * graph1.test: Fixed duplicate usage of test names. + * list.test: + * matrix.test: + * matrix1.test: + * stack.test: + * tree1.test: + +2006-01-26 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.test: More boilerplate simplified via use of test support. + * graph1.test: + * list.test: + * matrix.test: + * matrix1.test: + * pool.test: + * prioqueue.test: + * queue.test: + * record.test: + * sets.test: + * skiplist.test: + * stack.test: + * tree.test: + * tree1.test: + +2006-01-19 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.test: Hooked into the new common test support code. + * graph1.test: + * list.test: + * matrix.test: + * matrix1.test: + * pool.test: + * prioqueue.test: + * queue.test: + * record.test: + * sets.test: + * skiplist.test: + * stack.test: + * tree.test: + * tree1.test: + +2006-01-10 Andreas Kupries <andreask@activestate.com> + + * pool.test: New file. Structured tests. + * pooltest.tcl: Removed unstructured tests. + + * tree.test: Fixed [SF Tcllib Bug 1316061]. Uncluttering test + output. + +2005-11-02 Andreas Kupries <andreask@activestate.com> + + * graph.tcl (::struct::graph::_serialize): Fixed bug mishandling + the serialization of arcs with spaces in their names. Thanks to + Spyros Potamianos <spotam@users.sourceforge.net> for bug report + and fix. [SF Tcllib Bug 1345967] + +2005-10-27 Andreas Kupries <andreask@activestate.com> + + * tree.bench: Added more benchmarks perturbing structure, + invalidating caches, to capture true cost of computing results + of various methods. + + * tree_tcl.tcl: Reworked the core algorithm used by the method + "descendants". Avoiding the shifting of a list speeds it up + around 6 times and the factor is going higher as lists grow + larger. This makes the dependent methods (height, serialize, + children -all) about 2 times faster than they were with the + recursive implementation. + + * tree.bench: Extended the benchmarks for "height" and "serialize" + to demonstrate that the height limitation is gone. + + * tree_tcl.tcl: Fixed the limitation of the methods "height" and + "serialize" when run on deep trees. Moved to an iterative + solution using the core algorithm of "descendants". Factored + this code into an internal command used throughout. Rewrote + method "children -all" to use this command as well. + + Impact: The limitation are gone, however the performance of + "height" and "serialize" has become 2 to 3 times worse. + + * tree.bench: Substantially extended the benchmarks, covering + basically everything except tree walks, modifiers, and + tree-global attribute search. Had to restrict tests for + "height", "serialize", running into problems with deep + trees. Recursive implementation fails for interp recursion + limit. + +2005-10-21 Andreas Kupries <andreask@activestate.com> + + * tree.bench: Made this benchmark suite operational. Incomplete, + but already giving good results. + + * tree_c.tcl: Gave the method functions and their support a + * tree/m.c: better prefixes (m_ -> tm_, ms_ -> tms_), to + * tree/m.h: make them more unique, tree specific. This is + * tree/ms.c: needed to avoid conflicts with future critcl + * tree/ms.h: code for graph and other structures. + +2005-10-07 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.8 ======================== + * + +2005-10-07 Andreas Kupries <andreask@activestate.com> + + * tree/t.c (t_deserialize): Fixed bug which caused us to drop the + attributes of the new root node when setting up the new tree. + +2005-10-06 Andreas Kupries <andreask@activestate.com> + + * tree/m.c (m_WALK): Fixed [SF Tcllib Bug 1313173]. This was + refcounting bug for the objects containing the names of the loop + variables. We have to declare that we are holding a reference, + otherwise the object can be reused when compiling the loop body + for the first iteration. This may also release the objects too + early, causing crashes. + + * tree/walk.c (t_walkdfs*): Fixed behavioural difference between + the two implementations of a tree walker. The dfs code has to + save a copy of the child array during the walk to handle the + possibility of a child node being moved by the loop body. + + Note: This area, modifying a tree during walks, has no test + cases at all and is in need of them. At least to describe the + exact behaviour we have now. + +2005-10-03 Jeff Hobbs <jeffh@ActiveState.com> + + * tree1.tcl (::struct::tree::Serialize): fix serialize of + attributes. + +2005-09-30 Andreas Kupries <andreask@activestate.com> + + * queue.test: Extended API with new method 'unget'. Updated + * queue.man: documentation and testsuite. Version bumped to + * queue.tcl: 1.4. This implements [SF Tcllib RFE 1229352]. + * pkgIndex.tcl: + +2005-09-23 Michael Schlenker <mic42@users.sourceforge.net> + + * prioqueue.tcl : Fixed a bug in binary sort algorithm. + prioqueue.test: Thanks to Krzysztof Skałecki <krys@dacsystem.pl> + and Tomasz Kosiak <tk@dacsystem.pl> for spotting it. + [Tcllib SF Patch 1300795] + +2005-09-20 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.testsuite: Added test constraint 'tree_critcl'. Fixed a + number of tests whose results are version dependent, using the + new contraint, tcl8.4plus, and tcl8.5plus. + + * tree.tcl (LoadAccel): Restricted use of critcl implementation to + Tcl 8.4+. + +2005-08-09 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree/*.[ch]: Cleaned code up, per Tcl styleguide. + + * tree/tn.c (tn_not{leaf,node}): Fixed buggy node unlink when list + contained only one node. Was a no-op, keeping a reference to + deallocated memory, and writing to it when the list was expanded + and then reduced again, causing memory smashes. + +2005-07-25 Andreas Kupries <andreask@activestate.com> + + * tree.tcl: Moved tcl implementation into "tree_tcl.tcl". This + file now contains management code looking for and selecting from + the available implementations. + * tree_tcl.tcl (**NEW**): Contains the tcl implementation of + struct::tree, moved out of "tree.tcl". + * tree_c.tcl (**NEW**): Contains the toplevel parts of the critcl + implementation of struct::tree. + * tree/*.[ch] (**NEW**): Contains the bulk of the critcl + implementation of struct::tree. + * tree.test: Moved actual tests into "tree.testsuite". This file + now contains the generic helper commands and management code + loading, activating and iterating over all available + implementations. + * tree.testsuite (**NEW**): Contains the actual tests, moved out + of "tree.test". The tests were updated to take the cosmetic + differences between tcl and critcl implementations into account. + * ../package_version.tcl: Added the critcl implementation of + struct::tree to the list of files to compile for tcllibc. + + * struct_tree.man: Added clarifications regarding acceptable + arguments. + + * tree.tcl: Smoothed error messages, added some missing argument + checks, rewrote handling of index arguments to make code mmore + clear. Fixing bugs in constructor, was not cleaning up a + partially build object when deserialization failed. + + * tree.test: Adapted to changed error messages. Added tests to + for a number of problems which had been forgotten so far. Made + the output of a number of tests (tree structure) unambigous. + +2005-05-23 Andreas Kupries <andreask@activestate.com> + + * list.test: + * list.tcl (::struct::list::Lflatten): Fixed [SF Tcllib Bug + 1206499] Replaced the 'eval' construction with a more basic + check for list syntax and handling of the data. The removed + construct was unable to handle elements containing special + characters (Brackets, Braces, Double-apostrophes, etc.) + correctly. The bug was reported by Yahalom Emet + <yahalom@users.sourceforge.net>. This is actually something we + created Tcl 8.5's {expand} for. Extended the testsuite as well. + +2005-05-10 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct_tree.man: + * tree.test: + * tree.tcl: New method 'walkproc'. Like walk, but calls a command + prefix (three arguments). Extended documentation, testsuite. + + * tree.tcl: Minor touchup of object creation. + * graph.tcl: Minor touchup of object creation. + * stack.tcl: Minor touchup of object creation. + * queue.tcl: Minor touchup of object creation. + * matrix.tcl: Minor touchup of object creation. + +2005-05-06 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.tcl: Added two methods to the class, returning the + * tree.test: list of all nodes, or the list of leaf nodes. + * struct_tree.man: Both are easy to determine by the object + itself, and require either a walk or (children -all) otherwise, + both expensive. + +2005-04-07 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.tcl: Replaced the use of the global variable 'version' + with a properly namespaced form. This fixes the [SF Tcllib Bug + 1177108], reported by Stephen Huntley + <blacksqr@users.sourceforge.net>. + +2005-02-23 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct_list.man: Extended to cover the new functionality. + + * list.tests: Extended testsuite for the new functionality, see + below. + + * list.tcl: New functionality. Exchange of two elements of a list, + and handling of list permutations (first, next, all, foreach). + The code has been taken from the Wiki, page 11262. The swap code + by Richard Suchenwirth. The 'firstperm' code by Kevin Kenny. The + 'nextperm' algorithm by Donal E. Knuth [*], as translated to Tcl + by Kevin Kenny. Generation of all permutations and looping over + them by myself, using code from the module 'control' as well. + -- [*] Detailed references in the documentation. + +2004-10-05 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.7 ======================== + * + +2004-10-02 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct_tree.man: Added a bit more structure to the manpage, + added an example demonstrating the creation of nodes, added an + explicit statement that new nodes are created with the method + "insert". + +2004-09-29 Andreas Kupries <andreask@activestate.com> + + * record.tcl: Fixed [Tcllib SF Bug 1018733]. Corrected management + * record.text: of _level, which was reset to the level 0 to early, + and also was not decremented after a sub-record was completed. + + * record.tcl (Delete): Fixed [Tcllib SF Bug 1023973]. Do not count + * record.test: the id generator down. Added test case for this. + + * tree.tcl: Fixed [Tcllib SF Bug 1034924]. Both tree and graph + * struct_tree.man: depend on struct::list for some of their methods. + * tree.test: Now in the code, documented as well, testsuite + * graph.tcl: header code extended. + * graph.man: + * graph.test: + +2004-09-23 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * skiplist.tcl: Fixed expr'essions without braces. + + * graph.tcl (CheckSerialization): Fixed nested reuse of foreach + variable (attr). + +2004-09-21 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.test: Fixed [Tcllib SF Bug 1007396]. Multiple use + * graph.tcl: of the various restrictions is not allowed. + * graph.man: Added to code, test suite, and documentation. + * graph1.test: + * graph1.tcl: + * graph1.man: + +2004-08-17 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * stack.tcl: Corrected typo in constructor error message, + * queue.tcl: due to copying from tree. Found by Michael + Schlenker. + +2004-08-14 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct_tree.man: Added methods 'ancestors' and 'descendants'. + * tree.test: + * tree.tcl: + + * struct_tree.man: Added a prune operation to the tree walk + * tree.tcl: command. This implements the [SF Tcllib + * tree.test: RFE 916160]. + +2004-08-09 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.tcl (::struct::tree::tree, ::struct::tree::_destroy): + Better alias for the object command (removed superfluous leading + colons). + + * stack.man: Stack, queue; version bumped to 1.3. + * queue.man: + * stack.tcl: + * queue.tcl: + * pkgIndex.tcl: + + * queue.test: + * queue.tcl: Changed way of mapping from queue object commands to + associoated namespaces. The object namespace now has the same + name and location of the object command. Adapted all tests to + account for this change. + + * queue.test: + * queue.tcl: Changed dispatcher to auto-generate the list of queue + commands when a wrong one is given. Updated tests to account for + this. Changed dispatcher to uplevel 1 the method execution, + updated walking system to reflect this change. + + See log entry 2003-07-06 as well. + + * stack.test: + * stack.tcl: Changed way of mapping from stack object commands to + associated namespaces. The object namespace now has the same + name and location of the object command. Adapted all tests to + account for this change. + + * stack.test: + * stack.tcl: Changed dispatcher to auto-generate the list of stack + commands when a wrong one is given. Updated tests to account for + this. Changed dispatcher to uplevel 1 the method execution, + updated walking system to reflect this change. + + See log entry 2003-07-06 as well. + + * stack.man: Fixed [SF Tcllib 1005380]. Documentation for peek and + pop now matching the actual behaviour. See also entry 2003-04-25 + for the same thing, for queue. + + * tree.tcl: Spelling police. + * graph.tcl: + * stack.tcl: + * queue.tcl: + * matrix.tcl: + * ChangeLog: + +2004-08-04 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * sets.tests: + * sets.tcl (::struct::set::Sdifference): Fixed the [Tcllib SF Bug + 1002143]. Thanks to Todd Coram <maroc@users.sourceforge.net> for + the report. Set elements containing parentheses screw up the + special implementation using the elements as names for local + vars, as they are not seen as regular locals, but as array + elements. Disabled the special implementation, using the regular + one across versions. Extended the testsuite. + + * graph.test: Fixed [SF Tcllib Bug 1003671]: Ensured that + * tree.test: (de)serialization of empty graph/tree is + * graph.tcl: working properly. Thanks to Bhushit Joshipura + * tree.tcl: <bhushit@users.sf.net> for the report. + +2004-08-03 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.test: Fixed [SF Tcllib Bug 1000716]: Unset of last + * tree.test: attribute followed by delete does not result + * graph.tcl: in error anymore. Thanks to Brian Theado + * tree.tcl: <btheado@users.sf.net> for both report and fix. + +2004-06-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.tcl (_search): Fixed bug reported by Joachim Kock + <kock@math.uqam.ca>, using his fix. Search went into an infinite + loop if -nocase was used. + * matrix.test: Added a testcase. + +2004-05-23 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.6.1 ======================== + * + +2004-05-20 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.test: Added clean up commands to prevent tests + * matrix1.test: from interfering with each other. Testsuite + * tree1.test: is now passing again. + + * graph.man: Fixed the 'require' declarations in the + * matrix.man: documentation to use the correct package + * pool.man: names. + * prioqueue.man: + * queue.man: + * record.man: + * skiplist.man: + * stack.man: + * struct_list.man: + * struct_set.man: + * struct_tree.man: + + * tree1.man: Folded the v1 data structures back into the struct + * tree1.tcl: directory, as their own packages. Recorded the old + * tree1.test: v1 struct as a set of packages now as well. The + * graph1.man: unchanged data structures from struct v1 have been + * graph1.tcl: removed from the repository. They were duplicates. + * graph1.test: + * matrix1.man: + * matrix1.tcl: + * matrix1.test: + * pkgIndex.tcl: + +2004-05-18 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.tcl: Made all data structures full packages. + * list.tcl: + * matrix.tcl: + * pkgIndex.tcl: + * pool.tcl: + * pooltest.tcl: + * prioqueue.tcl: + * queue.tcl: + * record.tcl: + * sets.tcl: + * skiplist.tcl: + * stack.tcl: + * struct.tcl: + * tree.tcl: + + * graph.test: Updated all testsuites to report the versions + * list.test: of the packages they test. + * matrix.test: + * prioqueue.test: + * queue.test: + * record.test: + * sets.test: + * skiplist.test: + * stack.test: + * tree.test: + + * graph.man: Updated the documentation to show the correct + * matrix.man: new package names. + * pool.man: + * prioqueue.man: + * queue.man: + * record.man: + * skiplist.man: + * stack.man: + * struct_list.man: + * struct_set.man: + * struct_tree.man: + +2004-02-24 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * pkgIndex.tcl: Overall package bumped to v2.1 + * struct.tcl: + + * sets.tcl: Added include, exclude, add, and subtract + * sets.test: operators, and a new predicate subsetof. + * struct_set.man: Added documentation for the new methods + above. Added tests for the new methods. + + * sets.tcl: Typo police. No functional changes. + +2004-02-15 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.6 ======================== + * + +2004-02-14 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * list.tcl (split): New method, like 'filter', but returns lists + * list.test: of both passing and failing elements. Extended + * struct_list.man: both testsuite and documentation. + +2004-02-11 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * list.tcl (assign): Synchronized API to Tcl 8.5 lassign. + * struct_list.man: + + * list.test: Added conditionals for version dependent results. + +2004-02-08 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.man: Added new method 'arc attr' ad 'node attr' to + * graph.tcl: the graph data structure. They serve the same + * graph.test: purpose as the 'attr' method for trees. See below. + + Additional the 'arcs' and 'nodes' method have been given + '-filter' options, similar to the filter for the children of a + node in trees. + +2004-02-05 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct_tree.man: New method 'attr' for attribute searches + * tree.tcl: based on attribute name, and node + * tree.test: restrictions. + +2004-02-04 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct_tree.man: Extended the method 'children', now allows + * tree.tcl: node filtering and recursive listing of all + * tree.man: children in the tree starting at the node. + + * struct_list.man: Added a 'shift method to 'struct::list'. + * list.tcl: + * list.test: + + * struct_list.man: Added a 'filter' method to 'struct::list'. + * list.tcl: This method applies a test to all elements + * list.test: of a list and returns a list containing + only those elements which pass the test. + +2004-02-03 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * list.tcl (repeat(n)): ** API INCOMPATIBILITY ** + + Renamed the existing 'repeat' to 'repeatn' to keep the + functionality. Created new 'repeat' command which is + functionally equivalent to the 'lrepeat' command found in the + forthcoming Tcl 8.5. + + * struct_set.man: New submodule for set operations. Implementation, + * sets.tcl: documentation, tests, and integrated into the + * sets.test: main package. + * struct.tcl: + +2004-01-29 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct_tree.man: Extended with table showing the relationship + between the various combination of type and order, and the + possible visitor actions. + +2004-01-28 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct_tree.man: Updated documentation. + * tree.test: Updated testsuite for modified 'walk' syntax. + * tree.tcl (method walk): Modified to use list of loop variables, + containing either one or two. Default: One variable, node + information. When two specified the first refers to action data. + + * list.test: Added test for call with illegal option. + * list.tcl (Lflatten): Added proper error message when + encountering an unknown/illegal option. + +2004-01-26 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct_tree.man: Updated the documentation to reflect the + changes below. + + * tree.test: Updated testsuite to reflect the changes made below. + + * tree.tcl (walk): Changed API to be more like [foreach]. Allowing + break/return/continue in the walk body as well now too. + +2004-01-24 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.test: Implemented (de)serialization of matrix objects, + * matrix.tcl: copy and assignment operators, and a transpose + * matrix.man: method. Extended testsuite and documentation. + +2004-01-14 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.man: Implemented Ed Suominen's sort methods, with + * matrix.tcl: modifications to speed things up, and to have + * matrix.test: a more standard API (-options). + +2004-01-13 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.man: Documented method 'links'. + + * matrix.test: Updated test to cover for method links. + * matrix.tcl: Changed the code to determine the list of available + methods automatically for use in the error message when an + unknown method is called. + + * matrix.test: + * matrix.tcl: Namespaces of objects now standalone, and not inside + of struct::matrix anymore. Arbitrary placement of objects is now + possible, including nested namespaces. Cleanup of all references + to instance variables. + + * matrix.tcl: Made the return of errors more regular. + + * matrix.tcl: Changed a number of eval calls to the more proper + 'uplevel 1'. This means that an implementation of a method can + now assume that it is called on the same stack level as the + method itself. + +2004-01-12 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.tcl: Typo in comments fixed. + * matrix.tcl (__set_rect): Fixed typos in var names causing the + system to retain bogus cache data. + +2003-11-18 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * prioqueue.tcl: Applied patch in file 64215 of [SF Tcllib Bug 822850]. + * skiplist.tcl: This cleans up a number of dangerous uses of [eval] + * matrix.tcl: and makes them more robust. + * queue.tcl: + * stack.tcl: + * pool.tcl: + + * pool.tcl (::struct::pool::request): Changed to return 0 as + documented when trying to get an already allocated item. Fixed + [SF Tcllib Bug 842408]. Used the alternative fix. + +2003-10-21 Andreas Kupries <andreask@activestate.com> + + * struct_tree.man: Added more documentation about the root node of + tree's. [Bug 827643]. + +2003-07-21 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.tcl: Fixed bugs in tree serialization code found when + hitting them during testing the graph. + + * graph.man: Completed the implementation of graph serialization. + * graph.tcl: Updated testsuite, documentation. + * graph.test: + +2003-07-15 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.tcl: Created 'ldelete' and 'lset' (emulation pre 8.4) + * graph.tcl: and replaced as much 'lreplace's as possible. Using + the K operator for speed, encapsulated in the two l + commands. + + * graph.man: Implemented the renaming of nodes and arcs. + * graph.tcl: + * graph.test: + +2003-07-14 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.tcl: ** API INCOMPATIBILITY ** + * graph.test: + * graph.man: Same changes in attribute handling as for + 'tree'. Noted that the graph attributes had neither 'append' nor + 'lappend' methods. Added. Documentation and testsuite updated. + + * pkgIndex.tcl: ** API INCOMPATIBILITY ** + * struct_tree.man: + * tree.test: + * tree.tcl: More rework. The attribute APIs are now backward + incompatible, the default attribute 'data' has been dropped. The + whole module 'struct' has been bumped to version 2.0 because of + this. Reworked the testsuite for the changed APIs. Reworked the + (de)serialization stuff a bit and added tests for them. Added an + API to rename nodes, and an API to query the name of the + root node. The APIs 'getall' and 'keys' now allow usage of glob + patterns to restrict their results. Documentation is now + uptodate. Added API to compute the 'height' of a node (= + distance to its deepest child). + +2003-07-06 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.test: + * tree.tcl: Reworked node attribute storage. Name of array to + store the information is now dissociated from the name of the + node. This enables the use of arbitrary node names, i.e. ':' in + node names. The second benefit is that nodes without attribute + data (normal) require less memory than before. Removed the now + irrelevant validation of node names and updated the testsuite. + + * tree.test: + * tree.tcl: Changed way of mapping from tree object commands to + associated namespaces. The object namespace now has the same + name and location of the object command. Adapted all tests to + account for this change. + + * tree.test: + * tree.tcl: Changed dispatcher to auto-generate the list of tree + commands when a wrong one is given. Updated tests to account for + the now correct sort order. Changed dispatcher to uplevel 1 the + method execution, updated walking system to reflect this change. + +2003-07-04 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * list.tcl: The changes in the list dispatcher required + corresponding changes in a number of methods: upvar/level 2 => + upvar/level 1. Detected by testsuite. Bad me, should have run it + immediately. Bugs fixed. + + * list.test: Extended the testsuite. + * list.tcl (lcsInvertMerge2): Fixed problem with extending the + result with an chunk of type unchanged, for the case that this + happens at the very beginning, i.e. for an empty result. This + fixes SF Tcllib bug [765321]. + +2003-05-20 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * list.tcl (dispatcher): eval => uplevel so that upvar's in the + method commands do not need to know about the dispatcher frame + in the stack. + + * list.man: + * list.tcl (dbJoin(Keyed)): Extended the commands with an option + -keys. Argument is the name of a variable to store the actual + list of keys into, independent of the output table. As the + latter may not contain all the keys, depending on how and where + key columns are present or not. Additionally cleanups in the use + of loop variables in the keyed helper commands 'frink' complained + about. + +2003-05-16 Andreas Kupries <andreask@activestate.com> + + * Extension of the package functionality warrants version bump to 1.4. + + * list.man: Added descriptions of the db join commands, and + section explaining the table joins. + + * list.test: Added tests for the db join functionality. Adapted + existing tests to changed (fixed) error messages. + + * list.tcl: Rewrote the main dispatcher a bit to make it simpler, + and to allow us to hide internal functions from it. Added + 'dbJoin(Keyed)' for relational table join (inner, left/right/full + outer). Fixed function name in some error messages. + +2003-05-14 Andreas Kupries <andreask@activestate.com> + + * tree.tcl: Added some [list]'s to show node names containing + spaces properly in error messages. + + * tree.test: Reworked to test handling of item nodes + containing spaces. + + * tree.bench: Reworked, added helper procedures, test cases are now + simpler. + + * struct_list.man: Fixed typos in the examples. + +2003-05-06 Jeff Hobbs <jeffh@ActiveState.com> + + * tree.test: + * tree.tcl: allow node names with space chars and single :. + Double :: may be OK, but the check against it is still in. + +2003-05-05 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * + * Released and tagged Tcllib 1.4 ======================== + * + +2003-05-05 Andreas Kupries <andreask@activestate.com> + + * prioqueue.tcl: Applied patch by author Michael Schlenker + <mic42@users.sourceforge.net>. Refactors internals for + speed. Passes the prioqueue testsuite. + +2003-04-25 Andreas Kupries <andreask@activestate.com> + + * queue.man: Documentation fix. peek/get throw errors if more was + requested than in the queue. The documentation talked about + returning empty strings. Thanks to Michael Schlenker + <mic42@users.sourceforge.net> for the report. + + * prioqueue.test: Extended to check for stable insertion. + * prioqueue.tcl (__elementcompare): Bugfix, makes insertion stable. + * prioqueue.man: New, documentation. + + * skiplist.man: Typo fix. Thanks to Michael Schlenker + <mic42@users.sourceforge.net> for the report. + +2003-04-24 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.bench: New file, beginnings of a benchmark suite for the + data structure 'struct::tree'. + +2003-04-23 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.man: Changed name to struct_tree.man. Was in conflict with + tree manpage of BLT. + +2003-04-22 Andreas Kupries <andreask@activestate.com> + + * graph.man: Switched cgraph reference to a purl supplied by the + cgraph author, and added wiki reference. + +2003-04-16 Andreas Kupries <andreask@activestate.com> + + * prioqueue.tcl (__elementcompare): Failures in testsuite fixed, + patch provided by original author, Michael Schlenker + <mic42@users.sourceforge.net>. + +2003-04-15 Andreas Kupries <andreask@activestate.com> + + * skiplist.man: + * skiplist.tcl: + * skiplist.test: New files. Patch #553980 submitted by Eric Melski + <ericm@users.sourceforge.net> on behalf of Keith Vetter. + + * prioqueue.tcl: + * prioqueue.test: New files. Patch #607085 submitted by Michael + Schlenker <mic42@users.sourceforge.net>. + +2003-04-15 Andreas Kupries <andreask@activestate.com> + + * tcllib_list.man: Changed name to struct_list.man. Allows for + usage of struct outside of tcllib, not as big a coupling. + + * graph.tcl: Redone the setting up of namespace a bit to prevent + problem with the generation of a master package + index. struct.tcl bailed out with an error because the namespace + was net set up when using [pkg_mkIndex] in this directory. + +2003-04-13 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.test: + * graph.man: + * graph.tcl: Added code to look for the C-implementation, cgraph, + first, and to fall back to the Tcl implementation if cgraph is + not present (#720348). The documentation links to the place + where cgraph can be had from. Note presence of cgraph when + executing the testsuite. + +2003-04-12 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * list.man: Changed name to tcllib_list.man to prevent a clash + with tcl's manpages. + +2003-04-11 Andreas Kupries <andreask@activestate.com> + + * struct.tcl: + * list.man: + * matrix.man: + * pool.man: + * queue.man: + * record.man: + * stack.man: + * tree.man: + * pkgIndex.tcl: Set version of the package to 1.3. + +2003-04-09 Andreas Kupries <andreask@activestate.com> + + * list.man: + * list.test: + * list.tcl: Added 'lcsInvertMerge'. + +2003-04-08 Andreas Kupries <andreask@activestate.com> + + * list.man: + * list.test: + * list.tcl: Added and documented commands [iota], [equal], and + [repeat]. Extended the testsuite. + +2003-04-02 Andreas Kupries <andreask@activestate.com> + + * list.tcl: + * list.test: Fixed SF tcllib bug #714209. + + * ../../../examples/struct: Added example applications for usage + of longestCommonSubsequence and lcsInvert. + + * struct.tcl: Integrated new list commands. + + * list.tcl: Added commands 'reverse', 'assign', 'flatten', + * list.man: 'map', and 'fold' to the suite of list functions. + * list.test: + +2003-04-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * list.man: New files, extended list manipulation + * list.tcl: facilities. Started out with Kevin Kenny's + * list.test: implementation of the algorithm to find the longest + common subsequence of two sequences, aka lists. + Added myself a method to invert a LCS into a + description of differences instead. + +2003-04-01 Andreas Kupries <andreask@activestate.com> + + * record.test: Applied changes provided by Brett Schwarz + <schwarzkopf@users.sourceforge.net>. His comments: I had changed + the return when encountering a circular record; previously I + returned "", but now I return an error. This fixes record.test + to reflect the change. Part of fix for Tcllib SF Bug #709375. + + Additional changes by myself: Reformatted (proper tcl + indentations). Renumbered so that all tests have unique id + numbers (Before all tests had id 0.1). + +2003-02-25 David N. Welton <davidw@dedasys.com> + + * matrix.tcl: Require Tcl 8.2 because of string map. Use string + map instead of regexp. + +2003-01-16 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.man: More semantic markup, less visual one. + * matrix.man: + * pool.man: + * record.man: + * tree.man: + +2002-11-06 Brett Schwarz <schwarzkopf@users.sourceforge.net> + + * record.tcl: cleaned up code based on output from frink + +2002-11-05 Brett Schwarz <schwarzkopf@users.sourceforge.net> + + * struct.tcl: modified to include record.tcl + + * record.man: + * record.html: + * record.n: + * record.test: + * record.tcl: new data structure + +2002-10-16 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.test: + * graph.man: + * graph.tcl: Implemented FR 603924. getall, keys, keyexists + methods for keys of the whole graph. + +2002-08-08 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.test: Followup to fix for bug SF #587533. Had to update the + test suite too. + +2002-08-06 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.tcl (lappend): Fixed bug SF #587533 reported by Evan Rempel + <erempel@users.sourceforge.net>. + + * pool.tcl: Fixed bug SF #585093, reported by Michael Cleverly + <cleverly@users.sourceforge.net>. Patch provided by Michael too. + +2002-07-08 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.man: Updated the documentation to clarify the behaviour. + + * test.tcl: Updated testsuite, part of the patch below. + + * tree.tcl (_move): Accepted patch by Brian Theado + <btheado@users.sourceforge.net> fixing the behaviour of move, SF + bug #578460. The command now also validates all nodes before + trying to move any of them. + +2002-05-27 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.man: Fixed typo (graph -> matrix). + + * struct.tcl: Added pool files to list of files to source. + + * pool.man: New documentation for pool based upon the original + HTML manpage. + + * pool.html: + * pooltest.tcl: + * pool.tcl: New data structure, pool, by Erik Leunissen + <e.leunissen@hccnet.nl>. Modified code to be a sub-namespace of + ::struct, made it a part of the struct package. No regular + testsuite yet (see pooltest.tcl for the irregular testsuite). + +2002-05-08 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.n: This file is out of sync. + * graph.man: + * graph.test: + * graph.tcl: See tree, for arcs and nodes. + + * tree.man: + * tree.n: + * tree.test: + * tree.tcl: Accepted FR #552972 (new methods append, lappend, + getall, keys, keyexists) for tree structures. + +2002-04-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.tcl: Fixed SF Tcllib #532791 about unsetting of elements + in linked arrays as reported by Ken Jones + <kenj@users.sourceforge.net>. Unsetting an element in a linked + array now sets the corresponding cell in the matrix to the empty + string, and the corresponding elements in other linked arrays + are now unset too. + + * tree.man: New file, doctools manpage. + +2002-03-25 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.tcl: Fixed bug #532783 reported by Ken Jones + <kenj@users.sourceforge.net>. Any operation adding new material + to a linked matrix causes a circular trace (op -> "MatTraceOut" + -> "MatTraceIn" -> set cell) and the inbound trace fails because + the data structures are not uptodate causing the range checks in + "set cell" to fail. Fixed by breaking the cycle. Calls to + "MatTraceIn" are now disabled while we are in "MatTraceOut". + +2002-03-15 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.man: Added example of formatting a matrix using tabular + reports (See tcllib module "reports" too.). Fixes #530207. + +2002-03-09 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.n: + * matrix.man: + * matrix.test: + * matrix.tcl: Accepted FR #524430 and added option -nocase to the + 'search' method. + + * matrix.man: Added doctools manpage. + +2002-03-02 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.man: Added doctools manpage. + +2002-02-14 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.tcl: Frink run. + +2002-02-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * Version up to 1.2.1 to differentiate development from the + version in the tcllib 1.2 release. + + * matrix.test: + * matrix.tcl: See below, but not complete. + * queue.test + * stack.test: + * graph.tcl: + * graph.test: + * tree.tcl: + * tree.test: Updated code and tests to cover all paths through the + code. + +2002-01-15 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * Bumped version to 1.2 + +2001-11-26 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.tcl (add rows): Indices were transposed. Fixed. + +2001-11-23 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.test: + * matrix.n: + * matrix.tcl: Implementation of FR #481022: matrix printing and + searching. + +2001-11-19 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * graph.test: + * graph.n: + * graph.tcl: Applied patch #483125 provided by Frank Pilhofer + <fp@fpx.de>. The patch adds key/value information for the whole + graph and extends the selection methods 'arcs' and 'nodes' to + allow selection based on keys and their values. + +2001-10-16 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * pkgIndex.tcl: + * struct.tcl: + * graph.n: + * matrix.n: + * queue.n: + * stack.n: + * tree.n: Version up to 1.1.1 + +2001-09-05 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * The changes below fix bug [458011]. + + * tree.test (6.16): New test. Checks verificator of forbidden names. + + * tree.tcl (::struct::tree::_insert): Added verification that node + names do not contain forbidden characters. + + * tree.n: Documented limitations on node names. Documented allowed + index "end" for insert. + +2001-07-10 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.tcl: Frink 2.2 run, fixed dubious code. + +2001-06-21 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tree.tcl: + * graph.tcl: Fixed dubious code reported by frink. + +2001-06-19 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.n: Fixed nroff trouble. + +2001-05-20 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.tcl (insert row/column): Fixed wrong references to the + internal add row/column procedures. + + * modules/struct/matrix.test: Added 8.11 and 8.12 to test the case + of 'insert FOO' devolving to 'add FOO'. + +2001-05-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * Committed changes (matrix) to CVS head at SF. + +2001-04-17 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * matrix.n: updated and completed documentation + * matrix:test: Added testsuite + * matrix.tcl: Added the implementation. + +2001-04-12 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * struct.tcl: Added loading of the matrix definition. + + * matrix.n: Adding matrix structure. + +2000-04-07 Eric Melski <ericm@scriptics.com> + + * stack.test: + * queue.test: Changed "package require struct" to "source [file + join [file dirname [info script]] xxxx.tcl]", which is more reliable. + + * tree.test: + * tree.tcl: Added support for different walk orders (post, + in, and both) [RFE: 4420]. Added support for percent substitution + on walk command. (WalkCall) Added protection against node/tree + names with spaces. + + * graph.tcl: + * graph.test: + * graph.n: Graph implementation from Andreas Kupries. + +2000-03-20 Eric Melski <ericm@scriptics.com> + + * tree.test: + * tree.n: + * tree.tcl: Added support for inserting/moving multiple nodes at + once. Changed behavior of insert with respect to inserting nodes + that already exist; instead of an error, it will move the node. + +2000-03-14 Eric Melski <ericm@scriptics.com> + + * tree.n: Added a brief description of what a tree is. + +2000-03-10 Eric Melski <ericm@scriptics.com> + + * tree.n: + * tree.tcl: + * tree.test: Applied patch from [RFE: 4337], with enhancements for + better efficiency, and additional test cases; adds cut and splice + functions to tree. + +2000-03-09 Eric Melski <ericm@scriptics.com> + + * tree.n: + * tree.tcl: + * tree.test: Applied patch from [RFE: 4338]; adds index function to + tree. Applied patch from [RFE: 4339], with slight modification; adds + numchildren function to tree. Applied patch from [RFE: 4336], + with additional error checks and test cases; adds next, previous + functions to tree. Added extra tests for walk command. + + * tree.tcl: Added isleaf function and tests [RFE: 4340] + + * struct.tcl: Changed order of namespace import/namespace export + calls. Added -force to namespace import calls. + + * tree.test: + * stack.test: + * queue.test: Adapted tests to run in/out of tcllib test framework. + + * tree.test: + * tree.tcl: Added code to auto-generate node names on insert if no + name is given [RFE: 4345] + +2000-03-08 Eric Melski <ericm@scriptics.com> + + * tree.test: + * tree.tcl: Added check for node existence in children function + [Bug: 4341] + +2000-03-03 Eric Melski <ericm@scriptics.com> + + * tree.tcl: Changed usage information for tree::_walk. + + * tree.n: Enhanced description of walk function, fixed a typo. |