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