Hello again.
I'm just passing by to say that I'm (the project) is not dead at all, I just didn't add time and motivation to work on it.
All suggestions about repackaging and Maven publication are currently considered in house.
Alas, the bigger the firm, the slower descisions are made.
On the developpement side, I'm planning 2 future evolutions :
1) A simple evoltution of the template processor, to generate boolean vesrsions where it make sense (lists, dequeues, values in maps) as it was suggested to me.
2) A tree-based, ordered data structure. The goal is to provide range queries, in order traversal, and such.
As usual, performance, minimization of objects, ability to zero-runtime allocation...etc, and also cache conscious design has been taken into considration.
So far:
- Classic AVL, Red-Black trees (left-leaning or not) are excluded for their complexity.
- Splay trees / Scapegoat trees looking too rough in rebalancing policy, which is bad in realtime systems. We don't want a O(n) op occuring,
even if the later ops are much faster. Also, they seem to have inferior performance in practice.
- Probabilistic trees looked better in the average (!!!) in terms of simplicity and performance, counting on the power of randomization to minimize the average cost : treaps, and the
shuffle tree.
The drawback is that that their height is not limited to O(log n) height, which means iteration is complicated without dynamic memory allocation. (even if such bad luck is supposed to be "vanishly small").
- B(+)-trees : This last choice may be the one I eventually choose to implement, because it is the only one having a cache-conscious design, since it was initially being used for slow disk-access in mind. (filesystems, databases)
Problem is, RAM is also highly hierarchical and so the same problem arises, which all the other BST solutions neglect.
So I'm finally considering a port of the
STX B+ Tree C++ implementation (
Github). It's general philosophy seems to match my goals.
I may return on dev soon, but do not bet on a Chritmas present.
Vincent