Thread: [Gambas-devel-svn] SF.net SVN: gambas:[5302] gambas/trunk/main/lib/data
Brought to you by:
gambas
From: <tob...@us...> - 2012-11-06 21:03:19
|
Revision: 5302 http://gambas.svn.sourceforge.net/gambas/?rev=5302&view=rev Author: tobiasboe Date: 2012-11-06 21:03:07 +0000 (Tue, 06 Nov 2012) Log Message: ----------- [GB.DATA] * OPT: Great overhaul of List algorithms. Beware: Still buggy. * OPT: Make list chunks carry multiple Variants to improve cache locality. * OPT: Don't traverse List forwards/backwards when the absolute value of index is past the half of Count. * NEW: Introduce List.Backwards - a virtual object to enumerate backwards * NEW: Don't use List.Current as enumeration pointer. * NEW: Begin enumeration at the first/last node. * NEW: Traverse backwards when given negative index to _get. * NEW: Make Current invalid by default. * NEW: Assign first/last element when MoveNext()/MovePrev() is issued on an invalid Current. * NEW: Use List.Current as pointer for the Find*() methods, too. * NEW: Assign first/last element when FindNext()/FindPrev() is issued on an invalid Current. * NEW: Don't return an index from Find*() methods because it is not the way linked list are dealt with. * NEW: Make insertion and removal of elements safe in enumerations. * NEW: When Current (or enumerator) is removed, the pointer remains relative to the beginning of the List but it never wraps around the end. * BUG: Correctly *cycle* with {Move,Find}{Next,Prev}() Modified Paths: -------------- gambas/trunk/main/lib/data/c_deque.c gambas/trunk/main/lib/data/c_list.c gambas/trunk/main/lib/data/c_list.h gambas/trunk/main/lib/data/gb.data.component gambas/trunk/main/lib/data/main.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2013-08-09 18:31:24
|
Revision: 5778 http://sourceforge.net/p/gambas/code/5778 Author: tobiasboe Date: 2013-08-09 18:31:20 +0000 (Fri, 09 Aug 2013) Log Message: ----------- [GB.DATA] * BUG: Fix possible bugs when updating an invalid Current. * BUG: Really erase old elements instead of just marking them as Null to prevent (potential) information leaks. * OPT: Current and the enumerators (internally) carry list global indices (LGI) which can be used as anchor points together with List.Count to speed up traversals (always taking the shortest way through the list). * OPT: Remove workaround code related to an enumerator bug fixed in #5749. * NEW: Expose List.Current as a virtual object representing the current list element which has Append() and Prepend() methods to manipulate the list not only around its head. This breaks backwards compatibility. * NEW: List.Value is what List.Current has meant formerly. * NEW: Add List.Current.Index and List.Index which are an absolute index of the current element into the list. These are guaranteed to be in bounds of [-List.Count; List.Count - 1]. Note that each non-negative index has an associated negative equivalent and vice versa. They work like the indices given to List._get(). * NEW: Add a List.AutoNormalize property which instructs the list to automatically make indices (like resulting from a calculation) fit into the List bounds preserving the sign of the given index. This effectively prevents any "Out of bounds" errors. * NEW: Add List.MoveTo() to point Current to an index. * NEW: List.Current.Is{First,Last,Valid} can be used to determine if Current is the first or last element of the list or if it is valid, respectively. Modified Paths: -------------- gambas/trunk/main/lib/data/c_circular.c gambas/trunk/main/lib/data/c_circular.h gambas/trunk/main/lib/data/c_deque.c gambas/trunk/main/lib/data/c_deque.h gambas/trunk/main/lib/data/c_list.c gambas/trunk/main/lib/data/c_list.h gambas/trunk/main/lib/data/main.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2013-08-19 22:48:33
|
Revision: 5812 http://sourceforge.net/p/gambas/code/5812 Author: tobiasboe Date: 2013-08-19 22:48:29 +0000 (Mon, 19 Aug 2013) Log Message: ----------- [GB.DATA] * NEW: Update copyright years. * NEW: Have a stripped-down version of gb_common_string_temp.h to provide STRING_compare() without producing compilation problems. * NEW: AvlTree is a new Collection-like class implementing a balanced binary search tree. It does _not_ utilise hashing in order to maintain an order of the literal key strings given by the user (For Each thus traverses from smallest to greatest key). * NEW: Carry in a stripped-down version of Bob Jenkins' lookup3 hash algorithm from the Public Domain. It was a last-minute decision to not use it in AvlTree to maintain the literal key order. Modified Paths: -------------- gambas/trunk/main/lib/data/Makefile.am gambas/trunk/main/lib/data/c_circular.c gambas/trunk/main/lib/data/c_circular.h gambas/trunk/main/lib/data/c_deque.c gambas/trunk/main/lib/data/c_deque.h gambas/trunk/main/lib/data/c_list.c gambas/trunk/main/lib/data/c_list.h gambas/trunk/main/lib/data/list.h gambas/trunk/main/lib/data/main.c gambas/trunk/main/lib/data/main.h Added Paths: ----------- gambas/trunk/main/lib/data/TODO gambas/trunk/main/lib/data/c_avltree.c gambas/trunk/main/lib/data/c_avltree.h gambas/trunk/main/lib/data/lookup3.h gambas/trunk/main/lib/data/string_compare.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2013-10-01 06:23:12
|
Revision: 5865 http://sourceforge.net/p/gambas/code/5865 Author: tobiasboe Date: 2013-10-01 06:23:08 +0000 (Tue, 01 Oct 2013) Log Message: ----------- [GB.DATA] * BUG: List: Fix two false positive compiler warnings on some systems. * BUG: AvlTree: Don't forward-declare a typedef. It bothers some compilers. * BUG: Also update Key from AvlTree_get(). * BUG: Invalidate the enumerators in AvlTree.Clear() Modified Paths: -------------- gambas/trunk/main/lib/data/c_avltree.c gambas/trunk/main/lib/data/c_list.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-07-12 00:20:38
|
Revision: 6372 http://sourceforge.net/p/gambas/code/6372 Author: tobiasboe Date: 2014-07-12 00:20:35 +0000 (Sat, 12 Jul 2014) Log Message: ----------- [GB.DATA] * NEW: First attempt to define a Graph class interface Modified Paths: -------------- gambas/trunk/main/lib/data/Makefile.am gambas/trunk/main/lib/data/TODO gambas/trunk/main/lib/data/main.c Added Paths: ----------- gambas/trunk/main/lib/data/c_graph.c gambas/trunk/main/lib/data/c_graph.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-07-28 03:34:32
|
Revision: 6402 http://sourceforge.net/p/gambas/code/6402 Author: tobiasboe Date: 2014-07-28 03:34:24 +0000 (Mon, 28 Jul 2014) Log Message: ----------- [GB.DATA] * NEW: Heap is a new class that implements a Min- or MaxHeap, depending upon a mode parameter to its constructor. It supports some advanced ways to manipulate the contained data -- beyond the first entry. Modified Paths: -------------- gambas/trunk/main/lib/data/Makefile.am gambas/trunk/main/lib/data/TODO gambas/trunk/main/lib/data/main.c Added Paths: ----------- gambas/trunk/main/lib/data/c_heap.c gambas/trunk/main/lib/data/c_heap.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-09-05 19:12:13
|
Revision: 6451 http://sourceforge.net/p/gambas/code/6451 Author: tobiasboe Date: 2014-09-05 19:12:06 +0000 (Fri, 05 Sep 2014) Log Message: ----------- [GB.DATA] * NEW: Tweak Graph interface (still not finished) * NEW: Add a GraphMatrix class which represents a Graph in a (non-sparse) adjacency matrix (not working) Modified Paths: -------------- gambas/trunk/main/lib/data/Makefile.am gambas/trunk/main/lib/data/c_graph.c gambas/trunk/main/lib/data/c_graph.h gambas/trunk/main/lib/data/main.c Added Paths: ----------- gambas/trunk/main/lib/data/c_graphmatrix.c gambas/trunk/main/lib/data/c_graphmatrix.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-09-13 03:01:47
|
Revision: 6468 http://sourceforge.net/p/gambas/code/6468 Author: tobiasboe Date: 2014-09-13 03:01:37 +0000 (Sat, 13 Sep 2014) Log Message: ----------- [GB.DATA] * NEW: Graph and GraphMatrix work now. Graph implementations in Gambas are as powerful as native ones. Modified Paths: -------------- gambas/trunk/main/lib/data/TODO gambas/trunk/main/lib/data/c_avltree.c gambas/trunk/main/lib/data/c_graph.c gambas/trunk/main/lib/data/c_graph.h gambas/trunk/main/lib/data/c_graphmatrix.c gambas/trunk/main/lib/data/c_graphmatrix.h gambas/trunk/main/lib/data/c_list.c gambas/trunk/main/lib/data/main.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-09-14 00:19:08
|
Revision: 6472 http://sourceforge.net/p/gambas/code/6472 Author: tobiasboe Date: 2014-09-14 00:18:58 +0000 (Sun, 14 Sep 2014) Log Message: ----------- [GB.DATA] * NEW: Heap: Change the way objects are identified in Update. * NEW: gb.data has a part written in Gambas now. * NEW: PrioSet is a weaker (WRT ordering) variant of a PrioQueue which allows operations to be reasonably more efficient. Modified Paths: -------------- gambas/trunk/main/lib/data/TODO gambas/trunk/main/lib/data/c_heap.c Added Paths: ----------- gambas/trunk/main/lib/data/gb.data/ gambas/trunk/main/lib/data/gb.data/.hidden/ gambas/trunk/main/lib/data/gb.data/.project gambas/trunk/main/lib/data/gb.data/.src/ gambas/trunk/main/lib/data/gb.data/.src/MMain.module gambas/trunk/main/lib/data/gb.data/.src/PrioSet.class gambas/trunk/main/lib/data/gb.data/.src/_PrioSet_Entry.class This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-09-23 19:15:35
|
Revision: 6506 http://sourceforge.net/p/gambas/code/6506 Author: tobiasboe Date: 2014-09-23 19:15:25 +0000 (Tue, 23 Sep 2014) Log Message: ----------- [GB.DATA] * NEW: Trie and TriePrefix are new classes which implement a Patricia Trie Modified Paths: -------------- gambas/trunk/main/lib/data/Makefile.am gambas/trunk/main/lib/data/TODO gambas/trunk/main/lib/data/main.c Added Paths: ----------- gambas/trunk/main/lib/data/c_trie.c gambas/trunk/main/lib/data/c_trie.h gambas/trunk/main/lib/data/trie.c gambas/trunk/main/lib/data/trie.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-09-28 20:02:04
|
Revision: 6515 http://sourceforge.net/p/gambas/code/6515 Author: tobiasboe Date: 2014-09-28 20:01:52 +0000 (Sun, 28 Sep 2014) Log Message: ----------- [GB.DATA] * BUG: The 256 values of an input byte were mapped to just 128 bits of the trie children mask, so corruption could have happened with non-ASCII keys. * BUG: Add a special case when using GB.AddString() on an empty key * BUG: Fix a memory error from Trie.Complete()'s return value * OPT: Use the Gambas API in trie.c to manage memory and thus remove error recovery since the interpreter will crash anyway * OPT: Remove checks for "unsupported" characters as all 256 values of a byte are supported in this version of the code Modified Paths: -------------- gambas/trunk/main/lib/data/c_trie.c gambas/trunk/main/lib/data/trie.c gambas/trunk/main/lib/data/trie.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-11-29 18:55:43
|
Revision: 6688 http://sourceforge.net/p/gambas/code/6688 Author: tobiasboe Date: 2014-11-29 18:55:41 +0000 (Sat, 29 Nov 2014) Log Message: ----------- [GB.DATA] * BUG: Trie: Use sufficient bit widths in numerical constants (could cause data loss on 32 bit systems). * BUG: TriePrefix: Don't drop reference counts of the Trie when the prefix is not found. Modified Paths: -------------- gambas/trunk/main/lib/data/c_trie.c gambas/trunk/main/lib/data/trie.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-12-01 22:39:32
|
Revision: 6701 http://sourceforge.net/p/gambas/code/6701 Author: tobiasboe Date: 2014-12-01 22:39:28 +0000 (Mon, 01 Dec 2014) Log Message: ----------- [GB.DATA] * BUG: Trie: Fix a memory leak when an object is replaced Modified Paths: -------------- gambas/trunk/main/lib/data/c_trie.c gambas/trunk/main/lib/data/trie.c gambas/trunk/main/lib/data/trie.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |