Renamed SCM_VALIDATE_REAL_COPY --> SCM_VALIDATE_REAL_NUMBER.
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
b9c90f11
MD
12000-04-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2
7aac9824 3 * validate.h (SCM_VALIDATE_INUM_RANGE_COPY,
2891588b 4 SCM_VALIDATE_NUMBER_COPY): New macros.
b9c90f11 5
9ae58e2d
MD
62000-04-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
7
8 * script.c (scm_compile_shell_switches): Added --debug option.
9
49e12eb3
MD
102000-04-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
11
12 * vectors.c (scm_vector_set_x): Return SCM_UNSPECIFIED (as
13 specified by R5RS).
14
7c1e0b12
MD
152000-04-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
16
17 * ports.h (SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P): New macros.
18 (SCM_INPORTP, SCM_OUTPORTP): Marked as deprecated.
19
20 * validate.h (SCM_VALIDATE_INPUT_PORT, SCM_VALIDATE_OUTPUT_PORT):
21 New macros.
22 Cleanup of code layout.
23
24 * ports.c, ports.h (close-input-port, close-output-port): New R5RS
25 procedures.
26
01c8a3dd
DH
272000-04-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
28
29 * continuations.c (scm_make_cont, scm_dynthrow): Completely
30 separated implementations for defined (CHEAP_CONTINUATIONS) and
31 !defined (CHEAP_CONTINUATIONS). Also, now using memcpy for stack
32 copying.
33
34 * continuations.c (grow_stack): Renamed from grow_throw.
35
36 * continuations.c (copy_stack_and_call): New static function.
37
38 * continuations.c (scm_dynthrow): Simplified and made static.
39
40 * continuations.h (scm_dynthrow): Made static.
41
553f4414
MD
422000-04-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
43
44 * unif.c, unif.h (shared-array-root, shared-array-offset,
45 shared-array-increments): New primitives.
46
cf551a2b
DH
472000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
48
49 * gc.c (scm_gc_sweep): Simplify the computation of freed memory
50 size for msymbols.
51
52 * symbols.h (SCM_SLOTS, SCM_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
53 SCM_SYMBOL_HASH): The msymbol slots are now a field of scm_bits_t
54 values.
55
56 * symbols.h (SCM_SET_SYMBOL_FUNC, SCM_SET_SYMBOL_PROPS): New
57 macros.
58
59 symbols.c (scm_intern_obarray_soft, msymbolize, scm_symbol_fset_x,
60 scm_symbol_pset_x): Use them.
61
62 * symbols.c (scm_symbol_hash): Unpack to access SCM raw data.
63
12a8b769
DH
642000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
65
66 * ports.c (scm_port_print): The port data is read as raw data.
67
68 * ports.h (SCM_TC2PTOBNUM, SCM_PTOBNUM): Fix SCM/scm_bits_t
69 mismatch.
70
d8c40b9f
DH
712000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
72
73 * eval.c (SCM_CEVAL), objects.c (scm_mcache_lookup_cmethod,
74 scm_make_subclass_object), objects.h (SCM_CLASS_FLAGS,
75 SCM_ENTITY_PROCEDURE, SCM_ENTITY_SETTER), struct.c
76 (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
77 scm_struct_ref, scm_struct_set_x), struct.h (SCM_STRUCT_DATA):
78 The struct data is now an array of scm_bits_t variables.
79
80 * objects.h (SCM_SET_ENTITY_PROCEDURE): New macro.
81
cf551a2b 82 objects.c (scm_set_object_procedure_x): Use it.
d8c40b9f
DH
83
84 * struct.c (scm_struct_init): Unused variable 'data' removed.
85
86 (scm_struct_vtable_p): Redundant SCM_IMP tests removed.
87
1c3e63f0
DH
882000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
89
90 * objects.h (SCM_OBJ_CLASS_FLAGS, SCM_OBJ_CLASS_REDEF), struct.h
91 (SCM_STRUCT_VTABLE_DATA, SCM_STRUCT_LAYOUT, SCM_STRUCT_VTABLE,
92 SCM_STRUCT_PRINTER): The struct vtable data is now an array of
93 scm_bits_t variables.
94
95 * struct.h (SCM_SET_STRUCT_LAYOUT): New macro.
96
cf551a2b 97 struct.c (scm_make_vtable_vtable): Use it.
1c3e63f0 98
bc66755e
DH
992000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
100
101 * symbols.c (scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
102 scm_intern_obarray_soft, scm_sysintern0,
103 scm_string_to_obarray_symbol, scm_intern_symbol,
104 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
105 scm_symbol_bound_p, scm_symbol_set_x): Don't use C operators to
106 compare SCM values.
107
828865c3
DH
1082000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
109
110 * numbers.c (scm_quotient, scm_modulo): Reordered to handle the
111 case of immediate numbers parameters first. Also, only use
112 decoded numbers for numerical comparison.
113
1cf49a85
MD
1142000-04-10 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
115
116 * objects.h: Don't redeclare scm_call_generic_0 and
117 scm_apply_generic. (Thanks to Tal Tversky.)
118
dba97178
DH
1192000-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
120
121 * hash.c (scm_hasher): Use symbolic names for the tc3 constants.
122 Unpack SCM value to use it as a switch parameter. Don't cast SCM
123 values to int values.
124
3da01fa3
MD
1252000-04-10 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
126
127 * coop.c (mother): Handled EINTR (the wait has been interrupted by
128 a signal).
129
451e591c
DH
1302000-04-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
131
132 * __scm.h (SCM_WTA_DISPATCH_[012n]): To test whether a SCM value
133 contains a raw zero value it has to be unpacked.
134
135 * debug.c (with_traps_inner, scm_with_traps): Passing SCM values
136 via void * requires unpacking / packing.
137
138 * stacks.h (SCM_STACKP): Remove unnecessary SCM_NIMP test and use
139 SCM_EQ_P to compare SCM values.
140
141 * stacks.h (SCM_FRAME_VOID_P, SCM_FRAME_REAL_P, SCM_FRAME_PROC_P,
142 SCM_FRAME_EVAL_ARGS_P, SCM_FRAME_OVERFLOW_P): Remove unnecessary
143 call to SCM_UNPACK.
144
145 * tags.h (SCM_NECONSP): Define in terms of SCM_ECONSP
146
147 * tags.h (SCM_ECONSP): Clarify the test for glocs. This is still
148 quite ugly.
149
e94e3f21
ML
1502000-04-05 Michael Livshin <mlivshin@bigfoot.com>
151
152 * async.[ch]: unexpose low-level async access macros (thanks to
153 Dirk Herrmann).
154
155 * validate.h: move async validation macros to async.c (nobody else
156 needs them anyway), and rename them.
157
843e4e9d
ML
1582000-04-04 Michael Livshin <mlivshin@bigfoot.com>
159
160 * async.h: kill the scm_async_t struct. having a heap cell
161 pretending to be a C struct is not helthy, and is not needed here
162 anyway, as asyncs happily fit in one heap cell.
163
164 * async.c: reflect the fact that asyncs are now represented by
165 single heap cell each.
166
873c35ee
GH
1672000-04-04 Gary Houston <ghouston@arglist.com>
168
169 * error.c (scm_syserror): save errno before doing anything else,
170 since it's used in two expressions and may get mutated (thanks to
171 Dirk Herrmann).
172
4260a7fc
DH
1732000-04-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
174
175 * debug.c (scm_procedure_source, scm_procedure_environment),
176 gsubr.c (scm_make_gsubr_with_generic, scm_gsubr_apply), procs.c
177 (scm_procedure, scm_setter): Return valid scheme value as dummy.
178
179 * filesys.c (scm_readdir, scm_rewinddir, scm_closedir,
180 scm_dir_print, scm_dir_free), numbers.h (SCM_COMPLEX_REAL,
181 SCM_COMPLEX_IMAG), regex-posix.h (SCM_RGX), throw.c (JBJMPBUF,
182 SETJBJMPBUF, JBJMPBUF, SETJBJMPBUF, freejb, print_lazy_catch,
183 scm_ithrow), unif.c (scm_uniform_vector_ref, scm_cvref,
184 scm_array_set_x, rapr1), unif.h (SCM_ARRAY_V, SCM_ARRAY_BASE),
185 vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS, SCM_SETVELTS): Use
186 SCM_{SET_}?CELL_WORD* to access cell entries with raw data.
187
188 * filesys.c (scm_closedir), numbers.c (scm_addbig), numbers.h
189 (SCM_SETNUMDIGS), throw.c (JBACTIVE, SCM_JBDFRAME,
190 SCM_SETJBDFRAME): Read and modify data bits in cell entry #0 using
191 SCM_{SET_}?CELL_WORD_0.
192
193 * filesys.c (fill_select_type, retrieve_select_type, scm_select),
194 numbers.c (scm_gcd, scm_lcm, scm_integer_expt, scm_zero_p,
195 scm_product, scm_divide), posix.c (scm_getgrgid), ramap.c
196 (scm_array_fill_int, racp), throw.c (scm_catch, scm_lazy_catch,
197 scm_ithrow), unif.c (scm_make_uve, scm_array_p,
198 scm_transpose_array, scm_array_set_x, scm_bit_set_star_x,
199 scm_bit_count_star, l2ra), variable.c (prin_var,
200 scm_make_variable, scm_make_undefined_variable,
201 scm_builtin_variable), vectors.c (scm_vector_set_length_x),
202 vports.c (sf_flush, sf_close): Don't use C operators to compare
203 SCM values.
204
205 * numbers.c (scm_odd_p, scm_even_p), variable.c (prin_var): Must
206 unpack SCM values to access their raw contents.
207
208 * numbers.c (big2str): Eliminate unnecessary casts to SCM.
209
210 * numbers.h (SCM_NEWREAL), regex-posix.h (SCM_RGXP), vports.c
211 (scm_make_soft_port): Use SCM_{SET_}?CELL_TYPE to access the cell
212 type information.
213
214 * throw.c (printjb): Eliminated unnecessary unpack.
215
216 * variable.c (make_vcell_variable): Smob data is of type
217 scm_bits_t.
218
5b15c3b4
MD
2192000-04-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
220
221 * print.c: Removed promise to rewrite printer code before next
222 release. :)
223
395c8567
MD
2242000-04-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
225
226 * iselect.c (add_fd_sets): Insert empty statement after label.
227 (Thanks to Tim Mooney.)
228
50fecba9
ML
2292000-04-03 Michael Livshin <mlivshin@bigfoot.com>
230
231 * guardians.c (scm_guardian_zombify): mark all zombies in a
232 separate loop after processing all the currently known live
233 guardians, so as to not introduce order dependencies (thanks to
f6e2fd8b 234 Gary Houston). note that the order problems are still there if
843e4e9d 235 some guardians are themselves zombies, but that's a sick case that
f6e2fd8b
ML
236 I'm not going to worry about.
237 also, make another outer loop to process zombified
50fecba9
ML
238 guardians (which are uncovered while marking zombies).
239
54778cd3
DH
2402000-04-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
241
242 * evalext.c (scm_definedp, scm_m_undefine), gc.c
243 (scm_mark_weak_vector_spines, scm_gc_sweep), hashtab.c
244 (scm_hashq_ref, scm_hashv_ref, scm_hash_ref, scm_hashx_ref),
245 keywords.c (scm_make_keyword_from_dash_symbol), lang.c
246 (scm_nil_eq), lang.h (SCM_NILP, SCM_NIL2EOL), load.c
247 (scm_primitive_load), modules.c (scm_module_full_name), objects.c
248 (scm_class_of, scm_mcache_lookup_cmethod, scm_make_class_object),
249 ports.c (scm_close_all_ports_except), ports.h (SCM_EOF_OBJECT_P),
250 print.c (scm_iprin1, scm_prin1, scm_iprlist, scm_simple_format),
251 print.h (SCM_PRINT_STATE_P), procprop.c (scm_i_procedure_arity,
252 scm_stand_in_scm_proc, scm_procedure_property,
253 scm_set_procedure_property_x), procs.c
254 (scm_procedure_documentation), read.c (scm_lreadr, scm_lreadparen,
255 scm_lreadrecparen, scm_read_hash_extend), script.c
256 (scm_compile_shell_switches), srcprop.c (scm_source_property,
257 scm_set_source_property_x), srcprop.h (SCM_WHASHFOUNDP), stacks.c
258 (read_frame, NEXT_FRAME, read_frames, narrow_stack,
259 scm_make_stack, scm_stack_id), strop.c (scm_i_index,
260 scm_string_index, scm_string_rindex), struct.c (scm_struct_init),
261 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_INUM_DEF,
262 SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_PROC,
263 SCM_VALIDATE_ARRAY): Don't use C operators to compare SCM values.
264
265 * feature.c (make_hook), keywords.c
266 (scm_make_keyword_from_dash_symbol), macros.c (scm_makacro,
267 scm_makmacro, scm_makmmacro), print.c (scm_iprin1,
268 scm_printer_apply, scm_port_with_print_state): Smob data is of type
269 scm_bits_t.
270
271 * feature.c (print_hook), gc.c (scm_object_address), hash.c
272 (scm_ihashq, scm_ihashv), print.c (scm_iprin1, scm_ipruk), smob.c
843e4e9d 273 (freeprint), struct.c (scm_print_struct): Must unpack
54778cd3
DH
274 SCM values to access their raw contents.
275
276 * fluids.c (apply_thunk, scm_with_fluids), hashtab.c (fold_proc,
277 scm_hash_fold), load.c (load, scm_primitive_load): Passing SCM
278 values via void * requires unpacking / packing.
279
280 * fports.c (scm_fport_buffer_add, scm_setvbuf), procs.h
281 (SCM_SUBRNUM, SCM_SET_SUBRNUM), srcprop.h (SRCPROPBRK, SRCBRKP):
282 Read and modify data bits in cell entry #0 using
283 SCM_{SET_}?CELL_WORD_0.
284
285 * fports.c (scm_fdes_to_port), gc.c (scm_gc_for_newcell,
286 scm_gc_sweep, init_heap_seg), init.c (start_stack), ports.c
287 (scm_void_port), procs.c (scm_make_subr_opt,
288 scm_make_procedure_with_setter), root.c (scm_internal_cwdr),
289 smob.c (scm_make_smob), strports.c (scm_mkstrport): Use
290 SCM_SET_CELL_TYPE to write the cell type information.
291
292 * gc.c (scm_gc_mark): Use SCM_CELL_OBJECT* to access SCM values
293 from cells that are no scheme pairs.
294
295 * gc.c (scm_gc_sweep), mallocs.c (prinmalloc), mallocs.h
296 (SCM_MALLOCDATA, SCM_SETMALLOCDATA), print.c (scm_ipruk), random.h
297 (SCM_RSTATE), root.h (SCM_ROOT_STATE), smob.c (scm_smob_free),
298 srcprop.c (freesrcprops), srcprop.h (SRCPROPPOS, SRCPROPFNAME,
299 SRCPROPCOPY, SRCPROPPLIST), struct.c (scm_make_struct,
300 scm_make_vtable_vtable): Use SCM_{SET_}?CELL_WORD* to access cell
301 entries with raw data.
302
303 * gc.c (scm_init_storage), sort.c (applyless), strop.c
304 (scm_string_to_list): Eliminate unnecessary casts to SCM.
305
306 * mallocs.c (scm_malloc_obj): Store result of malloc as raw
307 data.
308
309 * ports.c (scm_close_all_ports_except): Duplicate documentation
310 text removed.
311
312 * print.c (scm_iprin1): Use SCM_ITAG3.
313
314 * procs.h (SCM_SET_SUBRNUM): Fix shift direction.
315
316 * snarf.h (SCM_GPROC, SCM_GPROC1, SCM_SYMBOL, SCM_GLOBAL_SYMBOL,
317 SCM_KEYWORD, SCM_GLOBAL_KEYWORD, SCM_VCELL, SCM_GLOBAL_VCELL,
318 SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): Don't initialize globals
319 and static variables at their point of declaration, but rather in
320 the init function.
321
322 * tags.h (SCM_PACK): Automatically cast to scm_bits_t.
323
abeed821
GH
3242000-04-02 Gary Houston <ghouston@arglist.com>
325
326 * guardians.c (TCONC_IN, scm_make_guardian): set the CDR of the
327 empty tconc pair to SCM_EOL instead of SCM_BOOL_F, avoiding the
328 use of an improper list (which breaks g_print. g_print isn't
329 used).
330 guardians.c: Added more comments and modified the make-guardian
331 docstring. Reordered a few procedures.
332
cf498326
DH
3332000-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
334
335 * eval.c (scm_lookupcar1, scm_lookupcar, scm_m_case, scm_m_cond,
336 scm_m_lambda, iqq, scm_m_define, scm_m_expand_body, unmemocopy,
337 SCM_CEVAL), procs.h (SCM_TOP_LEVEL): Don't use C operators to
338 compare SCM values.
339
340 (scm_makprom): Smob data is of type scm_bits_t.
341
cffcab30
DH
3422000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
343
344 * backtrace.c (display_error_body), debug.c (scm_procedure_source,
345 scm_reverse_lookup), dynl.c (scm_dynamic_link): Don't use C
346 operators to compare SCM values.
347
348 * debug.c (scm_make_debugobj), debug.h (SCM_DEBUGOBJ_FRAME,
349 SCM_SET_DEBUGOBJ_FRAME): Update SCM_{SET_}?DEBUGOBJ_FRAME to
350 access raw cell data with SCM_{SET_}?CELL_WORD_1.
351
352 * debug.c (scm_make_debugobj): Don't use SCM_SETCAR to set types.
353
354 * debug.c (scm_make_memoized), dynl.c (scm_dynamic_link): Smob
355 data is of type scm_bits_t.
356
7fa93bf8
DH
3572000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
358
359 * gdbint.c (gdb_maybe_valid_type_p), guardians.c (TCONC_EMPTYP,
360 scm_guardian_zombify): Use SCM_EQ_P to compare SCM values.
361
362 * guardians.c (GUARDIAN): Use SCM_CELL_WORD_1 for raw data.
363
74a16888
DH
3642000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
365
366 * ports.h (scm_port): Change type of stream member to scm_bits_t.
367
368 * gdbint.c (unmark_port, remark_port), ports.c (scm_markstream),
369 strports.c (st_resize_port, scm_mkstrport), vports (sf_flush,
370 sf_write, sf_fill_input, sf_close, scm_make_soft_port): Since
371 streams are now of type scm_bits_t, SCM streams have to be
372 unpacked/packed.
373
374 * ports.h (SCM_SETPTAB_ENTRY, SCM_SETSTREAM): Cast input to
375 scm_bits_t.
376
b6cc0ef6
MD
3772000-03-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
378
6a878357
MD
379 * coop-defs.h (struct coop_t): Added `sto'-field again because of
380 binary compatibility---let's remove it next time we alter some
381 major structure.
382
b6cc0ef6
MD
383 * coop.c (coop_quitting_p, coop_cond_create, coop_mutex_create,
384 coop_mother, coop_child): New variables.
385 (mother): New function.
386 (coop_create): New thread spawning mechanism which uses a "mother
387 thread". The "dummy" pthreads aren't healthy enough to give birth
388 to new threads since Linux threads thinks they are asleep.
389
390 * coop-defs.h (struct coop_t): Removed dummy_mutex.
391
392 * coop-defs.h, coop-threads.c (struct coop_t): Eliminate
393 `sto'-field when GUILE_PTHREAD_COMPAT is enabled.
394
843524cc
DH
3952000-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
396
397 * arbiters.c (scm_make_arbiter), async.c (scm_async), dynwind.c
398 (scm_internal_dynamic_wind): Smob data is always of type
399 scm_bits_t.
400
401 * arbiters.c (SCM_ARB_LOCKED, SCM_LOCK_ARB, SCM_UNLOCK_ARB):
402 Access the locking information in cell entry 0 with
403 SCM_{SET_}?CELL_WORD_0 instead of SCM_*CAR.
404
405 * async.c (scm_run_asyncs): Use SCM_NULLP to test for the empty
406 list.
407
408 * dynwind.c (scm_dowinds): Use SCM_EQ_P to compare SCM values.
409
410 * ports.h (SCM_PTAB_ENTRY, SCM_SETPTAB_ENTRY): Access the ptab
411 entry data using SCM_{SET_}?CELL_WORD_1 instead of SCM_{SET}?CDR.
412
fbd485ba
DH
4132000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
414
415 * alist.c (scm_sloppy_assq, scm_assq), eq.c (scm_eq_p, scm_eqv_p,
416 scm_equal_p), list.c (scm_ilength, scm_last_pair, scm_reverse,
417 scm_sloppy_memq, scm_delq_x, scm_delq1_x), tags.h (SCM_UNBNDP):
418 Don't use C operators == and != to compare SCM values, use
419 SCM_EQ_P instead.
420
421 * boolean.c (scm_boolean_p): Use SCM_BOOLP to determine whether a
422 SCM value is equal to #t or #f.
423
424 * eq.c (scm_eqv_p, scm_equal_p): Don't use SCM_CAR to access the
425 cell type entry of non immediate objects of unknown type. Use
426 SCM_CELL_TYPE instead.
427
428 * gh_data.c (gh_scm2bool, gh_module_lookup), list.c
429 (scm_sloppy_memv, scm_sloppy_member, scm_delv_x, scm_delete_x,
430 scm_delv1_x, scm_delete1_x), scmsigs.c (scm_sigaction): Use
431 SCM_FALSEP and SCM_TRUE_P to compare SCM values against #f and
432 #t.
433
434 * list.c (scm_listify): Use SCM_UNBNDP to test for an unbound
435 scheme value.
436
64e3bf6c
MD
4372000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
438
0208baa0
MD
439 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread,
440 scm_make_mutex, scm_make_condition_variable): Cast data to
441 scm_bits_t in SCM_SET_CELL_WORD and SCM_NEWSMOB macros.
442
64e3bf6c
MD
443 * coop.c (coop_create): Set `specific' field, not `data' to NULL.
444
94113249
DH
4452000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
446
447 * smob.h (SCM_NEWSMOB, SCM_NEWSMOB2, SCM_NEWSMOB3, SCM_SMOB_DATA,
448 SCM_SET_SMOB_DATA, SCM_TC2SMOBNUM, SCM_SMOBNUM): To access smob
449 data, use SCM_{SET_}?CELL_TYPE or SCM_{SET_}?WORD_[1-3].
450
451 Note that this implies that smob data has always to be passed as
452 values of type scm_bits_t.
453
1978b33e
MD
4542000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
455
456 * threads.c (scm_init_threads): Pass 0 size to scm_make_smob_type
457 for scm_tc16_thread. As the current COOP threads are written, GC
458 is not supposed to manage storage for threads.
459
460 * error.c (scm_error): Don't try to throw an error if
461 scm_gc_heap_lock is true.
462
463 * coop.c (coop_finish): New function. Called at exit.
464 (coop_aborthelp): Free thread structures when threads die.
465 Finished LinuxThreads compatibility support => COOP threads now
466 mesh with LinuxThreads.
843e4e9d 467
1978b33e
MD
468 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread):
469 Changed SETCDR --> SET_CELL_WORD_1.
470
471 * coop-threads.c (scheme_launch_thread): Set word 1 of handle to 0
472 when thread dies.
473
dd039d6d
DH
4742000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
475
476 * boolean.h (SCM_TRUE_P): New macro.
477
478 * boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP), pairs.h
479 (SCM_NULLP, SCM_NNULLP): Use SCM_EQ_P to compare SCM values.
480
8b3bda20
DH
4812000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
482
483 * continuations.h (SCM_CONTREGS, SCM_SET_CONTREGS): New macros to
484 access continuation data.
485
486 (SCM_SETJMPBUF): Deprecated. Use SCM_SET_CONTREGS instead.
487
488 (SCM_JMPBUF, SCM_DYNENV, SCM_THROW_VALUE, SCM_BASE, SCM_SEQ,
489 SCM_DFRAME): Use SCM_CONTREGS instead of SCM_CHARS to access
490 continuation data.
491
843e4e9d 492 * continuations.c (scm_make_cont), init.c (start_stack),
8b3bda20
DH
493 root.c (scm_internal_cwdr): Use SCM_SET_CONTREGS instead of
494 SCM_SETJMPBUF.
495
3210f49a
DH
4962000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
497
498 * symbols.h (SCM_LENGTH, SCM_SETLENGTH): Access the length field
499 of strings and symbols by using SCM_{SET_}?CELL_WORD_0.
500
501 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS): Use SCM_{SET_}?CELL_WORD_1
502 to access the char * field of strings and symbols.
503
2d67e390
DH
5042000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
505
506 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Use SCM_SET_CELL_TYPE to set
507 the type entry of a new cell. Added a comment about things to
508 remember when updating the list of free cells.
509
510 (SCM_FREEP, SCM_MARKEDP): Use SCM_CELL_TYPE to access the type
511 entry of a cell.
512
76a369d9
DH
5132000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
514
515 * pairs.h (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): Use
516 SCM_CELL_OBJECT and SCM_SET_CELL_OBJECT. This change implies that
517 with strict type checking enabled these macros will only work if
518 given valid SCM parameters.
519
3210f49a 520 (SCM_GCCDR): Moved to tags.h.
76a369d9
DH
521
522 * tags.h (SCM_GCCDR): Moved here from pairs.h.
523
2549a709
DH
5242000-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
525
526 * tags.h (SCM2PTR, PTR2SCM): Moved to gc.h.
527
528 * pairs.h (scm_cell, SCM_CELLPTR, SCM_CELL_WORD*, SCM_CELL_OBJECT*,
529 SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*, SCM_CELL_TYPE,
530 SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK, SCM_PTR_GT,
531 SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC, SCM_NEWCELL,
532 SCM_NEWCELL2): Moved to gc.h.
533
534 (SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR, SCM_SETAND_CDR,
535 SCM_SETOR_CAR, SCM_SETOR_CDR): Moved to gc.h. These names should
536 be changed, though, since the macros are not only pair related.
537
538 (SCMPTR): Deleted.
539
540 * gc.h (SCM2PTR, PTR2SCM, scm_cell, SCM_CELLPTR, SCM_CELL_WORD*,
541 SCM_CELL_OBJECT*, SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*,
542 SCM_CELL_TYPE, SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK,
543 SCM_PTR_GT, SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC,
544 SCM_NEWCELL, SCM_NEWCELL2, SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR,
545 SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR): Moved here from
546 tags.h and pairs.h.
547
8d3356e7
DH
5482000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
549
550 * tags.h (SCM_STRICT_TYPING): New macro that, if defined,
551 activates strict compile time type checking for variables of
552 type SCM.
553 (SCM, SCM_PACK, SCM_UNPACK): Define according to whether
554 SCM_STRICT_TYPING or SCM_VOIDP_TEST are defined.
555 (SCM_EQ_P): Defined as a macro equivalent for eq?.
556
96f6f4ae
DH
5572000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
558
559 * tags.h (SCM_POINTERS_MUNGED): Removed.
560
561 * gc.c (scm_gc_sweep, init_heap_seg): Removed use of
562 SCM_POINTERS_MUNGED, thus fixing some illegal casts to SCM.
563
0cbaaf0b
DH
5642000-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
565
566 * pairs.h (SCM_CELL_OBJECT, SCM_CELL_OBJECT_[0-3],
567 SCM_SET_CELL_OBJECT, SCM_SET_CELL_OBJECT_[0-3], SCM_CELL_TYPE,
568 SCM_SET_CELL_TYPE): Added a set of low level macros for accessing
569 cell entries.
570 (SCM_CELL_WORD_[0-3]): Renamed from the SCM_CELL_WORD[0-3].
571
572 * procs.h, procs.c: Instead of SCM_{SET_}?CELL_WORD[12], use the
573 newly introduced SCM_{SET_}?CELL_OBJECT_[12] macros.
574
7284d584
MD
5752000-03-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
576
577 * tags.h: Disabled definition of SCM_VOIDP_TEST.
578
579 Defining SCM as void * introduces problems which haven't been
580 handled yet. Developers who work with these issues can enable it
581 in their working copies.
582
583 Disabling this definition exposes a set of newly introduced and
584 older misuses of types which causes warning messages during
585 compilation. We'll fix this successively.
586
587 * gc.c (scm_mark_locations): Changed * (SCM **) X --> * (SCM *) X
588 in order to obtain a value of type SCM.
589 (scm_cellp): Updated with new changes to scm_mark_locations.
590
591 * continuations.h (SCM_SETJMPBUF): Cast second arg into SCM.
592
2f9055ea
MD
593 * continuations.c (scm_make_cont): Removed cast of size_t into
594 long.
595
7284d584
MD
596 * symbols.h (SCM_SETCHARS): Cast second arg into SCM.
597
f81e080b
DH
5982000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
599
600 * numbers.h (SCM_SETNUMDIGS): Use SCM_BIGSIZEFIELD macro for
601 shifting, not constant. Thanks to Dale P. Smith.
602
603 * numbers.c (scm_sum, scm_difference): Don't test a SCM value
604 for being less than zero. Decode it to a C value first. Again,
605 thank you Dale.
606
1ff2fa6e
DH
6072000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
608
609 * numbers.h, ramap.c, struct.h, vectors.h: Don't use SCM2PTR for
610 non scheme values. If raw data is stored in SCM variables, it has
611 to be accessed using SCM_UNPACK until a better solution is found.
612
3920465b
MD
6132000-03-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
614
6f29dc6d
MD
615 * tags.h (SCM_ECONSP, SCM_NECONSP): More corrections of
616 pointer-arithmetic induced by the SCM_PACK/UNPACK change.
617
618 * print.c (scm_iprin1): SCM_PACK/UNPACK corrections.
619
620 * gc.c (scm_gc_sweep): SCM_PACK/UNPACK corrections.
621
622 * eval.c (SCM_CEVAL, scm_unmemocar): SCM_PACK/UNPACK corrections.
623
624 * dynwind.c (scm_swap_bindings): SCM_PACK/UNPACK corrections.
625
3920465b
MD
626 * async.c, __scm.h: Removed lots of the old async click logic. It
627 is possible to reinsert it by defining GUILE_OLD_ASYNC_CLICK in
628 __scm.h. Let's try this out and dump the old code after the
629 threads reorganization.
630 (set-tick-rate, set-switch-rate): Conditionally removed.
631
90cca6f9
MD
6322000-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
633
634 * gc.c (scm_gc_mark): Bugfix 1: The recent SCM_PACK/UNPACK change
635 made SCM values into pointers. This turned an arithmetic
636 computation of the address of the vcell into a pointer-arithmetic
637 one, thereby screwing up marking of structs.
638 Bugfix 2: Removed incompletely introduced loop variable `j' used
639 when protecting the tail array of a struct.
640
8246bf3e
DH
6412000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
642
643 * struct.h (SCM_STRUCT_DATA): Don't cast SCM values to pointers.
644
95c9e176
DH
6452000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
646
647 * symbols.h, symbols.c (scm_strhash): Declare the string
648 parameter as constant, since it is not modified.
649
650 * symbols.c (scm_intern_obarray_soft,
651 scm_sysintern0_no_module_lookup): Can now pass constant strings
652 to scm_strhash without need for casting.
653
7352d0b2
DH
6542000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
655
656 * vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS): Don't cast SCM
657 values to pointers. Use SCM2PTR instead.
658
b00c8cdc 6592000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
9b139b4e
DH
660
661 * async.c (scm_set_tick_rate, scm_set_switch_rate): Don't unpack
662 results of SCM_INUM.
663
df2d5178
MD
6642000-03-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
665
bd54e664
MD
666 * init.c (scm_boot_guile_1): Renamed GUILE_GC_TRIGGER_1 -->
667 GUILE_MIN_YIELD_1, GUILE_GC_TRIGGER_2 --> GUILE_MIN_YIELD_2.
668 GUILE_MIN_YIELD_X now take *positive* fractions of heap size.
669
670 * gc.c, gc.h (SCM_MIN_YIELD_1, SCM_MIN_YIELD_2,
671 min_yield_fraction, min_yield, adjust_min_yield): Renamed from
672 SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2, gc_trigger_fraction,
673 gc_trigger, adjust_gc_trigger.
674
df2d5178
MD
675 * gc.c (alloc_some_heap): Further improvement of minimal heap size
676 prediction.
677 (SCM_MAX): New macro.
678 (scm_freelist_t): New field: collected_1. Previous amount of
679 collected cells.
680 (gc_sweep_freelist_finish): Trigger based on two last values of
681 freelist->collected to avoid unnecessary allocation due to
682 temporary peaks.
bd54e664
MD
683 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2):
684 Adjusted to 45000 cells, 40% and 40%. Gives quick startup
685 without extra heap allocation.
df2d5178 686
f2961ccd
DH
6872000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
688
689 * numbers.h (SCM_MAKINUM): The parameter to SCM_MAKINUM should
690 already be a C value. No need to unpack it.
691
3210f49a 692 * numbers.c (scm_long_long2num): Cast the parameter to scm_bits_t
f2961ccd
DH
693 if we know it fits into an inum.
694
695 * ramap.c (ramap_rp): An scm_tc7_[ui]vect object does point to a
696 field of long values. In contrast, SCM_VELTS accesses a field of
697 SCM values.
698
7b4cc831
MD
6992000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
700
f1d316dd
MD
701 * gc.c (scm_gc_stats): Inserted explanation of local_scm_mtrigger
702 etc.
80770ddc
MD
703 (scm_gc_yield_1): New variable: Holds previous yield. Used to
704 make better judgements.
f1083dd7
MD
705 (gc_sweep_freelist_finish): Inserted explanation of use of
706 gc_trigger.
f1d316dd
MD
707
708 * print.h, stacks.h, options.c, options.h: Changed C++
709 commentaries to C.
7b4cc831 710
7a710745
DH
7112000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
712
713 * tags.h (SCM2PTR, PTR2SCM): Use SCM_PACK / SCM_UNPACK correctly.
714
715 * numbers.h (SCM_INUMP, SCM_MAKINUM, SCM_INUM0, SCM_COMPLEX_REAL,
716 SCM_COMPLEX_IMAG, SCM_NUMP, SCM_BDIGITS): Use SCM_PACK /
717 SCM_UNPACK / SCM2PTR correctly.
718
1ef20c80
MD
7192000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
720
721 * gc.c (adjust_gc_trigger): Improved documentation.
722 (alloc_some_heap): Since gc_trigger is used against
723 freelist->collected, this is the value which should be used to
724 predict minimum growth.
725
b464b970
DH
7262000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
727
728 * eval.h: Fix mixup of packed/unpacked SCM values. (Thanks
729 Thien-Thi Nguyen for the patch.)
730
3ab9f56e
DH
7312000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
732
733 * numbers.c (scm_ash): Fixed typing problems with the second
734 parameter and added some documentation. (Thanks Thien-Thi Nguyen
735 for indicating the problem.)
736
05bc3265
MD
7372000-03-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
738
78a4915a
MD
739 * gc.c, gc.h (scm_gc_yield): New variable.
740 (adjust_gc_trigger): Use scm_gc_yield.
741 (alloc_some_heap): Use scm_gc_yield instead of
742 scm_gc_cells_collected.
743
05bc3265
MD
744 * coop-threads.c: Addd #include "root.h", #include "strings.h".
745
746 * debug.c: Added #include "root.h". (Thanks to Thien-Thi Nguyen.)
747
748 * gc.c (scm_gc_for_newcell, adjust_gc_trigger): Improved GC
749 trigger adjustmeant: Take yield (freed cells) for all freelists
750 into account.
751 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Tuned
752 to 50000 cell heap with 45% trigger.
753 (scm_gc_cells_collected): Reintroduced.
754 (SCM_HEAP_SIZE): New macro.
755 (scm_gc_sweep): Reintroduced correct computation of
756 scm_cells_allocated.
757 (scm_freelist_t): Corrected commentary for field `cluster_size':
758 Clustersize counts objects, not cells; New member
759 `clusters_allocated'.
760
89e00824
ML
7612000-03-19 Michael Livshin <mlivshin@bigfoot.com>
762
763 * *.[hc]: add Emacs magic at the end of file, to ensure GNU
764 indentation style.
765
afcfc5bb
MD
7662000-03-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
767
768 * threads.h: Added #include "libguile/throw.h". (Thanks to
769 Thien-Thi Nguyen.)
770
a00c95d9
ML
7712000-03-18 Michael Livshin <mlivshin@bigfoot.com>
772
50fecba9
ML
773 * tags.h: (SCM_DOUBLE_CELLP, SCM_NDOUBLE_CELLP): new macros (bad
774 names, anyone got any better ones?)
a00c95d9
ML
775
776 * gc.h: (typedef struct scm_freelist_t) remove from here.
777
50fecba9 778 * gc.c: (CELL_UP, CELL_DN) made these macros take additional
a00c95d9
ML
779 parameter (the span).
780 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK) new macros.
50fecba9 781 (typedef struct scm_freelist_t) moved here from gc.h, it had no
a00c95d9
ML
782 business being externally visible.
783 (typedef struct scm_heap_seg_data_t) renamed from
784 scm_heap_seg_data, to be style-compliant.
785 (scm_mark_locations) if the possible pointer points to a
50fecba9
ML
786 double-cell, check that it's properly aligned.
787 (init_heap_seg) align double-cells properly, work with the
788 assumption that the segment size divides cleanly by cluster size.
a00c95d9
ML
789 (round_to_cluster_size) new function.
790 (alloc_some_heap, make_initial_segment) use round_to_cluster_size
791 to satisfy the new init_heap_seg invariant.
792
28b3236d
DH
7932000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
794
795 * _scm.h: Don't include async.h everywhere...
796
797 * eq.c eval.c iselect.c: ... only include it here.
798
ba11fd4c
DH
7992000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
800
801 * _scm.h: Don't include root.h everywhere...
802
803 * async.c continuations.c eq.c eval.c evalext.c feature.c gc.c
804 gdbint.c gsubr.c ioext.c keywords.c lang.c load.c macros.c
805 numbers.c objprop.c ports.c print.c procprop.c ramap.c read.c
806 srcprop.c stackchk.c stacks.c strports.c symbols.c unif.c
807 variable.c vectors.c vports.c: ... only include it here.
808
7ab3fdd5
DH
8092000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
810
811 * _scm.h: Don't include strings.h everywhere...
812
813 * backtrace.c dynl.c error.c feature.c filesys.c fports.c gc.c
814 gdbint.c ioext.c load.c net_db.c numbers.c objects.c options.c
815 ports.c posix.c print.c procs.c random.c read.c regex-posix.c
816 simpos.c socket.c stacks.c stime.c strop.c strports.c struct.c
817 symbols.c unif.c vectors.c version.c vports.c: ... only include it
818 here.
819
f04d8caf
DH
8202000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
821
822 * _scm.h: Don't include ports.h everywhere...
823
824 * arbiters.c backtrace.c debug.c dynl.c dynwind.c eval.c feature.c
825 fluids.c gc.c gdbint.c guardians.c hash.c keywords.c mallocs.c
826 numbers.c objects.c print.c read.c root.c smob.c srcprop.c
827 stackchk.c strports.c struct.c throw.c variable.c: ... only
828 include it here.
829
003d1fd0
DH
8302000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
831
832 * _scm.h: Don't include vectors.h everywhere...
833
834 * eq.c eval.c filesys.c gc.c gsubr.c guardians.c hash.c hashtab.c
835 keywords.c net_db.c numbers.c objects.c posix.c print.c procprop.c
836 procs.c ramap.c random.c read.c scmsigs.c socket.c sort.c stime.c
837 strports.c symbols.c unif.c vports.c weaks.c: ... only include it
838 here.
839
0fa27efa
DH
8402000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
841
842 * genio.h: removed. (Only content was '/* delete me */'.)
843
844 * Makefile.am arbiters.c backtrace.c debug.c dynl.c dynwind.c
845 error.c filesys.c fluids.c gc.c gsubr.c guardians.c keywords.c
846 libguile.h mallocs.c numbers.c print.c random.c read.c root.c
847 srcprop.c stackchk.c struct.c threads.c throw.c variable.c:
848 Removed reference to genio.h
849
148f31de
MD
8502000-03-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
851
852 * gc.c, gc.h: Cleanup of the change of 2000-03-15.
853 Cluster sizes are now independent of GC trigger values.
854 GUILE_GC_TRIGGER_n can now specify a relative trigger value:
855 A negative integer gives fraction of total heap size in percent.
1eb489a2 856 (SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -40.
148f31de
MD
857
858 * init.c (scm_boot_guile_1): Introduced new variable
859 GUILE_MAX_SEGMENT_SIZE; New environment variable names:
860 GUILE_INIT_SEGMENT_SIZE_1, GUILE_GC_TRIGGER_1,
861 GUILE_INIT_SEGMENT_SIZE_2, GUILE_GC_TRIGGER_2
862
6d0f81dd 8632000-03-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
a00c95d9 864
6d0f81dd
MD
865 * __scm.h (GC_FREE_SEGMENTS): Disable this until we have made
866 freeing of segment work with the new GC scheme. (Thanks to
bc2c8d98
MD
867 Michael Livshin.) Oops, also happened to make GUILE_NEW_GC_SCHEME
868 the default, but I'll let this change stay in CVS Guile since this
869 code is not expected to contain serious bugs.
a00c95d9 870
17351a6f 8712000-03-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
c5133dc9 872
6c7c449e
MD
873 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
874 defined.
5a551542
MD
875 (scm_free_list_length): New procedure (GUILE_DEBUG).
876 Fixed a small but serious bug introduced by the previous change.
877
17351a6f
MD
878 * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
879 loop and declare as register.
6c7c449e 880
c5133dc9
MD
881 * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
882 after GC.
883
3820581c
GB
884Wed Mar 15 08:27:04 2000 Greg J. Badros <gjb@cs.washington.edu>
885
886 * fluids.c: Docstring patch from Keisuke Nishida. Some
887 reindentation, too, and a couple formals renamed. Should
888 fluid-set! return UNSPECIFIED instead of a value?
889
890Wed Mar 15 08:24:58 2000 Greg J. Badros <gjb@cs.washington.edu>
891
892 * Makefile.am: Separate out DOT_X_FILES and DOT_DOC_FILES, and
a00c95d9 893 generate the latter from the concrete listing of the former. Then
3820581c
GB
894 make guile-procedures.txt depend on DOT_DOC_FILES instead of
895 *.doc, so that rebuilding it works.
896
dd6390bf
GB
897Wed Mar 15 08:12:14 2000 Greg J. Badros <gjb@cs.washington.edu>
898
899 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida!
900
901 * guile-snarf.awk.in: Replace docstring line-ending \n" and \n\n"
902 with nothing and \n, respectively. Thanks Keisuke Nishida for
903 noticing this problem.
904
4fdb0ae2
MD
9052000-03-15 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
906
907 * __scm.h (GUILE_NEW_GC_SCHEME): Define this if you want to test a
908 new way of allocating heap. It makes Guile fast, but still
909 contains bugs.
910
911 * gc.c, gc.h, pairs.h, init.c: Implementation of a new way of
912 allocating heap. The basic idea is to trigger GC every Nth
913 allocated cell and grow heap when free list runs out. The scheme
914 has been extended so that GC isn't triggered until all remaining
915 cells are used. The implementation is also prepared for
916 development in the direction of POSIX threads.
917
918 * gc.c (SCM_EXPHEAP): In order to grow by a factor of 1.5,
919 SCM_EXPHEAP should return half of the heap size.
920
3d8d1283
MD
9212000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
922
5f4edb86
MD
923 The following change to init.c is only enabled if Guile was
924 configured with --enable-guile-debug.
a00c95d9 925
5f4edb86
MD
926 * init.c (scm_i_getenv_int): New function.
927 (scm_boot_guile_1): Use the environment variables
928 GUILE_INIT_HEAP_SIZE, GUILE_INIT_HEAP_SIZE2 to select heap size if
929 they exist. (This may be replaced by a Scheme level mechanism in
930 the future.)
931
3d8d1283 932 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
90e77861 933 scm_assoc. (Thanks to Keisuke Nishida.)
3d8d1283 934
b0e37c83
MD
9352000-03-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
936
937 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
2b260c0f 938 scm_nil, scm_t. (Thanks to Keisuke Nishida.)
b0e37c83 939
16d35552
MD
9402000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
941
5ebf0091
MD
942 * init.c (scm_boot_guile_1): Use same initial segment size for
943 1-word and 2-word segments. Having the smaller size causes Guile
944 to GC too often. Obviously something needs to be done to allow
945 for a smaller 2-word segment without this to happen. (The amount
946 of heap for each type should be automatically adapted to the
947 application somehow.)
948
31ed4cff
MD
949 [Almost all of these changes should be documented in the NEWS
950 file.]
951
cf2c7413
MD
952 * gc.h (scm_freelist_t): New type.
953
954 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
955
956 * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
957 all of Guile basics fits into one segment and there suitable room
958 for work.
959 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
960 instead of 2.
961 (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
962 Freelists now contains information about object span, cells
963 collected and amount of cells in heap segments belonging to the
964 list.
965 (scm_heap_size, scm_gc_cells_collected): Removed.
966
967 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
968
16d35552
MD
969 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
970 number.
971
cf2c7413 972 * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
16d35552
MD
973 numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
974 rewrite of handling of real and complex numbers.
975 (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
976 removed along with the support for floats. (Float vectors are
977 still supported.)
978
979 * tags.h (scm_tcs_bignums): Removed.
980 (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
981 Use SCM_BIGSIGN(x) to test for sign!
982 (scm_tc16_big): The new bignum type.
983 (SCM_REAL_PART, SCM_IMAG_PART): Removed.
984
985 * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
986 (scm_makdbl): Deprecated.
987 (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
988 (SCM_SINGP): Deprecated.
989 (SCM_FLO): Removed.
990 (SCM_INEXP, SCM_CPLXP): Deprecated.
991 (SCM_INEXACTP, SCM_COMPLEXP): New macros.
992 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
993 SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
994 (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
995 for doubles and complex numbers.
996 (SCM_REAL_VALUE): New selector for doubles.
997 (scm_double_t, scm_complex_t): New types.
998 (scm_dbl): Removed.
999
1000 * numbers.c (scm_floprint, scm_floequal): Removed.
1001 (scm_print_real, scm_print_complex, scm_real_equalp,
1002 scm_complex_equalp): New functions.
1003
1004 * unif.c (scm_makflo): Removed.
1005
1006 * smob.h (SCM_SMOB_PREDICATE): New macro.
1007 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
1008 SCM_RETURN_NEWSMOB3): New macros.
1009
10101999-11-21 Michael Livshin <mlivshin@bigfoot.com>
1011
1012 The following changes implement primitive support for double cells
1013 (i.e. four-word cells) and change the representation of some
1014 things to multi-cells instead of cons+malloc. (Applied and
1015 modified by mdj.)
1016
1017 * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
1018 (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
1019 multi-cell access macros (used by the ones below).
1020 (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
1021 macros.
1022
1023 * gc.c (scm_freelist2): multi-cell freelists.
1024 (inner_map_free_list): map_free_list, parameterized on ncells.
1025 "nn cells in segment mm" was misleading for ncells > 1; changed to
1026 "objects". still print cells too, though.
1027 (scm_map_free_list): rewritten using inner_map_free_list.
1028 (scm_check_freelist): get freelist as parameter, since now we have
1029 more than one.
1030 (scm_debug_newcell2): multi-cell variants of
1031 scm_debug_newcell.
1032 (scm_gc_for_newcell): take ncells and freelist pointer as
1033 parameters.
1034 (scm_gc_mark): add case for tc7_pws (procedures with setters are
1035 now double cells).
1036 (scm_gc_sweep): don't free the float data, since it's not malloced
1037 anymore.
1038 (init_heap_seg): didn't understand what n_new_objects stood for,
1039 so changed to n_new_cells.
1040 (make_initial_segment): new function, makes an initial segment
1041 according to given ncells.
1042 (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
1043
1044 * numbers.c (scm_makdbl): no malloc'ing needed, so the
1045 {DEFER,ALLOW}_INTS thing removed.
1046
1047 * numbers.h (struct scm_dbl): changed to represent a double cell,
1048 with the number in the second half.
16d35552
MD
1049
1050 * dynwind.c: changed the wind-guards representation to double
1051 cell.
1052
1053 * procs.c, procs.h: changed the procedure-with-setter representation
1054 to double cell.
1055
1056 * async.c, async.h: made async representation a double cell.
1057
16d35552 1058 * dynl.c: made dynamic_obj representation a double cell.
a00c95d9 1059
b70ecbd0
GH
10602000-03-13 Gary Houston <ghouston@arglist.com>
1061
1062 * ports.c (flush_void_port): renamed to flush_port_default.
1063 (end_input_void_port): renamed to end_input_default.
1064
1065 * init.c (scm_standard_stream_to_port): create a void port instead
1066 of opening /dev/null if the standard file descriptors are bad.
1067 advantages: no portability problems, doesn't waste a file descriptor,
1068 simplifies the code (thanks to Marius for the idea).
1069
1070 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
1071
1072 * void ports: make reading from a void port give EOF instead of
1073 segv:
1074 * ports.c (s_scm_sys_make_void_port): modified docstring.
1075 (fill_input_void_port): new proc.
1076 (scm_init_ports): set up fill_input_void_port.
1077 * ports.c (scm_port_non_buffer): new proc.
1078 (scm_void_port): call scm_port_non_buffer.
1079
1080 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
1081 which was incorrectly appended.
1082
fdc7ea2d
MD
10832000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1084
1085 * guile-doc-snarf.in: Don't use absolute path for `sed'. (Note
1086 that we can't use autoconf for this. Autoconf itself relies on
26fba922 1087 the existence of `sed' somewhere on your path.) (Thanks to Dirk
fdc7ea2d 1088 Herrman.)
a00c95d9 1089
68933ba3
MD
10902000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1091
b44a555a
MD
1092 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
1093 EXTRA_libguile_la_SOURCES.
1094
1095 * iselect.h: Always declare scm_internal_select.
1096
1097 * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
1098 end. Also let scm_internal_select be a real function also when
1099 not using threads.
1100
68933ba3
MD
1101 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
1102
c7f6ea11
MD
11032000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1104
1105 * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
1106 SCM_ASYNC_TICK. (This is a preparation for POSIX threads support,
1107 and kind of an experiment: Will this cause problems?)
1108
62dbc244
GB
1109Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
1110
1111 * Makefile.am: Added *.doc to DISTCLEANFILES.
1112
4f2f645d
GH
11132000-03-12 Gary Houston <ghouston@arglist.com>
1114
1115 * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
1116 the fdes is valid before doing anything else. check that
1117 the file descriptor supports the modes required.
1118 (scm_fport_buffer_add): don't throw an error if fstat doesn't
1119 work: just use the default buffer size.
1120
1121 * throw.c: change an outdated comment about scm_internal_catch
1122 BODY: it doesn't take a jumpbuf arg.
1123
1124 * init.c (scm_standard_stream_to_port): install a handler in case
1125 scm_fdes_to_port throws an error. don't check here whether the
1126 file descriptor is valid, since scm_fdes_to_port will do that.
1127 set the revealed count depending on whether the port got the
1128 standard file descriptor.
1129 (stream_body_data): new type.
1130 (stream_body, stream_handler): new procs.
1131
7f782a0a
MD
11322000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1133
67673f75
MD
1134 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
1135 Renamed from SCMWORD.
1136
1137 * tags.h (SCM_NCELLP): Removed (SCMWORD).
1138
f1267706 1139 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
67673f75 1140
74a426ae
MD
1141 * async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,
1142 feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h,
1143 hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c,
1144 objects.h, options.c, pairs.h, ports.c, ports.h, print.c,
1145 procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c,
1146 stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h,
1147 throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c,
f1267706 1148 weaks.h (SCM_PACK, SCM_UNPACK, SCM_UNPACK_CAR): Renamed from
74a426ae
MD
1149 SCM_ASSCM, SCM_ASWORD, SCM_CARW).
1150
7f782a0a
MD
1151 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
1152
1153 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
1154 tags.h: Fixed copyright notices.
1155
1156 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
0cd87628 1157
7f782a0a 11582000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
a00c95d9 1159
0cd87628
MV
1160 * init.c (scm_standard_stream_to_port): Check whether the file
1161 descriptor is valid and substitute "/dev/null" when not.
a00c95d9 1162
f3b5e185
MD
11632000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1164
1165 * coop-defs.h (struct timespec): Conditionally defined.
1166
1167 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
1168 instead of ETIME.
38eca29b
MD
1169
1170 * readline.c (match_paren): Bugfix: First arg to select is not
1171 number of descriptors but the number of the highest descriptor +
1172 1.
1173
1174 This is a preliminary attempt at a cleanup of the threads support
1175 code. It moves things to better places, makes arguments more
1176 consistent with the POSIX API (which is used in GNOME's glib), and
1177 adds new functionality.
a00c95d9 1178
38eca29b
MD
1179 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
1180
1181 * coop-defs.h (scm_mutex_trylock): New macro: alias for
1182 coop_mutex_trylock.
1183 (scm_cond_init): Changed definition to
1184 coop_new_condition_variable_init.
a00c95d9 1185
38eca29b
MD
1186 * coop.c: #include <errno.h>
1187 (coop_timeout_qinsert): Moved here from iselect.c
1188 (coop_new_mutex_init, coop_new_condition_variable_init): New
1189 functions. The strange names are temporary. Use scm_mutex_init
1190 and scm_cond_init instead.
1191 (coop_mutex_trylock): New function. Uses errno.h:EBUSY. errno.h
1192 is ANSI C, but should we check for individual error codes in
1193 configure.in?
1194 (coop_condition_variable_timed_wait_mutex): New function.
1195 (coop_key_create, coop_setspecific, coop_getspecific,
7f782a0a 1196 coop_key_delete): New functions.
38eca29b
MD
1197
1198 * iselect.c (coop_timout_qinsert): Moved to coop.c
1199
32e1616c
MD
12002000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1201
1202 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
1203 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
1204
1205 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
1206 Layout cleanups.
1207
1208 * objects.h (SCM_CLASS_FLAGS, SCM_OBJ_CLASS_FLAGS,
1209 SCM_SET_CLASS_INSTANCE_SIZE), struct.h (SCM_STRUCT_VTABLE_DATA),
1210 proc.h (SCM_CLOSCAR): SCM_ASSCM/WORD fixes.
1211
1212 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
1213 dealing with ilocs.
1214
d5c39069
GB
12152000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
1216
1217 * numbers.c (scm_copy_big_dec, scm_copy_smaller, scm_big_ior,
1218 scm_big_xor, scm_big_and, scm_big_test): Added new lowlevel bignum
1219 logical functions from SCM.
1220
1221 (logand, logior, logxor, logtest, logbit?): Extended scheme
1222 logical functions to use bignums from SCM.
1223
1224 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
1225 lognot from using bignums.
1226
3e892913
GB
1227Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
1228
a00c95d9 1229 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
3e892913
GB
1230 eliminating some warnings.
1231
1232 * unif.c, strports.c, print.c, options.c: Fix some warnings on
1233 mis-use of SCM/long
1234
1235 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
1236 what the scm_return_first* functions do.
1237
7ac030d6
GB
12382000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
1239
1240 * libguile/*.[ch]: make a distinction between SCM as a generic
1241 name for a Scheme object (now a void*), and SCM as 32 bit word for
1242 storing tags and immediates (now a long int). Introduced
1243 SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
1244 code in the process: arbiter.c (use macros), unif.c (scm_array_p),
a00c95d9 1245
f635d2d4
GB
1246Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
1247
1248 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
1249 various logXXX primitives. Thanks Eric Moore!
1250
9eaa7fb6
GB
1251Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
1252
1253 * run-test, remaining-docs-needed: Added these scripts. The
1254 second one is only temporary until the docstring additions are
1255 complete. run-test may best live on, but is here mostly for
1256 convenience and awareness for now.
1257
1258 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
1259
49673698
GB
1260Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
1261
1262 * error.h, error.c: Added `scm_wrong_type_arg_msg' to support
1263 displaying the expected type. Use SCM_LISTn in a couple places
1264 instead of scm_cons-ing by hand.
1265
1266 * __scm.h: Added SCM_ASSERT_TYPE macro.
1267
1268 * validate.h, scm_validate.h: Added the former, as a renamed
1269 version of the latter with SCM_ASSERT_TYPE used in
1270 SCM_MAKE_VALIDATE (instead of just SCM_ASSERT)
1271
1272 * Makefile.am: Rename scm_validate.h to validate.h.
1273
1274 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
1275 prefix was superfluous).
1276
417bdef8
GB
1277Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
1278
1279 * hashtab.c: Improved documentation for lots of functions. Added
1280 handwritten docs for `hash-fold'.
1281
1282Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
1283
1284 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
1285
26a760c6
GB
1286Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
1287
a00c95d9 1288 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
26a760c6
GB
1289 added append docs from R4RS.
1290
1291 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
1292 Thanks Dirk Hermann!
1293
1294 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
1295 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
a00c95d9 1296
26a760c6
GB
1297 * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout.
1298 Drop use of SCM_P for function prototypes... assume an ANSI C
1299 compiler. Thanks Dirk Hermann!
1300
898942f8
GB
1301Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
1302
1303 * ports.c: Made `set-port-column!' and `set-port-line!' each
1304 return SCM_UNSPECIFIED instead of a (not-scheme-object) integer
1305 that caused a seg fault. Also fixed `set-port-column!'s
1306 docstring. Thanks Han-Wen Nienhuys for finding the bug!
1307
84a3df2c
GB
1308Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
1309
1310 * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c,
a00c95d9 1311 regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c,
84a3df2c
GB
1312 strings.c, variable.c: Added lots of documentation, cleaned up
1313 some existing documentation. Occasionally changed formal params
1314 to match docs. Also folded an #ifdef into the inners of a
1315 primitive instead of having two copies of the primitive
1316 (`get-internal-real-time', from stime.c)
1317
1318Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
1319
1320 * ports.c: Added docs for primitives missing them. Written by
1321 hand.
1322
3f557de6
GB
1323Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
1324
1325 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
1326 just execing guile-func-name-check. Thanks Michael Livshin!
1327
ddcccdb3
GB
1328Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
1329
1330 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
1331 dead code. Patch from Michael Livshin.
1332
1333 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
1334 Michael Livshin.
1335
720e8692
GH
13362000-02-09 Gary Houston <ghouston@arglist.com>
1337
1338 * init.c (scm_init_standard_ports): when stdout is a tty, make the
1339 current-output-port unbuffered by default. this is less confusing
1340 for interactive use. it was line-buffered because of a
1341 performance problem with unbuffered ports, but I think it will be
1342 OK now.
1343
43ff3170
GH
13442000-02-08 Gary Houston <ghouston@arglist.com>
1345
1346 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
1347 is not defined.
1348
1349 * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor
1350 HAVE_TZNAME are defined, use an empty string instead of giving two
1351 spurious compile-time errors.
1352
4ba47302
GB
1353Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
1354
1355 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
1356 Thanks Richard!
1357
09a617f7
GB
1358Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
1359
1360 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
1361
9dbcf010
GB
1362Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
1363
1364 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
1365 (which is GNU GPL'd).
1366
bd9e24b3
GH
13672000-01-31 Gary Houston <ghouston@arglist.com>
1368
1369 * strings.h: don't use SCM_P. don't include <string.h>.
1370 * error.c, gh_data.c, ports.c, script.c, strop.c: include <string.h>.
a00c95d9 1371
bd9e24b3
GH
1372 * strings.c (scm_string_ref): make the 2nd argument compulsory.
1373 previously it defaulted to zero for no good reason that I can see.
1374 use a local variable for SCM_INUM (k). replace
1375 SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY.
1376
1377 (scm_makfromstr): cosmetic changes.
1378
1379 (scm_string): Accept only chars in the list, not strings, for
1380 conformance to R5RS (particularly for list->string, which is
1381 supposed to be the inverse of string->list.) remove
1382 SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since
1383 scm_makstr handles the cell allocation. when reporting wrong-type
1384 arg, don't report the position as 1.
1385
1386 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
1387
28d77376
GH
13882000-01-29 Gary Houston <ghouston@arglist.com>
1389
ae1b098b
GH
1390 * posix.c (scm_pipe): rewrote the docstring.
1391
28d77376
GH
1392 * filesys.c (scm_select, retrieve_select_type, get_element,
1393 fill_select_type, set_element): modified so that Scheme
1394 "select" tests port buffers for the ability to provide input
1395 or accept output. Previously only the underlying file descriptors
1396 were checked. Rewrote the docstring.
a00c95d9 1397
7f1497ce
GB
1398Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
1399
1400 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
1401 from Gregg Reynolds. Thanks Gregg!
1402
2288ff9b
GB
1403Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
1404
1405 * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by
1406 adding "x" prefix to the line so that guile-func-name-check
1407 doesn't complain unnecessarily.
1408
349af6dd
GB
1409Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
1410
1411 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
1412 for maintainability.
1413
1414 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
1415 from qdocs, RnRs.
1416
a28eb127
GB
1417Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
1418
a00c95d9 1419 * tag.c: Added doc for `tag', but mark as deprecated since Mikael
a28eb127
GB
1420 suggests removing tag.c altogether (and using a new `class-of'
1421 instead).
1422
1423 * strings.c: Added documentation from Gregg A. Reynolds. Edited
1424 a bit by me to use FOO instead of @var{foo} and to have the
a00c95d9 1425 summary come before preconditions on input. Also dropped trailing
a28eb127
GB
1426 (rnrs) note.
1427
1428 * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the
1429 function with scm_make_subr_opt w/ last arg of 0 so it is not
1430 visible at the Scheme level. Mikael says that this is the right
1431 thing because the first arg to the proc is the guts of a compiled
1432 closure and shouldn't be exposed to the Scheme level.
1433
ac2259fc
GB
1434Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
1435
1436 * sort.c: typo in comment fixed.
1437
1438 * keywords.c: Added documentation.
1439
1440 * guardians.c: Added documentation (could be better).
1441
1442 * gc.c: Added docs for gc-set-debug-check-freelist.
1443
1444 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
1445
1446 * boolean.c: Added docs for `not', `boolean?' (by hand).
a00c95d9 1447
d928e0b4
GB
1448Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
1449
1450 * random.c: Added documentation, from SLIB page:
1451 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
1452
1453Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
1454
1455 * variable.c, version.c: Added documentation, written by hand
1456 since I could not find anything already written that was
1457 relevant.
1458
d831b039
GH
14592000-01-23 Gary Houston <ghouston@arglist.com>
1460
a00c95d9 1461 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
d831b039
GH
1462 not defined (thanks to Richard Y. Kim).
1463
88ec97ad
GB
1464Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
1465
1466 * Makefile.in: Removed, this is auto-generated.
1467
078e9092
GB
1468Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
1469
1470 * list.c: Put some variable initialization code at the point of
1471 declaration; Added a comment for list*; Formatting changes.
1472
1473 * load.c: use SCM_NNULLP to make sure the end of a list is not
1474 reached yet.
1475
e7a96050
MD
14762000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1477
a177af34
MD
1478 * backtrace.c (scm_display_error_message): Bugfix: Don't use
1479 result of scm_list_p as C boolean.
1480 (scm_display_error_message, scm_set_print_params_x): Use new
1481 validation macros. (Thanks to Dirk Herrmann.)
1482
d06bcb02
MD
1483 * net_db.c (scm_resolv_error): Cast result from hstrerror.
1484
1485 * strports.c (st_end_input): Inserted parenthesis to get operator
1486 grouping correct.
1487
1488 * list.h (scm_init_list): Removed SCM_P around prototypes.
1489
1490 * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c,
1491 filesys.c, posix.c: Converted docstrings to ANSI C format and
e7a96050
MD
1492 escaped " occurring inside string literals.
1493
682eefe9
MD
1494Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
1495
1496 * posix.c (scm_mknod): Escape " occuring inside docstring.
1497
56cfe22b
MD
14982000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1499
1500 * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,
1501 evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c,
1502 keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c,
1503 objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c,
1504 ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c,
1505 stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c,
1506 symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c,
1507 weaks.c: Converted docstrings to ANSI C format.
a00c95d9 1508
56cfe22b
MD
1509 * filesys.c (scm_chmod), simpos.c (scm_system), version
1510 (scm_version), vports (scm_make_soft_port): Escape " occuring
1511 inside docstring.
1512
fcb1720f
GB
1513Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
1514
1515 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
1516 SCM_VALIDATE_LONG_COPY
1517
1518 * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
1519 SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
1520 couple of formal arguments (and fix their uses) to make arguments
1521 match the documentation.
1522
b9af3d0e
MS
15232000-01-14 <mstachow@alum.mit.edu>
1524
1525 * Makefile.am: Augment path when running guile-doc-snarf so
1526 guile-func-name-check is found.
1527
153511a7
GB
1528Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
1529
1530 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
1531 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
1532
59d5245f
GB
1533Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
1534
1535 * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's
1536 the way guile-1.3.4 worked, but #if 0 out the version using
1537 SCM_VALIDATE_INUM_COPY for stricter testing.
1538
95aec69f
GB
1539Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
1540
1541 * guile-doc-snarf.in: Use new $fullfilename for running
1542 guile-func-name-check, and put "$fullfilename" and "$filename" in
1543 quotes at uses to make sure re-splitting on whitespace does not
a00c95d9 1544 occur (so filenames w/ embedded whitespace would work okay, though
95aec69f
GB
1545 I sure hope we never have to deal with that! :-) ). Thanks to
1546 Mikael for pointing out the source_dir != build_dir was broken.
1547
b7ac2837
GB
1548Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
1549
1550 * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make
1551 SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
1552 SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
1553 macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
1554 variants.
1555
1556 * ports.c (scm_port_closed_p): Validate that the arg is a PORT,
1557 then return whether it's an open port (was validating that it was
1558 an open port -- this was a bug I introduced back in December, but
1559 my careful reading of diffs caught it).
1560
1561 * numbers.c: Recombine the two conditional-compilation paths for
1562 all the log* primitives -- they were split based on #ifndef
1563 scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
1564 some bugs and inconsistencies in the two sets of implementations.
1565 (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
1566
1567 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
1568 SCM_VALIDATE_INUM_COPY once where it should've been used.
1569
1570 * fluids.c (scm_internal_with_fluids): Use
1571 SCM_VALIDATE_LIST_COPYLEN.
1572
1573 * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
1574 this is questionable as it relaxes type safety, but other changes
1575 were useful and all SCM_NUM2LONG's should probably be
1576 revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
1577
1578 * evalext.c: line-break change on 1 line.
1579
1580 * eval.c (nconc2last): Takes a non-empty list as its first
1581 argument, not just a list.
1582
1583 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
1584
1585Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
1586
1587 * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c,
1588 net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
1589 where possible.
1590
1591 * symbols.c (scm_sysintern0): Fixed the function name in a
1592 scm_misc_error invocation.
1593
1594 * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
1595 use scm_return_first to ward off latent GC bug that Mikael caught.
1596
1597 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
1598 used before but should've been.
1599
d61f6b02
MD
16002000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1601
1602 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
1603 SCM_FUNC_CAST_ARBITRARY_ARGS.
1604
88423ab1
GB
1605Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
1606
1607 * guile-func-name-check.in: Added this script to statically check
1608 #define FUNC_NAME, #undef FUNC_NAME in the source.
1609
1610 * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
1611 redundant comment, semicolon; caught by new guile-func-name-check
1612 script.
1613
1614 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
1615 Caught by new guile-func-name-check-script.
1616
1617 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
1618
1619 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
1620 guile-func-name-check.
1621
a00c95d9 1622 * guile-doc-snarf.in: Run guile-func-name-check on the file before
88423ab1
GB
1623 doing the snarf.
1624
7f15e635
GB
1625Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
1626
1627 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
1628 port function take const void*, not void*.
1629
bf121b59
GB
1630Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
1631
1632 * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c,
1633 strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
1634 SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
1635 consistency with the other macros dealing with immediate
1636 characters. (Similar to INT -> INUM change a week or so ago).
1637
7965d98f
GB
1638Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
1639
1640 * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c,
1641 net_db.c, read.c, socket.c: Update error messages to use ~A for
1642 %s, ~S for %S to work with new `simple-format' format and be
1643 standardized better.
1644
1645 * print.h, print.c (scm_simple_format): Added `simple-format'
1646 primitive. It's the old scm_display_error, with ARGS now a rest
a00c95d9 1647 parameter, and the destination first instead of last (and a couple
7965d98f
GB
1648 new capabilities inspired by `format' -- #t as destination means
1649 current-output-port, #f means return the formatted text as a
1650 string.
1651
1652 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
1653
1654 * backtrace.c (scm_display_error_message): Rewrote to use
1655 scm_simple_format() procedure.
1656
1657 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
1658
f73d2411
MV
16592000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
1660
1661 Finally applied the libltdl patch from Thomas Tanner, with slight
1662 modifications.
1663
1664 * DYNAMIC-LINKING: Removed because it is obsolete.
1665 * dynl.c: Use ANSI prototypes.
1666 (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen.
1667 * scmconfig.h.in: Do not change, as it is automatically generated.
a00c95d9 1668
f73d2411
MV
1669 1999-07-25 Thomas Tanner <tanner@ffii.org>
1670
1671 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
1672 (obsolete)
1673 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
1674 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
1675 against libltdl
1676 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
1677 * guile.c: register preloaded modules
1678 * scmconfig.h.in: remove obsolete symbols
1679
38c1d3c4
GH
16802000-01-09 Gary Houston <ghouston@arglist.com>
1681
1682 * These changes should make it unnecessary to call tzset from
1683 Scheme after modifying the TZ environment variable, even if the
1684 system date facilities cache the value.
1685 * stime.c (setzone, scm_localtime): added comments.
1686 (tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
1687 (setzone): don't call tzset.
1688 (restorezone): call tzset only if HAVE_TZSET is defined.
1689 (scm_tzset): don't define if HAVE_TZSET not defined. Change the
1690 doc string to indicate that this procedure isn't likely to do
1691 anything useful.
1692 (scm_localtime, scm_strftime, scm_mktime): call tzset if
1693 LOCALTIME_CACHE is defined.
1694
9359d657
MD
16952000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1696
1697 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
1698
f25f761d
GH
16992000-01-09 Gary Houston <ghouston@arglist.com>
1700
1701 * eval.c: define scm_unbound_variable_key ('unbound-variable).
1702 scm_lookupcar1: throw an error with key 'unbound-variable instead
1703 of 'misc-error when an unbound variable is encountered.
1704
a00c95d9 1705 * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
f25f761d
GH
1706 scm_symlink, scm_readlink, scm_lstat),
1707 posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
1708 scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
1709 scm_sync),
a00c95d9 1710 simpos.c (scm_system),
f25f761d
GH
1711 stime.c (scm_times, scm_strptime):
1712 move the HAVE_XXX feature tests out of the procedure bodies.
1713 don't use SCM_SYSMISSING.
1714 scm_validate.h (SCM_SYSMISSING): removed.
1715 error.h, error.c (scm_sysmissing): comment that this is deprecated.
1716 see ChangeLog entry for 1999-12-28.
1717
a4dd2611
GB
1718Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
1719
1720 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
1721
1722Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
1723
1724 * backtrace.c: Fix spelling typo in a comment.
1725
1726 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
1727 text. Reformatted some of the expansions.
1728
5ac36451
GB
1729Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
1730
1731 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
1732 report the position of the argument.
1733
a00c95d9 1734 * error.h, error.c (scm_out_of_range_pos): Added this function to
5ac36451 1735 take extra "pos" argument, the position number of the errant
a00c95d9 1736 argument.
5ac36451
GB
1737
1738 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
1739
1740 * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
1741 and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
1742 prefers that and I'm reasonably indifferent.
1743
1744Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
1745
1746 * snarf.h: Factor out differences between C++ and non-C++ into
1747 SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
1748 definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
1749 Mikael's macros, below, but changed names and SCM_SNARFING no
1750 longer expands to include %%% -- that must appear in the argument
1751 so that the token appears at the call-site as a reminder).
1752
088bb1d4
MD
17532000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1754
1755 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
1756 snarf macro definitions.
1757
636480e6
MD
17582000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1759
1760 * chars.c (scm_integer_to_char): Use Greg's nice
1761 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
1762 adherence to R5RS.
1763
7c5628e2
GB
1764Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
1765
1766 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
1767
2cc0f8cb
GB
1768Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
1769
1770 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
1771 instead of GUILE_PROC.
1772
1773Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
1774
a00c95d9 1775 * alist.c: Do not report mismatch errors on some uses of `tmp' (do
2cc0f8cb
GB
1776 this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS
1777 macro call.
1778
9179dcdd
GB
1779Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
1780
1781 * scm_validate.h: Remove some redundant NIMP tests.
1782
1783 * alist.c: minimize scope of the tmp variables, and initialize
1784 them when declared. The strange SCM_NIMP tests are replaced by
1785 SCM_CONSP tests that more closely reflect the intended semantics.
1786 However, we don't get a performance penalty here, because the
1787 SCM_CONSP test was performed by the ALISTCELL test anyway. * The
1788 extremely ugly use of ASRTGO macros was removed: The calls to
1789 ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
1790 label parameter that only exists when SCM_RECKLESS is not defined.
1791 This works, because ASRTGO itself is defined in a way that it only
1792 makes use of the label parameter if SCM_RECKLESS is not defined
1793 (shudder!). Does guile make at all use of the possibility to
1794 define SCM_RECKLESS? * Codesize is likely to be reduced, since
1795 instead of two calls to SCM_ASSERT performed by the ALISTCELL test
1796 we now only get one test.
1797
1798 * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
1799 SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
1800 some variables in `list?'. Fix `reverse' and `reverse!'
1801 primitives to handle improper lists better.
1802
15b33280
GB
1803Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
1804
1805 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
1806 macros and SCM_DEFINE macros to match GNU coding standards.
1807
ca8cd130
GB
1808Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
1809
1810 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
1811
fb764465
GB
1812Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
1813
1814 * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for
1815 better consistency with the names of other SCM_VALIDATE_ macros
1816 and better conformance to guile naming policy.
1817
1818Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
1819
1820 * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a
1821 SCM_VALIDATE instead of 1 to avoid a check on the argument (since
1822 it's not the actual name of the formal).
1e484823
GB
1823
1824 * guile-snarf.awk.in: Do argument/number mismatch checking and
1825 print warnings in an Emacs compile-mode parseable format.
1826
1827 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
1828 SCM_OUTOFRANGE as 3rd argument.
1829
1830 * random.c: Fix argument/number mismatch (that I introduced :-( ).
1831
1832 * __scm.h: Do not #define SCM_ARG* when snarfing;
1833 lets us distinguish between 1 and SCM_ARG1 when snarfing as only
1834 the former (using the number) requires the argument to match the
1835 formal in the current argument snarfing check.
1836
1837 * snarf.h: Give new definition of SCM_ASSERT when in
a00c95d9 1838 snarfing mode to output a lexically-identifiable sequence that the
1e484823
GB
1839 guile-snarf.awk script uses to verify argument/position matching.
1840
1841 * ramap.c: Remove extraneous #undef FUNC_NAME.
1842
53fc4636
GB
1843Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
1844
1845 * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the
a00c95d9 1846 current version of the same functionality; it writes the .x output
53fc4636
GB
1847 to stdout instead of directly into the file.
1848
1849Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
1850
1851 * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c,
1852 posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
1853 redundant with the safer macros. Patch from Dirk Hermann applied
1854 by hand. Thanks Dirk!
1855
1856 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
1857 uses in random.c.
1858
1859 * ramap.c: whitespace change.
1860
3b5345d9
GB
1861Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
1862
1863 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
1864 removals from Dirk Hermann.
1865
1866 * alist.c: Rename formals to match the parameter names in the
1867 documentation, updates to documentation. Thanks Dirk Hermann!
1868
169aec65
MD
18692000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1870
db62436e
MD
1871 * eval.c (SCM_CEVAL): Reverse order of
1872 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
1873 (Thanks to Brad Knotwell.)
169aec65 1874
da43d822
GB
1875Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
1876
1877 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
a00c95d9 1878 allocated cell.
da43d822
GB
1879
1880 * pairs.h: Added a comment about the need for the SCM_SETCAR in
1881 SCM_NEWCELL macro.
1882
1883Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
1884
1885 * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More
1886 SCM_NIMP tests that were redundant are now eliminated. Patches
1887 from Dirk Hermann applied by hand.
1888
339999c7 1889The ChangeLog continues in the file: "ChangeLog-1996-1999"