diff options
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 171 |
1 files changed, 167 insertions, 4 deletions
@@ -1,8 +1,171 @@ | |||
1 | GNU dbm NEWS -- history of user-visible changes. 2020-12-23 | 1 | GNU dbm NEWS -- history of user-visible changes. 2023-03-03 |
2 | Copyright (C) 1990-2023 Free Software Foundation, Inc. | ||
2 | See the end of file for copying conditions. | 3 | See the end of file for copying conditions. |
3 | 4 | ||
4 | Please send gdbm bug reports to <bug-gdbm@gnu.org>. | 5 | Please send gdbm bug reports to <bug-gdbm@gnu.org>. |
5 | 6 | ||
7 | Version 1.23.90 (git) | ||
8 | |||
9 | * New gdbm_load option: --update | ||
10 | |||
11 | The --update (-U) option instructs gdbm_load to update an existing | ||
12 | database, whose name is supplied by the second argument. | ||
13 | |||
14 | * Fix semantics of gdbm_load -r | ||
15 | |||
16 | The --replace (-r) is valid only when used together with --update. | ||
17 | |||
18 | * Bugfixes | ||
19 | |||
20 | |||
21 | Version 1.23, 2022-02-04 | ||
22 | |||
23 | * Bucket cache switched from balanced tree to hash table | ||
24 | |||
25 | Change suggested by Terence Kelly. | ||
26 | |||
27 | * Speed up flushing the changed buckets on disk | ||
28 | |||
29 | * New option codes for gdbm_setopt | ||
30 | |||
31 | ** GDBM_GETDBFORMAT | ||
32 | |||
33 | Return the database format. | ||
34 | |||
35 | ** GDBM_GETDIRDEPTH | ||
36 | |||
37 | Return the directory depth, i.e. the number of initial (most significant) | ||
38 | bits in hash value that are interpreted as index to the directory. | ||
39 | |||
40 | ** GDBM_GETBUCKETSIZE | ||
41 | |||
42 | Return maximum number of keys per bucket. | ||
43 | |||
44 | ** GDBM_GETCACHEAUTO | ||
45 | |||
46 | Return the status of the automatic cache adjustment. | ||
47 | |||
48 | ** GDBM_SETCACHEAUTO | ||
49 | |||
50 | Enable or disable automatic cache adjustment. | ||
51 | |||
52 | Version 1.22, 2021-10-19 | ||
53 | |||
54 | * Fix file header validation | ||
55 | |||
56 | * Fix key verification in sequential access | ||
57 | |||
58 | * Fix testing with DejaGNU 1.6.3 | ||
59 | |||
60 | * Fix stack overflow in print_usage | ||
61 | |||
62 | * Fix a leak of avail entry on pushing a new avail block | ||
63 | |||
64 | The leak would occur if the original avail table had odd number of entries. | ||
65 | |||
66 | * New gdbmtool variables: errorexit, errormask, trace, timing | ||
67 | |||
68 | "Errorexit" and "errormask" control which GDBM errors would cause the | ||
69 | program termination and emitting a diagnostic message, | ||
70 | correspondingly. Both variables are comma-delimited lists of error | ||
71 | codes. | ||
72 | |||
73 | The "trace" variable enables tracing of the gdbmtool commands. | ||
74 | |||
75 | The "timing" variable, when set, instructs gdbmtool to print time | ||
76 | spent in each command it runs. | ||
77 | |||
78 | * New gdbmtool options: -t (--trace), and -T (--timing) | ||
79 | |||
80 | |||
81 | Version 1.21, 2021-09-02 | ||
82 | |||
83 | * Crash tolerance | ||
84 | |||
85 | By default it is possible for an abrupt crash (e.g., power failure, | ||
86 | OS kernel panic, or application process crash) to corrupt the gdbm | ||
87 | database file. A new Linux-only mechanism enables applications to | ||
88 | recover the database state corresponding to the most recent | ||
89 | successful gdbm_sync() call before the crash. See the chapter 17 | ||
90 | "Crash Tolerance" in the GDBM manual. | ||
91 | |||
92 | * New database file format: numsync | ||
93 | |||
94 | The new "numsync" database format is designed to better support | ||
95 | crash tolerance. To create a database in numsync format, the gdbm_open | ||
96 | (or gdbm_fd_open) function must be given the GDBM_NEWDB|GDBM_NUMSYNC | ||
97 | flags. The GDBM_NUMSYNC flag also takes effect when used together | ||
98 | with GDBM_WRCREAT, provided that the new file is created. | ||
99 | |||
100 | New function gdbm_convert() is provided for converting the databases | ||
101 | from standard GDBM format to numsync and vice versa. | ||
102 | |||
103 | The gdbmtool tool can also be used for converting databases between | ||
104 | these two formats. | ||
105 | |||
106 | * Changes in gdbmtool | ||
107 | |||
108 | ** Fix string output in non-ASCII encodings | ||
109 | |||
110 | Printable multi-byte sequences are correctly represented on output. | ||
111 | This also fixes octal representation of unprintable characters. | ||
112 | |||
113 | ** The filename variable | ||
114 | |||
115 | This variable supplies the name of database file for use in "open" | ||
116 | command, if the latter is called without arguments. If "open" is | ||
117 | called with the file name argument, the "filename" variable is | ||
118 | initialized to this value. | ||
119 | |||
120 | ** The fd variable | ||
121 | |||
122 | If set, its value must be an open file descriptor referring to a | ||
123 | GDBM database file. The "open" command will use gdbm_fd_open | ||
124 | function to use this file. Upon closing the database, this | ||
125 | descriptor will be closed and the variable will be unset. | ||
126 | |||
127 | The file descriptor to use can also be supplied using the | ||
128 | -d (--db-descriptor) command line option. | ||
129 | |||
130 | ** The format variable | ||
131 | |||
132 | Defines the format in which new databases will be created. Allowed | ||
133 | values are: "standard" (default) and "numsync". | ||
134 | |||
135 | ** New commands: upgrade and downgrade | ||
136 | |||
137 | The "upgrade" command converts current database to the numsync | ||
138 | (extended) format. The "downgrade" command converts current database | ||
139 | to the standard format. | ||
140 | |||
141 | ** New command: snapshot | ||
142 | |||
143 | The "snapshot" command is part of the new crash tolerance support. | ||
144 | Given the names of two snapshot files, it analyzes them and selects | ||
145 | the one to be used for database recovery. See the GDBM manual, | ||
146 | section 17.5 "Manual crash recovery" for a detailed discussion of its | ||
147 | use. | ||
148 | |||
149 | Version 1.20, 2021-06-17 | ||
150 | |||
151 | * New bucket cache | ||
152 | |||
153 | The bucket cache support has been rewritten from scratch. The new | ||
154 | bucket cache code provides for significant speed up of search | ||
155 | operations. | ||
156 | |||
157 | * Change mmap prereading strategy | ||
158 | |||
159 | Pre-reading of the memory mapper regions, introduced in version 1.19 | ||
160 | can be advantageous only when doing intensive look-ups on a read-only | ||
161 | database. It degrades performance otherwise, especially if doing | ||
162 | multiple inserts. Therefore, this version introduces a new flag | ||
163 | to gdbm_open: GDBM_PREREAD. When given, it enables pre-reading of | ||
164 | memory mapped regions. | ||
165 | |||
166 | See https://github.com/Perl/perl5/issues/18884 for details. | ||
167 | |||
168 | |||
6 | Version 1.19 - 2020-12-23 | 169 | Version 1.19 - 2020-12-23 |
7 | 170 | ||
8 | * Pre-read the memory mapped regions on systems that support it. | 171 | * Pre-read the memory mapped regions on systems that support it. |
@@ -44,9 +207,9 @@ See https://puszcza.gnu.org.ua/bugs/?401 | |||
44 | 207 | ||
45 | ** Fix spurious error from gdbm_dump and gdbm_export | 208 | ** Fix spurious error from gdbm_dump and gdbm_export |
46 | 209 | ||
47 | The functions incorrectly reported as error the GDBM_ITEM_NOT_FOUND | 210 | The functions incorrectly treated as error the GDBM_ITEM_NOT_FOUND |
48 | status, which is reported when upon normal termination of iteration | 211 | status, which is reported upon normal termination of iteration |
49 | over the database keys. | 212 | over database keys. |
50 | 213 | ||
51 | ** Make sure gdbm_sync always returns a meaningful value | 214 | ** Make sure gdbm_sync always returns a meaningful value |
52 | See https://puszcza.gnu.org.ua/bugs/?400 | 215 | See https://puszcza.gnu.org.ua/bugs/?400 |