2
# @(#) $Revision: 4.17 $ $Source: /judy/README $
6
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
9
To build and install Judy, see the INSTALL file.
12
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
18
# This tree contains sources, documents, tests, and tools for the Judy package.
19
# This file is in a form that can be validated using the tool/readme script.
21
# NOTE: The README files here describe some files that are not included in
22
# every Judy source package.
25
# WHAT IS JUDY? (see below for list of top-level directories and files)
27
# Judy is a C library that implements a dynamic array. Empty Judy arrays are
28
# declared with null pointers. A Judy array consumes memory only when
29
# populated yet can grow to take advantage of all available memory. Judy's key
30
# benefits are: scalability, performance, memory efficiency, and ease of use.
31
# Judy arrays are designed to grow without tuning into the peta-element range,
32
# scaling near O(log-base-256).
34
# Judy arrays are accessed with insert, retrieve, and delete calls for number
35
# or string indexes. Configuration and tuning are not required -- in fact not
36
# possible. Judy offers sorting, counting, and neighbor/empty searching.
37
# Indexes can be sequential, clustered, periodic, or random -- it doesn't
38
# matter to the algorithm. Judy arrays can be arranged hierarchically to
39
# handle any bit patterns -- large indexes, sets of keys, etc.
41
# Judy is often an improvement over common data structures such as: arrays,
42
# sparse arrays, hash tables, B-trees, binary trees, linear lists, skiplists,
43
# other sort and search algorithms, and counting functions.
46
# JUDY TOP DIRECTORY CONTENTS:
2
Judy - C library creating and accessing dynamic arrays
3
==============================================================
20
This tree contains sources, documents, tests, and tools for the Judy package.
21
This file is in a form that can be validated using the tool/readme script.
23
NOTE: The README files here describe some files that are not included in
24
every Judy source package.
26
WHAT IS JUDY? (see below for list of top-level directories and files)
28
Judy is a C library that implements a dynamic array. Empty Judy arrays are
29
declared with null pointers. A Judy array consumes memory only when
30
populated yet can grow to take advantage of all available memory. Judy's key
31
benefits are: scalability, performance, memory efficiency, and ease of use.
32
Judy arrays are designed to grow without tuning into the peta-element range,
33
scaling near O(log-base-256) -- 1 more RAM access at 256 X population.
35
Judy arrays are accessed with insert, retrieve, and delete calls for number
36
or string indexes. Configuration and tuning are not required -- in fact not
37
possible. Judy offers sorting, counting, and neighbor/empty searching.
38
Indexes can be sequential, clustered, periodic, or random -- it doesn't
39
matter to the algorithm. Judy arrays can be arranged hierarchically to
40
handle any bit patterns -- large indexes, sets of keys, etc.
42
Judy is often an improvement over common data structures such as: arrays,
43
sparse arrays, hash tables, B-trees, binary trees, linear lists, skiplists,
44
other sort and search algorithms, and counting functions.
47
2. JUDY TOP DIRECTORY CONTENTS:
48
--------------------------------
50
AUTHORS Judy authors and contributors
49
INSTALL Summary instructions to build, install, and check Judy.
52
INSTALL Summary instructions to build, check and install Judy.
50
53
COPYING Judy deliverable license notice (the LGPL).
52
Makefile.multi Multi-platform, multi-flavor Judy makefile that knows how to
53
make all deliverables and a few other files, but not all Judy
54
constructed files, especially tests.
56
make_includes/ Makefile fragments included by Makefile.multi.
58
configure Simple script to wrap around makefile, a placeholder for a
59
"real" configure script generated by autoconf; see comments
62
makeall Reminder how to make all (multi-platform) useful Judy
63
files/targets as developer in mounted sandboxes on
54
ChangeLog List of changes per version of Judy.
56
configure Autoconf configure script to allow a portable build e
66
59
src/ Header and source files used to build the package.
67
60
doc/ Documents, both external (to the package) and internal.
69
tool/ judy-specific tools.
61
test/ Test support and some timing programs.
62
tool/ Primitive tool (jhton) to convert *.html files to "man" pages.
63
and build tables used by Judy to malloc() sizes of memory.
68
For a quick description see the INSTALL file.
70
Judy is now based on the GNU Auto tools. This means that you can do the standard
71
configure, make, make check and make install and everything should work, with
72
one minor differnece and a little caviot.
74
Judy is capiable of being built as a 32-bit or a 64-bit library. Therefor you
75
need to tell Judy what you want. You MUST run configure with one of the
81
If your compiler generates 32-bit code by default, such as x86, and you run
82
configure with --enable-32-bit, your done. You can now run make, make check and
85
If your compiler generates 64-bit code by default, such as Linux IA-64, and you
86
run configure with --enable-64-bit, your done. You can now run make, make check
89
The caviot comes in on machines that support both at 32-bit and 64-bit runtime
90
environments such as RISC platforms and x86-64. In this case your compiler will
91
either use 32-bit or 64-bit as default. If you plan to use the default you can
92
follow the above instructions and be finished.
94
However, if you wish to compile for the non-default target type. YOU ARE
95
RESPONSIABLE FOR SETTING THE CORRECT FLAGS! Such as CFLAGS to make your compiler
96
switch modes LDFLAGS to make your linker behave, etc.
98
For example: On HP-UX PA-RISC the compiler generates 32-bit code by default. If
99
I wish to stick with the defautls I can build Judy by:
100
./configure --enable-32-bit
105
If I want to build Judy as a 64-bit library on HP-UX PA-RISC I have to do:
106
CFLAGS=+DD64 ./configure --enable-64-bit
115
The user library is licensed under the GNU Lesser Public License (LGPL)
116
Version 2.1, February 1999. The full text of the LGPL is located at:
124
See the ChangeLog file.
129
If you encounter a bug, please submit it to the project bug list,
130
located on the project page:
132
https://sourceforge.net/projects/judy/
137
When compiling on HP-UX, you may get a message like:
138
error 1000: Unexpected symbol:
140
This is a problem with the HP's compiler in that it doesn't like a typedef'ed
141
type following a static inline.
143
You can work around it by running this command from the Judy directory.
145
find ./ -name \*.[ch] | xargs perl -i.BAK -pe 's/static inline/static/g'