*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
a6596faa
MD
12000-06-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2
3 * modules.c (scm_system_module_env_p): Fixed detection of system
4 modules.
5
c29ee3e5
MV
62000-06-06 Marius Vollmer <mvo@zagadka.ping.de>
7
8 * scmsigs.c (scm_sigaction): Silently ignore setting handlers for
9 `program error signals' because they can't currently be handled by
10 Scheme code.
11
2d9cdf4e
DH
122000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
13
14 * procs.h (SCM_SET_SUBRF): Added.
15
16 * procs.c (scm_make_subr_opt): Don't assign to SCM_SUBRF, use
17 SCM_SET_SUBRF instead. Thanks to Bernard Urban for the bug
18 report.
19
4b479d98
DH
202000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
21
22 * gc.h (SCM_CARLOC, SCM_CDRLOC): Don't take the address of a SCM
23 value.
24
25 * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x,
26 scm_merge_list_step): Don't take the address of SCM_CAR. Use
27 SCM_CARLOC instead. Thanks to Bernard Urban for the bug report.
28
9a09deb1
DH
292000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
30
31 * boolean.h (SCM_TRUE_P): Removed, as people might use it as a
32 replacement for !SCM_FALSEP.
33
34 * backtrace.c (display_error_body), boolean.h (SCM_BOOLP), gc.c
35 (scm_unhash_name), gh_data.c (gh_module_lookup), load.c
36 (scm_primitive_load), print.c (scm_simple_format), procs.c
37 (scm_procedure_documentation), procs.h (SCM_TOP_LEVEL), ramap.c
38 (scm_array_fill_int), scmsigs.c (scm_sigaction), stacks.c
39 (narrow_stack, scm_make_stack, scm_stack_id), symbols.c
40 (scm_string_to_obarray_symbol), throw.c (scm_catch,
41 scm_lazy_catch, scm_ithrow), unif.c (scm_make_uve, scm_array_p,
42 scm_array_set_x, scm_bit_set_star_x, scm_bit_count_star),
43 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_PROC): Replace
44 uses of SCM_TRUE_P (x) with SCM_EQ_P (x, SCM_BOOL_T).
45
2c4fc472
MD
462000-06-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
47
542bfe1d
MD
48 * eval.c (scm_badformalsp): New static function.
49 (SCM_CEVAL): Check arguments for procedure-with-setter closures.
50 (Thanks to Keisuke Nishida.)
51
2c4fc472
MD
52 The major reason for Guile's slow loading speed has been the fact
53 that a chain of Scheme level procedures has been evaluated for
54 every top-level symbol lookup during the first pass through the
55 code.
56
57 The following is a kludge which I suggested four years ago, and
58 which I've repeatedly suggested since. Personally, I've never
59 been bothered by Guile's slow loading speed, so I thought I would
60 let someone else do it...
61
62 But since the new environments will be included first in
63 Guile-1.5, I thought it would make people happy to get the kludge
64 into 1.4.
65
66 * modules.c: Added #include "libguile/vectors.h";
67 Added #include "libguile/hashtab.h";
68 Added #include "libguile/struct.h";
69 Added #include "libguile/variable.h";
70 Capture Scheme level `module-make-local-var!' to be used in the
71 standard eval closure.
72 (scm_standard_eval_closure): New primitive.
73
74 * modules.h (scm_standard_eval_closure): Declare.
75
76 * eval.c (scm_lookupcar): Test for !SCM_CONSP (SCM_CAR (env))
77 instead of SCM_TRUE (scm_procedurep (SCM_CAR (env))).
78
79 * symbols.c (scm_sym2vcell): Bypass dispatch in the evaluator for
80 standard eval closures.
81
82 * variable.c: Code layout fixes.
83
96372e45
MD
842000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
85
86 * Makefile.am: Added LIBS line to libpath which accidentally
87 disappeared in the change of 2000-06-01.
88 (Thanks to Dale P. Smith.)
89
cc0bb1ef
MD
902000-06-03 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
91
6784d5c0
MD
92 * scmsigs.c (scm_segfault): Removed. (Was probably added by
93 mistake since it is not mentioned in ChangeLog.)
94
cc0bb1ef
MD
95 * gc.h (SCM_VALIDATE_CELL): Cast result to (void) in order to
96 avoid compiler warnings in gcc. (Does this work for other
97 compilers?)
98
f8d4d8e5
MD
992000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
100
4ecf5aa3
MD
101 * gc.h (SCM_VALIDATE_CELL): Don't "use" the value returned by
102 abort ().
103 (SCM_CARLOC, SCM_CDRLOC): Define directly instead of using
104 SCM_CELL_OBJECT_0 and SCM_CELL_OBJECT_1. It's not correct to take
105 the address of these expressions since they use SCM_VALIDATE_CELL.
106 (Thanks to Bernard Urban.)
107
f8d4d8e5
MD
108 * dynl.c: Changed #include <ltdl.h> --> #include
109 "libltdl/ltdl.h". (Thanks to Bill Schottstaedt.)
110
b6fae158
CB
1112000-06-01 Craig Brozefsky <craig@red-bean.com>
112
113 * Makefile.am: libguile_la_LDFLAGS gets -version-info args
114 from GUILE-VERSION definition of LIBGUILE version. Added to
115 libpath.h definitions for guileversion and libguileversion which
116 both get their values from GUILE-VERSION definition.
117
7272f6d8
DH
1182000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
119
120 * numbers.h (SCM_BIGP): Don't use SCM_SMOB_PREDICATE in header
121 file: Code using numbers should not be required to include
122 smob.h.
123
b2728432
DH
1242000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
125
126 * coop-threads.c.cygnus, coop-threads.h.cygnus, fsu-pthreads.h,
127 mit-pthreads.c, mit-pthreads.h: Deleted.
128
129 * Makefile.am (EXTRA_DIST), scmsigs.c, threads.[ch]: Drop
130 references to deleted files and fsu/mit thread support in
131 general.
132
f8eaf8b9
DH
1332000-05-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
134
135 * hooks.c (symbol_name, scm_create_hook): Restored the original
136 behaviour of scm_create_hook. Changing it was bad as Carl
137 R. Witty has pointed out.
138
139 * gc.c (scm_init_gc): We can still rely on scm_create_hook to
140 protect the object.
141
e11f8b42
DH
1422000-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
143
144 * gc.c (scm_init_gc): Protect scm_after_gc_hook, since this will
145 soon not be done by scm_create_hook any longer.
146
147 * hooks.c (make_hook, print_hook, scm_create_hook,
148 scm_make_hook_with_name, scm_make_hook), hooks.h (SCM_HOOK_NAME,
149 SCM_HOOK_PROCEDURES, SCM_SET_HOOK_PROCEDURES,
150 scm_make_hook_with_name), init.c (scm_boot_guile_1): Hooks no
151 longer have names. As an intermediate solution, the name
152 predicate is emulated via object properties, but use of this
153 feature is deprecated.
154
155 * hooks.h (scm_free_hook): Removed, as it is never defined.
156
47457e8a
DH
1572000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
158
894a712b
DH
159 * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_FIXABLE):
160 Un-deprecated since otherwise user code can't determine whether a
161 number fits into an inum any longer. The names should be changed
162 some time, though.
163
164 * numbers.c (scm_big2inum): Eliminated use of SCM_UNEGFIXABLE.
165
166 * tags.h (SCM_UNPACK_CAR): Deprecated.
167
1682000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
169
170 * filesys.h (SCM_OPDIRP), fluids.h (SCM_FLUIDP, SCM_FLUID_NUM),
47457e8a
DH
171 fports.h (SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP), hooks.h
172 (SCM_HOOK_ARITY), keywords.h (SCM_KEYWORDP, SCM_KEYWORDSYM),
173 numbers.h (SCM_NUMP, SCM_BIGSIGN, SCM_BDIGITS, SCM_NUMDIGS):
174 Replace SCM_UNPACK_CAR appropriately. Don't access cells via
175 SCM_{SET}?C[AD]R unless they are known to be cons cells.
176
177 * gc.c (scm_heap_seg_data_t, scm_mark_locations, scm_cellp,
178 init_heap_seg): Remove unused struct member variable 'valid'.
179
f9a64404
DH
1802000-05-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
181
182 * fports.c (fport_write), ports.c (scm_markstream, scm_port_mode,
183 scm_print_port_mode), ports.h (SCM_OPPORTP, SCM_OPINPORTP,
184 SCM_OPOUTPORTP, SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP),
185 procs.h (SCM_CLOSCAR), unif.h (SCM_ARRAY_NDIM, SCM_ARRAY_CONTP),
186 variable.h (SCM_VARIABLEP): Replace SCM_UNPACK_CAR
187 appropriately.
188
206d3de3
DH
1892000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
190
191 * gc.c (free_list_length), hash.c (scm_hasher), macros.c
192 (scm_macro_type), objects.c (scm_class_of), options.c
193 (scm_options), print.c (scm_iprin1), strports.c (st_seek), throw.c
194 (SCM_LAZY_CATCH_P): Replace SCM_UNPACK_CAR appropriately.
195
445f675c
DH
1962000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
197
198 * eval.c (scm_macroexp, SCM_CEVAL, scm_force), tags.h: Replace
199 SCM_UNPACK_CAR with SCM_CELL_TYPE or SCM_CELL_WORD_0.
200
201 * eval.c (scm_force): Add documentation.
202
203 * eval.c (scm_force, scm_cons_source): Don't access cells via
204 SCM_{SET}?C[AD]R unless they are known to be cons cells.
205
6ba93e5e
DH
2062000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
207
208 * strings.h (SCM_NSTRINGP, SCM_NRWSTRINGP), tags.h
209 (SCM_NDOUBLE_CELLP), vectors.h (SCM_NVECTORP): Deprecated.
210
211 * gc.c (scm_igc), gc.h (SCM_PTR_MASK, SCM_PTR_LT): Removed #ifdef
212 nosve #endif conditionally compiled code.
213
fe517a7d
ML
2142000-05-23 Michael Livshin <mlivshin@bigfoot.com>
215
216 * gc.c (scm_heap_seg_data_t): fixed comment for the `span' member.
217
a564e775
ML
2182000-05-22 Michael Livshin <mlivshin@bigfoot.com>
219
220 * guile-doc-snarf.in: put the preprocessed file through sed to
cf00e803
ML
221 trim all lines to 1024 chars. I hope it doesn't break anybody's
222 sed. we'll see. (note: this is lossy trimming, i.e. the spill
223 isn't wrapped around but actually chopped off. this seemed to me
224 safe because the current snarfer doesn't understand multi-line
225 cookies anyway. in the long term, it would be nice not to depend
226 on AWK for anything.)
a564e775
ML
227
228 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): reverted
229 the previous change to this macros, after deciding to torture the
230 snarfer instead.
231
686765af
ML
2322000-05-21 Michael Livshin <mlivshin@bigfoot.com>
233
234 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): brought
cebd4392
ML
235 the yucky, ugly and nasty conditional compilation back. sorry,
236 but it was either that or requiring GAWK to build Guile.
237 (lots of places): removed the code that implemented the old GC
238 scheme.
686765af
ML
239
240 * init.c (scm_boot_guile_1): removed the code conditioned on
241 !GUILE_NEW_GC_SCHEME.
242
243 * __scm.h: (GUILE_NEW_GC_SCHEME): removed.
244
245 * gc.c (scm_protect_object, scm_unprotect_object): change the
246 implementation to more efficient (at least in the time complexity
247 sense). the calls should now also be thread-safe -- I suspect
248 that people expect them to be. (thanks to Han-Wen Nienhuys)
cebd4392
ML
249 (lots of places): removed the code that implemented the old GC
250 scheme.
686765af
ML
251
252 * hashtab.c (scm_hash_fn_create_handle_x): add missing
cebd4392
ML
253 SCM_REALLOW_INTS before return. I really wonder about the
254 possible interactions between hashtables, threads & GC. it
255 doesn't look healthy at all.
686765af 256
44e47754
DH
2572000-05-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
258
259 * unif.c (scm_bit_count): Fixed the parameter checks. Thanks to
260 Dale P. Smith.
261
46d53380
DH
2622000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
263
264 * __scm.h (SCM_DEBUG_CELL_ACCESSES), gc.h (SCM_): Added as a new
265 debug option to verify all accesses to cells actually access
266 objects on the heap.
267
268 * gc.h (SCM_VALIDATE_CELL): Added. Only performs validation if
269 SCM_DEBUG_CELL_ACCESSES is set to 1.
270
271 (SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD,
272 SCM_SET_CELL_OBJECT): Use SCM_VALIDATE_CELL to check every cell
273 that is accessed.
274
1a548472
DH
2752000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
276
277 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs,
278 gh_scm2floats, gh_scm2doubles): Change !SCM_NIMP to SCM_IMP.
279
280 * gc.c (scm_cellp): Fixed and simplified.
281
282 * throw.c (JBJMPBUF, SETJBJMPBUF, SCM_JBDFRAME, SCM_SETJBDFRAME,
283 make_jmpbuf, scm_init_throw): Now using double cells to represent
284 jump buffers when using debug extensions.
285
286 (freejb): Removed.
287
bcee10dd
DH
2882000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
289
290 * gh.h gh_data.c gh_funcs.c (gh_new_procedure*, gh_chars2byvect,
291 gh_shorts2svect, gh_longs2ivect, gh_ulongs2uvect, gh_floats2fvect,
292 gh_doubles2dvect, gh_doubles2scm, gh_define, gh_lookup,
293 gh_module_lookup): Accept const pointers as parameters.
294
295 * gh.h gh_data.c (gh_int2scmb): Deprecated.
296
2972000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
af45e3b0
DH
298
299 * __scm.h (SCM_DEBUG_REST_ARGUMENT): Renamed from
300 SCM_DEBUG_REST_ARGUMENTS in order to clarify that we don't test
301 the actual arguments in the list, but rather the rest argument as
302 a list of arguments.
303
304 * validate.h (SCM_VALIDATE_REST_ARGUMENT): Added.
305
306 * async.c (scm_noop), eval.c (scm_map, scm_for_each), list.c
307 (scm_list_star, scm_append, scm_append_x), ports.c
308 (scm_close_all_ports_except), ramap.c (scm_array_map_x,
309 scm_array_for_each), regex-posix.c (scm_make_regexp), stacks.c
310 (scm_make_stack), strings.c (scm_string_append), struct.c
311 (scm_make_struct, scm_make_vtable_vtable): Validate rest arguments.
312
313 * dynl.c (DYNL_GLOBAL, sysdep_dynl_link, kw_global, sym_global,
314 scm_dynamic_link, scm_init_dynamic_linking), dynl.h
315 (scm_dynamic_link): Removed possibility to pass flags to
316 scm_dynamic_link, as it had no effect anyway.
317
318 * filesys.c (scm_fcntl): Made single optional rest argument into
319 a standard optional argument.
320
321 * hooks.c (scm_run_hook): A list of rest arguments is never
322 SCM_UNBNDP.
323
324 * list.c (scm_append, scm_append_x), stacks.c (scm_make_stack),
325 strings.c (scm_string_append): Don't perform half-hearted checks
326 to see whether the rest argument forms a proper list any more, use
327 SCM_VALIDATE_REST_ARGUMENTS instead.
328
329 * ports.c (scm_close_all_ports_except): Accept empty list of rest
330 arguments.
331
332 * posix.c (scm_convert_exec_args), print.c (scm_simple_format):
333 Simplify verification of rest argument.
334
335 * stacks.c (scm_make_stack), stacks.h (scm_make_stack), throw.c
336 (ss_handler, handler_message): Make first mandatory rest argument
337 of scm_make_stack into a standard mandatory argument.
338
339 * unif.c (scm_transpose_array, scm_enclose_array,
340 scm_array_in_bounds_p), unif.h (scm_transpose_array,
341 scm_enclose_array, scm_array_in_bounds_p): Make first mandatory
342 rest argument into a standard mandatory argument.
343
c8a54c4b
DH
3442000-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
345
346 * __scm.h: Added SCM_DEBUG as default debug option. (Thanks to
347 Keisuke Nishida for the suggestion.) Added debug option
348 SCM_DEBUG_REST_ARGUMENTS.
349
350 * eval.c (scm_map, scm_for_each): Make sure all lists have the
351 same length. Also, removed redundant parameter checks.
352
56100716
DH
3532000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
354
355 * Makefile.am: Let 'make clean' remove *.x and *.doc files.
356
357 * __scm.h: Improved explanation of giving options to make.
358
359 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS), tags.h
360 (SCM_STRICT_TYPING, SCM_DEBUG_TYPING_STRICTNESS): Renamed
361 SCM_STRICT_TYPING to SCM_DEBUG_TYPING_STRICTNESS and moved the
362 corresponding declaration and comment to __scm.h.
363
364 * _scm.h (errno), gc.h (SCM_CELLPTR, SCM_PTR_LT), numbers.c
365 (scm_remainder, scm_modulo), numbers.h (SCM_SRS, SCM_MAKINUM,
366 SCM_INUM): Removed conditionally compiled code for Turbo C.
367
368 * gdbint.c (gdb_maybe_valid_type_p): Eliminated call to scm_tag.
369 That check can be assumed to be redundant except for very rare
370 conditions that actually indicate broken heap data.
371
3c9f20f8
DH
3722000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
373
374 * numbers.c (scm_logcount, scm_integer_length): Reordered
375 dispatch sequence.
376
8536a982
GH
3772000-05-15 Gary Houston <ghouston@arglist.com>
378
379 * stime.c (scm_strftime): don't reset TZ if zone is an empty
380 string. append a "0" to the zone for TZ.
c8a54c4b 381
78166ad5
DH
3822000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
383
384 * numbers.c (scm_logbit_p, scm_bit_extract): Reordered dispatch
385 sequence.
386
387 (scm_bit_extract): Fixed handling of bignums.
388
f5f2dcff
DH
3892000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
390
391 * async.c (scm_sys_gc_async_thunk), chars.h (SCM_ICHRP, SCM_ICHR,
392 SCM_MAKICHR), continuations.h (SCM_SETJMPBUF), error.c
393 (scm_sysmissing), error.h (scm_sysmissing), evalext.c
394 ('serial-map), ioext.c (scm_fseek), ioext.h (scm_fseek),
395 keywords.c (scm_tc16_kw, scm_init_keywords), ports.h (SCM_CRDY,
396 SCM_INPORTP, SCM_OUTPORTP), ramap.c ('serial-array-copy!,
397 'serial-array-map!), smob.c (scm_newsmob), smob.h (scm_smobfuns,
398 scm_newsmob), tag.c (scm_tag), tag.h (scm_tag), tags.h
399 (scm_tc16_flo, scm_tc_flo, scm_tc_dblr, scm_tc_dblc): Wrapped
400 deprecated code between #if (SCM_DEBUG_DEPRECATED == 0) #endif.
401
402 * fports.c (scm_fport_buffer_add), ports.c (scm_input_port_p,
403 scm_output_port_p), print.c (scm_get_print_state), validate.h
404 (SCM_VALIDATE_CHAR): Replace use of deprecated macros
405 SCM_INPORTP, SCM_OUTPORTP, SCM_ICHRP by SCM_INPUT_PORT_P,
406 SCM_OUTPUT_PORT_P, SCM_CHARP, respectively.
407
07ccd85d
GH
4082000-05-14 Gary Houston <ghouston@arglist.com>
409
32f1b9fd
GH
410 * stime.c (scm_strftime): if HAVE_TM_ZONE is not defined, hack the
411 TZ environment variable so that the %Z format returns the zone
412 from the input vector instead of the system default.
413
07ccd85d
GH
414 from Keisuke Nishida:
415 * fports.c (scm_setvbuf): minor docstring fix.
416 * ports.h (scm_generic_fgets): obsolete prototype deleted.
417
3a9809df
DH
4182000-05-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
419
420 * __scm.h: Added new section for debugging options.
421
422 (SCM_DEBUG_DEPRECATED): If 1, no deprecated code is included to
423 help developers to get rid of references to deprecated code.
424
425 * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_UNEGFIXABLE,
426 SCM_FIXABLE, SCM_FLOBUFLEN): These macros are no longer provided
427 as part of the interface and are marked as deprecated in the
428 header file.
429
430 * numbers.c (scm_make_real, scm_make_complex): Inlined the
431 corresponding macros SCM_NEWREAL and SCM_NEWCOMPLEX,
432 respectively.
433
434 * numbers.h (SCM_NEWREAL, SCM_NEWCOMPLEX, SCM_INEXP, SCM_CPLXP,
435 SCM_REAL, SCM_IMAG, SCM_REALPART, scm_makdbl, SCM_SINGP,
436 SCM_NO_BIGDIG, SCM_NUM2DBL, scm_dblproc): Deprecated.
437
e828cb75
DH
4382000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
439
440 * gc.h (scm_cell, SCM_CELL_WORD, SCM_CELL_OBJECT,
441 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT): Scheme cells now consist
442 of two scm_bits_t values instead of two SCM values, because it is
443 legal for cell entries to hold values that are not scheme objects.
444
445 (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR):
446 Use SCM_SETC[AD]R to modify contents of pairs.
447
5986c47d
DH
4482000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
449
450 * numbers.c (IS_INF, isfinite): Added FIXME comment.
451
452 (scm_abs, scm_magnitude): Make these two independent of each
453 other. scm_abs now reports an error if given a complex argument.
454
455 (scm_istr2flo, scm_integer_p). Use SCM_REAL_VALUE instead of
456 SCM_REALPART if the object is known to be real.
457
458 (scm_init_numbers): No need to use SCM_NEWREAL macro for speed
459 here.
460
461 * numbers.h (SCM_SINGP): Set to 0 instead of SCM_BOOL_F.
462
eb42e2f0
DH
4632000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
464
465 * eq.c (scm_eqv_p): Separate handling of real and complex
466 values. Remove #ifdef SCM_BIGDIG #endif test.
467
468 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_scm2floats,
469 gh_scm2doubles), hash.c (scm_hasher), ramap.c (scm_array_fill_int,
470 ramap_rp, scm_array_map_x), random.c (vector_scale,
471 vector_sum_squares), unif.c (scm_make_uve, scm_array_p,
472 scm_array_set_x): Use SCM_REAL_VALUE instead of SCM_REALPART if
473 the object is known to be real. Use SCM_COMPLEXP instead of
474 deprecated SCM_CPLXP. Use SCM_INEXACTP instead of deprecated
475 SCM_INEXP.
476
7235ee58
DH
4772000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
478
479 * numbers.c: No need to include unif.h.
480
481 (IS_INF): Returned to old test for now: x == x + 1 will not work
482 for large numbers due to rounding errors.
483 Thanks to Kalle Olavi Niemitalo.
484
bb628794
DH
4852000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
486
487 * numbers.c (scm_divbigdig): Removed outdated comment.
488
489 (scm_number_to_string, scm_string_to_number, scm_number_p,
490 scm_real_p, scm_integer_p, scm_inexact_p, scm_gr_p, scm_leq_p,
491 scm_geq_p, scm_make_rectangular, scm_make_polar,
492 scm_inexact_to_exact): Added comments.
493
494 (add1, scm_init_numbers): Removed add1.
495
98cb6e75
DH
4962000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
497
498 * numbers.c (IS_INF): The new test is x == x + 1. The old test
499 x == x/2 did not work for zero values. Thanks to Han-Wen Nienhuys
500 and Ivan Toshkov.
501
502 (scm_number_to_string, scm_sum, scm_difference, scm_two_doubles,
503 scm_num2long, scm_num2long_long, scm_num2ulong): Reordered
504 dispatch sequence.
505
c45c2b6b
MV
5062000-05-09 Marius Vollmer <mvo@zagadka.ping.de>
507
508 * scmsigs.c (take_signal): Execute SCM_ASYNC_TICK for SIGSEGV,
509 SIGILL and SIGBUS signals. These signals are not continuable and
510 must be handled for real right away.
511
c2ff8ab0
DH
5122000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
513
514 * numbers.c (scm_zero_p, scm_positive_p, scm_negative_p,
515 scm_real_part, scm_imag_part, scm_magnitude,
516 scm_inexact_to_exact): Reordered dispatch sequence.
517
1a450153
DH
5182000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
519
520 * feature.c: No need to include "libguile/smob.h"
521
522 (scm_loc_features, features, scm_add_feature, scm_init_feature):
523 Removed variable 'scm_loc_features' as a pointer to the SCM value
524 holding the features list. Using variable 'features' instead,
525 which holds the interned pair. Thus, SCM_SETCDR can be used
526 instead of pointer trickery.
527
665aeda3
DH
5282000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
529
530 * alist.c (scm_acons): Use SCM{_SET}?_CELL_OBJECT as long as a
531 cell is not known to be a valid pair.
532
ab66ae47
DH
5332000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
534
535 * eval.c (ASRTSYNTAX, scm_m_body, scm_m_letrec1): Removed
536 ASRTSYNTAX. Using SCM_ASSYNT instead.
537
538 (scm_m_body): Don't create a redundant cons cell.
539
540 (scm_m_do): Removed redundant test 'bodycheck'.
541
542 (bodycheck): Removed.
543
544 * stacks.c (stack_depth, read_frame, read_frames): Removed
545 redundant calculation of size, minimized some variable scopes.
546
4983cbe4
DH
5472000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
548
549 * pairs.c (scm_cons, scm_cons2): Use SCM{_SET}?_CELL_OBJECT as
550 long as a cell is not known to be a valid pair.
551
552 (scm_pair_p): Eliminated redundant SCM_IMP test.
553
44d3cb0d
DH
5542000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
555
556 * eval.c (scm_m_body, scm_macroexp, unmemocopy, scm_eval_args,
557 scm_deval_args): Eliminated redundant SCM_IMP tests.
558
559 * hashtab.c (scm_ihashx, scm_sloppy_assx, scm_delx_x), weaks.c
560 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table,
561 scm_make_doubly_weak_hash_table): Fixed critical sections.
562 Thanks to Keisuke Nishida.
563
9a00c9fc
DH
5642000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
565
566 * numbers.c (scm_logand, scm_logior, scm_logxor, scm_logtest):
567 Fixed some goto-related initialization bugs (introduced by me).
568
b82c6ce0
DH
5692000-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
570
571 * numbers.h (SCM_INUM0): Uses SCM_MAKINUM instead of SCM_PACK.
572
573 * dynl.c (dynl_obj, DYNL_OBJ, get_dynl_obj): Removed.
574
575 (DYNL_FILENAME, DYNL_HANDLE): Use SCM_CELL... macros instead of
576 pointer trickery.
577
578 (SET_DYNL_HANDLE): Added.
579
580 (scm_dynamic_object_p): Simplified.
581
582 (scm_dynamic_unlink, scm_dynamic_func): Changed comment. Deliver
583 better error message when accessing unlinked dynamic objects.
584 Eliminated call to get_dynl_obj.
585
106428b3
MV
5862000-05-03 Marius Vollmer <mvo@zagadka.ping.de>
587
7eea5296 588 * scmsigs.c (orig_handlers) [!HAVE_SIGACTION]: Fix declaration to
106428b3
MV
589 be an array of function pointers instead of being a pointer to an
590 array returning function. Thanks to Kalle Olavi Niemitalo!
591
f4c627b3
DH
5922000-05-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
593
594 * numbers.c (scm_divbigbig, scm_divbigint), numbers.h
595 (scm_divbigbig, scm_divbigint): Don't return zero any more to
596 indicate that a division has a remainder, return SCM_UNDEFINED
597 instead. It is improbable that anyone actually used these
598 functions outside of numbers.c. For this reason and due to the
599 change in behaviour the functions are static now. Thus, if
600 surprisingly there are users of these functions they will at least
601 get alarmed.
602
603 * numbers.c: Removed #ifdef SCM_BIGDIG #endif in those functions,
604 that already have a clean dispatch order. Note: SCM_BIGDIG is
605 always defined.
606
607 * numbers.c (scm_inexact_p): Simplified.
608
609 * numbers.c (scm_num_eq_p, scm_less_p, scm_max, scm_min,
610 scm_product, scm_num2dbl, scm_angle): Reordered dispatch
611 sequence, thereby fixing some comparisons of SCM values with
612 integer constants.
613
614 * numbers.c (scm_divide): Division by zero of inums leads to an
615 error now. (Formerly, an infinite number was returned.)
616
617 Respect the fact, that scm_divbigbig does now return SCM_UNDEFINED
618 if a division has a remainder.
619
3a6e6616
GH
6202000-05-02 Gary Houston <ghouston@arglist.com>
621
622 * Makefile.am (INCLUDES): add ${INCLTDL} (thanks to Tim Mooney).
623
f8de44c1
DH
6242000-05-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
625
626 * numbers.c (scm_logtest, scm_division): Reordered dispatch
627 sequence, thereby fixing some comparisons of SCM values with
628 integer constants.
629
630 * numbers.h (scm_makdbl): Mark as deprecated at the point of
631 declaration.
632
633 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_double2scm,
634 gh_doubles2scm), numbers.c (scm_istr2flo, scm_max, scm_min,
635 scm_sum, scm_difference, scm_product, scm_divide, scm_sys_expt,
636 scm_sys_atan2, scm_make_rectangular, scm_make_polar,
637 scm_real_part, scm_imag_part, scm_magnitude, scm_angle,
638 scm_long2num, scm_long_long2num, scm_ulong2num), ramap.c
639 (ramap_rp, scm_array_map_x), random.c (scm_random,
640 scm_random_uniform, scm_random_normal_vector_x, scm_random_exp),
641 struct.c (scm_struct_ref), unif.c (scm_array_to_list): Replace
642 call to scm_makdbl with a call to scm_make_real or
643 scm_make_complex, depending on whether the imaginary part is known
644 to be zero.
645
7f5fa419
GH
6462000-05-01 Gary Houston <ghouston@arglist.com>
647
0607c109
GH
648 * scmsigs.c: fix the definition of orig_handlers for the case
649 that HAVE_SIGACTION is not defined (thanks to
650 Kalle Olavi Niemitalo).
651
7f5fa419
GH
652 * Makefile.am: remove include_HEADERS (was libguile.h)
653 libguile.h: moved to top level directory.
654
09fb7599
DH
6552000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
656
657 * numbers.c (SCM_SWAP): Moved to the top of the file to allow for
658 a wider use.
659
660 * numbers.c (scm_modulo, scm_gcd, scm_lcm, scm_logand, scm_logior,
661 scm_logxor): Reordered dispatch sequence, thereby fixing some
662 comparisons of SCM values with integer constants.
663
664 * number.c (scm_logtest): Removed some redundant SCM_{N}?IMP
665 tests.
666
89a7e495
DH
6672000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
668
669 * numbers.c (scm_quotient, scm_remainder): Removed code that was
670 conditionally compiled based on BADIVSGNS. BADIVSGNS does not
671 occur anywhere else throughout guile.
672
673 * numbers.c (scm_quotient): Fixed parameter number in error
674 message.
675
676 * numbers.c (scm_remainder): Reordered dispatch sequence.
677
a4fbabb3
GH
6782000-04-25 Gary Houston <ghouston@arglist.com>
679
680 * posix.c (scm_execlp): docstring fix (thanks to Martin
681 Grabmueller).
682
09e4d064
DH
6832000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
684
685 * eval.c (undef_object): Made into a local static variable
686 (suggested by Jost Boekemeier).
687
e59bb516
DH
6882000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
689
690 * pairs.c (cxrs, scm_init_pairs): Simplify initialization of
691 c[ad]+r functions.
692
693 * procs.c (scm_init_iprocs), procs.h (scm_subr, scm_iproc,
694 scm_dsubr, scm_init_iprocs): Removed.
695
696 * procs.h (SCM_SUBRF, SCM_DSUBRF): Access the cell words
697 directly instead of casting a cell to a C struct.
698
820920e6
MD
6992000-04-22 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
700
701 Better modularization of GC extensions through new C level GC
702 hooks:
703
704 * weaks.c (scm_weaks_prehistory): New function: Add
705 scm_weak_vector_gc_init to scm_before_mark_c_hook; Add
706 scm_mark_weak_vector_spines to scm_before_sweep_c_hook.
707 (scm_scan_weak_vectors): New function; added to
708 scm_after_sweep_c_hook.
709
710 * weaks.h (scm_weak_vectors, scm_weaks_prehistory): Added
711 declarations.
712
713 * guardians.h (scm_guardian_gc_init, scm_guardian_zombify): Are
714 now static.
715
716 * guardians.c (scm_guardian_gc_init): Turned into a hook function
717 and added to scm_before_mark_c_hook.
718 (scm_guardian_zombify): Turned into a hook function and added to
719 scm_before_sweep_c_hook.
720
721 * async.c (scm_sys_gc_async_thunk): Run after-gc-hook.
722 Added #include "libguile/gc.h".
723
724 * gc.h: Added #include "libguile/hooks.h".
725
726 * gc.c: Removed #include "libguile/guardians.h".
727 (scm_before_gc_c_hook, scm_before_mark_c_hook,
728 scm_before_sweep_c_hook, scm_after_sweep_c_hook,
729 scm_after_gc_c_hook): New C level hooks.
730 (scm_after_gc_hook): New Scheme level hook.
731 (scm_gc_sweep): Moved scanning of weak vectors to weaks.c.
732 (scm_igc): Moved initialization of scm_weak_vectors and the call
733 to scm_guardian_gc_init to respective module.
734 (scm_mark_weak_vector_spines): Moved to weaks.c;
735 Call to scm_guardian_zombify moved to guardians.c;
736 Run scm_before_gc_c_hook, scm_before_sweep_c_hook,
737 scm_after_gc_c_hook at appropriate places.
738 (scm_init_gc): Initialize scm_after_gc_hook.
739
740 * hooks.c, hooks.h (scm_make_hook_with_name): Removed deprecated
741 function.
742
743 * init.c (scm_boot_guile_1): Added `scm_init_hooks'.
744
745 * Makefile.am: Added hooks.c, hooks.h, hooks.x.
746
747 * feature.c, feature.h: Broke out hook code into separate files.
748
749 * hooks.c, hooks.h: New files.
9764c29b 750
a0599745
MD
751 * *.*: Change includes so that they always use the "prefixes"
752 libguile/, qt/, guile-readline/, or libltdl/.
753 (Thanks to Tim Mooney.)
754
755 * Makefile.am (INCLUDES): Removed THREAD_CPPFLAGS and INCLTDL.
756 (DEFS): Added. automake adds -I options to DEFS, and we don't
757 want that.
758 Removed all -I options except for the root source directory and
759 the root build directory.
760
f4b0c568
MD
761 * numbers.c (scm_odd_p, scm_even_p): Use SCM_WRONG_TYPE_ARG
762 instead of SCM_ASSERT (0, ...). (Some compilers will complain
763 about control reaching end of function otherwise, and, besides,
764 the new code is not less clear.)
765
9764c29b
MD
766 * gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Added
767 calls to malloc debugging functions.
768
769 * init.c (scm_boot_guile_1): Added calls to debug-malloc init
770 functions.
771
772 * Makefile.am: Added debug-malloc.c, debug-malloc.h,
773 debug-malloc.x.
774
775 * debug-malloc.c, debug-malloc.h: New files.
776
4219f20d
DH
7772000-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
778
779 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p): Added
780 documentation strings.
781
782 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p, scm_abs,
783 scm_quotient): Reordered dispatch sequence to first handle
784 immediates, second handle bignums and finally handle generic
785 functions respectively signal wrong type arguments. Hopefully
786 this will allow for easier separation when goops is integrated.
787
195e6201
DH
7882000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
789
790 * gc.c (which_seg): Use SCM2PTR to convert a non immediate SCM
791 variable into a pointer to a heap cell.
792
793 * gc.c (scm_mark_locations, scm_cellp, init_heap_seg,
794 scm_unhash_name): Remove redundant cast to SCM_CELLPTR.
795
9e882eec
DH
7962000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
797
798 * print.c (scm_iprin1): Don't assign zero to SCM values, use
799 SCM_UNDEFINED instead.
800
801 * weaks.c (scm_make_weak_vector): Fix assignment of zero to a
802 vector element. (Still to be improved)
803
3201d763
DH
8042000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
805
806 * eval.c (undef_cell): Removed, replaced by:
807
808 (undef_object): Added to replace undef_cell.
809
810 (scm_lookupcar, scm_lookupcar1): Use undef_object.
811
812 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
813 scm_m_atbind, CHECK_EQVISH, SCM_CEVAL), procs.h (SCM_SETCODE):
814 Don't perform arithmetic operations with SCM values.
815
816 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
817 scm_m_atbind, scm_eval_args, scm_deval_args, SCM_CEVAL): Use
818 symbolic names for the tc3 type codes.
819
820 * eval.c (scm_m_define, SCM_CEVAL, SCM_APPLY): Remove redundant
821 cast to SCM.
822
823 * eval.c (scm_eval_args, scm_deval_args, SCM_CEVAL): Made the
824 access of the struct vcell element explicit.
825
f7c38587
MD
8262000-04-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
827
828 * struct.c (scm_struct_free_light, scm_struct_free_standard,
829 scm_struct_free_entity): Use `scm_must_free' instead of `free'.
830
831 * procs.c (scm_make_subr_opt): Tell scm_must_realloc that we're
832 realloc:ing scm_subr_table ("what" instead of "who").
833
834 * numbers.c (scm_adjbig): Ditto.
835
baa702c8
DH
8362000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
837
838 * unif.c (l2ra): Don't eliminate the call to scm_array_set_x
839 itself, as was done in the previous 'patch'. (Thanks to Radey
840 Shouman)
841
fee7ef83
DH
8422000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
843
844 * options.c (scm_options), read.c (recsexpr): Remove redundant
845 SCM_IMP test.
846
847 * print.c (scm_iprin1): Made the access of the struct vcell
848 element explicit.
849
850 * print.h (SCM_PRINT_CLOSURE): Added call to SCM_PACK.
851
852 * ramap.c (scm_ra_eqp, ra_compare), unif.c
853 (scm_uniform_vector_ref, scm_cvref, rapr1): Separated accesses to
854 unsigned long and signed long arrays and clarified the way the
855 access is performed.
856
857 * ramap.c (scm_array_map_x, raeql), read.c (scm_lreadr), stacks.c
858 (narrow_stack), unif.c (scm_cvref, scm_uniform_array_read_x,
859 scm_raprin1): Use SCM_EQ_P to compare SCM values.
860
861 * strings.c (scm_makstr): Treat the msymbol slots as a field of
862 scm_bits_t values.
863
864 * struct.h (SCM_SET_VTABLE_DESTRUCTOR): Treat the struct data as
865 a field of scm_bits_t values.
866
867 * unif.c (l2ra): Don't test result of scm_array_set_x against
868 zero: It is always SCM_UNSPECIFIED.
869
9d0633a8
MD
8702000-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
871
872 * script.c (scm_compile_shell_switches): Also enable
873 record-positions when given the --debug option. (Thanks to Diego
874 Dainese.)
875
230d095f
DH
8762000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
877
878 * print.c (ENTER_NESTED_DATA, print_circref, scm_iprlist):
879 Compare SCM's with SCM_EQ_P.
880
881 * print.c (scm_make_print_state), srcprop.c
882 (scm_source_properties): Use valid scheme object to initialize
883 SCM variable.
884
885 * print.c (scm_iprin1): Remove redundant calls to SCM_UNPACK.
886
c8045e8d
DH
8872000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
888
889 * struct.c (scm_alloc_struct, scm_struct_free_0,
890 scm_struct_free_light, scm_struct_free_standard,
891 scm_struct_free_entity, scm_make_struct, scm_make_vtable_vtable),
892 struct.h (scm_struct_free_t, scm_alloc_struct, scm_struct_free_0,
893 scm_struct_free_light, scm_struct_free_standard,
894 scm_struct_free_entity): Struct data regions (and thus also
895 vtable data regions) are now C arrays of scm_bits_t elements.
896
897 * gc.c (scm_gc_mark, scm_gc_sweep, scm_unhash_name): Made the
898 mixup of glocs and structs explicit.
899
900 * gc.c (scm_unprotect_object): Compare SCM's with SCM_EQ_P.
901
b0c54567
DH
9022000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
903
904 * eval.c (scm_unmemocar): Use macros to test for gloc cell.
905 Minimize scope of variable 'ir'.
906
907 * eval.h (SCM_IFRAME, SCM_IDIST), weaks.h (SCM_IS_WHVEC_ANY):
908 Added missing call to SCM_UNPACK.
909
b9c90f11
MD
9102000-04-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
911
7aac9824 912 * validate.h (SCM_VALIDATE_INUM_RANGE_COPY,
2891588b 913 SCM_VALIDATE_NUMBER_COPY): New macros.
b9c90f11 914
9ae58e2d
MD
9152000-04-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
916
917 * script.c (scm_compile_shell_switches): Added --debug option.
918
49e12eb3
MD
9192000-04-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
920
921 * vectors.c (scm_vector_set_x): Return SCM_UNSPECIFIED (as
922 specified by R5RS).
923
7c1e0b12
MD
9242000-04-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
925
926 * ports.h (SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P): New macros.
927 (SCM_INPORTP, SCM_OUTPORTP): Marked as deprecated.
928
929 * validate.h (SCM_VALIDATE_INPUT_PORT, SCM_VALIDATE_OUTPUT_PORT):
930 New macros.
931 Cleanup of code layout.
932
933 * ports.c, ports.h (close-input-port, close-output-port): New R5RS
934 procedures.
935
01c8a3dd
DH
9362000-04-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
937
938 * continuations.c (scm_make_cont, scm_dynthrow): Completely
939 separated implementations for defined (CHEAP_CONTINUATIONS) and
940 !defined (CHEAP_CONTINUATIONS). Also, now using memcpy for stack
941 copying.
942
943 * continuations.c (grow_stack): Renamed from grow_throw.
944
945 * continuations.c (copy_stack_and_call): New static function.
946
947 * continuations.c (scm_dynthrow): Simplified and made static.
948
949 * continuations.h (scm_dynthrow): Made static.
950
553f4414
MD
9512000-04-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
952
953 * unif.c, unif.h (shared-array-root, shared-array-offset,
954 shared-array-increments): New primitives.
955
cf551a2b
DH
9562000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
957
958 * gc.c (scm_gc_sweep): Simplify the computation of freed memory
959 size for msymbols.
960
961 * symbols.h (SCM_SLOTS, SCM_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
962 SCM_SYMBOL_HASH): The msymbol slots are now a field of scm_bits_t
963 values.
964
965 * symbols.h (SCM_SET_SYMBOL_FUNC, SCM_SET_SYMBOL_PROPS): New
966 macros.
967
968 symbols.c (scm_intern_obarray_soft, msymbolize, scm_symbol_fset_x,
969 scm_symbol_pset_x): Use them.
970
971 * symbols.c (scm_symbol_hash): Unpack to access SCM raw data.
972
12a8b769
DH
9732000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
974
975 * ports.c (scm_port_print): The port data is read as raw data.
976
977 * ports.h (SCM_TC2PTOBNUM, SCM_PTOBNUM): Fix SCM/scm_bits_t
978 mismatch.
979
d8c40b9f
DH
9802000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
981
982 * eval.c (SCM_CEVAL), objects.c (scm_mcache_lookup_cmethod,
983 scm_make_subclass_object), objects.h (SCM_CLASS_FLAGS,
984 SCM_ENTITY_PROCEDURE, SCM_ENTITY_SETTER), struct.c
985 (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
986 scm_struct_ref, scm_struct_set_x), struct.h (SCM_STRUCT_DATA):
987 The struct data is now an array of scm_bits_t variables.
988
989 * objects.h (SCM_SET_ENTITY_PROCEDURE): New macro.
990
cf551a2b 991 objects.c (scm_set_object_procedure_x): Use it.
d8c40b9f
DH
992
993 * struct.c (scm_struct_init): Unused variable 'data' removed.
994
995 (scm_struct_vtable_p): Redundant SCM_IMP tests removed.
996
1c3e63f0
DH
9972000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
998
999 * objects.h (SCM_OBJ_CLASS_FLAGS, SCM_OBJ_CLASS_REDEF), struct.h
1000 (SCM_STRUCT_VTABLE_DATA, SCM_STRUCT_LAYOUT, SCM_STRUCT_VTABLE,
1001 SCM_STRUCT_PRINTER): The struct vtable data is now an array of
1002 scm_bits_t variables.
1003
1004 * struct.h (SCM_SET_STRUCT_LAYOUT): New macro.
1005
cf551a2b 1006 struct.c (scm_make_vtable_vtable): Use it.
1c3e63f0 1007
bc66755e
DH
10082000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
1009
1010 * symbols.c (scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
1011 scm_intern_obarray_soft, scm_sysintern0,
1012 scm_string_to_obarray_symbol, scm_intern_symbol,
1013 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
1014 scm_symbol_bound_p, scm_symbol_set_x): Don't use C operators to
1015 compare SCM values.
1016
828865c3
DH
10172000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
1018
1019 * numbers.c (scm_quotient, scm_modulo): Reordered to handle the
1020 case of immediate numbers parameters first. Also, only use
1021 decoded numbers for numerical comparison.
1022
1cf49a85
MD
10232000-04-10 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1024
1025 * objects.h: Don't redeclare scm_call_generic_0 and
1026 scm_apply_generic. (Thanks to Tal Tversky.)
1027
dba97178
DH
10282000-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1029
1030 * hash.c (scm_hasher): Use symbolic names for the tc3 constants.
1031 Unpack SCM value to use it as a switch parameter. Don't cast SCM
1032 values to int values.
1033
3da01fa3
MD
10342000-04-10 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1035
1036 * coop.c (mother): Handled EINTR (the wait has been interrupted by
1037 a signal).
1038
451e591c
DH
10392000-04-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
1040
1041 * __scm.h (SCM_WTA_DISPATCH_[012n]): To test whether a SCM value
1042 contains a raw zero value it has to be unpacked.
1043
1044 * debug.c (with_traps_inner, scm_with_traps): Passing SCM values
1045 via void * requires unpacking / packing.
1046
1047 * stacks.h (SCM_STACKP): Remove unnecessary SCM_NIMP test and use
1048 SCM_EQ_P to compare SCM values.
1049
1050 * stacks.h (SCM_FRAME_VOID_P, SCM_FRAME_REAL_P, SCM_FRAME_PROC_P,
1051 SCM_FRAME_EVAL_ARGS_P, SCM_FRAME_OVERFLOW_P): Remove unnecessary
1052 call to SCM_UNPACK.
1053
1054 * tags.h (SCM_NECONSP): Define in terms of SCM_ECONSP
1055
1056 * tags.h (SCM_ECONSP): Clarify the test for glocs. This is still
1057 quite ugly.
1058
e94e3f21
ML
10592000-04-05 Michael Livshin <mlivshin@bigfoot.com>
1060
1061 * async.[ch]: unexpose low-level async access macros (thanks to
1062 Dirk Herrmann).
1063
1064 * validate.h: move async validation macros to async.c (nobody else
1065 needs them anyway), and rename them.
1066
843e4e9d
ML
10672000-04-04 Michael Livshin <mlivshin@bigfoot.com>
1068
1069 * async.h: kill the scm_async_t struct. having a heap cell
1070 pretending to be a C struct is not helthy, and is not needed here
1071 anyway, as asyncs happily fit in one heap cell.
1072
1073 * async.c: reflect the fact that asyncs are now represented by
1074 single heap cell each.
1075
873c35ee
GH
10762000-04-04 Gary Houston <ghouston@arglist.com>
1077
1078 * error.c (scm_syserror): save errno before doing anything else,
1079 since it's used in two expressions and may get mutated (thanks to
1080 Dirk Herrmann).
1081
4260a7fc
DH
10822000-04-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
1083
1084 * debug.c (scm_procedure_source, scm_procedure_environment),
1085 gsubr.c (scm_make_gsubr_with_generic, scm_gsubr_apply), procs.c
1086 (scm_procedure, scm_setter): Return valid scheme value as dummy.
1087
1088 * filesys.c (scm_readdir, scm_rewinddir, scm_closedir,
1089 scm_dir_print, scm_dir_free), numbers.h (SCM_COMPLEX_REAL,
1090 SCM_COMPLEX_IMAG), regex-posix.h (SCM_RGX), throw.c (JBJMPBUF,
1091 SETJBJMPBUF, JBJMPBUF, SETJBJMPBUF, freejb, print_lazy_catch,
1092 scm_ithrow), unif.c (scm_uniform_vector_ref, scm_cvref,
1093 scm_array_set_x, rapr1), unif.h (SCM_ARRAY_V, SCM_ARRAY_BASE),
1094 vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS, SCM_SETVELTS): Use
1095 SCM_{SET_}?CELL_WORD* to access cell entries with raw data.
1096
1097 * filesys.c (scm_closedir), numbers.c (scm_addbig), numbers.h
1098 (SCM_SETNUMDIGS), throw.c (JBACTIVE, SCM_JBDFRAME,
1099 SCM_SETJBDFRAME): Read and modify data bits in cell entry #0 using
1100 SCM_{SET_}?CELL_WORD_0.
1101
1102 * filesys.c (fill_select_type, retrieve_select_type, scm_select),
1103 numbers.c (scm_gcd, scm_lcm, scm_integer_expt, scm_zero_p,
1104 scm_product, scm_divide), posix.c (scm_getgrgid), ramap.c
1105 (scm_array_fill_int, racp), throw.c (scm_catch, scm_lazy_catch,
1106 scm_ithrow), unif.c (scm_make_uve, scm_array_p,
1107 scm_transpose_array, scm_array_set_x, scm_bit_set_star_x,
1108 scm_bit_count_star, l2ra), variable.c (prin_var,
1109 scm_make_variable, scm_make_undefined_variable,
1110 scm_builtin_variable), vectors.c (scm_vector_set_length_x),
1111 vports.c (sf_flush, sf_close): Don't use C operators to compare
1112 SCM values.
1113
1114 * numbers.c (scm_odd_p, scm_even_p), variable.c (prin_var): Must
1115 unpack SCM values to access their raw contents.
1116
1117 * numbers.c (big2str): Eliminate unnecessary casts to SCM.
1118
1119 * numbers.h (SCM_NEWREAL), regex-posix.h (SCM_RGXP), vports.c
1120 (scm_make_soft_port): Use SCM_{SET_}?CELL_TYPE to access the cell
1121 type information.
1122
1123 * throw.c (printjb): Eliminated unnecessary unpack.
1124
1125 * variable.c (make_vcell_variable): Smob data is of type
1126 scm_bits_t.
1127
5b15c3b4
MD
11282000-04-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1129
1130 * print.c: Removed promise to rewrite printer code before next
1131 release. :)
1132
395c8567
MD
11332000-04-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1134
1135 * iselect.c (add_fd_sets): Insert empty statement after label.
1136 (Thanks to Tim Mooney.)
1137
50fecba9
ML
11382000-04-03 Michael Livshin <mlivshin@bigfoot.com>
1139
1140 * guardians.c (scm_guardian_zombify): mark all zombies in a
1141 separate loop after processing all the currently known live
1142 guardians, so as to not introduce order dependencies (thanks to
f6e2fd8b 1143 Gary Houston). note that the order problems are still there if
843e4e9d 1144 some guardians are themselves zombies, but that's a sick case that
f6e2fd8b
ML
1145 I'm not going to worry about.
1146 also, make another outer loop to process zombified
50fecba9
ML
1147 guardians (which are uncovered while marking zombies).
1148
54778cd3
DH
11492000-04-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
1150
1151 * evalext.c (scm_definedp, scm_m_undefine), gc.c
1152 (scm_mark_weak_vector_spines, scm_gc_sweep), hashtab.c
1153 (scm_hashq_ref, scm_hashv_ref, scm_hash_ref, scm_hashx_ref),
1154 keywords.c (scm_make_keyword_from_dash_symbol), lang.c
1155 (scm_nil_eq), lang.h (SCM_NILP, SCM_NIL2EOL), load.c
1156 (scm_primitive_load), modules.c (scm_module_full_name), objects.c
1157 (scm_class_of, scm_mcache_lookup_cmethod, scm_make_class_object),
1158 ports.c (scm_close_all_ports_except), ports.h (SCM_EOF_OBJECT_P),
1159 print.c (scm_iprin1, scm_prin1, scm_iprlist, scm_simple_format),
1160 print.h (SCM_PRINT_STATE_P), procprop.c (scm_i_procedure_arity,
1161 scm_stand_in_scm_proc, scm_procedure_property,
1162 scm_set_procedure_property_x), procs.c
1163 (scm_procedure_documentation), read.c (scm_lreadr, scm_lreadparen,
1164 scm_lreadrecparen, scm_read_hash_extend), script.c
1165 (scm_compile_shell_switches), srcprop.c (scm_source_property,
1166 scm_set_source_property_x), srcprop.h (SCM_WHASHFOUNDP), stacks.c
1167 (read_frame, NEXT_FRAME, read_frames, narrow_stack,
1168 scm_make_stack, scm_stack_id), strop.c (scm_i_index,
1169 scm_string_index, scm_string_rindex), struct.c (scm_struct_init),
1170 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_INUM_DEF,
1171 SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_PROC,
1172 SCM_VALIDATE_ARRAY): Don't use C operators to compare SCM values.
1173
1174 * feature.c (make_hook), keywords.c
1175 (scm_make_keyword_from_dash_symbol), macros.c (scm_makacro,
1176 scm_makmacro, scm_makmmacro), print.c (scm_iprin1,
1177 scm_printer_apply, scm_port_with_print_state): Smob data is of type
1178 scm_bits_t.
1179
1180 * feature.c (print_hook), gc.c (scm_object_address), hash.c
1181 (scm_ihashq, scm_ihashv), print.c (scm_iprin1, scm_ipruk), smob.c
843e4e9d 1182 (freeprint), struct.c (scm_print_struct): Must unpack
54778cd3
DH
1183 SCM values to access their raw contents.
1184
1185 * fluids.c (apply_thunk, scm_with_fluids), hashtab.c (fold_proc,
1186 scm_hash_fold), load.c (load, scm_primitive_load): Passing SCM
1187 values via void * requires unpacking / packing.
1188
1189 * fports.c (scm_fport_buffer_add, scm_setvbuf), procs.h
1190 (SCM_SUBRNUM, SCM_SET_SUBRNUM), srcprop.h (SRCPROPBRK, SRCBRKP):
1191 Read and modify data bits in cell entry #0 using
1192 SCM_{SET_}?CELL_WORD_0.
1193
1194 * fports.c (scm_fdes_to_port), gc.c (scm_gc_for_newcell,
1195 scm_gc_sweep, init_heap_seg), init.c (start_stack), ports.c
1196 (scm_void_port), procs.c (scm_make_subr_opt,
1197 scm_make_procedure_with_setter), root.c (scm_internal_cwdr),
1198 smob.c (scm_make_smob), strports.c (scm_mkstrport): Use
1199 SCM_SET_CELL_TYPE to write the cell type information.
1200
1201 * gc.c (scm_gc_mark): Use SCM_CELL_OBJECT* to access SCM values
1202 from cells that are no scheme pairs.
1203
1204 * gc.c (scm_gc_sweep), mallocs.c (prinmalloc), mallocs.h
1205 (SCM_MALLOCDATA, SCM_SETMALLOCDATA), print.c (scm_ipruk), random.h
1206 (SCM_RSTATE), root.h (SCM_ROOT_STATE), smob.c (scm_smob_free),
1207 srcprop.c (freesrcprops), srcprop.h (SRCPROPPOS, SRCPROPFNAME,
1208 SRCPROPCOPY, SRCPROPPLIST), struct.c (scm_make_struct,
1209 scm_make_vtable_vtable): Use SCM_{SET_}?CELL_WORD* to access cell
1210 entries with raw data.
1211
1212 * gc.c (scm_init_storage), sort.c (applyless), strop.c
1213 (scm_string_to_list): Eliminate unnecessary casts to SCM.
1214
1215 * mallocs.c (scm_malloc_obj): Store result of malloc as raw
1216 data.
1217
1218 * ports.c (scm_close_all_ports_except): Duplicate documentation
1219 text removed.
1220
1221 * print.c (scm_iprin1): Use SCM_ITAG3.
1222
1223 * procs.h (SCM_SET_SUBRNUM): Fix shift direction.
1224
1225 * snarf.h (SCM_GPROC, SCM_GPROC1, SCM_SYMBOL, SCM_GLOBAL_SYMBOL,
1226 SCM_KEYWORD, SCM_GLOBAL_KEYWORD, SCM_VCELL, SCM_GLOBAL_VCELL,
1227 SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): Don't initialize globals
1228 and static variables at their point of declaration, but rather in
1229 the init function.
1230
1231 * tags.h (SCM_PACK): Automatically cast to scm_bits_t.
1232
abeed821
GH
12332000-04-02 Gary Houston <ghouston@arglist.com>
1234
1235 * guardians.c (TCONC_IN, scm_make_guardian): set the CDR of the
1236 empty tconc pair to SCM_EOL instead of SCM_BOOL_F, avoiding the
1237 use of an improper list (which breaks g_print. g_print isn't
1238 used).
1239 guardians.c: Added more comments and modified the make-guardian
1240 docstring. Reordered a few procedures.
1241
cf498326
DH
12422000-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
1243
1244 * eval.c (scm_lookupcar1, scm_lookupcar, scm_m_case, scm_m_cond,
1245 scm_m_lambda, iqq, scm_m_define, scm_m_expand_body, unmemocopy,
1246 SCM_CEVAL), procs.h (SCM_TOP_LEVEL): Don't use C operators to
1247 compare SCM values.
1248
1249 (scm_makprom): Smob data is of type scm_bits_t.
1250
cffcab30
DH
12512000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1252
1253 * backtrace.c (display_error_body), debug.c (scm_procedure_source,
1254 scm_reverse_lookup), dynl.c (scm_dynamic_link): Don't use C
1255 operators to compare SCM values.
1256
1257 * debug.c (scm_make_debugobj), debug.h (SCM_DEBUGOBJ_FRAME,
1258 SCM_SET_DEBUGOBJ_FRAME): Update SCM_{SET_}?DEBUGOBJ_FRAME to
1259 access raw cell data with SCM_{SET_}?CELL_WORD_1.
1260
1261 * debug.c (scm_make_debugobj): Don't use SCM_SETCAR to set types.
1262
1263 * debug.c (scm_make_memoized), dynl.c (scm_dynamic_link): Smob
1264 data is of type scm_bits_t.
1265
7fa93bf8
DH
12662000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1267
1268 * gdbint.c (gdb_maybe_valid_type_p), guardians.c (TCONC_EMPTYP,
1269 scm_guardian_zombify): Use SCM_EQ_P to compare SCM values.
1270
1271 * guardians.c (GUARDIAN): Use SCM_CELL_WORD_1 for raw data.
1272
74a16888
DH
12732000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1274
1275 * ports.h (scm_port): Change type of stream member to scm_bits_t.
1276
1277 * gdbint.c (unmark_port, remark_port), ports.c (scm_markstream),
1278 strports.c (st_resize_port, scm_mkstrport), vports (sf_flush,
1279 sf_write, sf_fill_input, sf_close, scm_make_soft_port): Since
1280 streams are now of type scm_bits_t, SCM streams have to be
1281 unpacked/packed.
1282
1283 * ports.h (SCM_SETPTAB_ENTRY, SCM_SETSTREAM): Cast input to
1284 scm_bits_t.
1285
b6cc0ef6
MD
12862000-03-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1287
6a878357
MD
1288 * coop-defs.h (struct coop_t): Added `sto'-field again because of
1289 binary compatibility---let's remove it next time we alter some
1290 major structure.
1291
b6cc0ef6
MD
1292 * coop.c (coop_quitting_p, coop_cond_create, coop_mutex_create,
1293 coop_mother, coop_child): New variables.
1294 (mother): New function.
1295 (coop_create): New thread spawning mechanism which uses a "mother
1296 thread". The "dummy" pthreads aren't healthy enough to give birth
1297 to new threads since Linux threads thinks they are asleep.
1298
1299 * coop-defs.h (struct coop_t): Removed dummy_mutex.
1300
1301 * coop-defs.h, coop-threads.c (struct coop_t): Eliminate
1302 `sto'-field when GUILE_PTHREAD_COMPAT is enabled.
1303
843524cc
DH
13042000-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1305
1306 * arbiters.c (scm_make_arbiter), async.c (scm_async), dynwind.c
1307 (scm_internal_dynamic_wind): Smob data is always of type
1308 scm_bits_t.
1309
1310 * arbiters.c (SCM_ARB_LOCKED, SCM_LOCK_ARB, SCM_UNLOCK_ARB):
1311 Access the locking information in cell entry 0 with
1312 SCM_{SET_}?CELL_WORD_0 instead of SCM_*CAR.
1313
1314 * async.c (scm_run_asyncs): Use SCM_NULLP to test for the empty
1315 list.
1316
1317 * dynwind.c (scm_dowinds): Use SCM_EQ_P to compare SCM values.
1318
1319 * ports.h (SCM_PTAB_ENTRY, SCM_SETPTAB_ENTRY): Access the ptab
1320 entry data using SCM_{SET_}?CELL_WORD_1 instead of SCM_{SET}?CDR.
1321
fbd485ba
DH
13222000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1323
1324 * alist.c (scm_sloppy_assq, scm_assq), eq.c (scm_eq_p, scm_eqv_p,
1325 scm_equal_p), list.c (scm_ilength, scm_last_pair, scm_reverse,
1326 scm_sloppy_memq, scm_delq_x, scm_delq1_x), tags.h (SCM_UNBNDP):
1327 Don't use C operators == and != to compare SCM values, use
1328 SCM_EQ_P instead.
1329
1330 * boolean.c (scm_boolean_p): Use SCM_BOOLP to determine whether a
1331 SCM value is equal to #t or #f.
1332
1333 * eq.c (scm_eqv_p, scm_equal_p): Don't use SCM_CAR to access the
1334 cell type entry of non immediate objects of unknown type. Use
1335 SCM_CELL_TYPE instead.
1336
1337 * gh_data.c (gh_scm2bool, gh_module_lookup), list.c
1338 (scm_sloppy_memv, scm_sloppy_member, scm_delv_x, scm_delete_x,
1339 scm_delv1_x, scm_delete1_x), scmsigs.c (scm_sigaction): Use
1340 SCM_FALSEP and SCM_TRUE_P to compare SCM values against #f and
1341 #t.
1342
1343 * list.c (scm_listify): Use SCM_UNBNDP to test for an unbound
1344 scheme value.
1345
64e3bf6c
MD
13462000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1347
0208baa0
MD
1348 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread,
1349 scm_make_mutex, scm_make_condition_variable): Cast data to
1350 scm_bits_t in SCM_SET_CELL_WORD and SCM_NEWSMOB macros.
1351
64e3bf6c
MD
1352 * coop.c (coop_create): Set `specific' field, not `data' to NULL.
1353
94113249
DH
13542000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1355
1356 * smob.h (SCM_NEWSMOB, SCM_NEWSMOB2, SCM_NEWSMOB3, SCM_SMOB_DATA,
1357 SCM_SET_SMOB_DATA, SCM_TC2SMOBNUM, SCM_SMOBNUM): To access smob
1358 data, use SCM_{SET_}?CELL_TYPE or SCM_{SET_}?WORD_[1-3].
1359
1360 Note that this implies that smob data has always to be passed as
1361 values of type scm_bits_t.
1362
1978b33e
MD
13632000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1364
1365 * threads.c (scm_init_threads): Pass 0 size to scm_make_smob_type
1366 for scm_tc16_thread. As the current COOP threads are written, GC
1367 is not supposed to manage storage for threads.
1368
1369 * error.c (scm_error): Don't try to throw an error if
1370 scm_gc_heap_lock is true.
1371
1372 * coop.c (coop_finish): New function. Called at exit.
1373 (coop_aborthelp): Free thread structures when threads die.
1374 Finished LinuxThreads compatibility support => COOP threads now
1375 mesh with LinuxThreads.
843e4e9d 1376
1978b33e
MD
1377 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread):
1378 Changed SETCDR --> SET_CELL_WORD_1.
1379
1380 * coop-threads.c (scheme_launch_thread): Set word 1 of handle to 0
1381 when thread dies.
1382
dd039d6d
DH
13832000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1384
1385 * boolean.h (SCM_TRUE_P): New macro.
1386
1387 * boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP), pairs.h
1388 (SCM_NULLP, SCM_NNULLP): Use SCM_EQ_P to compare SCM values.
1389
8b3bda20
DH
13902000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1391
1392 * continuations.h (SCM_CONTREGS, SCM_SET_CONTREGS): New macros to
1393 access continuation data.
1394
1395 (SCM_SETJMPBUF): Deprecated. Use SCM_SET_CONTREGS instead.
1396
1397 (SCM_JMPBUF, SCM_DYNENV, SCM_THROW_VALUE, SCM_BASE, SCM_SEQ,
1398 SCM_DFRAME): Use SCM_CONTREGS instead of SCM_CHARS to access
1399 continuation data.
1400
843e4e9d 1401 * continuations.c (scm_make_cont), init.c (start_stack),
8b3bda20
DH
1402 root.c (scm_internal_cwdr): Use SCM_SET_CONTREGS instead of
1403 SCM_SETJMPBUF.
1404
3210f49a
DH
14052000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1406
1407 * symbols.h (SCM_LENGTH, SCM_SETLENGTH): Access the length field
1408 of strings and symbols by using SCM_{SET_}?CELL_WORD_0.
1409
1410 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS): Use SCM_{SET_}?CELL_WORD_1
1411 to access the char * field of strings and symbols.
1412
2d67e390
DH
14132000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
1414
1415 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Use SCM_SET_CELL_TYPE to set
1416 the type entry of a new cell. Added a comment about things to
1417 remember when updating the list of free cells.
1418
1419 (SCM_FREEP, SCM_MARKEDP): Use SCM_CELL_TYPE to access the type
1420 entry of a cell.
1421
76a369d9
DH
14222000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
1423
1424 * pairs.h (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): Use
1425 SCM_CELL_OBJECT and SCM_SET_CELL_OBJECT. This change implies that
1426 with strict type checking enabled these macros will only work if
1427 given valid SCM parameters.
1428
3210f49a 1429 (SCM_GCCDR): Moved to tags.h.
76a369d9
DH
1430
1431 * tags.h (SCM_GCCDR): Moved here from pairs.h.
1432
2549a709
DH
14332000-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1434
1435 * tags.h (SCM2PTR, PTR2SCM): Moved to gc.h.
1436
1437 * pairs.h (scm_cell, SCM_CELLPTR, SCM_CELL_WORD*, SCM_CELL_OBJECT*,
1438 SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*, SCM_CELL_TYPE,
1439 SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK, SCM_PTR_GT,
1440 SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC, SCM_NEWCELL,
1441 SCM_NEWCELL2): Moved to gc.h.
1442
1443 (SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR, SCM_SETAND_CDR,
1444 SCM_SETOR_CAR, SCM_SETOR_CDR): Moved to gc.h. These names should
1445 be changed, though, since the macros are not only pair related.
1446
1447 (SCMPTR): Deleted.
1448
1449 * gc.h (SCM2PTR, PTR2SCM, scm_cell, SCM_CELLPTR, SCM_CELL_WORD*,
1450 SCM_CELL_OBJECT*, SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*,
1451 SCM_CELL_TYPE, SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK,
1452 SCM_PTR_GT, SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC,
1453 SCM_NEWCELL, SCM_NEWCELL2, SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR,
1454 SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR): Moved here from
1455 tags.h and pairs.h.
1456
8d3356e7
DH
14572000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1458
1459 * tags.h (SCM_STRICT_TYPING): New macro that, if defined,
1460 activates strict compile time type checking for variables of
1461 type SCM.
1462 (SCM, SCM_PACK, SCM_UNPACK): Define according to whether
1463 SCM_STRICT_TYPING or SCM_VOIDP_TEST are defined.
1464 (SCM_EQ_P): Defined as a macro equivalent for eq?.
1465
96f6f4ae
DH
14662000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1467
1468 * tags.h (SCM_POINTERS_MUNGED): Removed.
1469
1470 * gc.c (scm_gc_sweep, init_heap_seg): Removed use of
1471 SCM_POINTERS_MUNGED, thus fixing some illegal casts to SCM.
1472
0cbaaf0b
DH
14732000-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1474
1475 * pairs.h (SCM_CELL_OBJECT, SCM_CELL_OBJECT_[0-3],
1476 SCM_SET_CELL_OBJECT, SCM_SET_CELL_OBJECT_[0-3], SCM_CELL_TYPE,
1477 SCM_SET_CELL_TYPE): Added a set of low level macros for accessing
1478 cell entries.
1479 (SCM_CELL_WORD_[0-3]): Renamed from the SCM_CELL_WORD[0-3].
1480
1481 * procs.h, procs.c: Instead of SCM_{SET_}?CELL_WORD[12], use the
1482 newly introduced SCM_{SET_}?CELL_OBJECT_[12] macros.
1483
7284d584
MD
14842000-03-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1485
1486 * tags.h: Disabled definition of SCM_VOIDP_TEST.
1487
1488 Defining SCM as void * introduces problems which haven't been
1489 handled yet. Developers who work with these issues can enable it
1490 in their working copies.
1491
1492 Disabling this definition exposes a set of newly introduced and
1493 older misuses of types which causes warning messages during
1494 compilation. We'll fix this successively.
1495
1496 * gc.c (scm_mark_locations): Changed * (SCM **) X --> * (SCM *) X
1497 in order to obtain a value of type SCM.
1498 (scm_cellp): Updated with new changes to scm_mark_locations.
1499
1500 * continuations.h (SCM_SETJMPBUF): Cast second arg into SCM.
1501
2f9055ea
MD
1502 * continuations.c (scm_make_cont): Removed cast of size_t into
1503 long.
1504
7284d584
MD
1505 * symbols.h (SCM_SETCHARS): Cast second arg into SCM.
1506
f81e080b
DH
15072000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1508
1509 * numbers.h (SCM_SETNUMDIGS): Use SCM_BIGSIZEFIELD macro for
1510 shifting, not constant. Thanks to Dale P. Smith.
1511
1512 * numbers.c (scm_sum, scm_difference): Don't test a SCM value
1513 for being less than zero. Decode it to a C value first. Again,
1514 thank you Dale.
1515
1ff2fa6e
DH
15162000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1517
1518 * numbers.h, ramap.c, struct.h, vectors.h: Don't use SCM2PTR for
1519 non scheme values. If raw data is stored in SCM variables, it has
1520 to be accessed using SCM_UNPACK until a better solution is found.
1521
3920465b
MD
15222000-03-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1523
6f29dc6d
MD
1524 * tags.h (SCM_ECONSP, SCM_NECONSP): More corrections of
1525 pointer-arithmetic induced by the SCM_PACK/UNPACK change.
1526
1527 * print.c (scm_iprin1): SCM_PACK/UNPACK corrections.
1528
1529 * gc.c (scm_gc_sweep): SCM_PACK/UNPACK corrections.
1530
1531 * eval.c (SCM_CEVAL, scm_unmemocar): SCM_PACK/UNPACK corrections.
1532
1533 * dynwind.c (scm_swap_bindings): SCM_PACK/UNPACK corrections.
1534
3920465b
MD
1535 * async.c, __scm.h: Removed lots of the old async click logic. It
1536 is possible to reinsert it by defining GUILE_OLD_ASYNC_CLICK in
1537 __scm.h. Let's try this out and dump the old code after the
1538 threads reorganization.
1539 (set-tick-rate, set-switch-rate): Conditionally removed.
1540
90cca6f9
MD
15412000-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1542
1543 * gc.c (scm_gc_mark): Bugfix 1: The recent SCM_PACK/UNPACK change
1544 made SCM values into pointers. This turned an arithmetic
1545 computation of the address of the vcell into a pointer-arithmetic
1546 one, thereby screwing up marking of structs.
1547 Bugfix 2: Removed incompletely introduced loop variable `j' used
1548 when protecting the tail array of a struct.
1549
8246bf3e
DH
15502000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1551
1552 * struct.h (SCM_STRUCT_DATA): Don't cast SCM values to pointers.
1553
95c9e176
DH
15542000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1555
1556 * symbols.h, symbols.c (scm_strhash): Declare the string
1557 parameter as constant, since it is not modified.
1558
1559 * symbols.c (scm_intern_obarray_soft,
1560 scm_sysintern0_no_module_lookup): Can now pass constant strings
1561 to scm_strhash without need for casting.
1562
7352d0b2
DH
15632000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1564
1565 * vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS): Don't cast SCM
1566 values to pointers. Use SCM2PTR instead.
1567
b00c8cdc 15682000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
9b139b4e
DH
1569
1570 * async.c (scm_set_tick_rate, scm_set_switch_rate): Don't unpack
1571 results of SCM_INUM.
1572
df2d5178
MD
15732000-03-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1574
bd54e664
MD
1575 * init.c (scm_boot_guile_1): Renamed GUILE_GC_TRIGGER_1 -->
1576 GUILE_MIN_YIELD_1, GUILE_GC_TRIGGER_2 --> GUILE_MIN_YIELD_2.
1577 GUILE_MIN_YIELD_X now take *positive* fractions of heap size.
1578
1579 * gc.c, gc.h (SCM_MIN_YIELD_1, SCM_MIN_YIELD_2,
1580 min_yield_fraction, min_yield, adjust_min_yield): Renamed from
1581 SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2, gc_trigger_fraction,
1582 gc_trigger, adjust_gc_trigger.
1583
df2d5178
MD
1584 * gc.c (alloc_some_heap): Further improvement of minimal heap size
1585 prediction.
1586 (SCM_MAX): New macro.
1587 (scm_freelist_t): New field: collected_1. Previous amount of
1588 collected cells.
1589 (gc_sweep_freelist_finish): Trigger based on two last values of
1590 freelist->collected to avoid unnecessary allocation due to
1591 temporary peaks.
bd54e664
MD
1592 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2):
1593 Adjusted to 45000 cells, 40% and 40%. Gives quick startup
1594 without extra heap allocation.
df2d5178 1595
f2961ccd
DH
15962000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1597
1598 * numbers.h (SCM_MAKINUM): The parameter to SCM_MAKINUM should
1599 already be a C value. No need to unpack it.
1600
3210f49a 1601 * numbers.c (scm_long_long2num): Cast the parameter to scm_bits_t
f2961ccd
DH
1602 if we know it fits into an inum.
1603
1604 * ramap.c (ramap_rp): An scm_tc7_[ui]vect object does point to a
1605 field of long values. In contrast, SCM_VELTS accesses a field of
1606 SCM values.
1607
7b4cc831
MD
16082000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1609
f1d316dd
MD
1610 * gc.c (scm_gc_stats): Inserted explanation of local_scm_mtrigger
1611 etc.
80770ddc
MD
1612 (scm_gc_yield_1): New variable: Holds previous yield. Used to
1613 make better judgements.
f1083dd7
MD
1614 (gc_sweep_freelist_finish): Inserted explanation of use of
1615 gc_trigger.
f1d316dd
MD
1616
1617 * print.h, stacks.h, options.c, options.h: Changed C++
1618 commentaries to C.
7b4cc831 1619
7a710745
DH
16202000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1621
1622 * tags.h (SCM2PTR, PTR2SCM): Use SCM_PACK / SCM_UNPACK correctly.
1623
1624 * numbers.h (SCM_INUMP, SCM_MAKINUM, SCM_INUM0, SCM_COMPLEX_REAL,
1625 SCM_COMPLEX_IMAG, SCM_NUMP, SCM_BDIGITS): Use SCM_PACK /
1626 SCM_UNPACK / SCM2PTR correctly.
1627
1ef20c80
MD
16282000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1629
1630 * gc.c (adjust_gc_trigger): Improved documentation.
1631 (alloc_some_heap): Since gc_trigger is used against
1632 freelist->collected, this is the value which should be used to
1633 predict minimum growth.
1634
b464b970
DH
16352000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1636
1637 * eval.h: Fix mixup of packed/unpacked SCM values. (Thanks
1638 Thien-Thi Nguyen for the patch.)
1639
3ab9f56e
DH
16402000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1641
1642 * numbers.c (scm_ash): Fixed typing problems with the second
1643 parameter and added some documentation. (Thanks Thien-Thi Nguyen
1644 for indicating the problem.)
1645
05bc3265
MD
16462000-03-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1647
78a4915a
MD
1648 * gc.c, gc.h (scm_gc_yield): New variable.
1649 (adjust_gc_trigger): Use scm_gc_yield.
1650 (alloc_some_heap): Use scm_gc_yield instead of
1651 scm_gc_cells_collected.
1652
05bc3265
MD
1653 * coop-threads.c: Addd #include "root.h", #include "strings.h".
1654
1655 * debug.c: Added #include "root.h". (Thanks to Thien-Thi Nguyen.)
1656
1657 * gc.c (scm_gc_for_newcell, adjust_gc_trigger): Improved GC
1658 trigger adjustmeant: Take yield (freed cells) for all freelists
1659 into account.
1660 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Tuned
1661 to 50000 cell heap with 45% trigger.
1662 (scm_gc_cells_collected): Reintroduced.
1663 (SCM_HEAP_SIZE): New macro.
1664 (scm_gc_sweep): Reintroduced correct computation of
1665 scm_cells_allocated.
1666 (scm_freelist_t): Corrected commentary for field `cluster_size':
1667 Clustersize counts objects, not cells; New member
1668 `clusters_allocated'.
1669
89e00824
ML
16702000-03-19 Michael Livshin <mlivshin@bigfoot.com>
1671
1672 * *.[hc]: add Emacs magic at the end of file, to ensure GNU
1673 indentation style.
1674
afcfc5bb
MD
16752000-03-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1676
1677 * threads.h: Added #include "libguile/throw.h". (Thanks to
1678 Thien-Thi Nguyen.)
1679
a00c95d9
ML
16802000-03-18 Michael Livshin <mlivshin@bigfoot.com>
1681
50fecba9
ML
1682 * tags.h: (SCM_DOUBLE_CELLP, SCM_NDOUBLE_CELLP): new macros (bad
1683 names, anyone got any better ones?)
a00c95d9
ML
1684
1685 * gc.h: (typedef struct scm_freelist_t) remove from here.
1686
50fecba9 1687 * gc.c: (CELL_UP, CELL_DN) made these macros take additional
a00c95d9
ML
1688 parameter (the span).
1689 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK) new macros.
50fecba9 1690 (typedef struct scm_freelist_t) moved here from gc.h, it had no
a00c95d9
ML
1691 business being externally visible.
1692 (typedef struct scm_heap_seg_data_t) renamed from
1693 scm_heap_seg_data, to be style-compliant.
1694 (scm_mark_locations) if the possible pointer points to a
50fecba9
ML
1695 double-cell, check that it's properly aligned.
1696 (init_heap_seg) align double-cells properly, work with the
1697 assumption that the segment size divides cleanly by cluster size.
a00c95d9
ML
1698 (round_to_cluster_size) new function.
1699 (alloc_some_heap, make_initial_segment) use round_to_cluster_size
1700 to satisfy the new init_heap_seg invariant.
1701
28b3236d
DH
17022000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1703
1704 * _scm.h: Don't include async.h everywhere...
1705
1706 * eq.c eval.c iselect.c: ... only include it here.
1707
ba11fd4c
DH
17082000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1709
1710 * _scm.h: Don't include root.h everywhere...
1711
1712 * async.c continuations.c eq.c eval.c evalext.c feature.c gc.c
1713 gdbint.c gsubr.c ioext.c keywords.c lang.c load.c macros.c
1714 numbers.c objprop.c ports.c print.c procprop.c ramap.c read.c
1715 srcprop.c stackchk.c stacks.c strports.c symbols.c unif.c
1716 variable.c vectors.c vports.c: ... only include it here.
1717
7ab3fdd5
DH
17182000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1719
1720 * _scm.h: Don't include strings.h everywhere...
1721
1722 * backtrace.c dynl.c error.c feature.c filesys.c fports.c gc.c
1723 gdbint.c ioext.c load.c net_db.c numbers.c objects.c options.c
1724 ports.c posix.c print.c procs.c random.c read.c regex-posix.c
1725 simpos.c socket.c stacks.c stime.c strop.c strports.c struct.c
1726 symbols.c unif.c vectors.c version.c vports.c: ... only include it
1727 here.
1728
f04d8caf
DH
17292000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1730
1731 * _scm.h: Don't include ports.h everywhere...
1732
1733 * arbiters.c backtrace.c debug.c dynl.c dynwind.c eval.c feature.c
1734 fluids.c gc.c gdbint.c guardians.c hash.c keywords.c mallocs.c
1735 numbers.c objects.c print.c read.c root.c smob.c srcprop.c
1736 stackchk.c strports.c struct.c throw.c variable.c: ... only
1737 include it here.
1738
003d1fd0
DH
17392000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1740
1741 * _scm.h: Don't include vectors.h everywhere...
1742
1743 * eq.c eval.c filesys.c gc.c gsubr.c guardians.c hash.c hashtab.c
1744 keywords.c net_db.c numbers.c objects.c posix.c print.c procprop.c
1745 procs.c ramap.c random.c read.c scmsigs.c socket.c sort.c stime.c
1746 strports.c symbols.c unif.c vports.c weaks.c: ... only include it
1747 here.
1748
0fa27efa
DH
17492000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1750
1751 * genio.h: removed. (Only content was '/* delete me */'.)
1752
1753 * Makefile.am arbiters.c backtrace.c debug.c dynl.c dynwind.c
1754 error.c filesys.c fluids.c gc.c gsubr.c guardians.c keywords.c
1755 libguile.h mallocs.c numbers.c print.c random.c read.c root.c
1756 srcprop.c stackchk.c struct.c threads.c throw.c variable.c:
1757 Removed reference to genio.h
1758
148f31de
MD
17592000-03-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1760
1761 * gc.c, gc.h: Cleanup of the change of 2000-03-15.
1762 Cluster sizes are now independent of GC trigger values.
1763 GUILE_GC_TRIGGER_n can now specify a relative trigger value:
1764 A negative integer gives fraction of total heap size in percent.
1eb489a2 1765 (SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -40.
148f31de
MD
1766
1767 * init.c (scm_boot_guile_1): Introduced new variable
1768 GUILE_MAX_SEGMENT_SIZE; New environment variable names:
1769 GUILE_INIT_SEGMENT_SIZE_1, GUILE_GC_TRIGGER_1,
1770 GUILE_INIT_SEGMENT_SIZE_2, GUILE_GC_TRIGGER_2
1771
6d0f81dd 17722000-03-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
a00c95d9 1773
6d0f81dd
MD
1774 * __scm.h (GC_FREE_SEGMENTS): Disable this until we have made
1775 freeing of segment work with the new GC scheme. (Thanks to
bc2c8d98
MD
1776 Michael Livshin.) Oops, also happened to make GUILE_NEW_GC_SCHEME
1777 the default, but I'll let this change stay in CVS Guile since this
1778 code is not expected to contain serious bugs.
a00c95d9 1779
17351a6f 17802000-03-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
c5133dc9 1781
6c7c449e
MD
1782 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
1783 defined.
5a551542
MD
1784 (scm_free_list_length): New procedure (GUILE_DEBUG).
1785 Fixed a small but serious bug introduced by the previous change.
1786
17351a6f
MD
1787 * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
1788 loop and declare as register.
6c7c449e 1789
c5133dc9
MD
1790 * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
1791 after GC.
1792
3820581c
GB
1793Wed Mar 15 08:27:04 2000 Greg J. Badros <gjb@cs.washington.edu>
1794
1795 * fluids.c: Docstring patch from Keisuke Nishida. Some
1796 reindentation, too, and a couple formals renamed. Should
1797 fluid-set! return UNSPECIFIED instead of a value?
1798
1799Wed Mar 15 08:24:58 2000 Greg J. Badros <gjb@cs.washington.edu>
1800
1801 * Makefile.am: Separate out DOT_X_FILES and DOT_DOC_FILES, and
a00c95d9 1802 generate the latter from the concrete listing of the former. Then
3820581c
GB
1803 make guile-procedures.txt depend on DOT_DOC_FILES instead of
1804 *.doc, so that rebuilding it works.
1805
dd6390bf
GB
1806Wed Mar 15 08:12:14 2000 Greg J. Badros <gjb@cs.washington.edu>
1807
1808 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida!
1809
1810 * guile-snarf.awk.in: Replace docstring line-ending \n" and \n\n"
1811 with nothing and \n, respectively. Thanks Keisuke Nishida for
1812 noticing this problem.
1813
4fdb0ae2
MD
18142000-03-15 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1815
1816 * __scm.h (GUILE_NEW_GC_SCHEME): Define this if you want to test a
1817 new way of allocating heap. It makes Guile fast, but still
1818 contains bugs.
1819
1820 * gc.c, gc.h, pairs.h, init.c: Implementation of a new way of
1821 allocating heap. The basic idea is to trigger GC every Nth
1822 allocated cell and grow heap when free list runs out. The scheme
1823 has been extended so that GC isn't triggered until all remaining
1824 cells are used. The implementation is also prepared for
1825 development in the direction of POSIX threads.
1826
1827 * gc.c (SCM_EXPHEAP): In order to grow by a factor of 1.5,
1828 SCM_EXPHEAP should return half of the heap size.
1829
3d8d1283
MD
18302000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1831
5f4edb86
MD
1832 The following change to init.c is only enabled if Guile was
1833 configured with --enable-guile-debug.
a00c95d9 1834
5f4edb86
MD
1835 * init.c (scm_i_getenv_int): New function.
1836 (scm_boot_guile_1): Use the environment variables
1837 GUILE_INIT_HEAP_SIZE, GUILE_INIT_HEAP_SIZE2 to select heap size if
1838 they exist. (This may be replaced by a Scheme level mechanism in
1839 the future.)
1840
3d8d1283 1841 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
90e77861 1842 scm_assoc. (Thanks to Keisuke Nishida.)
3d8d1283 1843
b0e37c83
MD
18442000-03-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1845
1846 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
2b260c0f 1847 scm_nil, scm_t. (Thanks to Keisuke Nishida.)
b0e37c83 1848
16d35552
MD
18492000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1850
5ebf0091
MD
1851 * init.c (scm_boot_guile_1): Use same initial segment size for
1852 1-word and 2-word segments. Having the smaller size causes Guile
1853 to GC too often. Obviously something needs to be done to allow
1854 for a smaller 2-word segment without this to happen. (The amount
1855 of heap for each type should be automatically adapted to the
1856 application somehow.)
1857
31ed4cff
MD
1858 [Almost all of these changes should be documented in the NEWS
1859 file.]
1860
cf2c7413
MD
1861 * gc.h (scm_freelist_t): New type.
1862
1863 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
1864
1865 * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
1866 all of Guile basics fits into one segment and there suitable room
1867 for work.
1868 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
1869 instead of 2.
1870 (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
1871 Freelists now contains information about object span, cells
1872 collected and amount of cells in heap segments belonging to the
1873 list.
1874 (scm_heap_size, scm_gc_cells_collected): Removed.
1875
1876 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
1877
16d35552
MD
1878 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
1879 number.
1880
cf2c7413 1881 * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
16d35552
MD
1882 numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
1883 rewrite of handling of real and complex numbers.
1884 (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
1885 removed along with the support for floats. (Float vectors are
1886 still supported.)
1887
1888 * tags.h (scm_tcs_bignums): Removed.
1889 (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
1890 Use SCM_BIGSIGN(x) to test for sign!
1891 (scm_tc16_big): The new bignum type.
1892 (SCM_REAL_PART, SCM_IMAG_PART): Removed.
1893
1894 * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
1895 (scm_makdbl): Deprecated.
1896 (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
1897 (SCM_SINGP): Deprecated.
1898 (SCM_FLO): Removed.
1899 (SCM_INEXP, SCM_CPLXP): Deprecated.
1900 (SCM_INEXACTP, SCM_COMPLEXP): New macros.
1901 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
1902 SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
1903 (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
1904 for doubles and complex numbers.
1905 (SCM_REAL_VALUE): New selector for doubles.
1906 (scm_double_t, scm_complex_t): New types.
1907 (scm_dbl): Removed.
1908
1909 * numbers.c (scm_floprint, scm_floequal): Removed.
1910 (scm_print_real, scm_print_complex, scm_real_equalp,
1911 scm_complex_equalp): New functions.
1912
1913 * unif.c (scm_makflo): Removed.
1914
1915 * smob.h (SCM_SMOB_PREDICATE): New macro.
1916 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
1917 SCM_RETURN_NEWSMOB3): New macros.
1918
19191999-11-21 Michael Livshin <mlivshin@bigfoot.com>
1920
1921 The following changes implement primitive support for double cells
1922 (i.e. four-word cells) and change the representation of some
1923 things to multi-cells instead of cons+malloc. (Applied and
1924 modified by mdj.)
1925
1926 * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
1927 (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
1928 multi-cell access macros (used by the ones below).
1929 (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
1930 macros.
1931
1932 * gc.c (scm_freelist2): multi-cell freelists.
1933 (inner_map_free_list): map_free_list, parameterized on ncells.
1934 "nn cells in segment mm" was misleading for ncells > 1; changed to
1935 "objects". still print cells too, though.
1936 (scm_map_free_list): rewritten using inner_map_free_list.
1937 (scm_check_freelist): get freelist as parameter, since now we have
1938 more than one.
1939 (scm_debug_newcell2): multi-cell variants of
1940 scm_debug_newcell.
1941 (scm_gc_for_newcell): take ncells and freelist pointer as
1942 parameters.
1943 (scm_gc_mark): add case for tc7_pws (procedures with setters are
1944 now double cells).
1945 (scm_gc_sweep): don't free the float data, since it's not malloced
1946 anymore.
1947 (init_heap_seg): didn't understand what n_new_objects stood for,
1948 so changed to n_new_cells.
1949 (make_initial_segment): new function, makes an initial segment
1950 according to given ncells.
1951 (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
1952
1953 * numbers.c (scm_makdbl): no malloc'ing needed, so the
1954 {DEFER,ALLOW}_INTS thing removed.
1955
1956 * numbers.h (struct scm_dbl): changed to represent a double cell,
1957 with the number in the second half.
16d35552
MD
1958
1959 * dynwind.c: changed the wind-guards representation to double
1960 cell.
1961
1962 * procs.c, procs.h: changed the procedure-with-setter representation
1963 to double cell.
1964
1965 * async.c, async.h: made async representation a double cell.
1966
16d35552 1967 * dynl.c: made dynamic_obj representation a double cell.
a00c95d9 1968
b70ecbd0
GH
19692000-03-13 Gary Houston <ghouston@arglist.com>
1970
1971 * ports.c (flush_void_port): renamed to flush_port_default.
1972 (end_input_void_port): renamed to end_input_default.
1973
1974 * init.c (scm_standard_stream_to_port): create a void port instead
1975 of opening /dev/null if the standard file descriptors are bad.
1976 advantages: no portability problems, doesn't waste a file descriptor,
1977 simplifies the code (thanks to Marius for the idea).
1978
1979 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
1980
1981 * void ports: make reading from a void port give EOF instead of
1982 segv:
1983 * ports.c (s_scm_sys_make_void_port): modified docstring.
1984 (fill_input_void_port): new proc.
1985 (scm_init_ports): set up fill_input_void_port.
1986 * ports.c (scm_port_non_buffer): new proc.
1987 (scm_void_port): call scm_port_non_buffer.
1988
1989 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
1990 which was incorrectly appended.
1991
fdc7ea2d
MD
19922000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1993
1994 * guile-doc-snarf.in: Don't use absolute path for `sed'. (Note
1995 that we can't use autoconf for this. Autoconf itself relies on
26fba922 1996 the existence of `sed' somewhere on your path.) (Thanks to Dirk
fdc7ea2d 1997 Herrman.)
a00c95d9 1998
68933ba3
MD
19992000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2000
b44a555a
MD
2001 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
2002 EXTRA_libguile_la_SOURCES.
2003
2004 * iselect.h: Always declare scm_internal_select.
2005
2006 * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
2007 end. Also let scm_internal_select be a real function also when
2008 not using threads.
2009
68933ba3
MD
2010 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
2011
c7f6ea11
MD
20122000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2013
2014 * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
2015 SCM_ASYNC_TICK. (This is a preparation for POSIX threads support,
2016 and kind of an experiment: Will this cause problems?)
2017
62dbc244
GB
2018Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
2019
2020 * Makefile.am: Added *.doc to DISTCLEANFILES.
2021
4f2f645d
GH
20222000-03-12 Gary Houston <ghouston@arglist.com>
2023
2024 * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
2025 the fdes is valid before doing anything else. check that
2026 the file descriptor supports the modes required.
2027 (scm_fport_buffer_add): don't throw an error if fstat doesn't
2028 work: just use the default buffer size.
2029
2030 * throw.c: change an outdated comment about scm_internal_catch
2031 BODY: it doesn't take a jumpbuf arg.
2032
2033 * init.c (scm_standard_stream_to_port): install a handler in case
2034 scm_fdes_to_port throws an error. don't check here whether the
2035 file descriptor is valid, since scm_fdes_to_port will do that.
2036 set the revealed count depending on whether the port got the
2037 standard file descriptor.
2038 (stream_body_data): new type.
2039 (stream_body, stream_handler): new procs.
2040
7f782a0a
MD
20412000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2042
67673f75
MD
2043 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
2044 Renamed from SCMWORD.
2045
2046 * tags.h (SCM_NCELLP): Removed (SCMWORD).
2047
f1267706 2048 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
67673f75 2049
74a426ae
MD
2050 * async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,
2051 feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h,
2052 hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c,
2053 objects.h, options.c, pairs.h, ports.c, ports.h, print.c,
2054 procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c,
2055 stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h,
2056 throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c,
f1267706 2057 weaks.h (SCM_PACK, SCM_UNPACK, SCM_UNPACK_CAR): Renamed from
74a426ae
MD
2058 SCM_ASSCM, SCM_ASWORD, SCM_CARW).
2059
7f782a0a
MD
2060 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
2061
2062 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
2063 tags.h: Fixed copyright notices.
2064
2065 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
0cd87628 2066
7f782a0a 20672000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
a00c95d9 2068
0cd87628
MV
2069 * init.c (scm_standard_stream_to_port): Check whether the file
2070 descriptor is valid and substitute "/dev/null" when not.
a00c95d9 2071
f3b5e185
MD
20722000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2073
2074 * coop-defs.h (struct timespec): Conditionally defined.
2075
2076 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
2077 instead of ETIME.
38eca29b
MD
2078
2079 * readline.c (match_paren): Bugfix: First arg to select is not
2080 number of descriptors but the number of the highest descriptor +
2081 1.
2082
2083 This is a preliminary attempt at a cleanup of the threads support
2084 code. It moves things to better places, makes arguments more
2085 consistent with the POSIX API (which is used in GNOME's glib), and
2086 adds new functionality.
a00c95d9 2087
38eca29b
MD
2088 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
2089
2090 * coop-defs.h (scm_mutex_trylock): New macro: alias for
2091 coop_mutex_trylock.
2092 (scm_cond_init): Changed definition to
2093 coop_new_condition_variable_init.
a00c95d9 2094
38eca29b
MD
2095 * coop.c: #include <errno.h>
2096 (coop_timeout_qinsert): Moved here from iselect.c
2097 (coop_new_mutex_init, coop_new_condition_variable_init): New
2098 functions. The strange names are temporary. Use scm_mutex_init
2099 and scm_cond_init instead.
2100 (coop_mutex_trylock): New function. Uses errno.h:EBUSY. errno.h
2101 is ANSI C, but should we check for individual error codes in
2102 configure.in?
2103 (coop_condition_variable_timed_wait_mutex): New function.
2104 (coop_key_create, coop_setspecific, coop_getspecific,
7f782a0a 2105 coop_key_delete): New functions.
38eca29b
MD
2106
2107 * iselect.c (coop_timout_qinsert): Moved to coop.c
2108
32e1616c
MD
21092000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2110
2111 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
2112 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
2113
2114 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
2115 Layout cleanups.
2116
2117 * objects.h (SCM_CLASS_FLAGS, SCM_OBJ_CLASS_FLAGS,
2118 SCM_SET_CLASS_INSTANCE_SIZE), struct.h (SCM_STRUCT_VTABLE_DATA),
2119 proc.h (SCM_CLOSCAR): SCM_ASSCM/WORD fixes.
2120
2121 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
2122 dealing with ilocs.
2123
d5c39069
GB
21242000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
2125
2126 * numbers.c (scm_copy_big_dec, scm_copy_smaller, scm_big_ior,
2127 scm_big_xor, scm_big_and, scm_big_test): Added new lowlevel bignum
2128 logical functions from SCM.
2129
2130 (logand, logior, logxor, logtest, logbit?): Extended scheme
2131 logical functions to use bignums from SCM.
2132
2133 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
2134 lognot from using bignums.
2135
3e892913
GB
2136Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
2137
a00c95d9 2138 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
3e892913
GB
2139 eliminating some warnings.
2140
2141 * unif.c, strports.c, print.c, options.c: Fix some warnings on
2142 mis-use of SCM/long
2143
2144 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
2145 what the scm_return_first* functions do.
2146
7ac030d6
GB
21472000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
2148
2149 * libguile/*.[ch]: make a distinction between SCM as a generic
2150 name for a Scheme object (now a void*), and SCM as 32 bit word for
2151 storing tags and immediates (now a long int). Introduced
2152 SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
2153 code in the process: arbiter.c (use macros), unif.c (scm_array_p),
a00c95d9 2154
f635d2d4
GB
2155Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
2156
2157 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
2158 various logXXX primitives. Thanks Eric Moore!
2159
9eaa7fb6
GB
2160Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
2161
2162 * run-test, remaining-docs-needed: Added these scripts. The
2163 second one is only temporary until the docstring additions are
2164 complete. run-test may best live on, but is here mostly for
2165 convenience and awareness for now.
2166
2167 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
2168
49673698
GB
2169Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
2170
2171 * error.h, error.c: Added `scm_wrong_type_arg_msg' to support
2172 displaying the expected type. Use SCM_LISTn in a couple places
2173 instead of scm_cons-ing by hand.
2174
2175 * __scm.h: Added SCM_ASSERT_TYPE macro.
2176
2177 * validate.h, scm_validate.h: Added the former, as a renamed
2178 version of the latter with SCM_ASSERT_TYPE used in
2179 SCM_MAKE_VALIDATE (instead of just SCM_ASSERT)
2180
2181 * Makefile.am: Rename scm_validate.h to validate.h.
2182
2183 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
2184 prefix was superfluous).
2185
417bdef8
GB
2186Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
2187
2188 * hashtab.c: Improved documentation for lots of functions. Added
2189 handwritten docs for `hash-fold'.
2190
2191Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
2192
2193 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
2194
26a760c6
GB
2195Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
2196
a00c95d9 2197 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
26a760c6
GB
2198 added append docs from R4RS.
2199
2200 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
2201 Thanks Dirk Hermann!
2202
2203 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
2204 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
a00c95d9 2205
26a760c6
GB
2206 * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout.
2207 Drop use of SCM_P for function prototypes... assume an ANSI C
2208 compiler. Thanks Dirk Hermann!
2209
898942f8
GB
2210Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
2211
2212 * ports.c: Made `set-port-column!' and `set-port-line!' each
2213 return SCM_UNSPECIFIED instead of a (not-scheme-object) integer
2214 that caused a seg fault. Also fixed `set-port-column!'s
2215 docstring. Thanks Han-Wen Nienhuys for finding the bug!
2216
84a3df2c
GB
2217Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
2218
2219 * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c,
a00c95d9 2220 regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c,
84a3df2c
GB
2221 strings.c, variable.c: Added lots of documentation, cleaned up
2222 some existing documentation. Occasionally changed formal params
2223 to match docs. Also folded an #ifdef into the inners of a
2224 primitive instead of having two copies of the primitive
2225 (`get-internal-real-time', from stime.c)
2226
2227Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
2228
2229 * ports.c: Added docs for primitives missing them. Written by
2230 hand.
2231
3f557de6
GB
2232Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
2233
2234 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
2235 just execing guile-func-name-check. Thanks Michael Livshin!
2236
ddcccdb3
GB
2237Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
2238
2239 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
2240 dead code. Patch from Michael Livshin.
2241
2242 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
2243 Michael Livshin.
2244
720e8692
GH
22452000-02-09 Gary Houston <ghouston@arglist.com>
2246
2247 * init.c (scm_init_standard_ports): when stdout is a tty, make the
2248 current-output-port unbuffered by default. this is less confusing
2249 for interactive use. it was line-buffered because of a
2250 performance problem with unbuffered ports, but I think it will be
2251 OK now.
2252
43ff3170
GH
22532000-02-08 Gary Houston <ghouston@arglist.com>
2254
2255 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
2256 is not defined.
2257
2258 * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor
2259 HAVE_TZNAME are defined, use an empty string instead of giving two
2260 spurious compile-time errors.
2261
4ba47302
GB
2262Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2263
2264 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
2265 Thanks Richard!
2266
09a617f7
GB
2267Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
2268
2269 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
2270
9dbcf010
GB
2271Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
2272
2273 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
2274 (which is GNU GPL'd).
2275
bd9e24b3
GH
22762000-01-31 Gary Houston <ghouston@arglist.com>
2277
2278 * strings.h: don't use SCM_P. don't include <string.h>.
2279 * error.c, gh_data.c, ports.c, script.c, strop.c: include <string.h>.
a00c95d9 2280
bd9e24b3
GH
2281 * strings.c (scm_string_ref): make the 2nd argument compulsory.
2282 previously it defaulted to zero for no good reason that I can see.
2283 use a local variable for SCM_INUM (k). replace
2284 SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY.
2285
2286 (scm_makfromstr): cosmetic changes.
2287
2288 (scm_string): Accept only chars in the list, not strings, for
2289 conformance to R5RS (particularly for list->string, which is
2290 supposed to be the inverse of string->list.) remove
2291 SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since
2292 scm_makstr handles the cell allocation. when reporting wrong-type
2293 arg, don't report the position as 1.
2294
2295 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
2296
28d77376
GH
22972000-01-29 Gary Houston <ghouston@arglist.com>
2298
ae1b098b
GH
2299 * posix.c (scm_pipe): rewrote the docstring.
2300
28d77376
GH
2301 * filesys.c (scm_select, retrieve_select_type, get_element,
2302 fill_select_type, set_element): modified so that Scheme
2303 "select" tests port buffers for the ability to provide input
2304 or accept output. Previously only the underlying file descriptors
2305 were checked. Rewrote the docstring.
a00c95d9 2306
7f1497ce
GB
2307Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
2308
2309 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
2310 from Gregg Reynolds. Thanks Gregg!
2311
2288ff9b
GB
2312Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
2313
2314 * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by
2315 adding "x" prefix to the line so that guile-func-name-check
2316 doesn't complain unnecessarily.
2317
349af6dd
GB
2318Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
2319
2320 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
2321 for maintainability.
2322
2323 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
2324 from qdocs, RnRs.
2325
a28eb127
GB
2326Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
2327
a00c95d9 2328 * tag.c: Added doc for `tag', but mark as deprecated since Mikael
a28eb127
GB
2329 suggests removing tag.c altogether (and using a new `class-of'
2330 instead).
2331
2332 * strings.c: Added documentation from Gregg A. Reynolds. Edited
2333 a bit by me to use FOO instead of @var{foo} and to have the
a00c95d9 2334 summary come before preconditions on input. Also dropped trailing
a28eb127
GB
2335 (rnrs) note.
2336
2337 * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the
2338 function with scm_make_subr_opt w/ last arg of 0 so it is not
2339 visible at the Scheme level. Mikael says that this is the right
2340 thing because the first arg to the proc is the guts of a compiled
2341 closure and shouldn't be exposed to the Scheme level.
2342
ac2259fc
GB
2343Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
2344
2345 * sort.c: typo in comment fixed.
2346
2347 * keywords.c: Added documentation.
2348
2349 * guardians.c: Added documentation (could be better).
2350
2351 * gc.c: Added docs for gc-set-debug-check-freelist.
2352
2353 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
2354
2355 * boolean.c: Added docs for `not', `boolean?' (by hand).
a00c95d9 2356
d928e0b4
GB
2357Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
2358
2359 * random.c: Added documentation, from SLIB page:
2360 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
2361
2362Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
2363
2364 * variable.c, version.c: Added documentation, written by hand
2365 since I could not find anything already written that was
2366 relevant.
2367
d831b039
GH
23682000-01-23 Gary Houston <ghouston@arglist.com>
2369
a00c95d9 2370 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
d831b039
GH
2371 not defined (thanks to Richard Y. Kim).
2372
88ec97ad
GB
2373Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
2374
2375 * Makefile.in: Removed, this is auto-generated.
2376
078e9092
GB
2377Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
2378
2379 * list.c: Put some variable initialization code at the point of
2380 declaration; Added a comment for list*; Formatting changes.
2381
2382 * load.c: use SCM_NNULLP to make sure the end of a list is not
2383 reached yet.
2384
e7a96050
MD
23852000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2386
a177af34
MD
2387 * backtrace.c (scm_display_error_message): Bugfix: Don't use
2388 result of scm_list_p as C boolean.
2389 (scm_display_error_message, scm_set_print_params_x): Use new
2390 validation macros. (Thanks to Dirk Herrmann.)
2391
d06bcb02
MD
2392 * net_db.c (scm_resolv_error): Cast result from hstrerror.
2393
2394 * strports.c (st_end_input): Inserted parenthesis to get operator
2395 grouping correct.
2396
2397 * list.h (scm_init_list): Removed SCM_P around prototypes.
2398
2399 * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c,
2400 filesys.c, posix.c: Converted docstrings to ANSI C format and
e7a96050
MD
2401 escaped " occurring inside string literals.
2402
682eefe9
MD
2403Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
2404
2405 * posix.c (scm_mknod): Escape " occuring inside docstring.
2406
56cfe22b
MD
24072000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2408
2409 * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,
2410 evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c,
2411 keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c,
2412 objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c,
2413 ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c,
2414 stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c,
2415 symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c,
2416 weaks.c: Converted docstrings to ANSI C format.
a00c95d9 2417
56cfe22b
MD
2418 * filesys.c (scm_chmod), simpos.c (scm_system), version
2419 (scm_version), vports (scm_make_soft_port): Escape " occuring
2420 inside docstring.
2421
fcb1720f
GB
2422Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
2423
2424 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
2425 SCM_VALIDATE_LONG_COPY
2426
2427 * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
2428 SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
2429 couple of formal arguments (and fix their uses) to make arguments
2430 match the documentation.
2431
b9af3d0e
MS
24322000-01-14 <mstachow@alum.mit.edu>
2433
2434 * Makefile.am: Augment path when running guile-doc-snarf so
2435 guile-func-name-check is found.
2436
153511a7
GB
2437Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
2438
2439 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
2440 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
2441
59d5245f
GB
2442Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
2443
2444 * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's
2445 the way guile-1.3.4 worked, but #if 0 out the version using
2446 SCM_VALIDATE_INUM_COPY for stricter testing.
2447
95aec69f
GB
2448Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
2449
2450 * guile-doc-snarf.in: Use new $fullfilename for running
2451 guile-func-name-check, and put "$fullfilename" and "$filename" in
2452 quotes at uses to make sure re-splitting on whitespace does not
a00c95d9 2453 occur (so filenames w/ embedded whitespace would work okay, though
95aec69f
GB
2454 I sure hope we never have to deal with that! :-) ). Thanks to
2455 Mikael for pointing out the source_dir != build_dir was broken.
2456
b7ac2837
GB
2457Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
2458
2459 * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make
2460 SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
2461 SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
2462 macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
2463 variants.
2464
2465 * ports.c (scm_port_closed_p): Validate that the arg is a PORT,
2466 then return whether it's an open port (was validating that it was
2467 an open port -- this was a bug I introduced back in December, but
2468 my careful reading of diffs caught it).
2469
2470 * numbers.c: Recombine the two conditional-compilation paths for
2471 all the log* primitives -- they were split based on #ifndef
2472 scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
2473 some bugs and inconsistencies in the two sets of implementations.
2474 (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
2475
2476 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
2477 SCM_VALIDATE_INUM_COPY once where it should've been used.
2478
2479 * fluids.c (scm_internal_with_fluids): Use
2480 SCM_VALIDATE_LIST_COPYLEN.
2481
2482 * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
2483 this is questionable as it relaxes type safety, but other changes
2484 were useful and all SCM_NUM2LONG's should probably be
2485 revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
2486
2487 * evalext.c: line-break change on 1 line.
2488
2489 * eval.c (nconc2last): Takes a non-empty list as its first
2490 argument, not just a list.
2491
2492 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
2493
2494Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
2495
2496 * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c,
2497 net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
2498 where possible.
2499
2500 * symbols.c (scm_sysintern0): Fixed the function name in a
2501 scm_misc_error invocation.
2502
2503 * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
2504 use scm_return_first to ward off latent GC bug that Mikael caught.
2505
2506 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
2507 used before but should've been.
2508
d61f6b02
MD
25092000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2510
2511 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
2512 SCM_FUNC_CAST_ARBITRARY_ARGS.
2513
88423ab1
GB
2514Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
2515
2516 * guile-func-name-check.in: Added this script to statically check
2517 #define FUNC_NAME, #undef FUNC_NAME in the source.
2518
2519 * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
2520 redundant comment, semicolon; caught by new guile-func-name-check
2521 script.
2522
2523 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
2524 Caught by new guile-func-name-check-script.
2525
2526 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
2527
2528 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
2529 guile-func-name-check.
2530
a00c95d9 2531 * guile-doc-snarf.in: Run guile-func-name-check on the file before
88423ab1
GB
2532 doing the snarf.
2533
7f15e635
GB
2534Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
2535
2536 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
2537 port function take const void*, not void*.
2538
bf121b59
GB
2539Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
2540
2541 * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c,
2542 strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
2543 SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
2544 consistency with the other macros dealing with immediate
2545 characters. (Similar to INT -> INUM change a week or so ago).
2546
7965d98f
GB
2547Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2548
2549 * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c,
2550 net_db.c, read.c, socket.c: Update error messages to use ~A for
2551 %s, ~S for %S to work with new `simple-format' format and be
2552 standardized better.
2553
2554 * print.h, print.c (scm_simple_format): Added `simple-format'
2555 primitive. It's the old scm_display_error, with ARGS now a rest
a00c95d9 2556 parameter, and the destination first instead of last (and a couple
7965d98f
GB
2557 new capabilities inspired by `format' -- #t as destination means
2558 current-output-port, #f means return the formatted text as a
2559 string.
2560
2561 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
2562
2563 * backtrace.c (scm_display_error_message): Rewrote to use
2564 scm_simple_format() procedure.
2565
2566 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
2567
f73d2411
MV
25682000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
2569
2570 Finally applied the libltdl patch from Thomas Tanner, with slight
2571 modifications.
2572
2573 * DYNAMIC-LINKING: Removed because it is obsolete.
2574 * dynl.c: Use ANSI prototypes.
2575 (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen.
2576 * scmconfig.h.in: Do not change, as it is automatically generated.
a00c95d9 2577
f73d2411
MV
2578 1999-07-25 Thomas Tanner <tanner@ffii.org>
2579
2580 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
2581 (obsolete)
2582 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
2583 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
2584 against libltdl
2585 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
2586 * guile.c: register preloaded modules
2587 * scmconfig.h.in: remove obsolete symbols
2588
38c1d3c4
GH
25892000-01-09 Gary Houston <ghouston@arglist.com>
2590
2591 * These changes should make it unnecessary to call tzset from
2592 Scheme after modifying the TZ environment variable, even if the
2593 system date facilities cache the value.
2594 * stime.c (setzone, scm_localtime): added comments.
2595 (tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
2596 (setzone): don't call tzset.
2597 (restorezone): call tzset only if HAVE_TZSET is defined.
2598 (scm_tzset): don't define if HAVE_TZSET not defined. Change the
2599 doc string to indicate that this procedure isn't likely to do
2600 anything useful.
2601 (scm_localtime, scm_strftime, scm_mktime): call tzset if
2602 LOCALTIME_CACHE is defined.
2603
9359d657
MD
26042000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2605
2606 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
2607
f25f761d
GH
26082000-01-09 Gary Houston <ghouston@arglist.com>
2609
2610 * eval.c: define scm_unbound_variable_key ('unbound-variable).
2611 scm_lookupcar1: throw an error with key 'unbound-variable instead
2612 of 'misc-error when an unbound variable is encountered.
2613
a00c95d9 2614 * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
f25f761d
GH
2615 scm_symlink, scm_readlink, scm_lstat),
2616 posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
2617 scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
2618 scm_sync),
a00c95d9 2619 simpos.c (scm_system),
f25f761d
GH
2620 stime.c (scm_times, scm_strptime):
2621 move the HAVE_XXX feature tests out of the procedure bodies.
2622 don't use SCM_SYSMISSING.
2623 scm_validate.h (SCM_SYSMISSING): removed.
2624 error.h, error.c (scm_sysmissing): comment that this is deprecated.
2625 see ChangeLog entry for 1999-12-28.
2626
a4dd2611
GB
2627Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
2628
2629 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
2630
2631Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2632
2633 * backtrace.c: Fix spelling typo in a comment.
2634
2635 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
2636 text. Reformatted some of the expansions.
2637
5ac36451
GB
2638Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2639
2640 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
2641 report the position of the argument.
2642
a00c95d9 2643 * error.h, error.c (scm_out_of_range_pos): Added this function to
5ac36451 2644 take extra "pos" argument, the position number of the errant
a00c95d9 2645 argument.
5ac36451
GB
2646
2647 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
2648
2649 * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
2650 and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
2651 prefers that and I'm reasonably indifferent.
2652
2653Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
2654
2655 * snarf.h: Factor out differences between C++ and non-C++ into
2656 SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
2657 definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
2658 Mikael's macros, below, but changed names and SCM_SNARFING no
2659 longer expands to include %%% -- that must appear in the argument
2660 so that the token appears at the call-site as a reminder).
2661
088bb1d4
MD
26622000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2663
2664 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
2665 snarf macro definitions.
2666
636480e6
MD
26672000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2668
2669 * chars.c (scm_integer_to_char): Use Greg's nice
2670 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
2671 adherence to R5RS.
2672
7c5628e2
GB
2673Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
2674
2675 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
2676
2cc0f8cb
GB
2677Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
2678
2679 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
2680 instead of GUILE_PROC.
2681
2682Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
2683
a00c95d9 2684 * alist.c: Do not report mismatch errors on some uses of `tmp' (do
2cc0f8cb
GB
2685 this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS
2686 macro call.
2687
9179dcdd
GB
2688Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
2689
2690 * scm_validate.h: Remove some redundant NIMP tests.
2691
2692 * alist.c: minimize scope of the tmp variables, and initialize
2693 them when declared. The strange SCM_NIMP tests are replaced by
2694 SCM_CONSP tests that more closely reflect the intended semantics.
2695 However, we don't get a performance penalty here, because the
2696 SCM_CONSP test was performed by the ALISTCELL test anyway. * The
2697 extremely ugly use of ASRTGO macros was removed: The calls to
2698 ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
2699 label parameter that only exists when SCM_RECKLESS is not defined.
2700 This works, because ASRTGO itself is defined in a way that it only
2701 makes use of the label parameter if SCM_RECKLESS is not defined
2702 (shudder!). Does guile make at all use of the possibility to
2703 define SCM_RECKLESS? * Codesize is likely to be reduced, since
2704 instead of two calls to SCM_ASSERT performed by the ALISTCELL test
2705 we now only get one test.
2706
2707 * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
2708 SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
2709 some variables in `list?'. Fix `reverse' and `reverse!'
2710 primitives to handle improper lists better.
2711
15b33280
GB
2712Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
2713
2714 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
2715 macros and SCM_DEFINE macros to match GNU coding standards.
2716
ca8cd130
GB
2717Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
2718
2719 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
2720
fb764465
GB
2721Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
2722
2723 * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for
2724 better consistency with the names of other SCM_VALIDATE_ macros
2725 and better conformance to guile naming policy.
2726
2727Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
2728
2729 * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a
2730 SCM_VALIDATE instead of 1 to avoid a check on the argument (since
2731 it's not the actual name of the formal).
1e484823
GB
2732
2733 * guile-snarf.awk.in: Do argument/number mismatch checking and
2734 print warnings in an Emacs compile-mode parseable format.
2735
2736 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
2737 SCM_OUTOFRANGE as 3rd argument.
2738
2739 * random.c: Fix argument/number mismatch (that I introduced :-( ).
2740
2741 * __scm.h: Do not #define SCM_ARG* when snarfing;
2742 lets us distinguish between 1 and SCM_ARG1 when snarfing as only
2743 the former (using the number) requires the argument to match the
2744 formal in the current argument snarfing check.
2745
2746 * snarf.h: Give new definition of SCM_ASSERT when in
a00c95d9 2747 snarfing mode to output a lexically-identifiable sequence that the
1e484823
GB
2748 guile-snarf.awk script uses to verify argument/position matching.
2749
2750 * ramap.c: Remove extraneous #undef FUNC_NAME.
2751
53fc4636
GB
2752Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
2753
2754 * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the
a00c95d9 2755 current version of the same functionality; it writes the .x output
53fc4636
GB
2756 to stdout instead of directly into the file.
2757
2758Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
2759
2760 * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c,
2761 posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
2762 redundant with the safer macros. Patch from Dirk Hermann applied
2763 by hand. Thanks Dirk!
2764
2765 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
2766 uses in random.c.
2767
2768 * ramap.c: whitespace change.
2769
3b5345d9
GB
2770Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
2771
2772 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
2773 removals from Dirk Hermann.
2774
2775 * alist.c: Rename formals to match the parameter names in the
2776 documentation, updates to documentation. Thanks Dirk Hermann!
2777
169aec65
MD
27782000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2779
db62436e
MD
2780 * eval.c (SCM_CEVAL): Reverse order of
2781 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
2782 (Thanks to Brad Knotwell.)
169aec65 2783
da43d822
GB
2784Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
2785
2786 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
a00c95d9 2787 allocated cell.
da43d822
GB
2788
2789 * pairs.h: Added a comment about the need for the SCM_SETCAR in
2790 SCM_NEWCELL macro.
2791
2792Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
2793
2794 * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More
2795 SCM_NIMP tests that were redundant are now eliminated. Patches
2796 from Dirk Hermann applied by hand.
2797
339999c7 2798The ChangeLog continues in the file: "ChangeLog-1996-1999"