4a2c8263916a216780107c79c6b5e8c7f7f6dd63
[pspp-builds.git] / src / libpspp / ChangeLog
1 2007-03-30  Ben Pfaff  <blp@gnu.org>
2
3         Patch #5829.
4
5         * automake.mk (src_libpspp_libpspp_a_SOURCES): Add deque.c.
6
7         * deque.h: Completely rewrote.  Adapted client to new interface.
8
9         * deque.c: New file.
10
11 2007-03-25  Ben Pfaff  <blp@gnu.org>
12
13         * automake.mk (src_libpspp_libpspp_a_SOURCES): Add
14         sparse-array.[ch].
15
16         * pool.c (pool_zalloc): New function.
17         (pool_calloc): New function.
18
19         * sparse-array.c: New file.
20
21         * sparse-array.h: New file.
22
23 Mon Mar  5 20:55:49 CET 2007 John Darrington <john@darrington.wattle.id.au>
24
25         * i18n.c: Cast second argument of iconv using ICONV_CONST
26
27 2007-02-22  Ben Pfaff  <blp@gnu.org>
28
29         * string.h: Don't include vsnprintf.h any more, because gnulib has
30         now absorbed it into string.h.
31
32 Thu Feb 22 12:25:52 CET 2007 John Darrington <john@darrington.wattle.id.au>
33
34         * syntax-gen.h syntax-gen.c: New files.
35
36 Sun Feb 18 11:21:41 2007  Ben Pfaff  <blp@gnu.org>
37
38         * alloc.h: Remove useless parentheses in #if "defined" operator.
39
40         * misc.h: Ditto.
41
42 Tue Feb  6 20:00:13 2007  Ben Pfaff  <blp@gnu.org>
43
44         * misc.h [!HAVE_ISINF] (isinf): Define only if isinf is not
45         defined as a macro, because mingw seems to have the macro without
46         the function.
47         [!HAVE_ISNAN] (isnan): Ditto, for symmetry only.
48         [!AHVE_FINITE] (finite): Ditto, for symmetry only.
49
50 Tue Feb  6 19:58:46 2007  Ben Pfaff  <blp@gnu.org>
51
52         * compiler.h (PRINTF_FORMAT): Use __printf__ instead of printf to
53         avoid problem with "#define printf libintl_printf" that libintl is
54         fond of doing.
55         (SCANF_FORMAT): Ditto, for symmetry only.
56
57 Tue Feb  6 19:47:10 2007  Ben Pfaff  <blp@gnu.org>
58
59         * float-format.h: [FPREP_IEEE754] [WORDS_BIGENDIAN] Add missing
60         comma.
61
62 Wed Jan 24 21:13:32 2007  Ben Pfaff  <blp@gnu.org>
63
64         * abt.c: New file.
65
66         * abt.h: New file.
67
68         * automake.mk: Add abt.c, abt.h to sources.
69
70 Sun Jan 14 21:44:18 2007  Ben Pfaff  <blp@gnu.org>
71
72         * automake.mk: Add deque.h to sources.
73         
74         * deque.h: New file.
75
76 Wed Jan 10 06:49:38 2007  Ben Pfaff  <blp@gnu.org>
77
78         * automake.mk: Add heap.c, heap.h to sources.
79
80         * heap.c: New file.
81
82         * heap.h: New file.
83
84 Sun Dec 10 13:54:03 2006  Ben Pfaff  <blp@gnu.org>
85
86         * str.c (ss_tokenize): Skip the first delimiter character
87         following the token.  Otherwise, changing delimiters from token to
88         token can't have a sensible effect, because we'll get the previous
89         delimiter as part of the next token.
90         (ss_match_string): New function.
91
92 Sat Dec  9 18:48:55 2006  Ben Pfaff  <blp@gnu.org>
93
94         * misc.h (macro range): Removed, as it was unused.
95
96 Sat Dec  9 07:19:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
97
98         * array.c: Removed gratuitous #include
99
100 Thu Dec  7 20:33:23 WST 2006 John Darrington <john@darrington.wattle.id.au>
101
102         * getl.c getl.h : Changed signature of create function to take a 
103         string indicating the initial include path.
104
105 Sun Dec  3 11:36:10 2006  Ben Pfaff  <blp@gnu.org>
106
107         * str.h (SS_LITERAL_INITIALIZER): Cast the string literal to "char
108         *".  This normally does nothing but when GCC's -Wwrite-strings is
109         used it fixes a warning that otherwise can't be avoided.
110
111 Sun Dec  3 11:35:35 2006  Ben Pfaff  <blp@gnu.org>
112
113         * str.c (ss_alloc_substring_pool): New function.
114         (ss_alloc_uninit_pool) New function.
115
116 Sun Dec  3 11:28:06 2006  Ben Pfaff  <blp@gnu.org>
117
118         * getl.h: (enum getl_syntax) New enumeration to distinguish
119         between "batch" and "interactive" in a clearer way than a bool.
120         (struct getl_interface) Add an arg to "read" to return the
121         intended syntax mode.  Add an arg to "filter" to specify the
122         syntax mode of the line to filter.
123
124         * getl.c (do_read_line): Instead of returning the syntax type of
125         the line read based on whether the source itself is interactive,
126         return it based on whether the line itself should be treated as
127         having batch or interactive syntax.  Also, adapt interface to the
128         new interfaces of lex_init() and getl_interface.
129
130 Wed Nov 29 19:35:44 WST 2006 John Darrington <john@darrington.wattle.id.au>
131
132         * getl.c getl.h: New files. Created interface from base of 
133         language/line-buffer.[ch]
134
135         * msg-locator.c msg-locator.h: New files. Moved from
136         language/line-buffer.[ch]
137
138 Fri Nov 24 17:27:00 2006  Ben Pfaff  <blp@gnu.org>
139
140         * misc.h: (min) Removed.  All references updated to use MIN, from
141         minmax.h provided by gnulib.
142         (max) Ditto (for MAX).
143
144 Sun Nov 19 09:22:26 2006  Ben Pfaff  <blp@gnu.org>
145
146         * str.c (ss_get_long): New function.
147         (ss_compare_case) Ditto.
148         (ss_equals) Ditto.
149         (ss_equals_case) Ditto.
150
151 Tue Oct 31 19:28:19 2006  Ben Pfaff  <blp@gnu.org>
152
153         * str.h: [!HAVE_STRCHR] Drop compatibility code, because now we
154         assume a C89 compliant library.  (Gnulib makes this assumption so
155         we might as well too.)
156         [!HAVE_STRRCHR] Ditto.
157
158 Thu Oct 26 20:19:50 2006  Ben Pfaff  <blp@gnu.org>
159
160         * automake.mk: Add the new files.
161
162         * legacy-encoding.c: New file.
163
164         * legacy-encoding.h: New file.
165
166         * float-format.c: New file.
167
168         * float-format.h: New file.
169
170         * integer-format.c: New file.
171
172         * integer-format.h: New file.
173
174 Sun Oct 15 09:49:50 WST 2006 John Darrington <john@darrington.wattle.id.au>
175
176         * hash.c hash.h: Added hsh_create_pool, a hash which uses a pool
177         for its memory allocation.
178
179 Mon Jul 31 15:49:46 2006  Ben Pfaff  <blp@gnu.org>
180
181         * compiler.h: (macro CONST_FUNCTION) New macro.
182         (macro PURE_FUNCTION) New macro.
183
184 Sun Jul 16 21:07:35 2006  Ben Pfaff  <blp@gnu.org>
185
186         * message.c: (static int messages_disabled) New variable.
187         (msg_emit) Don't emit the message if messages are disabled.
188         (msg_disable) New function.
189         (msg_enable) New function.
190
191         * str.c: (free_string) New function.
192         (ds_register_pool) New function.
193         (ds_unregister_pool) New function.
194         (ds_set_length) New function.
195
196 Mon Jul 10 17:26:58 WST 2006 John Darrington <john@darrington.wattle.id.au>
197
198         * llx.c: #included compiler.h and removed explicit preprocessor cruft.
199
200 Fri Jul  7 20:01:26 2006  Ben Pfaff  <blp@gnu.org>
201
202         * automake.mk: (src_libpspp_libpspp_a_SOURCES) Add assertion.h.
203         
204         * assertion.h: New file.  Replaced usage of assert(0) and abort()
205         with NOT_REACHED() from this file throughout the source tree.
206
207         * message.c: (request_bug_report_and_abort) Revise message printed
208         to include request to include lines above the message, which
209         should include an assertion failure message in many cases.
210         (msg_assert_fail) Removed.
211
212         * message.h: (assert) Removed.
213         (request_bug_report_and_abort) Mark NO_RETURN.
214
215 Mon Jul  3 09:36:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
216
217         * i18n.c: Made character conversion tolerant of failure to create the 
218         necessary iconv structs.
219
220 Sat Jul  1 15:32:54 2006  Ben Pfaff  <blp@gnu.org>
221
222         * automake.mk: (src_libpspp_libpspp_a_SOURCES) Add new files.
223
224         * ll.c: New file.
225
226         * ll.h: New file.
227
228         * llx.c: New file.
229
230         * llx.h: New file.
231
232 Sun Jun 25 22:35:28 2006  Ben Pfaff  <blp@gnu.org>
233
234         Optimize rehashing: we know that none of the entries in the hash
235         table are equal, so we need not compare them to each other during
236         rehashing.
237         
238         * hash.c: (locate_empty_entry) New function.
239         (rehash) Use locate_empty_entry() instead of
240         locate_matching_entry().
241
242 Fri Jun  9 14:03:29 2006  Ben Pfaff  <blp@gnu.org>
243
244         Reform string library.
245         
246         * str.c (ss_empty): New function.  Replaces some uses of ls_init()
247         or ls_null().
248         (ss_cstr) New function.  Replaces some uses of ls_init().
249         (ss_buffer) New function.  Replaces some uses of ls_init().
250         (ss_substr) New function.
251         (ss_head) New function.
252         (ss_tail) New function.
253         (ss_alloc_substring) New function.  Replaces use of ls_create().
254         (ss_alloc_uninit) New function.
255         (ss_dealloc) New function.  Replaces use of ls_destroy().
256         (ss_truncate) New function.
257         (ss_rtrim) New function.
258         (ss_ltrim) New function.
259         (ss_trim) New function.
260         (ss_chomp) New function.
261         (ss_separate) New function.
262         (ss_tokenize) New function.
263         (ss_advance) New function.
264         (ds_create) Renamed ds_init_cstr().  Updated all callers.
265         (ss_match_char) New function.
266         (ss_get_char) New function.
267         (ss_get_until) New function.
268         (ss_get_chars) New function.
269         (ss_is_empty) New function.
270         (ss_length) New function.  Replaces ls_length().
271         (ss_data) New function.  Replaces many uses of ls_c_str().
272         (ss_end) New function.  Replaces ls_end().
273         (ss_at) New function.
274         (ss_first) New function.
275         (ss_last) New function.
276         (ss_span) New function.
277         (ss_cspan) New function.
278         (ss_compare) New function.
279         (ss_pointer_to_position) New function.
280         (ss_xstrdup) New function.
281         (ds_init) Renamed ds_init_empty().  All callers updated.
282         (ds_init_string) New function.
283         (ds_init_substring) Changed interface to take a struct substring.
284         Updated all callers.
285         (ds_init_cstr) New function.  Replaces ds_create().  All callers
286         updated.
287         (ds_assign_substring) Changed interface to take a struct
288         substring.  Updated all callers.
289         (ds_assign_buffer) Removed.  Changed all callers to use
290         ds_assign_substring().
291         (ds_assign_c_str) Renamed ds_assign_cstr().  All callers updated.
292         (ds_ss) New function.
293         (ds_substr) New function.
294         (ds_head) New function.
295         (ds_tail) New function.
296         (ds_rtrim) New function.  Replaces ds_rtrim_spaces().  All callers
297         updated.
298         (ds_ltrim) New function.  Replaces ds_ltrim_spaces().  All callers
299         updated.
300         (ds_trim) New function.  Replaces ds_trim_spaces().  All callers
301         updated.
302         (ds_rtrim_spaces) Removed.
303         (ds_ltrim_spaces) Removed.
304         (ds_trim_spaces) Removed.
305         (ds_separate) Changed interface to use substrings.  All callers
306         updated.
307         (ds_tokenize) Changed interface to use substrings.  All callers
308         updated.
309         (ds_c_str) Renamed ds_cstr().  All callers updated.
310         (ds_span) Changed interface to use substring for SKIP_SET and
311         dropped OFS.  All callers updated.
312         (ds_cspan) Changed interface to use substring for STOP_SET and
313         dropped OFS.  All callers updated.
314         (ds_find_char) New function.
315         (ds_compare) New function.
316         (ds_pointer_to_position) New function.
317         (ds_xstrdup) New function.  Replaced all users of
318         xstrdup(ds_c_str(s)) by a call to this function.
319         (ds_gets) Renamed ds_read_line().  All callers updated.
320         (ds_get_config_line) Renamed ds_read_config_line().  All callers
321         updated.
322         (ds_puts) Renamed ds_put_cstr().  All callers updated.
323         (ds_put_substring) New function.  Replaces ds_concat().  All
324         callers updated.
325         (ds_concat) Removed.
326         (ds_append_uninit) Renamed ds_put_uninit().  All callers updated.
327         (ds_printf) Renamed ds_put_format().  All callers updated.
328         (ds_vprintf) Renamed ds_put_vformat().  All callers updated.
329         (ds_putc) Renamed ds_put_char().  All callers updated.
330         (ds_putc_multiple) Renamed ds_put_char_multiple().  All callers
331         updated.
332         (ls_create) Removed.  Replaced by ss_alloc_substring().
333         (ls_create_buffer) Removed.  Replaced by ss_alloc_substring().
334         (ls_init) Removed.  Replaced by ss_buffer().
335         (ls_shallow_copy) Removed.  Just use assignment.
336         (ls_destroy) Removed.  Replaced by ss_dealloc().
337         (ls_null) Removed.
338         (ls_null_p) Removed.
339         (ls_empty_p) Removed.  Replaced by ss_is_empty().
340         (ls_c_str) Removed.
341         (ls_end) Removed.  Replaced by ss_end().
342
343         * str.h (struct fixed_string): Renamed struct substring, updated
344         all users.
345         (CC_SPACES) New macro.
346         (CC_DIGITS) Ditto.
347         (CC_XDIGITS) Ditto.
348         (CC_LETTERS) Ditto.
349         (CC_ALNUM) Ditto.
350         (SS_EMPTY_INITIALIZER) Ditto.
351         (SS_LITERAL_INITIALIZER) Ditto.
352         (struct string) Removed string, length members.  Add substring
353         member.
354         (DS_INITIALIZER) Rename DS_EMPTY_INITIALIZER.
355
356 Tue May 30 19:45:12 WST 2006 John Darrington <john@darrington.wattle.id.au>
357
358         * i18n.c i18n.h: New files.
359
360 Tue May 16 06:50:35 2006  Ben Pfaff  <blp@gnu.org>
361
362         * automake.mk (src/libpspp/version.c): Removed groff_font_path,
363         which is no longer used.
364
365         * message.c (request_bug_report_and_abort): Don't print
366         groff_font_path, which no longer exists.
367
368         * version.h (locale_dir): Removed groff_font_path.
369
370 Sun May 14 22:06:53 2006  Ben Pfaff  <blp@gnu.org>
371
372         * str.c (spprintf): Moved definition of spprintf() here, from
373         str.h.
374
375         * str.h: (nsprintf) Removed.  Changed all users to use sprintf()
376         instead.
377         (nvsprintf) Removed.  Changed all users to use vsprintf() instead.
378
379 Sun May 14 20:52:20 2006  Ben Pfaff  <blp@gnu.org>
380
381         * str.c (ds_init): Remove `capacity' argument and just initialize
382         the string to a capacity of zero.  Updated all callers.
383
384 Tue May  9 09:56:57 2006  Ben Pfaff  <blp@gnu.org>
385
386         * va_copy.h: Removed.  Now use va_copy() provided by gnulib
387         instead.
388
389         * automake.mk: (src_libpspp_libpspp_a_SOURCES) Removed va_copy.h.
390
391 Sun May  7 18:17:32 2006  Ben Pfaff  <blp@gnu.org>
392
393         * pool.c (pool_vasprintf): New function.
394         (pool_asprintf) New function.
395
396 Sun May  7 17:09:54 2006  Ben Pfaff  <blp@gnu.org>
397
398         * compiler.h: (macro WARN_UNUSED_RESULT) New macro.
399
400 Sun May  7 14:32:25 2006  Ben Pfaff  <blp@gnu.org>
401
402         * va_copy.h: New header.
403
404         * str.c: Use header instead of inlining va_copy() macro
405         implementation.
406
407 Sun May  7 10:06:29 WST 2006 John Darrington <john@darrington.wattle.id.au>
408
409         * array.c array.h: Constness of sort.
410
411 Thu May  4 18:01:37 WST 2006 John Darrington <john@darrington.wattle.id.au>
412
413         * message.c message.h: Added functions to create and copy a msg.
414
415 Tue May  2 15:41:50 2006  Ben Pfaff  <blp@gnu.org>
416
417         * str.c (ds_append_uninit): No need to add 1 to arg passed to
418         ds_extend(), because the argument does not include space for a
419         null terminator.  Also, fix warning.
420
421 Tue Apr 25 11:07:19 2006  Ben Pfaff  <blp@gnu.org>
422
423         Finish reforming error message support.  In this phase, move
424         message.c into libpspp.
425         
426         * message.c: Move here from src/.  Also remove a few unneeded
427         headers.
428
429         * automake.mk (src_libpspp_libpspp_a_SOURCES): Add message.c. 
430
431 Tue Apr 25 10:54:44 2006  Ben Pfaff  <blp@gnu.org>
432
433         Continue reforming error message support.  In this phase, drop
434         actual message printing from core code, substituting a callback,
435         and add the callback to each UI.  Also, move verbose_msg() into
436         its own module.
437
438         * automake.mk (src_libpspp_libpspp_a_SOURCES): Added
439         verbose-msg.c, verbose-msg.h.
440
441         * verbose-msg.c: New file.
442
443         * verbose-msg.h: New file.
444
445 Mon Apr 24 17:26:47 2006  Ben Pfaff  <blp@gnu.org>
446
447         Continue reforming error message support.  In this phase, rename
448         all the message functions and types to start with "msg", except
449         for the ones that will be moving to other modules anyway.
450
451         All references to the identifiers below were updated likewise.
452         
453         * message.h: (enum file_locator) Renamed `enum msg_locator'.
454         (struct error) Renamed `struct msg'.
455         (err_assert_fail) Renamed msg_assert_fail().
456
457 Sun Apr 23 22:07:06 2006  Ben Pfaff  <blp@gnu.org>
458
459         Continue reforming error message support.  In this phase, get rid
460         of message "titles" and put the message text in `struct error'.
461         Now `struct error' encapsulates a message more properly.
462         
463         * message.h: (struct error) Remove `title' member.  Add `text'
464         member.
465         
466 Sun Apr 16 20:43:35 2006  Ben Pfaff  <blp@gnu.org>
467
468         Continue reforming error message support.  In this phase, we
469         divide the classification of messages along "category" and
470         "severity" axes.
471
472         * message.h: (enum msg_class) Named this set of enumerations.
473         (enum msg_category) New enum: MSG_GENERAL, MSG_SYNTAX, MSG_DATA.
474         (enum msg_severity) New enum: MSG_ERROR, MSG_WARNING, MSG_NOTE.
475         (msg_class_to_category) New inline function.
476         (msg_class_to_severity) New inline function.
477         (msg_class_from_category_and_severity) New inline function.
478         (struct error) Removed `class' member, added `category',
479         `severity'.  Updated all users of this struct to use the new
480         members.
481
482 Sun Apr 16 20:33:19 2006  Ben Pfaff  <blp@gnu.org>
483
484         * str.c (ds_vprintf): Don't try to write into the string if it is
485         null.
486
487 Sun Apr 16 18:52:41 2006  Ben Pfaff  <blp@gnu.org>
488
489         GNU standards require "file name" instead of "filename" in
490         documentation.  It's nice for our code to follow the convention
491         too.
492         
493         * message.h: (struct file_locator) Rename filename member to
494         file_name.  Updated all references.
495
496 Sun Apr 16 16:05:43 2006  Ben Pfaff  <blp@gnu.org>
497
498         Continue reforming error message support.  In this phase, we get
499         rid of VM() and the other msg() support for "verbosity", replacing
500         it by a new function verbose_msg().
501
502         * message.h: (enum ERR_CLASS_COUNT) Renamed ERR_CLASS_CNT.
503         (enum ERR_CLASS_MASK) Removed.
504         (enum ERR_VERBOSITY_SHIFT) Removed.
505         (enum ERR_VERBOSITY_MASK) Removed.
506         (macro VM) Removed.
507
508 Sun Apr 16 11:48:07 2006  Ben Pfaff  <blp@gnu.org>
509
510         Start reforming error message support.  In this phase, we get rid
511         of "installation errors" and change all uses of msg() in the
512         output drivers to uses of error() or error_at_line().
513
514         * message.h: Remove IE, IS enums.
515
516 Mon Apr  3 11:10:21 2006  Ben Pfaff  <blp@gnu.org>
517
518         * str.c: (ds_separate) Change interface for cleanliness and
519         consistency with ds_tokenize(), and rewrite to shorten and
520         simplify.  Updated all callers.
521         (ds_tokenize) New function.
522
523 Fri Mar 31 10:38:46 2006  Ben Pfaff  <blp@gnu.org>
524
525         Add freaderror() analogous to fwriteerror() in gnulib.
526
527         * freaderror.c: New file.
528
529         * freaderror.h: New file.
530
531 Thu Mar 30 16:15:37 2006  Ben Pfaff  <blp@gnu.org>
532
533         * str.c: (ds_create) Adjust capacity selection.
534         (ds_init) Use MAX macro for clarity.
535         (ds_create_substr) Rewrote.
536         (ds_replace) Renamed ds_assign_c_str(), reimplemented.  Changed
537         all callers to use a ds_assign_*() function.
538         (ds_init_substring) New function.
539         (ds_assign_string) New function.
540         (ds_assign_substring) New function.
541         (ds_assign_buffer) New function.
542         (ds_assign_c_str) New function.
543         (ds_truncate) Rewrote for clarity.
544         (ds_rpad) Reimplement in terms of ds_putc_multiple().
545         (ds_ltrim_spaces) Reimplement.
546         (ds_trim_spaces) New function.
547         (ds_separate) New function.
548         (ds_c_str) Make tolerant of null pointer, allowing static
549         initialization of strings.
550         (ds_find) Rename ds_span(), change interface.
551         (ds_n_find) Rename ds_cspan(), change interface.
552         (ds_at) New function.
553         (ds_first) Reimplement in terms of ds_at().
554         (remove_comment) New function.
555         (ds_get_config_line) Reimplement in terms of other functions.
556         Change type of LINE_NUMBER parameter.  Updated all callers.
557         (ds_vprintf) Modify for clarity.
558         (ds_putc) Better to be safe than sorry.
559         (ds_putc_multiple) New function.
560
561         * str.h: (struct string) Reorder members.
562         (macro DS_INITIALIZER) New macro that can be used to initialize a
563         string (as empty).
564         (ds_c_str) Remove inline version.
565
566 Tue Mar 28 13:49:11 WST 2006 John Darrington <john@darrington.wattle.id.au>
567
568         * str.[ch]: New functions ds_create_substr, ds_find, ds_n_find, 
569         ds_ltrim_spaces
570
571 Sat Mar  4 12:59:01 2006  Ben Pfaff  <blp@gnu.org>
572
573         * compiler.h: New file.
574
575 Sat Mar  4 11:55:16 2006  Ben Pfaff  <blp@gnu.org>
576
577         * str.h: Now assume that sprintf() returns the correct value.
578         Always implement spprintf as a static inline function.  Change
579         nsprintf, nvsprintf to simple macros that call sprintf, vsprintf.
580
581         * str.c: Remove spprintf, nsprintf, nvsprintf conditional
582         definitions.
583
584 Thu Mar  2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
585         
586         * Moved files from src directory