Skip to content

v1.0.2.11

Pre-release
Pre-release
Compare
Choose a tag to compare
@fisothemes fisothemes released this 25 Aug 03:33
· 65 commits to master since this release

First Release of Version 1 (v1.x.x.x).
In this initial pre-release of version 1, thorough unit tests that have been run and passed successfully for all the main data structures.

Version 1 is a rework of the original version 0 (v0.x.x.x), with enhancements in speed, improved efficiency, user-friendliness, robustness, and extensibility.

The preceding version suffered from both consistency and implementation issues. These included variations in indexing locations, inconsistencies in method and property naming, and methods that didn't really add value. Furthermore, there were implementation issues with the recursive tree data structures causing performance problems and limiting the number of elements to approximately 100 (depending on stack size). The way the singly linked list was used for FB_List and the constant downsizing of FB_Array_List's capacity was also problematic. Version 1 addresses these concerns.

Here are the highlights of what's changed:

  1. A complete makeover to the tree data structures (FB_Tree_Set and FB_Tree_Map). They've ditched the recursive approach and switched to an iterative solution. This not only makes them faster but also gets rid of any stack-related problems. The internal data structure is an AVL tree, which means searching, inserting, and deleting now work O(log N) time complexity.

  2. FB_Array_List now behaves like C++ vectors. It won't ask for extra memory until it needs it – no unnecessary allocations. Once it hits its limit, it doubles its capacity, but doesn't do any value allocations until the space is used making memory management much smarter.

  3. FB_List is now a doubly linked list with an optimised iterator hint. Basically, it remembers the last node you used. So, when you're iterating, it starts from where you left off, whether it's the head, tail, or last accessed of the desired access or modification index. This means quick access times for sequential operation (O(1)), and the same speed for access and modification operations targeting the same index.

There's many more improvements made.