1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246
|
2012-05-08 Kaz Kylheku <kaz@kylheku.com>
* Makefile.gcc: Use --whole-archive to link the static library contents
properly into the shared library.
2012-05-08 Kaz Kylheku <kaz@kylheku.com>
* Makefile.gcc: $($(DLIB)) Fix -soname.
(install): Use macros instead of hard-coded library names.
2012-05-08 Kaz Kylheku <kaz@kylheku.com>
* docs.ltx: Bump release and date.
2012-05-08 Kaz Kylheku <kaz@kylheku.com>
* Makefile.gcc: integrating patches from Debian maintainer
Bálint Réczey, in slightly different ways. A static and
shared library is now built, and there is an install target.
2012-05-08 Kaz Kylheku <kaz@kylheku.com>
* tests/dict-1.cc: Declare objects in an array. This exercises the
copy constructor of dnode, and eliminates duplicate code.
2012-05-08 Kaz Kylheku <kaz@kylheku.com>
* Makefile.gcc: Revamped to take advantage of various GNU Make
tricks. Builds new C++ test case, which is taken from the LaTeX doc.
* tests/dict-1.cc: New file.
2012-05-08 Kaz Kylheku <kaz@kylheku.com>
* Makefile.gcc (CFLAGS): Dropping -pedantic, adding -W.
* dict.c (free_nodes): Unused static function removed.
(dnode_alloc, dnode_free, new_node, del_node): Added casts
of unused arguments to void to suppress unused variable warning.
* docs.ltx: Revised out of date section about what C++ identifiers are
exposed by dict.h. Fixed typo.
* except.c (bottom_level): Fixed waring about return value from
fgets being ignored.
(main): Switched to no-arguments main since argc and argv were
not used.
* hash.c (hnode_alloc, hnode_free, new_node): Added casts
of unused arguments to void to suppress unused variable warning.
* sfx.c (CONTEXT_T_INIT): New macro.
(chk_cast): Use CONTEXT_T_INIT macro to initialize variables
of type context_t.
2009-11-12 Kaz Kylheku <kaz@gmail.com>
Terminology change. The alloc traits should use item
and not node terminology, since destruction is applied
to items, not dnodes.
* dict.h (kazlib::static_nodes): Renamed to static_items.
(kazlib::dynamic_nodes): Renamed to dynamic_items.
(kazlib::placement_nodes): Renamed to placement_items.
(kazlib::dict_dfl_feat, kazlib::alloc_feature): Declarations updated.
(kazlib::trait_combinator<>): Partial specializations updated.
* docs.ltx: Updated.
2009-11-12 Kaz Kylheku <kaz@kylheku.com>
* dict.c (dict_clear): Reverts back to internal linkage.
* dict.h (dict_clear): Declaration removed.
(kazlib::dict_base, kazlib::dict_bdbk, kazlib::dict_bdmk,
kazlib::dict_mdbk, kazlib::dict_mkmk): Template classes removed.
* docs.ltx: Revamped documentation of C++ utilities for dict,
from the perspective of the trait combination paradigm.
The base class is now just dict.
2009-11-12 Kaz Kylheku <kaz@kylheku.com>
Added a new function safe_traverse, which performs an iterative
bottom-up traversal rather than a recursive one.
dict_free_nodes retargetted to use this function.
dict_clear exposed as external function.
* dict.c (safe_traverse): New function.
(dict_free_nodes): Use safe_traverse.
(dict_init_alloc): New function for one step initialization
with custom allocator functions.
(dict_clear): Changed from internal to external linkage.
* dict.h (dict_init_alloc, dict_clear): Declared.
2009-11-12 Kaz Kylheku <kaz@kylheku.com>
* docs.ltx: Condense index. Do not list every function under the
functions category in the index; they are all in the main index.
2009-11-10 Kaz Kylheku <kaz@kylheku.com>
The dnode class must support assignment and copy construction.
* dict.h (kazlib::dnode): Copy constructor and assignment operator
added.
* docs.ltx: Documented these functions and added index entries.
2009-11-10 Kaz Kylheku <kaz@kylheku.com>
* docs.ltx: Added remarks to first C++ example that the comparison
function is not strictly needed. Added new file sorting example for
dict_bdbk.
2009-11-09 Kaz Kylheku <kaz@kylheku.com>
* docs.ltx: Fix issues in C++ example. The allow dupes was not turned
on, so the example would have blown up on duplicate first or last names.
2009-11-09 Kaz Kylheku <kaz@kylheku.com>
New C++ utilities in dict.h.
Documented in docs.ltx.
Tabs eliminated from docs.ltx.
* dict.h: If __cplusplus is defined, include the <functional> header.
(kazlib::dnode, kazlib::dict_base, kazlib::dnode_is_member,
kazlib::key_is_member, kazlib::compare_with_function,
kazlib::dnode_is_base, kazlib::key_is_base, kazlib::dict,
kazlib::dict_bdbk, kazlib::dict_bdmk, kazlib::dict_mdbk,
kazlib::dict_mkmk): New template classes.
(kazlib::default_compare): New template function.
* docs.ltx: Updated to clarify that Kazlib is also a C++ library.
New index entries. Documented new C++ utilities.
2009-11-08 Kaz Kylheku <kaz@kylheku.com>
Use dict_init in dict_create instead of repeated code.
All code compiles as C++ now.
* dict.c (dict_create): Use dict_init. Cast added to
return value of malloc.
(dict_init_like): Parameter template renamed to orig. This is
because template is a C++ keyword.
(dict_delete): Parameter delete renamed to target, because
delete is a C++ keyword.
(dnode_alloc): Cast added to return value of malloc.
(dict_load_end): Some casts added where enum members are computed
values. C++ type safety of enumerations doesn't allow the
direct assignment.
(comparef): Added casts from const void * to const char *.
(dupstring): malloc cast.
(main): Casts on dnode_get.
* except.c (except_throwf): Cast on except_alloc.
(top_level): Cast added when passing string literal to
except_cleanup_push because const char * doesn't convert
to void *.
(main): Local variable catch renamed to match to avoid
clash with C++ keyword.
* hash.c (grow_table, shrink_table): Cast on return value of
realloc.
(hash_create, hnode_alloc, hnode_create): Caston return value of malloc.
(hash_fun_default, hash_comp_default): Casts from void * to
character pointers.
(tokenize): Added casts from const void * to const char *.
(dupstring): malloc cast.
(main): Casts on hnode_get.
* list.c (list_create): Cast on malloc. Avoid C++ keyword new.
(lnode_pool_create): Cast on malloc.
(list_ins_after, list_ins_before, lnode_borrow): Avoid C++ keyword new.
(tokenize): Added casts from const void * to const char *.
(dupstring): malloc cast.
(main): Casts on lnode_get.
* sfx.c (speculate, sfx_determine): Variable catch renamed to match.
(lookup_cache): Cast on hnode_get return value.
(cache_result): Cast on hnode_get and malloc.
2009-11-08 Kaz Kylheku <kaz@kylheku.com>
* Makefile.gcc: Add missing .o files to clean target rule.
2009-11-08 Kaz Kylheku <kaz@kylheku.com>
* except.c, hash.c, list.c, sfx.c: Tabs converted to spaces.
2009-11-08 Kaz Kylheku <kaz@kylheku.com>
* CHANGES, Makefile.gcc, Makefile.vc, blast.pl, dict.c, docs.ltx
hash.h, except.c, except.h, hash.c, hash.h, list.c, list.h, sfx.c:
Trailing whitespace removed. Some reformatting of text.
2009-11-08 Kaz Kylheku <kaz@kylheku.com>
New functions: dict_strict_lower_bound, dict_strict_upper_bound.
Clearer, more concise documentation for dict_lower_bound and
dict_upper_bound.
* dict.c (dict_strict_lower_bound, disc_strict_upper_bound):
New functions.
(main): < and > commands added for exercising new functions.
* dict.h (dict_strict_lower_bound, disc_strict_upper_bound):
Declared.
* docs.ltx: Documentation updated.
2009-11-06 Kaz Kylheku <kaz@kylheku.com>
Switching to Modified BSD license.
Getting rid of RCS keyword cruft.
Obsolete MUST_READ file removed.
* CHANGES: RCS keywords removed.
* Makefile.gcc: Copyright header added.
* Makefile.vc: Likewise.
* README: RCS keywords removed, and documentation thereof also.
* blast.pl: Copyright header added.
* dict.c, except.c, hash.c, list.c, sfx.c: Copyright header replaced.
rcsid removed.
* dict.h, excepth.h, hash.h, list.h, sfx.h: Copyright header replaced.
* docs.ltx: Copyright header added. rcsid removed.
* MUST_READ: File removed.
2009-11-06 Kaz Kylheku <kaz@kylheku.com>
Original Kazlib 1.20 distribution from July 2001 now lives
in a new repository.
|