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