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