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