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