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