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