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