Heres my feedback:
   
  1. Wow!  Judy is great, blows away other data structures, thanks so much.
   
  2. Ok. Now I'm back because I have hit the Judy Darwin Issue listed on 
http://sourceforge.net/tracker/index.php?func=detail&aid=1469449&group_id=55753&atid=478138.
  Thank god that there is this bug listed.  Its been a few years and this is my 
first issue.  But it is still ongoing.  I'm waiting for a mac user to find out 
if there is a mac gcc package we can use instead of building from source, and 
at whatever point I'll be adjusting the build system for this. (Darwin 8.9.1 
gcc 4.0.1 Target: i686-apple-darwin8)
   
  3. C interface!  I agree this is preferred.  You can always wrap a C 
interface in C++ for OO semantics, but using a C++ lib in C you will have to 
link to libstdc++ and this is a binary packaging issue.
   
  4. Wishlist for Judy:
  - Easy alloc overriding.  For memory accounting or supplying a block 
allocator so that the Judy array could be deallocated with 1 call to free(). 
  - Optimizations towards iteration (walking all key/value pairs).  This is the 
only benchmark that STL rb_trees are close to Judy. 
   
  5. What I used Judy for: Implementing a clustered graph API.
   
  Judy rules!!!
   
  -Justin
  
Doug Baskins <[EMAIL PROTECTED]> wrote:
  
Younès:

I am very interested in a "clean set of 
interaces(sp)".  But be prepared, you will go
around the block many times with "throw aways".

As far as understanding the code, I can help.
First I suggest you read JudyGet.c and write
down every dumb question you can think of.

I am working on the next version of Judy. It
is still in a "skeleton" stage, with most
macro's removed and much of the complexity that
is not necessary removed too.  I will send you
the source when I get your "stupid" questions.

What I mean by "skeleton" is a version that
is getting ready for the next major experiment
to improve performance.

To begin, you must understand what a "Trie" or
"digital tree" is. Ignore any binary versions
that are written up by some authors. 

I suggest starting with a
base 10 sized nodes and try decoding decimal 
numbers in the tree.  It is really an easy
concept   once you get the "hang of it".  Judy is
a "virtual" digital tree with base 256 nodes
with the final node a "Leaf" of variable size
ranging from 31 to 256 elements (currently). 
The term "virtual" comes from the fact that they
are logically 256 nodes wide, and exist
in 3 forms: 
1) called a "linear branch", 
2) called a "bitmap branch" and lastly
3) an "uncompressed branch" that really has 256
   nodes.
Linear and bitmap branches do not contain the
nodes that are empty.  Each node can contain a
bounded "expanse" of possible numbers. I plan
on removing bitmap branches on the next version.

Once you think you understand the above concepts
I will help you "map" them into the JudyGet.c code.
JudyGet.c is the easiest way to understand the
data structures supporting Judy.

A digital tree has many properties that are not
intuitive, which is where the exciting parts of
Judy exist.

Doug Baskins   



yjudy <[EMAIL PROTECTED]> wrote:   Hi!

> On a different subject, you are not the only one to critique the
> API to Judy. The API was a result of many discussions and
> nobody was ever happy with it. So far I have not received a 
> suggestion (with complete semantics) on a better way to do it.
> (Every challenge I have offered has been ignored).
>

I can help to make Judy code more portable, elegant with clean set of 
interaces.
But for that, I need your help to understand the code.
Even I read "Alan" 3 hours Judy doc more than once, it remains very
hard to understand all the internals and dark magic behind it without
authors help.

> It has been on my wish-list for years to do a "thread-safe"
> version of Judy. That would require different semantics to the
> Judy API (you can't have pointers to the "Value" area outside
> a potential lock or modification of the array by some other
> thread.) Your help on this would be appreciated, especially
> for C++. None of the original Judy team used C++.
>

I wrote a lot of large programs in C (>150K LOC) and I never
need to use C++. Please, stick with C as there's a lot of interfaces
to Judy using the C API.


cheers
Younès



    Doug Baskins <[EMAIL PROTECTED]>

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/_______________________________________________
Judy-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/judy-devel


       
---------------------------------
Building a website is a piece of cake. 
Yahoo! Small Business gives you all the tools to get online.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Judy-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/judy-devel

Reply via email to