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