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