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