Use SCM_{SET_}?CELL_WORD_[01] to access length and char * fields
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
3210f49a
DH
12000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2
3 * symbols.h (SCM_LENGTH, SCM_SETLENGTH): Access the length field
4 of strings and symbols by using SCM_{SET_}?CELL_WORD_0.
5
6 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS): Use SCM_{SET_}?CELL_WORD_1
7 to access the char * field of strings and symbols.
8
2d67e390
DH
92000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
10
11 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Use SCM_SET_CELL_TYPE to set
12 the type entry of a new cell. Added a comment about things to
13 remember when updating the list of free cells.
14
15 (SCM_FREEP, SCM_MARKEDP): Use SCM_CELL_TYPE to access the type
16 entry of a cell.
17
76a369d9
DH
182000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
19
20 * pairs.h (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): Use
21 SCM_CELL_OBJECT and SCM_SET_CELL_OBJECT. This change implies that
22 with strict type checking enabled these macros will only work if
23 given valid SCM parameters.
24
3210f49a 25 (SCM_GCCDR): Moved to tags.h.
76a369d9
DH
26
27 * tags.h (SCM_GCCDR): Moved here from pairs.h.
28
2549a709
DH
292000-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
30
31 * tags.h (SCM2PTR, PTR2SCM): Moved to gc.h.
32
33 * pairs.h (scm_cell, SCM_CELLPTR, SCM_CELL_WORD*, SCM_CELL_OBJECT*,
34 SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*, SCM_CELL_TYPE,
35 SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK, SCM_PTR_GT,
36 SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC, SCM_NEWCELL,
37 SCM_NEWCELL2): Moved to gc.h.
38
39 (SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR, SCM_SETAND_CDR,
40 SCM_SETOR_CAR, SCM_SETOR_CDR): Moved to gc.h. These names should
41 be changed, though, since the macros are not only pair related.
42
43 (SCMPTR): Deleted.
44
45 * gc.h (SCM2PTR, PTR2SCM, scm_cell, SCM_CELLPTR, SCM_CELL_WORD*,
46 SCM_CELL_OBJECT*, SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*,
47 SCM_CELL_TYPE, SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK,
48 SCM_PTR_GT, SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC,
49 SCM_NEWCELL, SCM_NEWCELL2, SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR,
50 SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR): Moved here from
51 tags.h and pairs.h.
52
8d3356e7
DH
532000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
54
55 * tags.h (SCM_STRICT_TYPING): New macro that, if defined,
56 activates strict compile time type checking for variables of
57 type SCM.
58 (SCM, SCM_PACK, SCM_UNPACK): Define according to whether
59 SCM_STRICT_TYPING or SCM_VOIDP_TEST are defined.
60 (SCM_EQ_P): Defined as a macro equivalent for eq?.
61
96f6f4ae
DH
622000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
63
64 * tags.h (SCM_POINTERS_MUNGED): Removed.
65
66 * gc.c (scm_gc_sweep, init_heap_seg): Removed use of
67 SCM_POINTERS_MUNGED, thus fixing some illegal casts to SCM.
68
0cbaaf0b
DH
692000-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
70
71 * pairs.h (SCM_CELL_OBJECT, SCM_CELL_OBJECT_[0-3],
72 SCM_SET_CELL_OBJECT, SCM_SET_CELL_OBJECT_[0-3], SCM_CELL_TYPE,
73 SCM_SET_CELL_TYPE): Added a set of low level macros for accessing
74 cell entries.
75 (SCM_CELL_WORD_[0-3]): Renamed from the SCM_CELL_WORD[0-3].
76
77 * procs.h, procs.c: Instead of SCM_{SET_}?CELL_WORD[12], use the
78 newly introduced SCM_{SET_}?CELL_OBJECT_[12] macros.
79
7284d584
MD
802000-03-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
81
82 * tags.h: Disabled definition of SCM_VOIDP_TEST.
83
84 Defining SCM as void * introduces problems which haven't been
85 handled yet. Developers who work with these issues can enable it
86 in their working copies.
87
88 Disabling this definition exposes a set of newly introduced and
89 older misuses of types which causes warning messages during
90 compilation. We'll fix this successively.
91
92 * gc.c (scm_mark_locations): Changed * (SCM **) X --> * (SCM *) X
93 in order to obtain a value of type SCM.
94 (scm_cellp): Updated with new changes to scm_mark_locations.
95
96 * continuations.h (SCM_SETJMPBUF): Cast second arg into SCM.
97
2f9055ea
MD
98 * continuations.c (scm_make_cont): Removed cast of size_t into
99 long.
100
7284d584
MD
101 * symbols.h (SCM_SETCHARS): Cast second arg into SCM.
102
f81e080b
DH
1032000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
104
105 * numbers.h (SCM_SETNUMDIGS): Use SCM_BIGSIZEFIELD macro for
106 shifting, not constant. Thanks to Dale P. Smith.
107
108 * numbers.c (scm_sum, scm_difference): Don't test a SCM value
109 for being less than zero. Decode it to a C value first. Again,
110 thank you Dale.
111
1ff2fa6e
DH
1122000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
113
114 * numbers.h, ramap.c, struct.h, vectors.h: Don't use SCM2PTR for
115 non scheme values. If raw data is stored in SCM variables, it has
116 to be accessed using SCM_UNPACK until a better solution is found.
117
3920465b
MD
1182000-03-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
119
6f29dc6d
MD
120 * tags.h (SCM_ECONSP, SCM_NECONSP): More corrections of
121 pointer-arithmetic induced by the SCM_PACK/UNPACK change.
122
123 * print.c (scm_iprin1): SCM_PACK/UNPACK corrections.
124
125 * gc.c (scm_gc_sweep): SCM_PACK/UNPACK corrections.
126
127 * eval.c (SCM_CEVAL, scm_unmemocar): SCM_PACK/UNPACK corrections.
128
129 * dynwind.c (scm_swap_bindings): SCM_PACK/UNPACK corrections.
130
3920465b
MD
131 * async.c, __scm.h: Removed lots of the old async click logic. It
132 is possible to reinsert it by defining GUILE_OLD_ASYNC_CLICK in
133 __scm.h. Let's try this out and dump the old code after the
134 threads reorganization.
135 (set-tick-rate, set-switch-rate): Conditionally removed.
136
90cca6f9
MD
1372000-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
138
139 * gc.c (scm_gc_mark): Bugfix 1: The recent SCM_PACK/UNPACK change
140 made SCM values into pointers. This turned an arithmetic
141 computation of the address of the vcell into a pointer-arithmetic
142 one, thereby screwing up marking of structs.
143 Bugfix 2: Removed incompletely introduced loop variable `j' used
144 when protecting the tail array of a struct.
145
8246bf3e
DH
1462000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
147
148 * struct.h (SCM_STRUCT_DATA): Don't cast SCM values to pointers.
149
95c9e176
DH
1502000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
151
152 * symbols.h, symbols.c (scm_strhash): Declare the string
153 parameter as constant, since it is not modified.
154
155 * symbols.c (scm_intern_obarray_soft,
156 scm_sysintern0_no_module_lookup): Can now pass constant strings
157 to scm_strhash without need for casting.
158
7352d0b2
DH
1592000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
160
161 * vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS): Don't cast SCM
162 values to pointers. Use SCM2PTR instead.
163
b00c8cdc 1642000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
9b139b4e
DH
165
166 * async.c (scm_set_tick_rate, scm_set_switch_rate): Don't unpack
167 results of SCM_INUM.
168
df2d5178
MD
1692000-03-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
170
bd54e664
MD
171 * init.c (scm_boot_guile_1): Renamed GUILE_GC_TRIGGER_1 -->
172 GUILE_MIN_YIELD_1, GUILE_GC_TRIGGER_2 --> GUILE_MIN_YIELD_2.
173 GUILE_MIN_YIELD_X now take *positive* fractions of heap size.
174
175 * gc.c, gc.h (SCM_MIN_YIELD_1, SCM_MIN_YIELD_2,
176 min_yield_fraction, min_yield, adjust_min_yield): Renamed from
177 SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2, gc_trigger_fraction,
178 gc_trigger, adjust_gc_trigger.
179
df2d5178
MD
180 * gc.c (alloc_some_heap): Further improvement of minimal heap size
181 prediction.
182 (SCM_MAX): New macro.
183 (scm_freelist_t): New field: collected_1. Previous amount of
184 collected cells.
185 (gc_sweep_freelist_finish): Trigger based on two last values of
186 freelist->collected to avoid unnecessary allocation due to
187 temporary peaks.
bd54e664
MD
188 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2):
189 Adjusted to 45000 cells, 40% and 40%. Gives quick startup
190 without extra heap allocation.
df2d5178 191
f2961ccd
DH
1922000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
193
194 * numbers.h (SCM_MAKINUM): The parameter to SCM_MAKINUM should
195 already be a C value. No need to unpack it.
196
3210f49a 197 * numbers.c (scm_long_long2num): Cast the parameter to scm_bits_t
f2961ccd
DH
198 if we know it fits into an inum.
199
200 * ramap.c (ramap_rp): An scm_tc7_[ui]vect object does point to a
201 field of long values. In contrast, SCM_VELTS accesses a field of
202 SCM values.
203
7b4cc831
MD
2042000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
205
f1d316dd
MD
206 * gc.c (scm_gc_stats): Inserted explanation of local_scm_mtrigger
207 etc.
80770ddc
MD
208 (scm_gc_yield_1): New variable: Holds previous yield. Used to
209 make better judgements.
f1083dd7
MD
210 (gc_sweep_freelist_finish): Inserted explanation of use of
211 gc_trigger.
f1d316dd
MD
212
213 * print.h, stacks.h, options.c, options.h: Changed C++
214 commentaries to C.
7b4cc831 215
7a710745
DH
2162000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
217
218 * tags.h (SCM2PTR, PTR2SCM): Use SCM_PACK / SCM_UNPACK correctly.
219
220 * numbers.h (SCM_INUMP, SCM_MAKINUM, SCM_INUM0, SCM_COMPLEX_REAL,
221 SCM_COMPLEX_IMAG, SCM_NUMP, SCM_BDIGITS): Use SCM_PACK /
222 SCM_UNPACK / SCM2PTR correctly.
223
1ef20c80
MD
2242000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
225
226 * gc.c (adjust_gc_trigger): Improved documentation.
227 (alloc_some_heap): Since gc_trigger is used against
228 freelist->collected, this is the value which should be used to
229 predict minimum growth.
230
b464b970
DH
2312000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
232
233 * eval.h: Fix mixup of packed/unpacked SCM values. (Thanks
234 Thien-Thi Nguyen for the patch.)
235
3ab9f56e
DH
2362000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
237
238 * numbers.c (scm_ash): Fixed typing problems with the second
239 parameter and added some documentation. (Thanks Thien-Thi Nguyen
240 for indicating the problem.)
241
05bc3265
MD
2422000-03-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
243
78a4915a
MD
244 * gc.c, gc.h (scm_gc_yield): New variable.
245 (adjust_gc_trigger): Use scm_gc_yield.
246 (alloc_some_heap): Use scm_gc_yield instead of
247 scm_gc_cells_collected.
248
05bc3265
MD
249 * coop-threads.c: Addd #include "root.h", #include "strings.h".
250
251 * debug.c: Added #include "root.h". (Thanks to Thien-Thi Nguyen.)
252
253 * gc.c (scm_gc_for_newcell, adjust_gc_trigger): Improved GC
254 trigger adjustmeant: Take yield (freed cells) for all freelists
255 into account.
256 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Tuned
257 to 50000 cell heap with 45% trigger.
258 (scm_gc_cells_collected): Reintroduced.
259 (SCM_HEAP_SIZE): New macro.
260 (scm_gc_sweep): Reintroduced correct computation of
261 scm_cells_allocated.
262 (scm_freelist_t): Corrected commentary for field `cluster_size':
263 Clustersize counts objects, not cells; New member
264 `clusters_allocated'.
265
89e00824
ML
2662000-03-19 Michael Livshin <mlivshin@bigfoot.com>
267
268 * *.[hc]: add Emacs magic at the end of file, to ensure GNU
269 indentation style.
270
afcfc5bb
MD
2712000-03-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
272
273 * threads.h: Added #include "libguile/throw.h". (Thanks to
274 Thien-Thi Nguyen.)
275
a00c95d9
ML
2762000-03-18 Michael Livshin <mlivshin@bigfoot.com>
277
278 * tags.h: (SCM_DOUBLE_CELLP, SCM_NDOUBLE_CELLP): new macros.
279
280 * gc.h: (typedef struct scm_freelist_t) remove from here.
281
282 * gc.c: (CELL_UP, CELL_DN) make these macros take additional
283 parameter (the span).
284 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK) new macros.
285 (typedef struct scm_freelist_t) move here from gc.h, it had no
286 business being externally visible.
287 (typedef struct scm_heap_seg_data_t) renamed from
288 scm_heap_seg_data, to be style-compliant.
289 (scm_mark_locations) if the possible pointer points to a
290 multy-cell, check that it's properly aligned.
291 (init_heap_seg) alighn multy-cells properly, work with the
292 assumption that the segment size divides cleanly by cluster size
293 (so that there's no spill).
294 (round_to_cluster_size) new function.
295 (alloc_some_heap, make_initial_segment) use round_to_cluster_size
296 to satisfy the new init_heap_seg invariant.
297
28b3236d
DH
2982000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
299
300 * _scm.h: Don't include async.h everywhere...
301
302 * eq.c eval.c iselect.c: ... only include it here.
303
ba11fd4c
DH
3042000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
305
306 * _scm.h: Don't include root.h everywhere...
307
308 * async.c continuations.c eq.c eval.c evalext.c feature.c gc.c
309 gdbint.c gsubr.c ioext.c keywords.c lang.c load.c macros.c
310 numbers.c objprop.c ports.c print.c procprop.c ramap.c read.c
311 srcprop.c stackchk.c stacks.c strports.c symbols.c unif.c
312 variable.c vectors.c vports.c: ... only include it here.
313
7ab3fdd5
DH
3142000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
315
316 * _scm.h: Don't include strings.h everywhere...
317
318 * backtrace.c dynl.c error.c feature.c filesys.c fports.c gc.c
319 gdbint.c ioext.c load.c net_db.c numbers.c objects.c options.c
320 ports.c posix.c print.c procs.c random.c read.c regex-posix.c
321 simpos.c socket.c stacks.c stime.c strop.c strports.c struct.c
322 symbols.c unif.c vectors.c version.c vports.c: ... only include it
323 here.
324
f04d8caf
DH
3252000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
326
327 * _scm.h: Don't include ports.h everywhere...
328
329 * arbiters.c backtrace.c debug.c dynl.c dynwind.c eval.c feature.c
330 fluids.c gc.c gdbint.c guardians.c hash.c keywords.c mallocs.c
331 numbers.c objects.c print.c read.c root.c smob.c srcprop.c
332 stackchk.c strports.c struct.c throw.c variable.c: ... only
333 include it here.
334
003d1fd0
DH
3352000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
336
337 * _scm.h: Don't include vectors.h everywhere...
338
339 * eq.c eval.c filesys.c gc.c gsubr.c guardians.c hash.c hashtab.c
340 keywords.c net_db.c numbers.c objects.c posix.c print.c procprop.c
341 procs.c ramap.c random.c read.c scmsigs.c socket.c sort.c stime.c
342 strports.c symbols.c unif.c vports.c weaks.c: ... only include it
343 here.
344
0fa27efa
DH
3452000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
346
347 * genio.h: removed. (Only content was '/* delete me */'.)
348
349 * Makefile.am arbiters.c backtrace.c debug.c dynl.c dynwind.c
350 error.c filesys.c fluids.c gc.c gsubr.c guardians.c keywords.c
351 libguile.h mallocs.c numbers.c print.c random.c read.c root.c
352 srcprop.c stackchk.c struct.c threads.c throw.c variable.c:
353 Removed reference to genio.h
354
148f31de
MD
3552000-03-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
356
357 * gc.c, gc.h: Cleanup of the change of 2000-03-15.
358 Cluster sizes are now independent of GC trigger values.
359 GUILE_GC_TRIGGER_n can now specify a relative trigger value:
360 A negative integer gives fraction of total heap size in percent.
1eb489a2 361 (SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -40.
148f31de
MD
362
363 * init.c (scm_boot_guile_1): Introduced new variable
364 GUILE_MAX_SEGMENT_SIZE; New environment variable names:
365 GUILE_INIT_SEGMENT_SIZE_1, GUILE_GC_TRIGGER_1,
366 GUILE_INIT_SEGMENT_SIZE_2, GUILE_GC_TRIGGER_2
367
6d0f81dd 3682000-03-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
a00c95d9 369
6d0f81dd
MD
370 * __scm.h (GC_FREE_SEGMENTS): Disable this until we have made
371 freeing of segment work with the new GC scheme. (Thanks to
bc2c8d98
MD
372 Michael Livshin.) Oops, also happened to make GUILE_NEW_GC_SCHEME
373 the default, but I'll let this change stay in CVS Guile since this
374 code is not expected to contain serious bugs.
a00c95d9 375
17351a6f 3762000-03-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
c5133dc9 377
6c7c449e
MD
378 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
379 defined.
5a551542
MD
380 (scm_free_list_length): New procedure (GUILE_DEBUG).
381 Fixed a small but serious bug introduced by the previous change.
382
17351a6f
MD
383 * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
384 loop and declare as register.
6c7c449e 385
c5133dc9
MD
386 * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
387 after GC.
388
3820581c
GB
389Wed Mar 15 08:27:04 2000 Greg J. Badros <gjb@cs.washington.edu>
390
391 * fluids.c: Docstring patch from Keisuke Nishida. Some
392 reindentation, too, and a couple formals renamed. Should
393 fluid-set! return UNSPECIFIED instead of a value?
394
395Wed Mar 15 08:24:58 2000 Greg J. Badros <gjb@cs.washington.edu>
396
397 * Makefile.am: Separate out DOT_X_FILES and DOT_DOC_FILES, and
a00c95d9 398 generate the latter from the concrete listing of the former. Then
3820581c
GB
399 make guile-procedures.txt depend on DOT_DOC_FILES instead of
400 *.doc, so that rebuilding it works.
401
dd6390bf
GB
402Wed Mar 15 08:12:14 2000 Greg J. Badros <gjb@cs.washington.edu>
403
404 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida!
405
406 * guile-snarf.awk.in: Replace docstring line-ending \n" and \n\n"
407 with nothing and \n, respectively. Thanks Keisuke Nishida for
408 noticing this problem.
409
4fdb0ae2
MD
4102000-03-15 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
411
412 * __scm.h (GUILE_NEW_GC_SCHEME): Define this if you want to test a
413 new way of allocating heap. It makes Guile fast, but still
414 contains bugs.
415
416 * gc.c, gc.h, pairs.h, init.c: Implementation of a new way of
417 allocating heap. The basic idea is to trigger GC every Nth
418 allocated cell and grow heap when free list runs out. The scheme
419 has been extended so that GC isn't triggered until all remaining
420 cells are used. The implementation is also prepared for
421 development in the direction of POSIX threads.
422
423 * gc.c (SCM_EXPHEAP): In order to grow by a factor of 1.5,
424 SCM_EXPHEAP should return half of the heap size.
425
3d8d1283
MD
4262000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
427
5f4edb86
MD
428 The following change to init.c is only enabled if Guile was
429 configured with --enable-guile-debug.
a00c95d9 430
5f4edb86
MD
431 * init.c (scm_i_getenv_int): New function.
432 (scm_boot_guile_1): Use the environment variables
433 GUILE_INIT_HEAP_SIZE, GUILE_INIT_HEAP_SIZE2 to select heap size if
434 they exist. (This may be replaced by a Scheme level mechanism in
435 the future.)
436
3d8d1283 437 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
90e77861 438 scm_assoc. (Thanks to Keisuke Nishida.)
3d8d1283 439
b0e37c83
MD
4402000-03-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
441
442 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
2b260c0f 443 scm_nil, scm_t. (Thanks to Keisuke Nishida.)
b0e37c83 444
16d35552
MD
4452000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
446
5ebf0091
MD
447 * init.c (scm_boot_guile_1): Use same initial segment size for
448 1-word and 2-word segments. Having the smaller size causes Guile
449 to GC too often. Obviously something needs to be done to allow
450 for a smaller 2-word segment without this to happen. (The amount
451 of heap for each type should be automatically adapted to the
452 application somehow.)
453
31ed4cff
MD
454 [Almost all of these changes should be documented in the NEWS
455 file.]
456
cf2c7413
MD
457 * gc.h (scm_freelist_t): New type.
458
459 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
460
461 * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
462 all of Guile basics fits into one segment and there suitable room
463 for work.
464 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
465 instead of 2.
466 (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
467 Freelists now contains information about object span, cells
468 collected and amount of cells in heap segments belonging to the
469 list.
470 (scm_heap_size, scm_gc_cells_collected): Removed.
471
472 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
473
16d35552
MD
474 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
475 number.
476
cf2c7413 477 * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
16d35552
MD
478 numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
479 rewrite of handling of real and complex numbers.
480 (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
481 removed along with the support for floats. (Float vectors are
482 still supported.)
483
484 * tags.h (scm_tcs_bignums): Removed.
485 (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
486 Use SCM_BIGSIGN(x) to test for sign!
487 (scm_tc16_big): The new bignum type.
488 (SCM_REAL_PART, SCM_IMAG_PART): Removed.
489
490 * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
491 (scm_makdbl): Deprecated.
492 (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
493 (SCM_SINGP): Deprecated.
494 (SCM_FLO): Removed.
495 (SCM_INEXP, SCM_CPLXP): Deprecated.
496 (SCM_INEXACTP, SCM_COMPLEXP): New macros.
497 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
498 SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
499 (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
500 for doubles and complex numbers.
501 (SCM_REAL_VALUE): New selector for doubles.
502 (scm_double_t, scm_complex_t): New types.
503 (scm_dbl): Removed.
504
505 * numbers.c (scm_floprint, scm_floequal): Removed.
506 (scm_print_real, scm_print_complex, scm_real_equalp,
507 scm_complex_equalp): New functions.
508
509 * unif.c (scm_makflo): Removed.
510
511 * smob.h (SCM_SMOB_PREDICATE): New macro.
512 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
513 SCM_RETURN_NEWSMOB3): New macros.
514
5151999-11-21 Michael Livshin <mlivshin@bigfoot.com>
516
517 The following changes implement primitive support for double cells
518 (i.e. four-word cells) and change the representation of some
519 things to multi-cells instead of cons+malloc. (Applied and
520 modified by mdj.)
521
522 * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
523 (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
524 multi-cell access macros (used by the ones below).
525 (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
526 macros.
527
528 * gc.c (scm_freelist2): multi-cell freelists.
529 (inner_map_free_list): map_free_list, parameterized on ncells.
530 "nn cells in segment mm" was misleading for ncells > 1; changed to
531 "objects". still print cells too, though.
532 (scm_map_free_list): rewritten using inner_map_free_list.
533 (scm_check_freelist): get freelist as parameter, since now we have
534 more than one.
535 (scm_debug_newcell2): multi-cell variants of
536 scm_debug_newcell.
537 (scm_gc_for_newcell): take ncells and freelist pointer as
538 parameters.
539 (scm_gc_mark): add case for tc7_pws (procedures with setters are
540 now double cells).
541 (scm_gc_sweep): don't free the float data, since it's not malloced
542 anymore.
543 (init_heap_seg): didn't understand what n_new_objects stood for,
544 so changed to n_new_cells.
545 (make_initial_segment): new function, makes an initial segment
546 according to given ncells.
547 (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
548
549 * numbers.c (scm_makdbl): no malloc'ing needed, so the
550 {DEFER,ALLOW}_INTS thing removed.
551
552 * numbers.h (struct scm_dbl): changed to represent a double cell,
553 with the number in the second half.
16d35552
MD
554
555 * dynwind.c: changed the wind-guards representation to double
556 cell.
557
558 * procs.c, procs.h: changed the procedure-with-setter representation
559 to double cell.
560
561 * async.c, async.h: made async representation a double cell.
562
16d35552 563 * dynl.c: made dynamic_obj representation a double cell.
a00c95d9 564
b70ecbd0
GH
5652000-03-13 Gary Houston <ghouston@arglist.com>
566
567 * ports.c (flush_void_port): renamed to flush_port_default.
568 (end_input_void_port): renamed to end_input_default.
569
570 * init.c (scm_standard_stream_to_port): create a void port instead
571 of opening /dev/null if the standard file descriptors are bad.
572 advantages: no portability problems, doesn't waste a file descriptor,
573 simplifies the code (thanks to Marius for the idea).
574
575 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
576
577 * void ports: make reading from a void port give EOF instead of
578 segv:
579 * ports.c (s_scm_sys_make_void_port): modified docstring.
580 (fill_input_void_port): new proc.
581 (scm_init_ports): set up fill_input_void_port.
582 * ports.c (scm_port_non_buffer): new proc.
583 (scm_void_port): call scm_port_non_buffer.
584
585 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
586 which was incorrectly appended.
587
fdc7ea2d
MD
5882000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
589
590 * guile-doc-snarf.in: Don't use absolute path for `sed'. (Note
591 that we can't use autoconf for this. Autoconf itself relies on
26fba922 592 the existence of `sed' somewhere on your path.) (Thanks to Dirk
fdc7ea2d 593 Herrman.)
a00c95d9 594
68933ba3
MD
5952000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
596
b44a555a
MD
597 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
598 EXTRA_libguile_la_SOURCES.
599
600 * iselect.h: Always declare scm_internal_select.
601
602 * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
603 end. Also let scm_internal_select be a real function also when
604 not using threads.
605
68933ba3
MD
606 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
607
c7f6ea11
MD
6082000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
609
610 * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
611 SCM_ASYNC_TICK. (This is a preparation for POSIX threads support,
612 and kind of an experiment: Will this cause problems?)
613
62dbc244
GB
614Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
615
616 * Makefile.am: Added *.doc to DISTCLEANFILES.
617
4f2f645d
GH
6182000-03-12 Gary Houston <ghouston@arglist.com>
619
620 * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
621 the fdes is valid before doing anything else. check that
622 the file descriptor supports the modes required.
623 (scm_fport_buffer_add): don't throw an error if fstat doesn't
624 work: just use the default buffer size.
625
626 * throw.c: change an outdated comment about scm_internal_catch
627 BODY: it doesn't take a jumpbuf arg.
628
629 * init.c (scm_standard_stream_to_port): install a handler in case
630 scm_fdes_to_port throws an error. don't check here whether the
631 file descriptor is valid, since scm_fdes_to_port will do that.
632 set the revealed count depending on whether the port got the
633 standard file descriptor.
634 (stream_body_data): new type.
635 (stream_body, stream_handler): new procs.
636
7f782a0a
MD
6372000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
638
67673f75
MD
639 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
640 Renamed from SCMWORD.
641
642 * tags.h (SCM_NCELLP): Removed (SCMWORD).
643
f1267706 644 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
67673f75 645
74a426ae
MD
646 * async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,
647 feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h,
648 hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c,
649 objects.h, options.c, pairs.h, ports.c, ports.h, print.c,
650 procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c,
651 stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h,
652 throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c,
f1267706 653 weaks.h (SCM_PACK, SCM_UNPACK, SCM_UNPACK_CAR): Renamed from
74a426ae
MD
654 SCM_ASSCM, SCM_ASWORD, SCM_CARW).
655
7f782a0a
MD
656 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
657
658 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
659 tags.h: Fixed copyright notices.
660
661 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
0cd87628 662
7f782a0a 6632000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
a00c95d9 664
0cd87628
MV
665 * init.c (scm_standard_stream_to_port): Check whether the file
666 descriptor is valid and substitute "/dev/null" when not.
a00c95d9 667
f3b5e185
MD
6682000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
669
670 * coop-defs.h (struct timespec): Conditionally defined.
671
672 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
673 instead of ETIME.
38eca29b
MD
674
675 * readline.c (match_paren): Bugfix: First arg to select is not
676 number of descriptors but the number of the highest descriptor +
677 1.
678
679 This is a preliminary attempt at a cleanup of the threads support
680 code. It moves things to better places, makes arguments more
681 consistent with the POSIX API (which is used in GNOME's glib), and
682 adds new functionality.
a00c95d9 683
38eca29b
MD
684 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
685
686 * coop-defs.h (scm_mutex_trylock): New macro: alias for
687 coop_mutex_trylock.
688 (scm_cond_init): Changed definition to
689 coop_new_condition_variable_init.
a00c95d9 690
38eca29b
MD
691 * coop.c: #include <errno.h>
692 (coop_timeout_qinsert): Moved here from iselect.c
693 (coop_new_mutex_init, coop_new_condition_variable_init): New
694 functions. The strange names are temporary. Use scm_mutex_init
695 and scm_cond_init instead.
696 (coop_mutex_trylock): New function. Uses errno.h:EBUSY. errno.h
697 is ANSI C, but should we check for individual error codes in
698 configure.in?
699 (coop_condition_variable_timed_wait_mutex): New function.
700 (coop_key_create, coop_setspecific, coop_getspecific,
7f782a0a 701 coop_key_delete): New functions.
38eca29b
MD
702
703 * iselect.c (coop_timout_qinsert): Moved to coop.c
704
32e1616c
MD
7052000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
706
707 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
708 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
709
710 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
711 Layout cleanups.
712
713 * objects.h (SCM_CLASS_FLAGS, SCM_OBJ_CLASS_FLAGS,
714 SCM_SET_CLASS_INSTANCE_SIZE), struct.h (SCM_STRUCT_VTABLE_DATA),
715 proc.h (SCM_CLOSCAR): SCM_ASSCM/WORD fixes.
716
717 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
718 dealing with ilocs.
719
d5c39069
GB
7202000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
721
722 * numbers.c (scm_copy_big_dec, scm_copy_smaller, scm_big_ior,
723 scm_big_xor, scm_big_and, scm_big_test): Added new lowlevel bignum
724 logical functions from SCM.
725
726 (logand, logior, logxor, logtest, logbit?): Extended scheme
727 logical functions to use bignums from SCM.
728
729 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
730 lognot from using bignums.
731
3e892913
GB
732Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
733
a00c95d9 734 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
3e892913
GB
735 eliminating some warnings.
736
737 * unif.c, strports.c, print.c, options.c: Fix some warnings on
738 mis-use of SCM/long
739
740 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
741 what the scm_return_first* functions do.
742
7ac030d6
GB
7432000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
744
745 * libguile/*.[ch]: make a distinction between SCM as a generic
746 name for a Scheme object (now a void*), and SCM as 32 bit word for
747 storing tags and immediates (now a long int). Introduced
748 SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
749 code in the process: arbiter.c (use macros), unif.c (scm_array_p),
a00c95d9 750
f635d2d4
GB
751Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
752
753 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
754 various logXXX primitives. Thanks Eric Moore!
755
9eaa7fb6
GB
756Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
757
758 * run-test, remaining-docs-needed: Added these scripts. The
759 second one is only temporary until the docstring additions are
760 complete. run-test may best live on, but is here mostly for
761 convenience and awareness for now.
762
763 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
764
49673698
GB
765Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
766
767 * error.h, error.c: Added `scm_wrong_type_arg_msg' to support
768 displaying the expected type. Use SCM_LISTn in a couple places
769 instead of scm_cons-ing by hand.
770
771 * __scm.h: Added SCM_ASSERT_TYPE macro.
772
773 * validate.h, scm_validate.h: Added the former, as a renamed
774 version of the latter with SCM_ASSERT_TYPE used in
775 SCM_MAKE_VALIDATE (instead of just SCM_ASSERT)
776
777 * Makefile.am: Rename scm_validate.h to validate.h.
778
779 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
780 prefix was superfluous).
781
417bdef8
GB
782Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
783
784 * hashtab.c: Improved documentation for lots of functions. Added
785 handwritten docs for `hash-fold'.
786
787Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
788
789 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
790
26a760c6
GB
791Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
792
a00c95d9 793 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
26a760c6
GB
794 added append docs from R4RS.
795
796 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
797 Thanks Dirk Hermann!
798
799 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
800 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
a00c95d9 801
26a760c6
GB
802 * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout.
803 Drop use of SCM_P for function prototypes... assume an ANSI C
804 compiler. Thanks Dirk Hermann!
805
898942f8
GB
806Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
807
808 * ports.c: Made `set-port-column!' and `set-port-line!' each
809 return SCM_UNSPECIFIED instead of a (not-scheme-object) integer
810 that caused a seg fault. Also fixed `set-port-column!'s
811 docstring. Thanks Han-Wen Nienhuys for finding the bug!
812
84a3df2c
GB
813Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
814
815 * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c,
a00c95d9 816 regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c,
84a3df2c
GB
817 strings.c, variable.c: Added lots of documentation, cleaned up
818 some existing documentation. Occasionally changed formal params
819 to match docs. Also folded an #ifdef into the inners of a
820 primitive instead of having two copies of the primitive
821 (`get-internal-real-time', from stime.c)
822
823Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
824
825 * ports.c: Added docs for primitives missing them. Written by
826 hand.
827
3f557de6
GB
828Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
829
830 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
831 just execing guile-func-name-check. Thanks Michael Livshin!
832
ddcccdb3
GB
833Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
834
835 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
836 dead code. Patch from Michael Livshin.
837
838 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
839 Michael Livshin.
840
720e8692
GH
8412000-02-09 Gary Houston <ghouston@arglist.com>
842
843 * init.c (scm_init_standard_ports): when stdout is a tty, make the
844 current-output-port unbuffered by default. this is less confusing
845 for interactive use. it was line-buffered because of a
846 performance problem with unbuffered ports, but I think it will be
847 OK now.
848
43ff3170
GH
8492000-02-08 Gary Houston <ghouston@arglist.com>
850
851 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
852 is not defined.
853
854 * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor
855 HAVE_TZNAME are defined, use an empty string instead of giving two
856 spurious compile-time errors.
857
4ba47302
GB
858Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
859
860 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
861 Thanks Richard!
862
09a617f7
GB
863Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
864
865 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
866
9dbcf010
GB
867Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
868
869 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
870 (which is GNU GPL'd).
871
bd9e24b3
GH
8722000-01-31 Gary Houston <ghouston@arglist.com>
873
874 * strings.h: don't use SCM_P. don't include <string.h>.
875 * error.c, gh_data.c, ports.c, script.c, strop.c: include <string.h>.
a00c95d9 876
bd9e24b3
GH
877 * strings.c (scm_string_ref): make the 2nd argument compulsory.
878 previously it defaulted to zero for no good reason that I can see.
879 use a local variable for SCM_INUM (k). replace
880 SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY.
881
882 (scm_makfromstr): cosmetic changes.
883
884 (scm_string): Accept only chars in the list, not strings, for
885 conformance to R5RS (particularly for list->string, which is
886 supposed to be the inverse of string->list.) remove
887 SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since
888 scm_makstr handles the cell allocation. when reporting wrong-type
889 arg, don't report the position as 1.
890
891 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
892
28d77376
GH
8932000-01-29 Gary Houston <ghouston@arglist.com>
894
ae1b098b
GH
895 * posix.c (scm_pipe): rewrote the docstring.
896
28d77376
GH
897 * filesys.c (scm_select, retrieve_select_type, get_element,
898 fill_select_type, set_element): modified so that Scheme
899 "select" tests port buffers for the ability to provide input
900 or accept output. Previously only the underlying file descriptors
901 were checked. Rewrote the docstring.
a00c95d9 902
7f1497ce
GB
903Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
904
905 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
906 from Gregg Reynolds. Thanks Gregg!
907
2288ff9b
GB
908Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
909
910 * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by
911 adding "x" prefix to the line so that guile-func-name-check
912 doesn't complain unnecessarily.
913
349af6dd
GB
914Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
915
916 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
917 for maintainability.
918
919 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
920 from qdocs, RnRs.
921
a28eb127
GB
922Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
923
a00c95d9 924 * tag.c: Added doc for `tag', but mark as deprecated since Mikael
a28eb127
GB
925 suggests removing tag.c altogether (and using a new `class-of'
926 instead).
927
928 * strings.c: Added documentation from Gregg A. Reynolds. Edited
929 a bit by me to use FOO instead of @var{foo} and to have the
a00c95d9 930 summary come before preconditions on input. Also dropped trailing
a28eb127
GB
931 (rnrs) note.
932
933 * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the
934 function with scm_make_subr_opt w/ last arg of 0 so it is not
935 visible at the Scheme level. Mikael says that this is the right
936 thing because the first arg to the proc is the guts of a compiled
937 closure and shouldn't be exposed to the Scheme level.
938
ac2259fc
GB
939Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
940
941 * sort.c: typo in comment fixed.
942
943 * keywords.c: Added documentation.
944
945 * guardians.c: Added documentation (could be better).
946
947 * gc.c: Added docs for gc-set-debug-check-freelist.
948
949 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
950
951 * boolean.c: Added docs for `not', `boolean?' (by hand).
a00c95d9 952
d928e0b4
GB
953Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
954
955 * random.c: Added documentation, from SLIB page:
956 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
957
958Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
959
960 * variable.c, version.c: Added documentation, written by hand
961 since I could not find anything already written that was
962 relevant.
963
d831b039
GH
9642000-01-23 Gary Houston <ghouston@arglist.com>
965
a00c95d9 966 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
d831b039
GH
967 not defined (thanks to Richard Y. Kim).
968
88ec97ad
GB
969Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
970
971 * Makefile.in: Removed, this is auto-generated.
972
078e9092
GB
973Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
974
975 * list.c: Put some variable initialization code at the point of
976 declaration; Added a comment for list*; Formatting changes.
977
978 * load.c: use SCM_NNULLP to make sure the end of a list is not
979 reached yet.
980
e7a96050
MD
9812000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
982
a177af34
MD
983 * backtrace.c (scm_display_error_message): Bugfix: Don't use
984 result of scm_list_p as C boolean.
985 (scm_display_error_message, scm_set_print_params_x): Use new
986 validation macros. (Thanks to Dirk Herrmann.)
987
d06bcb02
MD
988 * net_db.c (scm_resolv_error): Cast result from hstrerror.
989
990 * strports.c (st_end_input): Inserted parenthesis to get operator
991 grouping correct.
992
993 * list.h (scm_init_list): Removed SCM_P around prototypes.
994
995 * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c,
996 filesys.c, posix.c: Converted docstrings to ANSI C format and
e7a96050
MD
997 escaped " occurring inside string literals.
998
682eefe9
MD
999Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
1000
1001 * posix.c (scm_mknod): Escape " occuring inside docstring.
1002
56cfe22b
MD
10032000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1004
1005 * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,
1006 evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c,
1007 keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c,
1008 objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c,
1009 ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c,
1010 stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c,
1011 symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c,
1012 weaks.c: Converted docstrings to ANSI C format.
a00c95d9 1013
56cfe22b
MD
1014 * filesys.c (scm_chmod), simpos.c (scm_system), version
1015 (scm_version), vports (scm_make_soft_port): Escape " occuring
1016 inside docstring.
1017
fcb1720f
GB
1018Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
1019
1020 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
1021 SCM_VALIDATE_LONG_COPY
1022
1023 * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
1024 SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
1025 couple of formal arguments (and fix their uses) to make arguments
1026 match the documentation.
1027
b9af3d0e
MS
10282000-01-14 <mstachow@alum.mit.edu>
1029
1030 * Makefile.am: Augment path when running guile-doc-snarf so
1031 guile-func-name-check is found.
1032
153511a7
GB
1033Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
1034
1035 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
1036 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
1037
59d5245f
GB
1038Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
1039
1040 * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's
1041 the way guile-1.3.4 worked, but #if 0 out the version using
1042 SCM_VALIDATE_INUM_COPY for stricter testing.
1043
95aec69f
GB
1044Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
1045
1046 * guile-doc-snarf.in: Use new $fullfilename for running
1047 guile-func-name-check, and put "$fullfilename" and "$filename" in
1048 quotes at uses to make sure re-splitting on whitespace does not
a00c95d9 1049 occur (so filenames w/ embedded whitespace would work okay, though
95aec69f
GB
1050 I sure hope we never have to deal with that! :-) ). Thanks to
1051 Mikael for pointing out the source_dir != build_dir was broken.
1052
b7ac2837
GB
1053Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
1054
1055 * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make
1056 SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
1057 SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
1058 macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
1059 variants.
1060
1061 * ports.c (scm_port_closed_p): Validate that the arg is a PORT,
1062 then return whether it's an open port (was validating that it was
1063 an open port -- this was a bug I introduced back in December, but
1064 my careful reading of diffs caught it).
1065
1066 * numbers.c: Recombine the two conditional-compilation paths for
1067 all the log* primitives -- they were split based on #ifndef
1068 scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
1069 some bugs and inconsistencies in the two sets of implementations.
1070 (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
1071
1072 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
1073 SCM_VALIDATE_INUM_COPY once where it should've been used.
1074
1075 * fluids.c (scm_internal_with_fluids): Use
1076 SCM_VALIDATE_LIST_COPYLEN.
1077
1078 * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
1079 this is questionable as it relaxes type safety, but other changes
1080 were useful and all SCM_NUM2LONG's should probably be
1081 revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
1082
1083 * evalext.c: line-break change on 1 line.
1084
1085 * eval.c (nconc2last): Takes a non-empty list as its first
1086 argument, not just a list.
1087
1088 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
1089
1090Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
1091
1092 * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c,
1093 net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
1094 where possible.
1095
1096 * symbols.c (scm_sysintern0): Fixed the function name in a
1097 scm_misc_error invocation.
1098
1099 * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
1100 use scm_return_first to ward off latent GC bug that Mikael caught.
1101
1102 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
1103 used before but should've been.
1104
d61f6b02
MD
11052000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1106
1107 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
1108 SCM_FUNC_CAST_ARBITRARY_ARGS.
1109
88423ab1
GB
1110Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
1111
1112 * guile-func-name-check.in: Added this script to statically check
1113 #define FUNC_NAME, #undef FUNC_NAME in the source.
1114
1115 * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
1116 redundant comment, semicolon; caught by new guile-func-name-check
1117 script.
1118
1119 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
1120 Caught by new guile-func-name-check-script.
1121
1122 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
1123
1124 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
1125 guile-func-name-check.
1126
a00c95d9 1127 * guile-doc-snarf.in: Run guile-func-name-check on the file before
88423ab1
GB
1128 doing the snarf.
1129
7f15e635
GB
1130Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
1131
1132 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
1133 port function take const void*, not void*.
1134
bf121b59
GB
1135Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
1136
1137 * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c,
1138 strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
1139 SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
1140 consistency with the other macros dealing with immediate
1141 characters. (Similar to INT -> INUM change a week or so ago).
1142
7965d98f
GB
1143Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
1144
1145 * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c,
1146 net_db.c, read.c, socket.c: Update error messages to use ~A for
1147 %s, ~S for %S to work with new `simple-format' format and be
1148 standardized better.
1149
1150 * print.h, print.c (scm_simple_format): Added `simple-format'
1151 primitive. It's the old scm_display_error, with ARGS now a rest
a00c95d9 1152 parameter, and the destination first instead of last (and a couple
7965d98f
GB
1153 new capabilities inspired by `format' -- #t as destination means
1154 current-output-port, #f means return the formatted text as a
1155 string.
1156
1157 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
1158
1159 * backtrace.c (scm_display_error_message): Rewrote to use
1160 scm_simple_format() procedure.
1161
1162 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
1163
f73d2411
MV
11642000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
1165
1166 Finally applied the libltdl patch from Thomas Tanner, with slight
1167 modifications.
1168
1169 * DYNAMIC-LINKING: Removed because it is obsolete.
1170 * dynl.c: Use ANSI prototypes.
1171 (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen.
1172 * scmconfig.h.in: Do not change, as it is automatically generated.
a00c95d9 1173
f73d2411
MV
1174 1999-07-25 Thomas Tanner <tanner@ffii.org>
1175
1176 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
1177 (obsolete)
1178 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
1179 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
1180 against libltdl
1181 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
1182 * guile.c: register preloaded modules
1183 * scmconfig.h.in: remove obsolete symbols
1184
38c1d3c4
GH
11852000-01-09 Gary Houston <ghouston@arglist.com>
1186
1187 * These changes should make it unnecessary to call tzset from
1188 Scheme after modifying the TZ environment variable, even if the
1189 system date facilities cache the value.
1190 * stime.c (setzone, scm_localtime): added comments.
1191 (tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
1192 (setzone): don't call tzset.
1193 (restorezone): call tzset only if HAVE_TZSET is defined.
1194 (scm_tzset): don't define if HAVE_TZSET not defined. Change the
1195 doc string to indicate that this procedure isn't likely to do
1196 anything useful.
1197 (scm_localtime, scm_strftime, scm_mktime): call tzset if
1198 LOCALTIME_CACHE is defined.
1199
9359d657
MD
12002000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1201
1202 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
1203
f25f761d
GH
12042000-01-09 Gary Houston <ghouston@arglist.com>
1205
1206 * eval.c: define scm_unbound_variable_key ('unbound-variable).
1207 scm_lookupcar1: throw an error with key 'unbound-variable instead
1208 of 'misc-error when an unbound variable is encountered.
1209
a00c95d9 1210 * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
f25f761d
GH
1211 scm_symlink, scm_readlink, scm_lstat),
1212 posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
1213 scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
1214 scm_sync),
a00c95d9 1215 simpos.c (scm_system),
f25f761d
GH
1216 stime.c (scm_times, scm_strptime):
1217 move the HAVE_XXX feature tests out of the procedure bodies.
1218 don't use SCM_SYSMISSING.
1219 scm_validate.h (SCM_SYSMISSING): removed.
1220 error.h, error.c (scm_sysmissing): comment that this is deprecated.
1221 see ChangeLog entry for 1999-12-28.
1222
a4dd2611
GB
1223Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
1224
1225 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
1226
1227Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
1228
1229 * backtrace.c: Fix spelling typo in a comment.
1230
1231 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
1232 text. Reformatted some of the expansions.
1233
5ac36451
GB
1234Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
1235
1236 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
1237 report the position of the argument.
1238
a00c95d9 1239 * error.h, error.c (scm_out_of_range_pos): Added this function to
5ac36451 1240 take extra "pos" argument, the position number of the errant
a00c95d9 1241 argument.
5ac36451
GB
1242
1243 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
1244
1245 * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
1246 and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
1247 prefers that and I'm reasonably indifferent.
1248
1249Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
1250
1251 * snarf.h: Factor out differences between C++ and non-C++ into
1252 SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
1253 definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
1254 Mikael's macros, below, but changed names and SCM_SNARFING no
1255 longer expands to include %%% -- that must appear in the argument
1256 so that the token appears at the call-site as a reminder).
1257
088bb1d4
MD
12582000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1259
1260 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
1261 snarf macro definitions.
1262
636480e6
MD
12632000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1264
1265 * chars.c (scm_integer_to_char): Use Greg's nice
1266 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
1267 adherence to R5RS.
1268
7c5628e2
GB
1269Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
1270
1271 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
1272
2cc0f8cb
GB
1273Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
1274
1275 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
1276 instead of GUILE_PROC.
1277
1278Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
1279
a00c95d9 1280 * alist.c: Do not report mismatch errors on some uses of `tmp' (do
2cc0f8cb
GB
1281 this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS
1282 macro call.
1283
9179dcdd
GB
1284Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
1285
1286 * scm_validate.h: Remove some redundant NIMP tests.
1287
1288 * alist.c: minimize scope of the tmp variables, and initialize
1289 them when declared. The strange SCM_NIMP tests are replaced by
1290 SCM_CONSP tests that more closely reflect the intended semantics.
1291 However, we don't get a performance penalty here, because the
1292 SCM_CONSP test was performed by the ALISTCELL test anyway. * The
1293 extremely ugly use of ASRTGO macros was removed: The calls to
1294 ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
1295 label parameter that only exists when SCM_RECKLESS is not defined.
1296 This works, because ASRTGO itself is defined in a way that it only
1297 makes use of the label parameter if SCM_RECKLESS is not defined
1298 (shudder!). Does guile make at all use of the possibility to
1299 define SCM_RECKLESS? * Codesize is likely to be reduced, since
1300 instead of two calls to SCM_ASSERT performed by the ALISTCELL test
1301 we now only get one test.
1302
1303 * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
1304 SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
1305 some variables in `list?'. Fix `reverse' and `reverse!'
1306 primitives to handle improper lists better.
1307
15b33280
GB
1308Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
1309
1310 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
1311 macros and SCM_DEFINE macros to match GNU coding standards.
1312
ca8cd130
GB
1313Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
1314
1315 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
1316
fb764465
GB
1317Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
1318
1319 * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for
1320 better consistency with the names of other SCM_VALIDATE_ macros
1321 and better conformance to guile naming policy.
1322
1323Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
1324
1325 * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a
1326 SCM_VALIDATE instead of 1 to avoid a check on the argument (since
1327 it's not the actual name of the formal).
1e484823
GB
1328
1329 * guile-snarf.awk.in: Do argument/number mismatch checking and
1330 print warnings in an Emacs compile-mode parseable format.
1331
1332 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
1333 SCM_OUTOFRANGE as 3rd argument.
1334
1335 * random.c: Fix argument/number mismatch (that I introduced :-( ).
1336
1337 * __scm.h: Do not #define SCM_ARG* when snarfing;
1338 lets us distinguish between 1 and SCM_ARG1 when snarfing as only
1339 the former (using the number) requires the argument to match the
1340 formal in the current argument snarfing check.
1341
1342 * snarf.h: Give new definition of SCM_ASSERT when in
a00c95d9 1343 snarfing mode to output a lexically-identifiable sequence that the
1e484823
GB
1344 guile-snarf.awk script uses to verify argument/position matching.
1345
1346 * ramap.c: Remove extraneous #undef FUNC_NAME.
1347
53fc4636
GB
1348Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
1349
1350 * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the
a00c95d9 1351 current version of the same functionality; it writes the .x output
53fc4636
GB
1352 to stdout instead of directly into the file.
1353
1354Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
1355
1356 * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c,
1357 posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
1358 redundant with the safer macros. Patch from Dirk Hermann applied
1359 by hand. Thanks Dirk!
1360
1361 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
1362 uses in random.c.
1363
1364 * ramap.c: whitespace change.
1365
3b5345d9
GB
1366Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
1367
1368 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
1369 removals from Dirk Hermann.
1370
1371 * alist.c: Rename formals to match the parameter names in the
1372 documentation, updates to documentation. Thanks Dirk Hermann!
1373
169aec65
MD
13742000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1375
db62436e
MD
1376 * eval.c (SCM_CEVAL): Reverse order of
1377 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
1378 (Thanks to Brad Knotwell.)
169aec65 1379
da43d822
GB
1380Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
1381
1382 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
a00c95d9 1383 allocated cell.
da43d822
GB
1384
1385 * pairs.h: Added a comment about the need for the SCM_SETCAR in
1386 SCM_NEWCELL macro.
1387
1388Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
1389
1390 * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More
1391 SCM_NIMP tests that were redundant are now eliminated. Patches
1392 from Dirk Hermann applied by hand.
1393
339999c7 1394The ChangeLog continues in the file: "ChangeLog-1996-1999"