* No binding is created for %gc-thunk any more.
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
78573619
DH
12000-12-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
2
3 * gc.c (scm_init_gc): Don't create a binding for %gc-thunk.
4
a4bb4e6d
DH
52000-12-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
6
7 * gsubr.c: No need to include vector.h.
8
9 (scm_gsubr_apply): Use SCM_GSUBR_MAX instead of hard-coded value.
10 Added FUNC_NAME wrapping. Improved (temporarily?) disabled
11 debugging code. Replaced SCM_IMP with SCM_NULLP. Eliminated call
12 to ASRTGO.
13
14 (scm_init_gsubr): Eliminated outdated comment.
15
fd336365
DH
162000-12-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
17
18 * async.c (SCM_ASYNCP): Use SCM_TYP16 instead of SCM_GCTYP16.
19
20 * eval.c (scm_m_vref, scm_m_vset, scm_m_define, SCM_CEVAL,
21 SCM_APPLY, scm_copy_tree): Remove commented code.
22
23 (SCM_CEVAL, SCM_APPLY): Remove #ifdef CCLO conditionals. Without
24 CCLO being defined, guile would not compile at all anyway.
25
26 * gc.h (SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
27 SCM_GCCDR): Deprecated.
28
29 * gdbint.c (unmark_port, remark_port, gdb_read), procs.c
30 (scm_mark_subr_table): Use SCM_(SET|CLR)?GCMARK(P)? instead of
31 SCM_(SET|CLR)?GC8MARK(P)?.
32
33 * gh_data.c (gh_scm2char): Remove bogus ';'.
34
35 * tags.h: Removed comment about GCTYP16 macro.
36
37 * weaks.c (scm_mark_weak_vector_spines): Use SCM_CDR instead of
38 SCM_GCCDR.
39
e34f941a
DH
402000-12-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
41
42 * print.c (scm_iprin1): Use scm_tc3_* codes instead of hardcoded
43 values. Added comment about tc3 codes that may appear in
44 immediates. Got rid of one goto command.
45
01449aa5
DH
462000-12-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
47
48 * dynl.c (sysdep_dynl_link): Improved error reporting.
49
50 * guardians.c: Changed the representation from a compiled closure
51 to an applicable smob.
52
53 (guard1, CCLO_G): Removed.
54
55 (guard, g_mark, g_print, scm_tc16_guardian, scm_guardian_gc_init,
56 scm_guardian_zombify): Renamed to guardian_apply, guardian_mark,
57 guardian_print, tc16_guardian, guardian_gc_init and
58 guardian_zombify, respectively.
59
60 (guardian_free): Added, fixes a memory leak.
61
62 (guardian_print): Don't use sprintf hack.
63
64 (guardian_apply, scm_guard, scm_get_one_zombie,
65 scm_make_guardian): Don't use a compiled closure.
66
67 (guardian_zombify): Prefer !SCM_NULLP over SCM_NIMP. No need to
68 use SCM_GCCDR any more. Simplified loop condition.
69
70 (scm_init_guardian): Don't use scm_make_smob_type_mfpe for smob
71 initialization. Initialize applicable smob.
72
362306b9
DH
732000-12-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
74
75 * chars.c (scm_char_eq_p): Minor cleanup/optimization.
76
77 * gc.c (scm_gc_mark): Don't use SCM_VELTS for CCLOs.
78
79 * procprop.c (scm_i_procedure_arity): Separate handling of smobs
80 and CCLOs.
81
8c921d5c
DH
822000-12-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
83
84 * tags.h (scm_tc_free_cell, scm_tc16_big, scm_tc16_real,
85 scm_tc16_complex): Eliminate hard-coded value of scm_tc7_smob.
86
79a3dafe
DH
872000-12-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
88
89 * list.[ch] (scm_c_memq): Added as a fast C level alternative for
90 scm_memq for the case that the list parameter is known to be a
91 proper list.
92
93 * goops.c (filter_cpl, remove_duplicate_slots, applicablep),
94 goops.h (SCM_SUBCLASSP): Use scm_c_memq if we are sure that we
95 pass proper lists.
96
23437298
DH
972000-12-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
98
99 * goops.c (scm_sys_compute_slots, scm_i_get_keyword,
100 scm_get_keyword, scm_slot_ref_using_class,
101 scm_slot_set_using_class_x): Update the code to match guile's
102 current style (e. g. using SCM_DEFINE, adding comments, removing
103 unnecessary SCM_NIMP tests etc.).
104
21e8f468
DH
1052000-11-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
106
107 Thanks to Julian Satchell for the bug report:
108
109 * coop-threads.c (scm_join_thread): Check whether a thread is
110 finished before trying to join it.
111
112 * coop.c (coop_aborthelp, coop_join): When a thread finishes, its
113 stack base is not set to NULL any more.
114
2b7b76d5
DH
1152000-11-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
116
117 * strop.c (scm_i_index): Removed outdated comment.
118
e51fe79c
DH
1192000-11-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
120
121 * struct.c (scm_struct_ref, scm_struct_set_x), symbols.c
122 (scm_intern_obarray_soft), symbols.h (SCM_ROUCHARS): Eliminate
123 use of SCM_SYMBOL_UCHARS by using chars instead of unsigned
124 chars.
125
126 (SCM_SYMBOL_UCHARS): Removed.
127
ce212434
GH
1282000-11-26 Gary Houston <ghouston@arglist.com>
129
130 * reimplementation of values, call-with-values as primitives:
131
132 * values.c, values.h: new files. use a struct to contain multiple
133 values, similar to the previous Scheme-level implementation.
134 * Makefile.am: add values.c, values.h, values.x.
135 * continuations.c (continuation_apply): support R5RS multiple value
136 continuations.
137 * init.c: call scm_init_values.
138 * struct.h: define SCM_SET_STRUCT_PRINTER.
139
5f144b10
GH
1402000-11-25 Gary Houston <ghouston@arglist.com>
141
142 * use an applicable SMOB to represent continuations, instead of a
143 custom tc7 type. This will make it easier to support R5RS
144 multiple value continuations, without the use of a Scheme-level
145 wrapper.
146
147 * continuations.c (scm_tc16_continuation, continuation_mark,
148 continuation_free, continuation_print, continuation_apply):
149 new SMOB support.
150 (scm_make_continuation): new procedure, replaces scm_make_cont
151 with a different interface.
152 (copy_stack_and_call, scm_dynthrow, scm_init_continuations): rewritten.
153 (CHEAP_CONTINUATIONS): removed non-working code completely.
154 (scm_call_continuation): removed.
155 * continuations.h (struct scm_contregs): add num_stack_items and
156 stack fields. previously stack was stored following this struct:
157 use a tail array instead.
158 (SCM_CONTINUATIONP): new macro.
159 (SCM_CONTINUATION_LENGTH, SCM_SET_CONTINUATION_LENGTH):
160 rewritten.
161 (SCM_SET_CONTREGS): removed.
162 * tags.h: removed scm_tc7_contin (was tag 61).
163 * debug.c, gc.c, hash.c, print.c, procprop.c, procs.c:
164 removed scm_tc7_contin support.
165 * eval.c: use scm_make_continuation instead of scm_make_cont.
166 don't set jump buffers here. remove scm_tc7_contin support.
167 * init.c, root.c: create SMOB continuation for rootcont instead
168 of scm_tc7_contin. call scm_init_continuations before
169 scm_init_root.
170 * root.c: remove support for static jmpbuf. It's not used by
171 default and I broke it. create SMOB continuation for rootcont.
172 * stacks.c: use SCM_CONTINUATIONP.
173
7f555fb4
DH
1742000-11-24 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
175
176 * goops.c (filter_cpl, remove_duplicate_slots), goops.h
177 (SCM_SUBCLASSP): Fix previous change: In contrast to
178 scm_sloppy_memq the function scm_memq returns #f if the
179 object was not contained in the list.
180
ca83b028
DH
1812000-11-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
182
183 * goops.c: Include validate.h.
184
185 (DEFVAR, scm_add_method): Don't use deprecated scm_eval2.
186
187 (scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x,
188 scm_m_atdispatch): Provide FUNC_NAME definition. Don't use
189 deprecated SCM_OUTOFRANGE macro.
190
191 (scm_sloppy_num2ulong, scm_sys_logand): Removed. Guile's logand
192 function now provides the desired behaviour.
193
194 * goops.c (filter_cpl, remove_duplicate_slots), goops.h
195 (SCM_SUBCLASSP): Don't use deprecated scm_sloppy_memq.
196
5b9eb8ae
DH
1972000-11-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
198
199 * symbols.h (SCM_LENGTH_MAX): Deprecated.
200
201 * unif.c (scm_make_uve): Use SCM_BITVECTOR_MAX_LENGTH and
202 SCM_UVECTOR_MAX_LENGTH instead of SCM_LENGTH_MAX. Postpone length
203 checks for strings and vectors to their constructors. Eliminate
204 redundant SCM_IMP test.
205
206 (scm_dimensions_to_uniform_array): Postpone length checks to
207 scm_make_uve.
208
209 * unif.h (SCM_BITVECTOR_MAX_LENGTH, SCM_UVECTOR_MAX_LENGTH):
210 Added.
211
2122000-11-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
6a0476fd
DH
213
214 * gh_data.c (makvect), numbers.c (scm_mkbig, scm_adjbig),
215 strings.c (scm_makstr, scm_take_str), symbols.c
216 (scm_intern_obarray_soft, scm_sysintern0_no_module_lookup), unif.c
217 (scm_make_uve), vectors.c (scm_make_vector): Use appropriate
218 SCM_SET_<type>_(CHARS|BASE) macro instead of SCM_SETCHARS.
219
220 * numbers.h (SCM_SET_BIGNUM_BASE), strings.h
221 (SCM_SET_STRING_CHARS), symbols.h (SCM_SET_SYMBOL_CHARS), unif.h
222 (SCM_SET_UVECTOR_BASE, SCM_SET_BITVECTOR_BASE), vectors.h
223 (SCM_SET_VECTOR_BASE): Added.
224
225 * symbols.c (SCM_SETCHARS): Deprecated.
226
93778877
DH
2272000-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
228
229 * gc.c (scm_gc_sweep), unif.c (scm_make_uve): Don't allocate or
230 free memory for empty bitvectors.
231
232 * gh_data.c (makvect), strings.c (scm_makstr, scm_take_str),
233 symbols.c (scm_intern_obarray_soft,
234 scm_sysintern0_no_module_lookup), unif.c (scm_make_uve): Use
235 appropriate SCM_SET_<type>_LENGTH macro instead of SCM_SETLENGTH.
236
237 * strings.h (SCM_SET_STRING_LENGTH), symbols.h
238 (SCM_SET_SYMBOL_LENGTH), unif.h (SCM_SET_UVECTOR_LENGTH,
239 SCM_SET_BITVECTOR_LENGTH): Added.
240
241 * symbols.h (SCM_SETLENGTH): Deprecated.
242
d7cf4325
DH
2432000-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
244
245 * continuations.c (scm_make_cont): Use
246 SCM_SET_CONTINUATION_LENGTH instead of SCM_SETLENGTH.
247
248 * continuations.h (SCM_SET_CONTINUATION_LENGTH): Added.
249
bc0eaf7b
DH
2502000-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
251
252 * vectors.c (scm_make_vector), weaks.c (scm_make_weak_vector):
253 Use SCM_SET_VECTOR_LENGTH instead of SCM_SETLENGTH.
254
255 * vectors.h (SCM_SET_VECTOR_LENGTH): Added.
256
34f0f2b8
DH
2572000-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
258
259 * dynl.c (scm_make_argv_from_stringlist), filesys.c (scm_dirname,
260 scm_basename), gh_data.c (gh_scm2newstr, gh_get_substr), hash.c
261 (scm_hasher), load.c (scm_parse_path, scm_search_path,
262 scm_primitive_load_path), numbers.c (scm_string_to_number),
263 ports.c (scm_unread_string), posix.c (scm_convert_exec_args,
264 environ_list_to_c, scm_putenv), print.c (scm_iprin1,
265 scm_simple_format), random.c (scm_seed_to_random_state), socket.c
266 (scm_fill_sockaddr, scm_send, scm_sendto), strings.c
267 (scm_string_ref, scm_substring, scm_string_append), strings.h
268 (SCM_STRING_COERCE_0TERMINATION_X), strop.c (scm_i_index,
269 scm_string_to_list, scm_string_copy), strorder.c
270 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p,
271 scm_string_ci_less_p), strports.c (scm_mkstrport), struct.c
272 (scm_make_struct_layout), symbols.c (scm_string_to_symbol,
273 scm_string_to_obarray_symbol, scm_gensym, scm_gentemp): Replace
274 calls to SCM_ROU?CHARS with the corresponding call to
275 SCM_STRING_U?CHARS.
276
277 * symbols.h (SCM_ROCHARS, SCM_ROUCHARS): Deprecated.
278
f0942910
DH
2792000-11-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
280
281 * ports.c: Include eval.h.
282
283 * strings.c (scm_string_set_x), strings.h (SCM_RWSTRINGP),
284 validate.h (SCM_VALIDATE_RWSTRING): Deprecate SCM_RWSTRINGP and
285 SCM_VALIDATE_RWSTRING.
286
287 * strings.h (SCM_STRING_UCHARS, SCM_STRING_CHARS): Handle strings
288 and substrings uniformly. However, substring handling is
289 deprecated.
290
291 (SCM_RWSTRINGP): Deprecated.
292
fc40e1fd
GH
2932000-11-18 Gary Houston <ghouston@arglist.com>
294
295 * Makefile.am (.c.x): don't prefix ".:" to $PATH when running
296 guile-doc-snarf. it doesn't seem to do anything useful, but would
297 fail if $PATH contained whitespace. Thanks to Lars J. Aas.
298
8dc9439f
MV
2992000-11-17 Marius Vollmer <mvo@zagadka.ping.de>
300
301 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
302 continuations.c, debug-malloc.c, debug.c, dynl.c, dynwind.c,
303 environments.c, eq.c, error.c, eval.c, evalext.c, feature.c,
304 filesys.c, fluids.c, fports.c, gc.c, goops.c, guardians.c, hash.c,
305 hashtab.c, hooks.c, ioext.c, iselect.c, keywords.c, lang.c,
306 list.c, load.c, macros.c, modules.c, net_db.c, numbers.c,
307 objects.c, objprop.c, options.c, pairs.c, ports.c, posix.c,
308 print.c, procprop.c, procs.c, properties.c, ramap.c, random.c,
309 read.c, regex-posix.c, root.c, scmsigs.c, script.c, simpos.c,
310 socket.c, sort.c, srcprop.c, stackchk.c, stacks.c, stime.c,
311 strings.c, strop.c, strorder.c, strports.c, struct.c, symbols.c,
312 tag.c, threads.c, throw.c, unif.c, variable.c, vectors.c,
313 version.c, vports.c, weaks.c: Makes sure the snarfer output
314 inclusion is disabled when the snarfer is run on the file. Thanks
315 to Lars J. Aas!
316
317 * Makefile.am: Install guile-procedures.txt in version-specific
318 directory to enable multiple installed guile versions. Suggested
319 by Karl M. Hegbloom <karlheg@debian.org, patch by Matthias Koeppe.
320
6b72ac1d
GH
3212000-11-13 Gary Houston <ghouston@arglist.com>
322
323 * fports.c: include gc.h.
324 (fport_flush, fport_close): silently ignore I/O errors when
325 closing a port during gc. it's better than aborting in scm_error.
326
327 * throw.c (scm_handle_by_message): remove obsolete comment.
328
9f561420
GH
3292000-11-12 Gary Houston <ghouston@arglist.com>
330
331 * fports.c (scm_open_file): fix the 'b' option. Thanks
332 to George Caswell.
333
b875c468
GH
3342000-11-09 Gary Houston <ghouston@arglist.com>
335
336 * ports.c, ports.h (scm_close_all_ports_except): deprecated.
337 use port-for-each. Updated its docstring.
338
c2ca4493
GH
3392000-11-07 Gary Houston <ghouston@arglist.com>
340
341 * ports.c (scm_port_for_each): new proc. implements port-for-each,
342 which applies a procedure to each port in the port table.
343 ports.h: declare scm_port_for_each.
344
345 * ioext.c (scm_dup2): new proc. implements "dup2" which is a simple
346 wrapper for the dup2 system call (unlike dup->fdes or
347 primitive-move->fdes).
348 * ioext.h: declare scm_dup2.
349
350 * filesys.c (scm_close_fdes): new proc. implements "close-fdes"
351 which is a simple wrapper for close system call (unlike scm_close).
352 * filesys.h: declare for scm_close_fdes.
353
b100f5ee
MD
3542000-11-06 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
355
356 * eval.c (SCM_IM_DISPATCH), objects.c (scm_mcache_lookup_cmethod):
357 Count n_specialized + 1 turns before letting a match through.
358
359 * goops.c (scm_sys_invalidate_method_cache_x): Don't convert
360 scm_si_n_specialized from fixnum and don't take absolute value.
361 (Thanks to Lars J. Aas.)
362
eb5c0a2a
GH
3632000-11-04 Gary Houston <ghouston@arglist.com>
364
365 * ports.c (scm_port_p): new function, implements "port?" which
366 is mentioned in R5RS.
367 * ports.h: declare scm_port_p.
368
931dd6e1
DH
3692000-11-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
370
371 * backtrace.c (display_expression, display_error_body), fports.c
372 (prinfport), print.c (scm_iprin1): Test for symbols and strings
373 explicitly instead of using SCM_ROSTRINGP.
374
375 * backtrace.c (scm_display_error_message): Don't pass a symbol to
376 scm_simple_format. Prefer high-level output functions.
377
378 (display_error_body): When displaying procedure names, give
379 preference to the name passed as a parameter. Only if none is
380 given extract a name from the stack information.
381
382 * fports.c (scm_fdes_to_port, prinfport), gc.c (scm_gc_mark),
383 ports.c (scm_port_filename, scm_set_port_filename_x): Use
384 SCM_(SET_)?FILENAME.
385
386 * gh_data.c (gh_set_substr, gh_scm2newstr, gh_get_substr,
387 gh_symbol2newstr): Use scm_remember instead of a pair of calls to
388 scm_protect/unprotect_object.
389
390 * goops.c (make_struct_class), objects.c (scm_class_of): Struct
391 table names are symbols.
392
393 * ports.h (SCM_SET_FILENAME): Added.
394
395 * print.c (scm_iprin1): Don't use scm_puts to write symbols or
396 strings in order to treat substrings right. Reposition call to
397 scm_remember after the last use of object's data.
398
399 (scm_simple_format): Treat messages that are substrings right.
400
401 * symbols.h (SCM_ROSTRINGP): Deprecated.
402
66460dfb
DH
4032000-11-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
404
405 * environments.c (obarray_replace, obarray_retrieve,
406 obarray_remove): Don't use '==' to compare SCM objects.
407
408 * posix.c (scm_getgroups): Don't create a redundant string.
409
0f87853a
DH
4102000-11-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
411
412 * symbols.c (scm_sym2vcell, scm_sym2ovcell_soft,
413 scm_intern_symbol, scm_unintern_symbol): Symbol objects already
414 hold their hash values, no need to recompute them.
415
416 (scm_intern_obarray_soft): Speed up search for a matching symbol
417 by comparing the hash values first.
418
a3a32939
DH
4192000-10-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
420
421 * unif.c (scm_make_uve, scm_dimensions_to_uniform_array): Don't
422 allow vectors longer than SCM_LENGTH_MAX. This removes the
423 SCM_HUGE_LENGTH trick, i. e. storing a vector length greater than
424 SCM_LENGTH_MAX at the beginning of the vector's memory. Since not
425 all of guile's code was implemented to be aware of this trick, it
426 is unlikely that it was used anyway. We can implement such a
427 feature more cleanly by using double cells for uniform vector
428 types.
429
430 (scm_shap2ra): Replace SCM_IMP and SCM_NIMP tests by more
431 straightforward predicates.
432
433 (scm_dimensions_to_uniform_array): Require that for dimensions
434 given as lower-bound/upper-bound pairs the upper-bound is never
435 less than the lower bound.
436
a6d9e5ab
DH
4372000-10-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
438
439 * dynl.c (scm_dynamic_link, scm_dynamic_func, scm_dynamic_call,
440 scm_dynamic_args_call), filesys.c (scm_chown, scm_chmod,
441 scm_open_fdes, scm_stat, scm_link, scm_rename, scm_delete_file,
442 scm_mkdir, scm_rmdir, scm_opendir, scm_chdir, scm_symlink,
443 scm_readlink, scm_lstat, scm_copy_file), fports.c (scm_open_file),
444 ioext.c (scm_read_delimited_x, scm_fdopen), load.c
445 (scm_primitive_load, scm_parse_path, scm_search_path,
446 scm_sys_search_load_path, scm_primitive_load_path), net_db.c
447 (scm_inet_aton, scm_gethost, scm_getnet, scm_getproto,
448 scm_getserv), numbers.c (scm_string_to_number), ports.c
449 (scm_truncate_file, scm_sys_make_void_port), posix.c
450 (scm_getpwuid, scm_getgrgid, scm_execl, scm_execlp,
451 environ_list_to_c, scm_execle, scm_utime, scm_access,
452 scm_setlocale, scm_mknod), regex-posix.c (scm_make_regexp),
453 simpos.c (scm_system, scm_getenv), socket.c (scm_fill_sockaddr,
454 scm_send, scm_sendto), stime.c (scm_strftime, scm_strptime),
455 strop.c (scm_i_index, scm_string_null_p, scm_string_to_list),
456 strports.c (scm_mkstrport), symbols.c
457 (scm_string_to_obarray_symbol), vports.c (scm_make_soft_port):
458 Don't accept symbols as input parameters. Use SCM_STRING_LENGTH
459 instead of SCM_ROLENGTH.
460
461 * dynl.c (scm_dynamic_link, scm_dynamic_func), error.c
462 (scm_error_scm), filesys.c (scm_chown, scm_chmod, scm_open_fdes,
463 scm_stat, scm_link, scm_rename, scm_delete_file, scm_mkdir,
464 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
465 scm_lstat, scm_copy_file), fports.c (scm_open_file), ioext.c
466 (scm_fdopen), net_db.c (scm_inet_aton, scm_gethost, scm_getnet,
467 scm_getproto, scm_getserv), ports.c (scm_truncate_file,
468 scm_sys_make_void_port), posix.c (scm_getpwuid, scm_getgrgid,
469 scm_execl, scm_execlp, scm_execle, scm_utime, scm_access,
470 scm_setlocale, scm_mknod), regex-posix.c (scm_make_regexp,
471 scm_regexp_exec), simpos.c (scm_system, scm_getenv), stime.c
472 (setzone, scm_strftime, scm_strptime), vports.c
473 (scm_make_soft_port): Use SCM_STRING_COERCE_0TERMINATION_X to
474 make sure the characters of a string are followed by a \0.
475 Further, use SCM_STRING_CHARS instead of SCM_ROCHARS on the
476 resulting string.
477
478 * dynl.c (scm_make_argv_from_stringlist), posix.c
479 (scm_convert_exec_args): Aligned to match each other.
480
481 * dynl.c (scm_coerce_rostring): Removed.
482
483 (scm_dynamic_func): Changed the comment to reflect that the
484 function name has to be a string. Further, hide implementation
485 details from the scheme comment.
486
487 * error (scm_error_scm): Don't accept a symbol as message
488 parameter. Fix substring handling.
489
490 * posix.c (environ_list_to_c): Use memcpy to copy environment
491 strings. Handle substrings which don't have a trailing \0.
492
493 * symbols.h (SCM_LENGTH, SCM_ROLENGTH, SCM_SUBSTRP,
494 SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_COERCE_SUBSTR):
495 Deprecated.
496
497 * unif.h (SCM_HUGE_LENGTH): Deprecated.
498
499 * validate.h (SCM_VALIDATE_ROSTRING, SCM_VALIDATE_ROSTRING_COPY,
500 SCM_VALIDATE_NULLORROSTRING_COPY): Deprecated.
501
e9bfab50
DH
5022000-10-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
503
504 * random.c: Include unif.h.
505
506 * strings.h (SCM_STRING_COERCE_0TERMINATION_X): Added. This is
507 intended to replace the macro SCM_COERCE_SUBSTR. Such a macro
508 will be necessary, even after copy-on-write strings will be added
509 to guile, but the current naming is inappropriate.
510
511 * strorder.c (scm_string_equal_p, scm_string_ci_equal_p,
512 scm_string_less_p, scm_string_ci_less_p): Don't accept symbols as
513 input parameters. Further, the functions that test for equality
514 are rewritten to compare from back to front, the others are also a
515 little bit more polished.
516
14f1d9fe
MD
5172000-10-25 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
518
519 This change merges the GOOPS code into Guile. However, GOOPS
520 is still not initialized until someone asks for the module.
521 We need to optimize GOOPS initialization time before initializing
522 it together with the rest of libguile. We also need to add the
523 C API + primitive methods. Then we can start using it to
524 modularize Guile, implement a real exception system etc.
525
526 * goops.c, objects.c, objects.h, eval.c (scm_make_extended_class,
527 scm_make_port_classes, scm_change_object_class,
528 scm_memoize_method): Changed to ordinary functions (was plugin
529 slots).
530
531 * goops.c (wrap_init, scm_wrap_object): Unconditionally use
532 SCM_STRUCT_GC_CHAIN.
533 (scm_goops_version): Removed.
534 (scm_oldfmt): and all uses of it: Removed.
535 (scm_shared_array_root, scm_shared_array_offset,
536 scm_shared_array_increments): Removed.
537 (scm_init_goops): No need to support two arg mutex init.
538 Removed #include "versiondat.h", #include "goops.h".
539
540 * goops.h: Removed various superfluous conditions.
f4553de8
MD
541 Renamed class --> cls, new --> newinst in order to accomodate
542 C++.
14f1d9fe
MD
543
544 * init.c (scm_init_guile_1): Call the goops module registration
545 function.
546 Added #include "libguile/goops.h".
547
548 * Makefile.am (libguile_la_SOURCES): Added goops.c
549 (DOT_X_FILES): Added goops.x
550 (DOT_DOC_FILES): Added goops.doc
551 (modinclude_HEADERS): Added goops.h
552
1b9be268
DH
5532000-10-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
554
555 * gc.c (scm_igc): Remove references to scm_vector_set_length_x.
556
557 (scm_gc_sweep): SCM_CONTREGS is never NULL.
558
559 * gc.c (scm_gc_sweep), vectors.c (scm_make_vector): Don't
560 allocate/free memory for zero length vectors.
561
562 * vectors.[ch] (scm_vector_set_length_x): Deprecated.
563
d1ca2c64
DH
5642000-10-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
565
566 * alist.c (scm_assq_ref): Add a suggestion about how to deal with
567 this function when the API gets reviewed.
568
569 * async.c (SET_ASYNC_GOT_IT): Use SCM_TYP16 instead of doing bit
570 operations directly.
571
572 * dynl.c (scm_coerce_rostring), filesys.c (scm_link,
573 scm_copy_file), fports (scm_open_file), hash.c (scm_hasher),
574 posix.c (scm_getpwuid), print.c (scm_iprin1), simpos.c
575 (scm_system), strings.c (scm_string_ref, scm_substring,
576 scm_string_append), strop.c (scm_string_copy), struct.c
577 (scm_make_struct_layout), symbols.c (scm_gensym, scm_gentemp),
578 symbols.h (SCM_COERCE_SUBSTR): Use SCM_STRING_LENGTH instead of
579 SCM_ROLENGTH if the object is known to be a string or substring.
580
581 * eval.c (scm_lookupcar): Use SCM_ITAG7 instead of doing bit
582 operations directly.
583
584 * filesys.c (scm_dirname, scm_basename): Don't create shared
585 substrings as these are going to disappear from guile.
586
587 * gc.c (scm_gc_sweep): Use SCM_UVECTOR_LENGTH instead of
588 SCM_HUGE_LENGTH. (The SCM_HUGE_LENGTH mechanism does not work
589 correctly anyway.)
590
591 * gc.h (SCM_FREEP, SCM_NFREEP): Deprecated.
592
593 * read.c (scm_flush_ws): Don't compare SCM values directly.
594
595 * root.c (scm_make_root), root.h (scm_root_state): Removed
596 system_transformer and top_level_lookup_closure_var from struct.
597 (Since eval is now R5RS, binary compatibility is not granted
598 anyway.)
599
600 * simpos.c (scm_system): Fix condition.
601
602 * strings.c (scm_string_length, scm_string_ref, scm_substring,
603 scm_string_append), strop.c (scm_string_copy), struct.c
604 (scm_make_struct_layout, scm_make_vtable_vtable), symbols.c
605 (scm_gensym, scm_gentemp): Replace SCM_VALIDATE_STRINGORSUBSTR
606 with SCM_VALIDATE_STRING, since they do the same thing.
607
608 * strings.h (scm_make_shared_substring): Deprecated.
609
610 * tags.h (SCM_ITAG7): Added.
611
612 * validated.h (SCM_VALIDATE_STRINGORSUBSTR): Deprecated.
613
f8fa3e38
MV
6142000-10-20 Marius Vollmer <mvo@zagadka.ping.de>
615
616 * init.c (scm_init_guile_1, invoke_main_func): Call
617 scm_load_startup_files in scm_init_guile_1, not in
618 invoke_main_func.
619
0100535b
MV
6202000-10-18 Marius Vollmer <mvo@zagadka.ping.de>
621
c6ba6ce6 622 * print.c (grow_ref_stack): Pass a INUM to scm_make_vector as the
31535422 623 size, not a naked int. Thanks to Brad Knotwell!
c6ba6ce6 624
0100535b
MV
625 * gc_os_dep.c (GC_noop1, GC_bool, TRUE, FALSE, VOLATILE):
626 Definitions copied from Boehm collector.
627
daa6ba18
DH
6282000-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
629
630 * list.[ch] (scm_sloppy_memq, scm_sloppy_memv, scm_sloppy_member):
631 Deprecated.
632
633 (scm_memq, scm_memv, scm_member): Inline the sloppy code.
634
a8a11001
DH
6352000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
636
637 * alloca.c: Fixed include file path. Thanks to Bruce Korb for
638 the bug report.
639
66ca9392
MV
6402000-10-11 Marius Vollmer <mvo@zagadka.ping.de>
641
642 * gc_os_dep.c: Added real implementation based on code from Boehms
643 collector. This is not well tested yet.
644
645 * gc.h (scm_get_stack_base): Added prototype.
646 * init.c (scm_get_stack_base): Removed prototype.
647
b7ead2ae
DH
6482000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
649
650 * random.c (scm_seed_to_random_state): Replace SCM_LENGTH with
651 the appropriate SCM_<type>_LENGTH macro.
652
653 (vector_scale, vector_sum_squares, scm_random_solid_sphere_x,
654 scm_random_normal_vector_x): Use scm_uniform_vector_length to
655 determine the length of a vector object generically.
656
b226e5f6
DH
6572000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
658
659 * ramap.c (scm_array_fill_int, scm_array_index_map_x): Replace
660 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
661
662 (scm_ra_matchp, scm_ramapc, ramap, rafe, scm_array_index_map_x,
663 raeql_1, raeql): Use scm_uniform_vector_length to determine the
664 length of a vector object generically.
665
74014c46
DH
6662000-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
667
668 * unif.c (scm_make_uve, scm_uniform_vector_length, scm_array_p,
669 scm_transpose_array, scm_array_contents, scm_ra2contig,
670 scm_uniform_array_read_x, scm_uniform_array_write, scm_bit_count,
671 scm_bit_position, scm_bit_set_star_x, scm_bit_count_star,
672 scm_bit_invert_x, scm_array_to_list, scm_raprin1): Replace
673 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
674
675 (scm_array_dimensions, scm_make_shared_array, scm_enclose_array,
676 scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x,
677 scm_array_contents, scm_uniform_array_read_x,
678 scm_uniform_array_write, scm_list_to_uniform_array, rapr1): Use
679 scm_uniform_vector_length to determine the length of a vector
680 object generically.
681
682 (scm_bit_count, scm_bit_set_star_x, scm_bit_count_star,
683 scm_bit_invert_x): Eliminated dummy type dispatch.
684
685 (scm_ra2contig): Fixed array vector access.
686
b5c2579a
DH
6872000-10-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
688
689 * unif.h (SCM_BITVECTOR_P, SCM_BITVECTOR_BASE): Added.
690
691 * eval.c (iqq, SCM_CEVAL, SCM_APPLY, check_map_args, scm_map,
692 scm_for_each, scm_copy_tree), gc.c (scm_igc, scm_gc_mark,
693 scm_gc_sweep), gh_data.c (gh_scm2chars), sort.c
694 (scm_restricted_vector_sort_x, scm_sorted_p, scm_sort_x,
695 scm_sort, scm_stable_sort_x, scm_stable_sort), vectors.c
696 (scm_vector_length, scm_vector_ref, scm_vector_set_x,
697 scm_vector_to_list, scm_vector_fill_x, scm_vector_equal_p,
698 scm_vector_move_left_x, scm_vector_move_right_x, ): Replace
699 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
700
701 * gc.c (scm_gc_sweep): Use SCM_BITVECTOR_BASE for bitvectors.
702
703 * sort.c (scm_restricted_vector_sort_x, scm_sorted_p): Eliminated
704 dummy type dispatch.
705
706 (scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort):
707 Eliminated redundant NIM test.
708
9fd38a3d
DH
7092000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
710
711 * filesys.c (fill_select_type, retrieve_select_type, scm_select),
712 gh_data.c (gh_set_substr, gh_scm2chars, gh_scm2shorts,
713 gh_scm2longs, gh_scm2floats, gh_scm2doubles, gh_symbol2newstr),
714 stime.c (bdtime2c), symbols.c (scm_sym2vcell, scm_sym2ovcell_soft,
715 scm_intern_obarray_soft, scm_symbol_to_string, scm_intern_symbol,
716 scm_unintern_symbol, copy_and_prune_obarray, scm_builtin_bindings,
717 scm_builtin_weak_bindings), validate.h (SCM_VALIDATE_VECTOR_LEN):
718 Replace SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
719
720 * filesys.c (scm_dirname, scm_basename), gh_data.c (gh_scm2newstr,
721 gh_get_substr), posix.c (scm_putenv), regex-posix.c
722 (scm_regexp_exec), stime.c (setzone), symbols.c
723 (scm_string_to_symbol): Don't accept symbols as input parameters
724 any more.
725
bfa974f0
DH
7262000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
727
728 * continuations.c (scm_make_cont, copy_stack_and_call,
729 scm_dynthrow), environments.c (obarray_enter, obarray_replace,
730 obarray_retrieve, obarray_remove, obarray_remove_all,
731 leaf_environment_fold), fluids.c (grow_fluids, scm_copy_fluids,
732 scm_fluid_ref, scm_fluid_set_x), hash.c (scm_hasher), hashtab.c
733 (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
734 scm_hash_fn_remove_x, scm_internal_hash_fold), ioext.c
735 (scm_read_delimited_x), objects.c (scm_mcache_lookup_cmethod,
736 scm_make_subclass_object), ports.c (scm_unread_string), socket.c
737 (scm_recv, scm_recvfrom), stacks.c (scm_make_stack, scm_stack_id,
738 scm_last_stack_frame), strings.c (scm_string_length,
739 scm_string_set_x), strop.c (scm_substring_move_x,
740 scm_substring_fill_x, scm_string_fill_x, scm_string_upcase_x,
741 scm_string_downcase_x, scm_string_capitalize_x), struct.c
742 (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
743 scm_make_vtable_vtable, scm_struct_ref, scm_struct_set_x), weaks.c
744 (scm_mark_weak_vector_spines, scm_scan_weak_vectors): Replace
745 SCM_LENGTH with the appropriate SCM_<type>_LENGTH macro.
746
b17004b8
DH
7472000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
748
749 * print.c (make_print_state, scm_iprin1): Replace SCM_LENGTH with
750 the appropriate SCM_<type>_LENGTH macro.
751
752 (grow_ref_stack): Don't call scm_vector_set_length_x to resize
753 the print stack.
754
aa3188a7
DH
7552000-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
756
757 * numbers.c (big2str): Avoid redundant copying.
758
759 (scm_bigprint): Use SCM_STRING_LENGTH instead of SCM_LENGTH.
760
94115ae3
DH
7612000-10-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
762
763 * numbers.c (big2str), read.c (scm_grow_tok_buf), strports.c
764 (st_resize_port): Don't call scm_vector_set_length_x to resize
765 strings.
766
767 * read.c (scm_lreadr, scm_read_token): Use SCM_STRING_LENGTH for
768 string arguments (instead of SCM_LENGTH).
769
2d349e67
DH
7702000-10-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
771
772 * continuations.h (SCM_CONTINUATION_LENGTH), strings.h
773 (SCM_STRING_LENGTH), symbols.h (SCM_SYMBOL_LENGTH), unif.h
774 (SCM_UVECTOR_LENGTH, SCM_BITVECTOR_LENGTH), vectors.h
775 (SCM_VECTOR_LENGTH): Added as replacements for SCM_LENGTH.
776
4fd03f43
MV
7772000-10-02 Marius Vollmer <mvo@zagadka.ping.de>
778
779 * coop-defs.h (coop_key_create): Don't use the C++ keyword
780 `destructor' in prototype. Thanks to Martin Baulig!
781
77cd7f80
ML
7822000-10-02 Michael Livshin <mlivshin@bigfoot.com>
783
784 * guile-func-name-check.in: now should not confuse SCO nawk
785 anymore. thanks to Bruce Korb for the fix!
786
ed0e0e30
GH
7872000-10-01 Gary Houston <ghouston@arglist.com>
788
0d26a8bc 789 * net_db.c: declare inet_aton only if HAVE_INET_ATON is not
ed0e0e30
GH
790 defined. thanks to Han-Wen Nienhuys.
791
e655d034
GH
7922000-09-30 Gary Houston <ghouston@arglist.com>
793
794 * filesys.c (scm_stat2scm), posix.c (s_scm_mknod): don't use
795 S_ISSOCK or S_IFSOCK if not defined. thanks to Bruce Korb.
796
6ec589e2
NJ
7972000-09-29 Neil Jerram <neil@ossau.uklinux.net>
798
9d29e990
NJ
799 * Makefile.am (guile-procedures.txt): Insert a new rule such that
800 the output from guile-snarf.awk is processed by makeinfo to
801 produce guile-procedures.txt.
802
803 * guile-snarf.awk.in: Modify the way we snarf docstrings such that
804 the output is Texinfo-compliant and suitable for post-processing
805 with makeinfo. (Trim leading "./" from C file name if
806 present; reformat procedure prototype line in @deffn format;
807 improve representation of args to show optional and rest args;
808 explicitly quote quotation marks where they are used inside an AWK
809 regexp.)
810
6ec589e2
NJ
811 * net_db.c (scm_inet_ntoa): Docstring fix: missing newline
812 inserted.
813
814 * hashtab.c (scm_hashx_create_handle_x, scm_hashx_ref): Insert
815 spaces between C parameters so that the snarfer doesn't coalesce
816 them all into a single very long-named parameter.
817
8182000-09-27 Neil Jerram <neil@ossau.uklinux.net>
819
820 * list.c (scm_append): Use @example texinfo markup in docstring.
821
bbe4e612
DH
8222000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
823
824 * strings.c (scm_string, scm_make_string, scm_string_set_x,
825 scm_string_append), strop.c (scm_string_upcase_x,
826 scm_string_downcase_x), strports.c (st_resize_port), symbols.c
827 (scm_sym2vcell, scm_sym2ovcell_soft, scm_intern_obarray_soft,
828 scm_intern_symbol, scm_unintern_symbol), unif.c (scm_cvref,
829 scm_uniform_vector_ref, scm_array_set_x, rapr1): Replace calls to
830 SCM_UCHARS with SCM_STRING_UCHARS or SCM_SYMBOL_UCHARS.
831
832 * symbols.h (SCM_UCHARS): Deprecated.
833
405aaef9
DH
8342000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
835
836 * gc.c (scm_gc_sweep): Replace SCM_CHARS by SCM_COMPLEX_MEM.
837
838 * numbers.h (SCM_COMPLEX_MEM): Added as a replacement for
839 SCM_CHARS.
840
841 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Use it.
842
843 * ramap.c (scm_array_fill_int, racp, raeql_1): Replace SCM_CHARS
844 with SCM_STRING_CHARS or SCM_UVECTOR_BASE.
845
846 (racp): Fix: Make sure that src and dst types match.
847
848 * read.c (scm_grow_tok_buf, scm_lreadr, scm_read_token): Replace
849 SCM_CHARS with SCM_STRING_CHARS.
850
851 * symbols.h (SCM_CHARS): Deprecated.
852
853 * unif.c (scm_enclose_array, scm_uniform_vector_ref, scm_cvref,
854 scm_array_set_x, scm_uniform_array_read_x, rapr1, freera,
855 scm_uniform_array_write): Replace SCM_CHARS with
856 SCM_STRING_CHARS, SCM_UVECTOR_BASE or SCM_ARRAY_MEM.
857
858 * unif.h (SCM_ARRAY_MEM): Added as a replacement for SCM_CHARS.
859
860 (SCM_ARRAY_V, SCM_ARRAY_BASE, SCM_ARRAY_DIMS): Use it.
861
862 * validate.h (SCM_COERCE_ROSTRING): Removed.
863
06ee04b2
DH
8642000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
865
866 * gc.c (scm_igc): : Eliminate references to SCM_LENGTH and
867 SCM_CHARS from comment.
868
869 (scm_gc_mark, scm_gc_sweep): Replace SCM_CHARS with
870 SCM_SYMBOL_CHARS or SCM_CCLO_BASE or SCM_UVECTOR_BASE or
871 SCM_BDIGITS, and replace SCM_VELTS with SCM_VECTOR_BASE or
872 SCM_CONTREGS, according to the corresponding types.
873
874 (scm_gc_sweep): Simplify sweeping of uniform vectors.
875
74cc8503
DH
8762000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
877
878 * procs.h (SCM_CCLO_LENGTH, SCM_SET_CCLO_LENGTH, SCM_CCLO_BASE,
879 SCM_SET_CCLO_BASE, SCM_CCLO_REF, SCM_CCLO_SET, SCM_CCLO_SUBR,
880 SCM_SET_CCLO_SUBR): Added resp. changed such that none of the
881 macros SCM_CHARS, SCM_SETCHARS, SCM_VELTS and SCM_LENGTH have to
882 be used with compiled closures any more.
883
884 * procs.c (scm_makcclo), gsubr.h (SCM_GSUBR_TYPE, SCM_GSUBR_PROC):
885 Replace uses of SCM_CHARS, SCM_SETCHARS and SCM_VELTS with regards
886 to compiled closures.
887
888 * gsubr.h (SCM_SET_GSUBR_TYPE, SCM_SET_GSUBR_PROC): Added.
889
890 * gsubr.c (scm_make_gsubr): Use them.
891
9eb364fc
DH
8922000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
893
894 * numbers.c (scm_adjbig): Use SCM_BDIGITS instead of SCM_CHARS.
895
896 (big2str, scm_bigprint): Use SCM_STRING_CHARS instead of
897 SCM_CHARS.
898
899 * vectors.c (scm_vector_set_length_x): Distinguish between
900 strings, scheme vectors and uniform vectors, thus getting rid of
901 references to SCM_CHARS. (The code still needs improvement.)
902
3db4adfc
DH
9032000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
904
905 * eval.c (scm_m_letrec1, SCM_CEVAL, SCM_APPLY): Use
906 SCM_STRING_U?CHARS or SCM_SYMBOL_U?CHARS instead of SCM_U?CHARS.
907
908 * unif.h (SCM_UVECTOR_BASE), vectors.h (SCM_VECTOR_BASE): Added
909 as replacements for SCM_CHARS and SCM_VELTS.
910
a002f1a2
DH
9112000-09-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
912
913 * continuations.c (scm_make_cont, scm_dynthrow), print.c
914 (scm_iprin1), stacks.c (scm_make_stack, scm_stack_id,
915 scm_last_stack_frame): For continuations, use SCM_CONTREGS
916 instead of SCM_CHARS.
917
918 * coop-threads.c (scm_threads_mark_stacks): Eliminate references
919 to SCM_LENGTH and SCM_CHARS from comments.
920
921 * dynl.c (scm_dynamic_link, scm_dynamic_func), symbols.h
922 (SCM_ROCHARS, SCM_ROUCHARS): Cleanly distinguish between string
923 and symbol arguments.
924
925 * hash.c (scm_hasher), keywords.c (prin_keyword), objects.c
926 (scm_make_subclass_object), print.c (scm_iprin1), regex-posix.c
927 (scm_regexp_error_msg), stime.c (bdtime2c, scm_strftime), struct.c
928 (scm_struct_init, scm_struct_vtable_p, scm_struct_ref,
929 scm_struct_set_x): Use SCM_STRING_U?CHARS or SCM_SYMBOL_U?CHARS
930 instead of SCM_U?CHARS.
931
932 * strings.h (SCM_STRING_UCHARS): Added as a replacement for
933 SCM_UCHARS for string arguments.
934
935 * strorder.c: Include strings.h and symbols.h.
936
937 * symbols.h: Replaced SCM_CHARS in comment.
938
939 (SCM_SYMBOL_UCHARS): Added as a replacement for SCM_UCHARS for
940 symbol arguments.
941
942 (SCM_SLOPPY_SUBSTRP): Deprecated.
943
944 * tags.h: Fixed comments not to reference SCM_LENGTH or
945 SCM_CHARS.
946
1660782e
DH
9472000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
948
949 * gc.c (scm_gc_mark, scm_gc_sweep), tags.h: Removed the
950 scm_tc7_lvector type tag.
951
f151f912
DH
9522000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
953
954 * eval.c (scm_m_define), evalext.c (scm_m_undefine): Removed dead
955 code.
956
957 * gc.c (scm_gc_sweep): Use SCM_STRING_CHARS or SCM_SYMBOL_CHARS
958 instead of SCM_CHARS.
959
86c991c2
DH
9602000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
961
962 * backtrace.c (display_frame_expr), environments.c
963 (print_observer, print_leaf_environment, print_eval_environment,
964 print_import_environment, print_export_environment), gh_data.c
965 (gh_set_substr, gh_symbol2newstr), keywords.c
966 (scm_make_keyword_from_dash_symbol), ports.c (scm_drain_input),
967 posix.c (scm_mknod), print.c (scm_iprin1), regexp-posix.c
968 (scm_regexp_error_msg), script.c (scm_compile_shell_switches),
969 simpos.c (scm_getenv), socket.c (scm_recv, scm_recvfrom),
970 strings.c (scm_makfromstr), strop.c (scm_substring_move_x,
971 scm_substring_fill_x, scm_string_capitalize_x), symbols.c
972 (scm_symbol_to_string), unif.c (scm_make_uve, scm_array_p),
973 validate.h (SCM_VALIDATE_STRING_COPY): Use SCM_STRING_CHARS or
974 SCM_SYMBOL_CHARS instead of SCM_CHARS.
975
c1aef037
DH
9762000-09-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
977
978 * strings.h (SCM_STRING_CHARS): Added, should be used instead of
979 SCM_CHARS whenever the argument is known to be a string.
980
981 (SCM_SLOPPY_STRINGP): Deprecated.
982
983 * symbols.h (SCM_SYMBOL_CHARS): Added, should be used instead of
984 SCM_CHARS whenever the argument is known to be a symbol.
985
1bee0e70
NJ
9862000-09-22 Neil Jerram <neil@ossau.uklinux.net>
987
988 * struct.c (scm_make_struct): Fix texinfo warning in docstring by
989 using @pxref rather than @xref.
990
991 * root.c (scm_call_with_dynamic_root): Fix texinfo warning in
992 docstring by using @code for (thunk) rather than @var.
993
f7b0a8d1 9942000-09-20 Marius Vollmer <mvo@zagadka.ping.de>
216b559a 995
f7b0a8d1
MV
996 * numbers.c (scm_istr2flo): Throw an `out of range' error when
997 exponent is too large instead of returning `#f'. The rationale is
998 that in this case the string represents a valid number but we
999 can't deal with it.
216b559a 1000
0f8c9efa
DH
10012000-09-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1002
1003 * symbols.c (scm_intern_obarray_soft,
1004 scm_sysintern0_no_module_lookup): Make sure that symbol
1005 properties initially form an empty list. Thanks to Keisuke
1006 Nishida for pointing this out.
1007
5a2a5407
DH
10082000-09-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1009
1010 * throw.c (scm_handle_by_message): Added a FIXME comment.
1011
1012 (scm_ithrow): Removed some redundant tests. When compiling on
1013 gcc, always add the GCSE bug workaround.
1014
57b74422
GH
10152000-09-14 Gary Houston <ghouston@arglist.com>
1016
1017 * print.c (scm_iprin1): write the ascii delete character as #\del
1018 instead of '#\', so it can be read back. like in SCM.
1019
02821239
MD
10202000-09-12 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1021
1022 * symbols.c (duplicate_string): Don't try to copy the byte after
1023 the string. This might not be `\0' and might even not be
1024 allocated memory.
1025
8e93e199
DH
10262000-09-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
1027
1028 * symbols.c (scm_symbol_p): Eliminate redundant SCM_IMP test.
1029
28b06554
DH
10302000-09-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
1031
1032 This patch unifies the formerly distinct ssymbol and msymbol types
1033 to a common symbol type scm_tc7_symbol. The representation of the
1034 new symbol type uses a double cell with the following layout:
1035 <type/length, chars, raw_hash, prop-pair>, where the car of
1036 prop-pair holds the symbol's function property and the cdr of
1037 prop-pair holds the symbol's other properties. In the long run,
1038 these properties will be removed. Then, the generic property
1039 functions will be uses.
1040
1041 * eval.c (SCM_CEVAL), objects.c (scm_class_of), print.c
1042 (scm_iprin1), tag.c (scm_tag): Use scm_tc7_symbol instead of
1043 scm_tc7_ssymbol, scm_tc7_msymbol or scm_tcs_symbols.
1044
1045 * gc.c (scm_gc_mark): Mark the symbols property pair.
1046
1047 (scm_gc_sweep): There are no symbol slots any more.
1048
1049 * hash.c (scm_hasher): Instead of re-calculating the hash value
1050 of a symbol, use the raw_hash value stored in the symbol itself.
1051
1052 * properties.h: Fix typo.
1053
1054 * strings.[ch] (scm_makstr, scm_makfromstr): The slot parameter
1055 is not used any more.
1056
1057 * symbols.[ch] (scm_strhash): Deprecated, replaced by a macro.
1058
1059 (scm_intern_obarray_soft): Made softness parameter unsigned.
1060
1061 (scm_string_hash): New function with the same functionality as
1062 scm_strhash had before, except that the hash value is not adjusted
1063 to a hash table size. Instead, the 'raw' hash value is returned.
1064
1065 * symbols.c (duplicate_string): New static convenience function.
1066
1067 (scm_sym2vcell, scm_sym2ovcell_soft, scm_intern_obarray_soft):
1068 Renamed local variable from scm_hash to hash.
1069
1070 (scm_intern_obarray_soft): Don't check for a negative softness
1071 any more. When generating symbol cells, use the new layout and
1072 store the raw hash value in the symbol's cell.
1073
1074 (scm_symbol_to_string): Removed unnecessary cast.
1075
1076 (scm_intern_symbol, scm_unintern_symbol): Use scm_string_hash to
1077 determine the hash values.
1078
1079 (msymbolize): Removed.
1080
1081 (scm_symbol_fref, scm_symbol_pref, scm_symbol_fset_x,
1082 scm_symbol_pset_x, scm_symbol_hash): No need to distinguish
1083 between different symbol types any more.
1084
1085 (scm_symbol_hash): Comment fixed.
1086
1087 * symbols.h: Comment about the distinction between ssymbols and
1088 msymbols removed.
1089
1090 (SCM_SYMBOLP, SCM_ROSTRINGP): No need to distinguish between
1091 different symbol types any more.
1092
1093 (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS): Added.
1094
1095 (SCM_SYMBOL_FUNC, SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
1096 SCM_SET_SYMBOL_PROPS, SCM_SYMBOL_HASH, SCM_SET_SYMBOL_HASH): Use
1097 the new symbol cell layout.
1098
1099 * tags.h (scm_tc7_ssymbol, scm_tc7_msymbol, scm_tcs_symbols):
1100 Deprecated.
1101
302f229e
MD
11022000-09-12 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1103
1104 * symbols.h (scm_gentemp): Declared.
1105
1106 * symbols.c (scm_gensym): Reimplemented. Now only takes one
1107 optional argument which should be a *string*.
1108 (scm_gentemp): Reimplemented and moved from boot-9.scm.
1109
5bcdfa2e
KN
11102000-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
1111
1112 * modules.c: Use applicable smobs for eval closures instead of
1113 compiled closures. Include "libguile/smob.h".
1114 (f_eval_closure): Removed.
1115 (scm_eval_closure_tag): New variable.
1116 (scm_eval_closure_lookup): Renamed from eval_closure.
1117 This function now takes a smob instead of a compiled closure.
1118 (scm_standard_eval_closure): Create a smob instead of a compiled
1119 closure.
1120 (scm_init_modules): Initialize the eval closure type as a smob.
1121 * modules.h (SCM_EVAL_CLOSURE_P): New macro.
1122 (scm_eval_closure_tag, scm_eval_closure_lookup): Declare.
1123 * symbols.c: Include "libguile/smob.h".
1124 (scm_sym2vcell): Call scm_eval_closure_lookup directly if THUNK
1125 is an eval closure.
1126
370646da
MD
11272000-09-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1128
4c7cb8ba
MD
1129 * Makefile.am (.x.doc): Bugfix: Added $(srcdir) to path in order
1130 to allow for builds in separate tree.
1131
370646da
MD
1132 * symbols.c (scm_gensym): Bugfixed my previous bugfix. (Thanks to
1133 Dale P. Smith.)
1134
3cbe8373
KN
11352000-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
1136
1137 * eval.c (SCM_APPLY): Fixed bugs in the applicable-smob calls.
1138
a2d47b23
DH
11392000-09-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
1140
1141 * environments.c (obarray_enter, obarray_retrieve,
1142 obarray_remove): Make sure the hash value is a valid obarray
1143 index.
1144
1145 (obarray_enter, obarray_remove): Documentation improved.
1146
1147 (obarray_replace): Added.
1148
1149 (leaf_environment_define, leaf_environment_undefine): Cleaned up
1150 and optimized.
1151
a2550d0e
MD
11522000-09-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1153
1154 * symbols.c (scm_gensym): Check that argument is a symbol, not a
370646da 1155 string. (Thanks to Ralf Mattes.)
a2550d0e 1156
f0cb8787
MV
11572000-09-05 Marius Vollmer <mvo@zagadka.ping.de>
1158
1159 * init.c: Include "libguile/properties.h".
1160
1161 * gh_data.c (gh_scm2char): Validate that argument is a character.
1162
4c199a26
DH
11632000-08-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1164
1165 * environments.h (SCM_IMPORT_ENVIRONMENT_P,
1166 SCM_EXPORT_ENVIRONMENT_P): Before fetching the environment
1167 functions, make sure that we really got an environment.
1168
9e9e264f
MD
11692000-09-03 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1170
1171 * validate.h (SCM_VALIDATE_NUMBER_DEF_COPY): New macro.
1172
468fbf58
MV
11732000-09-03 Marius Vollmer <mvo@zagadka.ping.de>
1174
1175 * Makefile.am (.x.doc): Pretend to create .doc files from .x files
1176 and give explicit dependencies for .x files that depend on
1177 generated files. This allows parallel builds. Thanks to Matthias
1178 Koeppe!
1179
11802000-08-27 Marius Vollmer <mvo@zagadka.ping.de>
1181
1182 * Makefile.am: Added gc_os_dep.c, properties.c, properties.x,
1183 properties.h and properties.doc in the suitable places.
1184
1185 * init.h (scm_init_guile): New prototype.
1186
1187 * init.c (scm_init_guile, scm_init_guile_1): New interface for
1188 initializing Guile that does return to the caller.
1189 (scm_boot_guile_1): Use scm_init_guile_1 to initialize Guile.
1190 Do not establish a catch-all, this is no longer needed.
1191
1192 * root.h (scm_properties_whash): New `sys_protect', used in
1193 properties.c.
1194
1195 * throw.c (scm_ithrow): Perform catch-all handling here when no
1196 suitable handler has been found. That way, we don't have to rely
1197 on the user establishing a catch-all, which might be difficult for
1198 him if he is using scm_init_guile instead of scm_boot_guile.
1199
11768c04
NJ
12002000-09-03 Neil Jerram <neil@ossau.uklinux.net>
1201
1202 * vectors.c (scm_vector): Docstring: add @deffnx line for
1203 list->vector.
1204
1205 * unif.c (scm_uniform_vector_ref): Docstring: add @deffnx line for
1206 array-ref.
1207 (scm_array_set_x): Docstring: add @deffnx line for
1208 uniform-array-set!.
1209
1210 * symbols.c (scm_symbol_to_string): Docstring: complete an
1211 incomplete Texinfo reference to a node in r4rs.texi.
1212 (scm_symbol_to_string): Escape double quotes correctly within
1213 docstring.
1214
1215 * struct.c (scm_make_struct, scm_make_vtable_vtable): Docstring
1216 fixes: `@dots' changed to `@dots{}'.
1217
1218 * strop.c (scm_substring_move_x): Docstring: add @deffnx lines for
1219 substring-move-left! and substring-move-right!.
1220
1221 * strings.c (scm_string): Docstring: add @deffnx line for
1222 list->string.
1223
1224 * stime.c (scm_strptime): Fix spelling mistake in docstring.
1225 (scm_current_time): Docstring fix: insert missing newline.
1226
1227 * socket.c (scm_recvfrom): Docstring format fix: missing newline
1228 inserted.
1229
1230 * ramap.c (scm_array_copy_x): Docstring: add @deffnx line for
1231 array-copy-in-order!.
1232 (scm_array_map_x): Docstring: add @deffnx line for
1233 array-map-in-order!.
1234
1235 * posix.c (scm_mknod): Docstring format fix: missing newlines
1236 inserted.
1237
1238 * modules.c (scm_interaction_environment): Docstring fix: add
1239 newlines.
1240
1241 * eval.c (scm_cons_source): Added newly written docstring.
1242
eacb9dc2
ML
12432000-09-03 Michael Livshin <mlivshin@bigfoot.com>
1244
1245 the following changes let Guile get rid of the `allocated' cell
1246 state.
1247
1248 * smob.c (scm_smob_prehistory): don't init the "allocated" smob
1249 type.
1250
1251 * tags.h (scm_tc16_allocated): removed.
1252
1253 * gc.h: removed now-obsolete comments about the `allocated' cell
1254 state.
1255 (SCM_NEWCELL): don't change cell type to `allocated'.
1256 (SCM_NEWCELL2): ditto.
1257
1258 * gc.c (scm_mark_locations): mark freecells too, and don't worry
1259 about any possible false positives.
1260 (scm_debug_newcell): don't change cell type to `allocated'.
1261 (scm_debug_newcell2): ditto.
1262 (scm_gc_for_newcell): ditto.
1263 (scm_gc_mark): remove the tc16_allocated case.
1264
69b5f65a
MD
12652000-08-26 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1266
adf9e959
MD
1267 * gdbint.c (gdb_print): Removed superfluous macro definition.
1268
0745d387
MD
1269 * objects.c (scm_init_objects), print.c (scm_init_print), struct.c
1270 (scm_init_struct): First arg to scm_make_vtable_vtable should be a
1271 string, not a symbol. (`make-vtable-vtable' needs to append this
1272 string to another string and then pass it through
1273 `make-struct-layout'.)
1274
1275 * stacks.c (scm_init_stacks): Pass a string, not a layout object,
1276 to scm_make_vtable_vtable. (Thanks to Dale P. Smith.)
1277
1278 * struct.c (scm_make_struct_layout): Removed reference to
1279 "read-only string" in comment; Check that argument is a string.
1280 (scm_make_vtable_vtable): Check that argument is a string.
1281
69b5f65a
MD
1282 * environments.c (scm_init_environments): All internal includes in
1283 libguile must use the prefix "libguile/" in path names since inly
1284 the top-level source directory is on the include list. (That, in
1285 turn, is because we want to distinguish between system header
1286 files and hedares files internal to libguile.)
1287
1288 * strings.c (scm_make_shared_substring, scm_read_only_string_p):
1289 Deprecated.
1290 (scm_string_length, scm_string_ref, scm_substring,
1291 scm_string_append): Don't accept symbols as arguments (R5RS).
1292
92ccc1f1
NJ
12932000-08-25 Neil Jerram <neil@ossau.uklinux.net>
1294
1295 * ports.c (scm_set_port_column_x): Fix docstring so that it
1296 mentions set-port-line! rather than set-port-column! twice.
1297
1298 * guardians.c (scm_make_guardian): Remove spurious . from doc string.
1299
5d3e2388
DH
13002000-08-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1301
1302 * Makefile.am: Added all necessary environments.* files.
1303
1304 * init.c: Include environments.h.
1305
1306 (scm_boot_guile_1): Initialize the environments.
1307
1308 * environments.[ch]: Added. Most of the credit for these files
1309 goes to Jost Boekemeier.
1310
28819f62
MD
13112000-08-25 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1312
167d89cf 1313 * procprop.c: #include "libguile/smob.h"; handle applicable smobs.
28819f62 1314
14fb1c83
KN
13152000-08-24 Keisuke Nishida <kxn30@po.cwru.edu>
1316
1317 * smob.h (scm_smob_descriptor): Added `apply' and `gsubr_type'.
1318 * smob.c (scm_make_smob_type): Initialize `apply' and `gsubr_type'.
1319 (scm_set_smob_apply): New function.
1320 (scm_smob_apply_0, scm_smob_apply_1, scm_smob_apply_2,
1321 scm_smob_apply_3): New functions.
1322 * eval.c (SCM_CEVAL, SCM_APPLY): Added dispatch for applicable smobs.
28819f62 1323 * procs.c (scm_procedure_p): Check applicable smobs.
14fb1c83 1324
665fc4e6
MD
13252000-08-24 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1326
1327 * Makefile.am (BUILT_SOURCES): Experimentally added scmconfig.h
1328 also here. (This is supposed to make sure that scmconfig.h is
1329 built before all sources in order to prevent that everything has
1330 to be rebuilt again. Hope it works---I'm just guessing. :)
1331
1332 * fluids.c (scm_fluid_set_x): Return SCM_UNSPECIFIED.
1333
38525772
MD
13342000-08-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1335
1336 * gc.c (scm_gc_mark): Don't use GUILE_DEBUG flag to compile in
1337 extra tests. (GUILE_DEBUG is only supposed to make extra
1338 debugging functions available.)
1339
ca55e62c
ML
13402000-08-21 Michael Livshin <mlivshin@bigfoot.com>
1341
1342 * gc.h (SCM_GC_CARD_N_CELLS): change to be a nice non-confusing
1343 constant.
1344
005b5978
ML
13452000-08-19 Michael Livshin <mlivshin@bigfoot.com>
1346
d8d4d493
ML
1347 * gc.c (scm_gc_sweep): added a `continue' statement that have
1348 fallen through the cracks in the merge. thanks to Shuji Narazaki!
1349
005b5978
ML
1350 * gc.h: removed some stuff that broke compilation for people and
1351 wasn't actually needed anyway.
1352
cdbc7418
NJ
13532000-08-18 Neil Jerram <neil@ossau.uklinux.net>
1354
55892d87
NJ
1355 * filesys.c (scm_fcntl): Docstring fix - missing newlines inserted.
1356
d46e4713
NJ
1357 * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_sethost,
1358 scm_setnet, setproto, setserv): Argument names changed to match
1359 doc string.
005b5978 1360
d46e4713
NJ
1361 * feature.c (scm_program_arguments): New docstring.
1362
1363 * simpos.c (scm_getenv): Reflow docstring.
1364
cdbc7418
NJ
1365 * eq.c (scm_eq_p, scm_eqv_p, scm_equal_p): Add texinfo markup to
1366 docstrings.
005b5978 1367
cdbc7418
NJ
1368 * chars.c (scm_char*): Docstring fixes - texinfo markup.
1369
13702000-08-18 Neil Jerram <neil@ossau.uklinux.net>
1371
1372 * boolean.c (scm_not, scm_boolean_p): Docstring fixes - add
1373 texinfo markup and remove trailing newlines.
1374
dc16aa36
ML
13752000-08-17 Michael Livshin <mlivshin@bigfoot.com>
1376
1377 this changes the Guile GC to use cards (aka "chunklets").
005b5978 1378 (most of the ideas and some of the code are by Greg Harvey, though
bbe6d8db
ML
1379 the code is probably unrecognizable now. the original chunklet
1380 proposal, way back, is by Dale Jordan).
dc16aa36
ML
1381
1382 * tags.h: (SCM_GCTYPE16, SCM_GCCDR, SCM_GC[8]MARKP,
1383 SCM_SETGC[8]MARK, SCM_CLRGC[8]MARK): moved from here into gc.h.
1384 some (most) of these are probably going to be deprecated.
1385
1386 * gc.h (SCM_MARKEDP): simplified, there are no different mark bit
1387 locations anymore.
1388 (SCM_GC_CARD_*, SCM_C_BVEC_*): lots of new macros to deal with
1389 cards and bvecs (bit-vectors).
1390
1391 * gc.c: (scm_default_init_heap_size_*): defined to take cards into
1392 account, but keeping more or less the same values as previously.
1393 added some simple helper macros.
1394 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK): defined to take cards
1395 into account.
1396 (BVEC_*, scm_mark_space_t, current_mark_space, mark_space_ptr,
1397 current_mark_space_offset, mark_space_head, get_bvec,
1398 clear_mark_space): new functions and supporting variables, types
1399 and macros that implement mark space management.
1400 (scm_igc): clear the mark space (all of it) before beginning the
1401 mark phase.
1402 (scm_gc_mark): changed the tests for rogue cells, much simplified
1403 throughout (no different mark bit locations to worry about now).
1404 (scm_mark_locations): don't consider card header cells.
1405 (scm_cellp): ditto.
1406 (scm_gc_sweep): simplified.
1407 (init_heap_seg): changed to take cards into account.
1408
83238bc1
ML
14092000-08-16 Michael Livshin <mlivshin@bigfoot.com>
1410
1411 * stime.c (scm_c_get_internal_run_time): new function, same as
1412 scm_get_internal_run_time but returns a long. it's used by the GC
1413 for timekeeping, since with scm_get_internal_run_time there is a
1414 (extremely theoretical) possibility of consing.
1415 (scm_get_internal_run_time): redefined in terms of
1416 scm_c_get_internal_run_time.
1417
1418 * stime.h: added prototype for scm_c_get_internal_run_time.
1419
1420 * gc.c (scm_gc_stats): add more obscure stats, such as: mark time,
1421 sweep time, total marked cells, total swept cells, and number of
1422 times GC was invoked.
1423 (gc_start_stats): renamed from scm_gc_start, made static, taught
1424 to init the new stats.
1425 (gc_end_stats): renamed from scm_gc_end, made static, taught to
1426 calculate the new stats.
1427 (scm_igc): don't call gc_start_stats unless we are sure that we
1428 are indeed going to collect. also, added some timekeeping between
1429 the mark and sweep phases.
1430 (scm_gc_sweep): count number of cells we sweep as we go.
1431
1432 * gc.h: removed prototypes for scm_gc_{start,end}.
1433
a94da0e0
MD
14342000-08-13 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1435
1436 * alist.c (scm_assq, scm_assv, scm_assoc): Report argument type
1437 error for the alist rather than the sublist where the type
1438 mismatch is discovered.
1439
2a2a730b
NJ
14402000-08-13 Neil Jerram <neil@ossau.uklinux.net>
1441
1442 * root.c (s_scm_call_with_dynamic_root): Docstring fix - rogue
1443 newline.
83238bc1 1444
f0a7af1a
NJ
14452000-08-12 Neil Jerram <neil@ossau.uklinux.net>
1446
2a2a730b
NJ
1447 * numbers.c (scm_ash): Docstring fix - missing newlines.
1448
1449 * ports.c (scm_port_filename): Docstring fix - missing newline.
1450
1451 * strports.c (scm_eval_string): Docstring fix - missing newline.
1452
ee826bae
NJ
1453 * vports.c (s_scm_make_soft_port): Docstring updated so that
1454 example is correct.
1455
1670bef9
NJ
1456 * strop.c: Docstring fixes - quotation marks and backslashes
1457 needed quoting.
1458
f0a7af1a
NJ
1459 * numbers.c (s_scm_logand): Docstring fix - "@end lisp" inserted.
1460
872e0c72
NJ
14612000-08-11 Neil Jerram <neil@ossau.uklinux.net>
1462
1463 * macros.c: Remove surplus newlines from end of docstrings.
1464
1465 * list.c (scm_list_tail): Add @deffnx line to docstring for
1466 list-cdr-ref.
83238bc1 1467
872e0c72
NJ
1468 * keywords.c: Docstring improvements in conjunction with new
1469 reference manual doc on keywords.
1470
1471 * error.c (scm_error_scm): Fix texinfo syntax error in
1472 docstring. (@code(~S) should be @code{~S}.)
1473
1474 * dynl.c: Remove surplus newlines from end of docstrings.
1475
3a33a9b1
MD
14762000-08-11 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1477
1478 * eval.c (scm_eval): Backward incompatible change: Now takes an
1479 environment specifier as second arg. `eval' hereby becomes R5RS
1480 compatible.
1481 (scm_i_eval_x, scm_i_eval): New functions (replace
1482 scm_eval_3).
1483 (scm_eval2, scm_eval_3): Deprecated.
1484 (scm_top_level_lookup_closure_var): Deprecated.
1485
1486 * eval.h: #include "struct.h".
1487
1488 * evalext.c (scm_definedp): Have to work before module system is
1489 booted.
1490
1491 * modules.h (SCM_MODULEP, SCM_VALIDATE_MODULE,
1492 SCM_MODULE_OBARRAY, SCM_MODULE_USES, SCM_MODULE_BINDER,
1493 SCM_MODULE_EVAL_CLOSURE): New macros.
1494 (scm_module_index_obarray, scm_module_index_uses,
1495 scm_module_index_binder, scm_module_index_eval_closure): New
1496 constants; #include "validate.h".
83238bc1 1497
3a33a9b1
MD
1498 * modules.c (scm_module_tag, scm_module_system_booted_p): New
1499 globals.
1500 (scm_post_boot_init_modules): Initialize scm_module_tag.
1501 (scm_interaction_environment): New primitive.
1502
1503 * symbols.c (scm_can_use_top_level_lookup_closure_var): Removed.
1504 #include "modules.h".
1505
1506 * strports.c (scm_eval_string): Evaluate in
1507 scm_interaction_environment ().
1508
1509 * script.c (scm_shell): Pass scm_the_root_module () as second arg
1510 to new scm_eval_x.
1511
1512 * load.c (load): Use `scm_selected_module' to compute second arg
1513 to new scm_i_eval_x; Don't call it if module system hasn't booted.
1514 (scm_read_and_eval_x): Deprecated.
1515 #include "modules.h".
1516
1517 * debug.c (scm_local_eval): Use scm_i_eval and scm_i_eval_x.
1518 (scm_start_stack): Use scm_i_eval.
1519
1520 * strports.c: #include "modules.h".
1807c7b8
MD
1521
1522 * print.c (scm_simple_format): Be case-insensitive for ~A and ~S
1523 directives.
1524
1a2f1b90
MD
15252000-08-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1526
1527 The following changes are intended to ensure that struct instances
1528 are freed before their vtables. It's optimized for the most
1529 common case, which is freeing of struct instances.
1530
1531 * gc.c (scm_gc_mark, scm_gc_sweep): Remove vcell = 1 magic.
1532 (scm_structs_to_free): New variable.
1533 (scm_gc_sweep): Hook up structs to free on the scm_structs_to_free
1534 chain.
1535
1536 * struct.h (SCM_STRUCT_GC_CHAIN, SCM_SET_STRUCT_GC_CHAIN): New
1537 macros.
1538 (scm_structs_to_free, scm_struct_prehistory): Declare.
1539
1540 * struct.c (scm_make_struct, scm_make_vtable_vtable): Structs
1541 handles are now double cells; Initialize SCM_STRUCT_GC_CHAIN to
1542 0.
1543 (scm_struct_gc_init, scm_free_structs): New GC C hooks.
1544 (scm_struct_prehistory): Install them.
1545
1546 * init.c (scm_boot_guile_1): Call scm_struct_prehistory.
1547
b054684d
MV
15482000-08-06 Marius Vollmer <mvo@zagadka.ping.de>
1549
1550 * read.c (scm_flush_ws): Include filename in error message when it
1551 is not `#f'.
1552
7ca38734
MV
15532000-08-05 Marius Vollmer <mvo@zagadka.ping.de>
1554
1555 * iselect.c: Include <unistd.h>. Thanks to Bertrand Petit!
1556
b62cc1c2
MD
15572000-08-02 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1558
89e941f1
MD
1559 * struct.c (scm_make_struct_layout, scm_make_struct,
1560 scm_make_vtable_vtable): Updated documentation.
1561
b62cc1c2
MD
1562 * print.c (scm_simple_format): Bugfix: Coerce port before using
1563 it.
1564
3bc0c6df
GH
15652000-07-31 Gary Houston <ghouston@arglist.com>
1566
cdaf0a20 1567 * net_db.c: declare h_errno only if HAVE_H_ERRNO is not defined
3bc0c6df
GH
1568 (thanks to Richard Kim for the bug report).
1569
3ccd1860
MV
15702000-07-30 Marius Vollmer <mvo@zagadka.ping.de>
1571
1572 * alist.c (scm_assq_remove_x, scm_assv_remove_x,
1573 scm_assoc_remove_x): Use scm_delq1_x instead of scm_delq_x, since
1574 using the latter is pointless.
1575
11102992
DH
15762000-07-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1577
1578 * gc.c (scm_gc_sweep): Renamed local variable from 'free' to
1579 'free_struct_data' to avoid confusion with stdlib's 'free'.
1580
a75923bb
DH
15812000-07-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1582
1583 * vectors.c (scm_make_vector): Fix the initialization order of
1584 the vector such that the type cell is initialized last.
1585
f7620510
DH
15862000-07-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1587
1588 * struct.[ch] (scm_struct_init): Made static. Fixed not to rely
1589 on the struct cell to be fully initialized.
1590
1591 * struct.c (scm_make_struct, scm_make_vtable_vtable): Fix the
1592 initialization order of the struct such that the type cell is
1593 initialized last.
1594
17dd060d
MV
15952000-07-25 Marius Vollmer <mvo@zagadka.ping.de>
1596
1597 * alist.c (scm_assq_remove_x, scm_assv_remove_x,
1598 scm_assoc_remove_x): Remove only the first cell with a matching
1599 key, not all.
1600
b73bde31
MV
16012000-07-24 Marius Vollmer <mvo@zagadka.ping.de>
1602
1603 * stime.c (scm_strftime): Recognize a return value of zero from
1604 strftime as buffer overflow and take care to detect a valid zero
1605 length result regardless. Thanks to David Barts!
1606
e85da7d9
MV
16072000-07-23 Marius Vollmer <mvo@zagadka.ping.de>
1608
1609 * alist.c (scm_assq_remove_x, scm_assv_remove_x,
1610 scm_assoc_remove_x): Remove all cells whose key is eq, eqv, or
1611 equal (respectively) to the argument key, not all cells that are
1612 eq, eqv, or equal to the first cell with the argument key. Thanks
1613 to Neil Jerram!
83238bc1 1614
78a3503e
DH
16152000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1616
1617 * gc.h (SCM_FREE_CELL_CDR, SCM_SET_FREE_CELL_CDR), hooks.c
1618 (make_hook), modules.c (OBARRAY, USES, BINDER): Pack and unpack
1619 SCM values appropriately.
1620
1621 * modules.c (scm_standard_eval_closure): Don't pass an inum to
1622 scm_makcclo, but rather a long value.
1623
62850ef3
DH
16242000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1625
1626 read.c (scm_lreadrecparen), srcprop.c (scm_set_source_property_x):
1627 SCM_SETCDR and SCM_WHASHSET macros don't deliver a return value.
1628 Thanks to Han-Wen Nienhuys for the bug report.
1629
cc4feeca
DH
16302000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1631
1632 * root.[ch] (scm_call_catching_errors): Deprecated.
1633
1634 * root.c (scm_init_root): Initialize the root smob type using the
1635 standard initialization functions.
1636
007e7c35
MV
16372000-07-17 Marius Vollmer <mvo@zagadka.ping.de>
1638
1639 * eval.c (unmemocopy): Don't rely on V being a list of at least
1640 one element. Thanks to Bill Schottstaedt!
1641
9d47a1e6
ML
16422000-07-15 Michael Livshin <mlivshin@bigfoot.com>
1643
1644 * gc.c (scm_done_free): new.
1645 expanded comments about scm_done_malloc.
1646
1647 * gc.h: added prototype for scm_done_free
1648
406c7d90
DH
16492000-07-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1650
1651 * gc.h (scm_take_stdin): Removed.
1652
1653 * gc.h (SCM_VALIDATE_CELL): Delegate cell checks to function
1654 scm_assert_cell_valid to allow extensions to the checking
1655 functionality without need to recompile everything.
1656
1657 * gc.[ch] (scm_assert_cell_valid, scm_set_debug_cell_accesses_x):
1658 Added as conditionally compiled functions for the case that
1659 SCM_DEBUG_CELL_ACCESSES is enabled.
1660
1661 * gc.c (debug_cells_p): Added to indicate whether compile-time
1662 included cell access debugging is run-time enabled.
1663
1664 * gc.[ch] (scm_gc_running_p): Added to indicate that scm_igc is
1665 being executed. Intended to be used instead of scm_gc_heap_lock
1666 at most places.
1667
1668 * error.c (scm_error), gdbint.c (SCM_GC_P): Use scm_gc_running_p
1669 instead of scm_gc_heap_lock.
1670
1671 * gc.c (scm_igc): Set scm_gc_running_p to true while running.
1672
1673 * gc.c (scm_mark_locations): Don't mark free cells.
1674
1675 * weaks.c (scm_scan_weak_vectors): Use SCM_FREE_CELL_P instead of
1676 SCM_FREEP.
1677
c4da09e2
DH
16782000-07-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1679
1680 * gc.c (scm_mark_locations): Minimized some variable scopes and
1681 simplified the code a bit.
1682
3f5d82cd
DH
16832000-07-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1684
1685 * gc.h (SCM_SET_FREE_CELL_TYPE, SCM_SET_FREE_CELL_CDR,
1686 SCM_FREE_CELL_P, SCM_FREE_CELL_CDR): Added since free cells
1687 should not be accessed via SCM_C[AD]R. Further, using dedicated
1688 macros to access free cells allows all other cell accessing macros
1689 to treat acesses to free cells as errors, thus enabling better
1690 error checks for cell accesses. SCM_FREE_CELL_P is supposed to
1691 replace SCM_FREEP some time.
1692
1693 * gc.h (SCM_NEWCELL, SCM_NEWCELL2), gc.c (map_free_list,
1694 free_list_length, scm_check_freelist, scm_debug_newcell,
1695 scm_debug_newcell2, freelist_length, scm_gc_for_newcell,
1696 scm_gc_mark, scm_gc_sweep, init_heap_seg): Only use the dedicated
1697 cell accessors when accessing free cells.
1698
f706a58b
DH
16992000-07-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
1700
1701 * gc.h (SCM_CELL_WORD, SCM_CELL_OBJECT): Treat the referenced
1702 object as const in order to make the compiler warn about code like
1703 SCM_CELL_WORD (x, n) = y. Instead, SCM_SET_CELL_WORD (x, n, y)
1704 should be used.
1705
1706 (SCM_CELL_WORD_LOC, SCM_CARLOC, SCM_CDRLOC): Return the address
1707 as an address to a non-const object, since these macros are used
1708 to allow direct write access to objects.
1709
cbaadf02
DH
17102000-07-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
1711
1712 * hashtab.c (scm_hash_fn_create_handle_x): Signal an error if the
1713 given hash table has no slots.
1714
a6c12a04
DH
17152000-07-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1716
b6efc951
DH
1717 * gc.c (policy_on_error): Added in order to allow alloc_some_heap
1718 to react to malloc failures in a context dependent way.
1719
1720 (scm_check_freelist): No need to flush streams before abort().
1721
1722 (scm_gc_for_newcell): Try to allocate new memory in three phases:
1723 grow heap if preferred, if still no memory available collect
1724 garbage, if still no memory available grow heap.
1725
1726 (heap_segment_table_size): Added to always reflect the actual
1727 size of the heap segment table, because scm_n_heap_segs may differ
1728 from the heap segment table size.
1729
1730 (alloc_some_heap): In case of malloc failure, react according to
1731 the new policy_on_error parameter (either return to caller or
1732 abort immediately). Further, keep heap_segment_table_size up to
1733 date.
1734
1735 (scm_init_storage): Initialize heap_segment_table_size.
1736
17372000-07-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1738
1739 * gh.h: Don't include <stdio.h>. Thanks to Han-Wen Nienhuys for
a6c12a04
DH
1740 the hint.
1741
b63a956d
DH
17422000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1743
1744 * __scm.h (SCM_OUTOFRANGE, SCM_NALLOC, SCM_HUP_SIGNAL,
1745 SCM_INT_SIGNAL, SCM_FPE_SIGNAL, SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL,
1746 SCM_ALRM_SIGNAL, SCM_GC_SIGNAL, SCM_TICK_SIGNAL, SCM_SIG_ORD,
1747 SCM_ORD_SIG, SCM_NUM_SIGS): Re-introduce these as deprecated
1748 symbols.
1749
1750 * error.c (scm_wta): Re-introduce dispatching for SCM_OUTOFRANGE
1751 and SCM_NALLOC, but as a deprecated feature.
1752
a75a7aff
MD
17532000-06-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1754
38ec519c
MD
1755 * debug.c: Added #include fluids.h.
1756
a75a7aff
MD
1757 * numbers.c (scm_gr_p, scm_leq_p, scm_geq_p): Turned into
1758 primitive generics. (Thanks to Nicolas Neuss.)
1759
c7387918
DH
17602000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1761
1762 * gc.c (alloc_some_heap): Use scm_memory_error to indicate a
1763 failed attempt to get additional memory from the system.
1764
1765 (scm_gc_for_newcell): Changed the control structure to make the
1766 behaviour explicit for the case that gc is not able to free any
1767 cells.
1768
685c0d71
DH
17692000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1770
1771 * __scm.h (SCM_OUTOFRANGE): Removed.
1772
1773 * error.c (scm_wta): Removed sick dispatch code for range
1774 errors. (More sick dispatches still to be removed.)
1775
1776 * hashtab.c (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
1777 scm_hash_fn_remove_x): Eliminate redundant test for if unsigned
1778 value is non-negative. Use scm_out_of_range to signal range
1779 errors.
1780
1781 * hooks.c (make_hook), unif.c (scm_aind): Use scm_out_of_range to
1782 signal range errors.
1783
1784 * list.c (scm_list_ref, scm_list_set_x, scm_list_cdr_set_x): Fix
1785 error reporting (now uses original input parameter to report wrong
1786 type argument errors). Use SCM_OUT_OF_RANGE to report range
1787 errors and SCM_WRONG_TYPE_ARG to report type errors.
1788
1789 * strings.c (scm_substring): Make range checks for negative
1790 values explicit (former behaviour relied on an implicit
1791 conversion from signed to unsigned). Don't use SCM_ASSERT for
1792 range checks.
1793
1794 * unif.c (scm_aind, scm_transpose_array, scm_bit_set_star_x,
1795 scm_bit_count_star): Use scm_out_of_range to signal range
1796 errors.
1797
1798 * unif.c (scm_transpose_array, scm_bit_position), vectors.c
1799 (scm_vector_ref, scm_vector_set_x, scm_vector_move_left_x,
1800 scm_vector_move_right_x): Use SCM_ASSERT_RANGE to check ranges.
1801
fdf25853
DH
18022000-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1803
1804 * validate.h (SCM_VALIDATE_INUM_MIN_COPY,
1805 SCM_VALIDATE_INUM_MIN_DEF_COPY, SCM_VALIDATE_INUM_RANGE_COPY):
1806 Perform all range checks based on the input value. The former way
1807 of using the value that is assigned to the target variable fails
1808 if the assignment to the target variable itself can change the
1809 value because of type conversion.
1810
1811 (SCM_ASSERT_RANGE): Use scm_out_of_range to signal range errors.
1812
627df128
MD
18132000-06-30 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1814
1815 * gc.c (scm_gc_for_newcell): Behave gracefully also if scm_igc
1816 doesn't yield any new cells. In theory this could happen if all
1817 cells allocated with NEWCELL are either in use or conservatively
1818 marked and all cluster spine cells are conservatively marked.
1819 (Thanks to Dirk.)
1820
2500356c
DH
18212000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1822
1823 * __scm.h (SCM_NALLOC): Removed.
1824
1825 * error.c (scm_wta): Removed sick dispatch code for memory
1826 errors. (More sick dispatches still to be removed.)
1827
1828 * numbers.c (scm_mkbig, scm_adjbig), ports.c (scm_make_port_type),
1829 random.c (scm_i_copy_rstate, scm_c_make_rstate), smob.c
1830 (scm_make_smob_type), srcprop.c (scm_make_srcprops), vectors.c
1831 (scm_vector_set_length_x): Now using scm_memory_error to signal
1832 memory errors.
1833
9b166f12
DH
18342000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1835
1836 * __scm.h: Removed some commented code and fixed some comments.
1837
1838 (SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL, SCM_BUS_SIGNAL,
1839 SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL, SCM_TICK_SIGNAL,
1840 SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS): Removed.
1841
1842 * async.c: Removed some commented code.
1843
acf4331f
DH
18442000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1845
1846 * gc.c (scm_gc_mark, scm_gc_sweep, scm_must_malloc,
1847 scm_must_realloc, scm_must_free, alloc_some_heap): Use the
1848 appropriate error signalling function.
1849
fc3d7778
DH
18502000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1851
1852 * root.h (scm_first_type): Removed.
1853
18542000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
0a7a7445
DH
1855
1856 * gc.c (MIN_GC_YIELD): Removed.
1857
150c200b
ML
18582000-06-28 Michael Livshin <mlivshin@bigfoot.com>
1859
1860 * gc.c (scm_gc_for_newcell): don't try to do GC if it's blocked,
1861 allocate instead.
1862
939794ce
DH
18632000-06-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1864
1865 * async.c (scm_gc_async, scm_gc_vcell, scm_sys_gc_async_thunk):
1866 Moved to gc.c.
1867
1868 (scm_init_async): Moved initialization for scm_gc_async and
1869 scm_gc_vcell to gc.c. Moved initialization of scm_asyncs here
1870 from gc.c.
1871
1872 * async.h (scm_gc_async): Not globally visible any more.
1873
1874 * gc.c (scm_gc_stats): Made callable even from within regions
1875 where gc is blocked.
1876
1877 (scm_gc_end): Eliminate the hardcoding of the marking of the
1878 scm_gc_async from the gc core.
1879
1880 (scm_init_storage): Don't initialize the scm_asyncs list here.
1881 This is now done in asyncs.c.
1882
1883 (scm_gc_vcell): Moved here from async.c.
1884
1885 (gc_async): Renamed from scm_gc_async, moved here from async.c
1886 and made static.
1887
1888 (gc_async_thunk): Renamed from scm_sys_gc_async_thunk and moved
1889 here from async.c.
1890
1891 (mark_gc_async): New hook function for scm_after_gc_c_hook.
1892
1893 (scm_init_gc): Added initialization of scm_gc_vcell and
1894 gc_async. Further, add mark_gc_async to scm_after_gc_c_hook.
1895
1896 * init.c (scm_boot_guile_1): scm_init_gc requires asyncs to be
1897 initialized.
1898
12acbbef
DH
18992000-06-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1900
1901 * gc.c (scm_igc): Removed commented code that once was intended
1902 to unprotect struct types with no instances.
1903
1904 * root.h (scm_type_obj_list): Removed.
1905
73ea78af
DH
19062000-06-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
1907
1908 * async.c (scm_init_async): Switch to standard way of smob
1909 initialization.
1910
7f40b48a
ML
19112000-06-21 Michael Livshin <mlivshin@bigfoot.com>
1912
1913 * guile-doc-snarf.in: use cut instead of sed, that's much much
83238bc1
ML
1914 faster. also, don't call basename more than needed. and, to gain
1915 a couple of microseconds more, don't call cat needlessly. (thanks
7f40b48a
ML
1916 to Brad Knotwell).
1917
3c6d9d71
DH
19182000-06-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1919
1920 * guile-snarf.awk.in, guile-snarf.in, snarf.h: Rename SCM__I to
1921 SCM_SNARF_INIT_START, SCM__D to SCM_SNARF_DOC_START, SCM__S to
1922 SCM_SNARF_DOCSTRING_START and SCM__E to SCM_SNARF_DOCSTRING_END.
1923
2b6e0d2b
MD
19242000-06-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1925
1926 * eval.c, eval.h (scm_top_level_lookup_closure_var): Added.
1927 #include "libguile/fluids.h".
1928
1929 * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): New macro which replaces
1930 SCM_CDR (scm_top_level_lookup_closure_var) everywhere.
1931
1932 * root.h (scm_top_level_lookup_closure_var,
1933 scm_system_transformer): Removed. (It's no sense in having the
1934 *variable* be a "fluid".)
1935
1936 * root.c (mark_root): Removed marking of
1937 s->top_level_lookup_closure_var and s->system_transformer.
1938
1939 * modules.c (scm_selected_module): the_module is now a fluid.
1940
5bc9cbd2
MD
19412000-06-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1942
1943 * gc.h, tags.h: Be kind to compilers which must see hash signs in
1944 column 0. (Thanks to Ian Grant.)
1945
1946 * numbers.h: Put #ifdef HAVE_LONG_LONGS around declarations using
1947 the long_long type. (Thanks to Bernard Urban.)
1948
b5074b23
MD
19492000-06-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1950
1951 * gc.c, gc.h (scm_default_init_heap_size_1,
1952 scm_default_min_yield_1, scm_default_init_heap_size_2,
1953 scm_default_min_yield_2, scm_default_max_segment_size): New global
1954 variables. Can be customized by the application before booting
1955 Guile. (We might want to be able to control these parameters
1956 dynamically through the "options interface" in the future, but
1957 note that that is additional functionality. Here we're giving
1958 default values which the environment variables can override.)
1959
1960 * list.c (scm_cons_star): Updated comment.
1961
1962 * smob.h: Changed comments for scm_make_smob_type and
1963 scm_make_smob_type_mfpe, warning that the latter might be
1964 deprecated in a future release.
1965
0a9e521f
MD
19662000-06-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1967
1968 * list.[ch] (scm_cons_star/cons*): Renamed from
1969 scm_list_star/list*.
1970
1971 * list.[ch] (scm_list_star/list*): Provided as a deprecated alias
1972 for scm_cons_star/cons*.
1973
1974 * gc.c (scm_protect_object): Updated comment.
1975
1976 * numbers.h (SCM_NEWREAL, SCM_NEWCOMPLEX): Removed.
1977
1978 * tags.h (SCM_UNPACK_CAR, SCM_NDOUBLE_CELLP): Removed.
1979
264871aa
MD
19802000-06-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1981
1982 * init.c, init.h (scm_initialized_p): Renamed from `initialized'
1983 and made global.
1984
1985 * gdbint.c (gdb_print): Print warning instead of calling scm_write
1986 if Guile isn't yet initialized.
1987
1988 * print.c (scm_current_pstate, scm_make_print_state): Simplified
1989 tests, using the assumption that Guile has been initialized.
1990
3785f317
GB
1991Sun Jun 18 14:45:21 2000 Greg J. Badros <gjb@cs.washington.edu>
1992
1993 * print.c (s_scm_current_pstate): Do not segfault when the
1994 print_state_pool is unitialized in `current-pstate', and better
1995 verify its state before altering it in scm_make_print_state().
1996
6732de1b
ML
19972000-06-18 Michael Livshin <mlivshin@bigfoot.com>
1998
1999 * scmsigs.c (s_scm_sigaction): guard the SIGIOT case with an
2000 #ifdef -- it's missing on at least one platform. (thanks to
2001 Jan Nieuwenhuizen).
2002
79494f15
DH
20032000-06-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2004
2005 * list.c (list*): Added documentation from common-list.scm.
2006
6a199940
DH
20072000-06-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2008
2009 * gc.c (scm_unprotect_object): The reference count is guaranteed
2010 to be a positive number.
2011
3243bcc0
MD
20122000-06-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2013
2014 * eval.c: Updated comment above scm_map.
2015
26c9c3ce
MD
20162000-06-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2017
2018 * gc.c (scm_protect_object): Avoid looking up the object handle
2019 twice.
2020 (scm_unprotect_object): Abort if scm_unprotect_object is called on
2021 an unprotected object.
2022
2dd6a83a
ML
20232000-06-14 Michael Livshin <mlivshin@bigfoot.com>
2024
2025 * gc.c (scm_unprotect_object): fix a nasty typo bug (thanks to
2026 Dirk Herrmann).
2027
97ebbbca
MD
20282000-06-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2029
43fbd20f
MD
2030 * socket.c (scm_getsockopt): Changed type for `optlen' from int to
2031 size_t.
2032 (scm_accept, scm_getsockname, scm_getpeername, scm_recvfrom):
2033 Ditto for `tmp_size'.
2034 (scm_addr_buffer_size): Changed type from int to size_t.
2035
2036 * random.c: #include <string.h>. (Needed by memcpy.)
2037
97ebbbca
MD
2038 * guile-snarf.awk.in: Replace the dot_doc_file arg with "-",
2039 indicating stdin, instead of "" and don't reset ARGC. This is a
2040 workaround for `nawk' in AIX 4.3 on RS6000 but, as far as I know,
2041 it is correct, and perhaps even better.
2042
14d72d48
GH
20432000-06-14 Gary Houston <ghouston@arglist.com>
2044
2045 * scmsigs.c (scm_init_scmsigs): if HAVE_SIGINTERRUPT is not
2046 defined, add SA_RESTART to the sigaction flags correctly
2047 (thanks to Dale P. Smith).
2048
d99783cb
MD
20492000-06-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2050
010d1e9d
MD
2051 * strings.c: #include <string.h>. (Thanks to Bill Schottstaedt.)
2052
2053 * net_db.c (scm_resolv_error): Only use macro NETDB_INTERNAL if
2054 defined. It isn't on sgi irix 5.3. (Thanks to Bill Schottstaedt.)
2055
d99783cb
MD
2056 * Makefile.am (.c.doc): Pipe output (the .x contents) to /dev/null.
2057
c47e8cc1
MD
20582000-06-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2059
e36a0870
MD
2060 * fports.c (scm_setvbuf): Use `free' instead of `scm_must_free'
2061 since read and write buffers are allocated by `malloc'.
2062
c47e8cc1
MD
2063 * Makefile.am: Removed old test code.
2064
2065 * gh_test_c.c, gh_test_repl.c: Removed.
2066
341f78c9
MD
20672000-06-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2068
a8861fa0
MD
2069 * iselect.c (SCM_NLONGBITS): Add workaround for the Sun 4.2
2070 compiler.
2071
2072 * inet_aton.c (inet_aton): Cast init value for `cp'.
2073
2074 * ramap.c (s_scm_array_fill_x): Cast `ve' properly in case
2075 `scm_tc7_uvect'.
2076
2077 * symbols.c (scm_intern_obarray_soft,
2078 scm_sysintern0_no_module_lookup): Cast `name' to unsigned char ptr
2079 in calls to scm_strhash.
2080
2081 * strports.c (st_resize_port): Substituted SCM_UCHARS for
2082 SCM_CHARS.
2083 (st_write): Cast argument to strncpy to char ptr.
2084 (scm_mkstrport): Substituted SCM_ROUCHARS for SCM_ROCHARS.
2085 (scm_strport_to_string): Cast argument to scm_makfromstr to char
2086 ptr.
2087
2088 * ports.c (scm_ungetc): Cast value to unsigned char ptr before
2089 storing in putback_buf.
2090 (scm_unread_string): Substituted SCM_ROCHARS for SCM_ROUCHARS.
2091
2092 * ioext.c (s_scm_read_line): Cast result of call to
2093 scm_do_read_line to unsigned char ptr.
2094
d230c130
MD
2095 * gdbint.c (SEND_STRING): Cast argument to char pointer.
2096
2097 * fports.c (fport_flush): Declare `ptr' as unsigned char (was
2098 char).
2099
9c8dca4e
MD
2100 * Makefile.am (DOT_DOC_FILES): List doc-files explicitly. (We
2101 shouldn't use Make rules which aren't supported by most Make
2102 programs.)
d230c130
MD
2103 (OMIT_DEPENDENCIES): Defined to "libguile.h ltdl.h". (We don't
2104 want these dependencies recorded, since they would get bogus
2105 relative paths; libguile.h is only used in gh.h and guile.c.)
9c8dca4e
MD
2106 (EXTRA_DOT_X_FILES, EXTRA_DOT_DOC_FILES): New variables.
2107 (guile-procedures.txt): Depend on EXTRA_DOT_DOC_FILES.
2108 (modinclude_HEADERS): Removed kw.h.
2109
69fc343a
MD
2110 * guile-snarf.in: Change regexp "^SCM__I" --> "^ *SCM__I".
2111 (The preprocessor might insert spaces before the identifier.)
2112
341f78c9
MD
2113 * snarf.h (SCM_SNARF_HERE, SCM_SNARF_INIT, SCM_SNARF_DOCS):
2114 Renamed from SCM_HERE, SCM_INIT, SCM_DOCS.
2115
2116 * smob.h (scm_smobfuns): Removed deprecated type.
2117
2118 * smob.c, smob.h (scm_newsmob): Removed deprecated function.
2119 (Replaced by `scm_make_smob_type'.)
2120
2121 * keywords.c (scm_tc16_kw): Removed deprecated type.
2122 (Replaced by scm_tc16_keyword.)
2123
341f78c9
MD
2124 * kw.h: Removed deprecated header file.
2125
2126 * evalext.c (serial-map): Removed deprected alias for scm_map.
2127 (Has been replaced by `map-in-order'.)
2128
2129 * ramap.c (serial-array-copy!, serial-array-map!): Removed
2130 depracted aliases. (Replaced by `array-copy-in-order!' and
2131 `array-map-in-order'.)
2132
4f60fa74
MD
21332000-06-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2134
2135 * gc.h (SCM_VALIDATE_CELL): Rewritten.
2136 (SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD,
2137 SCM_SET_CELL_OBJECT): Use new version of SCM_VALIDATE_CELL.
2138 (Thanks to Han-Wen Nienhuys.)
2139
adb2c53b
ML
21402000-06-10 Michael Livshin <mlivshin@bigfoot.com>
2141
2142 * guile-doc-snarf.in: don't pipe the CPP output right into sed --
2143 write it to the temp file first and check the CPP return code.
2144 (I introduced this bug earlier, and this probably caused people
2145 with non-GNU C preprocessors to get empty *.x files and not to
2146 have the build fail right away...).
2147
2148 * scmsigs.c (s_scm_sigaction): guard the SIGSYS case with an ifdef
2149 -- at least my libc5-based Linux system doesn't define SIGSYS.
2150
0abbd8f4
MD
21512000-06-08 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2152
aa169af8
MD
2153 * snarf.h, guile-snarf.awk.in, guile-snarf.in: Replaced snarf
2154 markers with identifiers (SCM__I, SCM__D, SCM__S, SCM__E).
2155 (Thanks to Bernard Urban.)
0abbd8f4 2156
a6596faa
MD
21572000-06-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2158
2159 * modules.c (scm_system_module_env_p): Fixed detection of system
2160 modules.
2161
c29ee3e5
MV
21622000-06-06 Marius Vollmer <mvo@zagadka.ping.de>
2163
2164 * scmsigs.c (scm_sigaction): Silently ignore setting handlers for
2165 `program error signals' because they can't currently be handled by
2166 Scheme code.
2167
2d9cdf4e
DH
21682000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2169
2170 * procs.h (SCM_SET_SUBRF): Added.
2171
2172 * procs.c (scm_make_subr_opt): Don't assign to SCM_SUBRF, use
2173 SCM_SET_SUBRF instead. Thanks to Bernard Urban for the bug
2174 report.
2175
4b479d98
DH
21762000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2177
2178 * gc.h (SCM_CARLOC, SCM_CDRLOC): Don't take the address of a SCM
2179 value.
2180
2181 * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x,
2182 scm_merge_list_step): Don't take the address of SCM_CAR. Use
2183 SCM_CARLOC instead. Thanks to Bernard Urban for the bug report.
2184
9a09deb1
DH
21852000-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2186
2187 * boolean.h (SCM_TRUE_P): Removed, as people might use it as a
2188 replacement for !SCM_FALSEP.
2189
2190 * backtrace.c (display_error_body), boolean.h (SCM_BOOLP), gc.c
2191 (scm_unhash_name), gh_data.c (gh_module_lookup), load.c
2192 (scm_primitive_load), print.c (scm_simple_format), procs.c
2193 (scm_procedure_documentation), procs.h (SCM_TOP_LEVEL), ramap.c
2194 (scm_array_fill_int), scmsigs.c (scm_sigaction), stacks.c
2195 (narrow_stack, scm_make_stack, scm_stack_id), symbols.c
2196 (scm_string_to_obarray_symbol), throw.c (scm_catch,
2197 scm_lazy_catch, scm_ithrow), unif.c (scm_make_uve, scm_array_p,
2198 scm_array_set_x, scm_bit_set_star_x, scm_bit_count_star),
2199 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_PROC): Replace
2200 uses of SCM_TRUE_P (x) with SCM_EQ_P (x, SCM_BOOL_T).
2201
2c4fc472
MD
22022000-06-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2203
542bfe1d
MD
2204 * eval.c (scm_badformalsp): New static function.
2205 (SCM_CEVAL): Check arguments for procedure-with-setter closures.
2206 (Thanks to Keisuke Nishida.)
2207
2c4fc472
MD
2208 The major reason for Guile's slow loading speed has been the fact
2209 that a chain of Scheme level procedures has been evaluated for
2210 every top-level symbol lookup during the first pass through the
2211 code.
83238bc1 2212
2c4fc472
MD
2213 The following is a kludge which I suggested four years ago, and
2214 which I've repeatedly suggested since. Personally, I've never
2215 been bothered by Guile's slow loading speed, so I thought I would
2216 let someone else do it...
2217
2218 But since the new environments will be included first in
2219 Guile-1.5, I thought it would make people happy to get the kludge
2220 into 1.4.
83238bc1 2221
2c4fc472
MD
2222 * modules.c: Added #include "libguile/vectors.h";
2223 Added #include "libguile/hashtab.h";
2224 Added #include "libguile/struct.h";
2225 Added #include "libguile/variable.h";
2226 Capture Scheme level `module-make-local-var!' to be used in the
2227 standard eval closure.
2228 (scm_standard_eval_closure): New primitive.
2229
2230 * modules.h (scm_standard_eval_closure): Declare.
2231
2232 * eval.c (scm_lookupcar): Test for !SCM_CONSP (SCM_CAR (env))
2233 instead of SCM_TRUE (scm_procedurep (SCM_CAR (env))).
2234
2235 * symbols.c (scm_sym2vcell): Bypass dispatch in the evaluator for
2236 standard eval closures.
2237
2238 * variable.c: Code layout fixes.
2239
96372e45
MD
22402000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2241
2242 * Makefile.am: Added LIBS line to libpath which accidentally
2243 disappeared in the change of 2000-06-01.
2244 (Thanks to Dale P. Smith.)
2245
cc0bb1ef
MD
22462000-06-03 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2247
6784d5c0
MD
2248 * scmsigs.c (scm_segfault): Removed. (Was probably added by
2249 mistake since it is not mentioned in ChangeLog.)
2250
cc0bb1ef
MD
2251 * gc.h (SCM_VALIDATE_CELL): Cast result to (void) in order to
2252 avoid compiler warnings in gcc. (Does this work for other
2253 compilers?)
2254
f8d4d8e5
MD
22552000-06-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2256
4ecf5aa3
MD
2257 * gc.h (SCM_VALIDATE_CELL): Don't "use" the value returned by
2258 abort ().
2259 (SCM_CARLOC, SCM_CDRLOC): Define directly instead of using
2260 SCM_CELL_OBJECT_0 and SCM_CELL_OBJECT_1. It's not correct to take
2261 the address of these expressions since they use SCM_VALIDATE_CELL.
2262 (Thanks to Bernard Urban.)
2263
f8d4d8e5
MD
2264 * dynl.c: Changed #include <ltdl.h> --> #include
2265 "libltdl/ltdl.h". (Thanks to Bill Schottstaedt.)
2266
b6fae158
CB
22672000-06-01 Craig Brozefsky <craig@red-bean.com>
2268
2269 * Makefile.am: libguile_la_LDFLAGS gets -version-info args
2270 from GUILE-VERSION definition of LIBGUILE version. Added to
2271 libpath.h definitions for guileversion and libguileversion which
2272 both get their values from GUILE-VERSION definition.
2273
7272f6d8
DH
22742000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2275
2276 * numbers.h (SCM_BIGP): Don't use SCM_SMOB_PREDICATE in header
2277 file: Code using numbers should not be required to include
2278 smob.h.
2279
b2728432
DH
22802000-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2281
2282 * coop-threads.c.cygnus, coop-threads.h.cygnus, fsu-pthreads.h,
2283 mit-pthreads.c, mit-pthreads.h: Deleted.
2284
2285 * Makefile.am (EXTRA_DIST), scmsigs.c, threads.[ch]: Drop
2286 references to deleted files and fsu/mit thread support in
2287 general.
2288
f8eaf8b9
DH
22892000-05-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
2290
2291 * hooks.c (symbol_name, scm_create_hook): Restored the original
2292 behaviour of scm_create_hook. Changing it was bad as Carl
2293 R. Witty has pointed out.
2294
2295 * gc.c (scm_init_gc): We can still rely on scm_create_hook to
2296 protect the object.
2297
e11f8b42
DH
22982000-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
2299
2300 * gc.c (scm_init_gc): Protect scm_after_gc_hook, since this will
2301 soon not be done by scm_create_hook any longer.
2302
2303 * hooks.c (make_hook, print_hook, scm_create_hook,
2304 scm_make_hook_with_name, scm_make_hook), hooks.h (SCM_HOOK_NAME,
2305 SCM_HOOK_PROCEDURES, SCM_SET_HOOK_PROCEDURES,
2306 scm_make_hook_with_name), init.c (scm_boot_guile_1): Hooks no
2307 longer have names. As an intermediate solution, the name
2308 predicate is emulated via object properties, but use of this
2309 feature is deprecated.
2310
2311 * hooks.h (scm_free_hook): Removed, as it is never defined.
2312
47457e8a
DH
23132000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2314
894a712b
DH
2315 * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_FIXABLE):
2316 Un-deprecated since otherwise user code can't determine whether a
2317 number fits into an inum any longer. The names should be changed
2318 some time, though.
2319
2320 * numbers.c (scm_big2inum): Eliminated use of SCM_UNEGFIXABLE.
2321
2322 * tags.h (SCM_UNPACK_CAR): Deprecated.
2323
23242000-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2325
2326 * filesys.h (SCM_OPDIRP), fluids.h (SCM_FLUIDP, SCM_FLUID_NUM),
47457e8a
DH
2327 fports.h (SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP), hooks.h
2328 (SCM_HOOK_ARITY), keywords.h (SCM_KEYWORDP, SCM_KEYWORDSYM),
83238bc1 2329 numbers.h (SCM_NUMP, SCM_BIGSIGN, SCM_BDIGITS, SCM_NUMDIGS):
47457e8a
DH
2330 Replace SCM_UNPACK_CAR appropriately. Don't access cells via
2331 SCM_{SET}?C[AD]R unless they are known to be cons cells.
2332
2333 * gc.c (scm_heap_seg_data_t, scm_mark_locations, scm_cellp,
2334 init_heap_seg): Remove unused struct member variable 'valid'.
2335
f9a64404
DH
23362000-05-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2337
2338 * fports.c (fport_write), ports.c (scm_markstream, scm_port_mode,
2339 scm_print_port_mode), ports.h (SCM_OPPORTP, SCM_OPINPORTP,
2340 SCM_OPOUTPORTP, SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP),
2341 procs.h (SCM_CLOSCAR), unif.h (SCM_ARRAY_NDIM, SCM_ARRAY_CONTP),
2342 variable.h (SCM_VARIABLEP): Replace SCM_UNPACK_CAR
2343 appropriately.
2344
206d3de3
DH
23452000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
2346
2347 * gc.c (free_list_length), hash.c (scm_hasher), macros.c
2348 (scm_macro_type), objects.c (scm_class_of), options.c
2349 (scm_options), print.c (scm_iprin1), strports.c (st_seek), throw.c
2350 (SCM_LAZY_CATCH_P): Replace SCM_UNPACK_CAR appropriately.
2351
445f675c
DH
23522000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
2353
2354 * eval.c (scm_macroexp, SCM_CEVAL, scm_force), tags.h: Replace
2355 SCM_UNPACK_CAR with SCM_CELL_TYPE or SCM_CELL_WORD_0.
2356
2357 * eval.c (scm_force): Add documentation.
2358
2359 * eval.c (scm_force, scm_cons_source): Don't access cells via
2360 SCM_{SET}?C[AD]R unless they are known to be cons cells.
2361
6ba93e5e
DH
23622000-05-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
2363
2364 * strings.h (SCM_NSTRINGP, SCM_NRWSTRINGP), tags.h
2365 (SCM_NDOUBLE_CELLP), vectors.h (SCM_NVECTORP): Deprecated.
2366
2367 * gc.c (scm_igc), gc.h (SCM_PTR_MASK, SCM_PTR_LT): Removed #ifdef
2368 nosve #endif conditionally compiled code.
2369
fe517a7d
ML
23702000-05-23 Michael Livshin <mlivshin@bigfoot.com>
2371
2372 * gc.c (scm_heap_seg_data_t): fixed comment for the `span' member.
2373
a564e775
ML
23742000-05-22 Michael Livshin <mlivshin@bigfoot.com>
2375
2376 * guile-doc-snarf.in: put the preprocessed file through sed to
cf00e803
ML
2377 trim all lines to 1024 chars. I hope it doesn't break anybody's
2378 sed. we'll see. (note: this is lossy trimming, i.e. the spill
2379 isn't wrapped around but actually chopped off. this seemed to me
2380 safe because the current snarfer doesn't understand multi-line
2381 cookies anyway. in the long term, it would be nice not to depend
2382 on AWK for anything.)
a564e775 2383
83238bc1 2384 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): reverted
a564e775
ML
2385 the previous change to this macros, after deciding to torture the
2386 snarfer instead.
2387
686765af
ML
23882000-05-21 Michael Livshin <mlivshin@bigfoot.com>
2389
2390 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): brought
cebd4392
ML
2391 the yucky, ugly and nasty conditional compilation back. sorry,
2392 but it was either that or requiring GAWK to build Guile.
2393 (lots of places): removed the code that implemented the old GC
2394 scheme.
686765af
ML
2395
2396 * init.c (scm_boot_guile_1): removed the code conditioned on
2397 !GUILE_NEW_GC_SCHEME.
2398
2399 * __scm.h: (GUILE_NEW_GC_SCHEME): removed.
2400
2401 * gc.c (scm_protect_object, scm_unprotect_object): change the
2402 implementation to more efficient (at least in the time complexity
2403 sense). the calls should now also be thread-safe -- I suspect
2404 that people expect them to be. (thanks to Han-Wen Nienhuys)
cebd4392
ML
2405 (lots of places): removed the code that implemented the old GC
2406 scheme.
686765af
ML
2407
2408 * hashtab.c (scm_hash_fn_create_handle_x): add missing
cebd4392
ML
2409 SCM_REALLOW_INTS before return. I really wonder about the
2410 possible interactions between hashtables, threads & GC. it
83238bc1 2411 doesn't look healthy at all.
686765af 2412
44e47754
DH
24132000-05-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
2414
2415 * unif.c (scm_bit_count): Fixed the parameter checks. Thanks to
2416 Dale P. Smith.
2417
46d53380
DH
24182000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2419
2420 * __scm.h (SCM_DEBUG_CELL_ACCESSES), gc.h (SCM_): Added as a new
2421 debug option to verify all accesses to cells actually access
2422 objects on the heap.
2423
2424 * gc.h (SCM_VALIDATE_CELL): Added. Only performs validation if
2425 SCM_DEBUG_CELL_ACCESSES is set to 1.
2426
2427 (SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD,
2428 SCM_SET_CELL_OBJECT): Use SCM_VALIDATE_CELL to check every cell
2429 that is accessed.
2430
1a548472
DH
24312000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2432
2433 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs,
2434 gh_scm2floats, gh_scm2doubles): Change !SCM_NIMP to SCM_IMP.
2435
2436 * gc.c (scm_cellp): Fixed and simplified.
2437
2438 * throw.c (JBJMPBUF, SETJBJMPBUF, SCM_JBDFRAME, SCM_SETJBDFRAME,
2439 make_jmpbuf, scm_init_throw): Now using double cells to represent
2440 jump buffers when using debug extensions.
2441
2442 (freejb): Removed.
2443
bcee10dd
DH
24442000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
2445
2446 * gh.h gh_data.c gh_funcs.c (gh_new_procedure*, gh_chars2byvect,
2447 gh_shorts2svect, gh_longs2ivect, gh_ulongs2uvect, gh_floats2fvect,
2448 gh_doubles2dvect, gh_doubles2scm, gh_define, gh_lookup,
2449 gh_module_lookup): Accept const pointers as parameters.
2450
2451 * gh.h gh_data.c (gh_int2scmb): Deprecated.
2452
24532000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
af45e3b0
DH
2454
2455 * __scm.h (SCM_DEBUG_REST_ARGUMENT): Renamed from
2456 SCM_DEBUG_REST_ARGUMENTS in order to clarify that we don't test
2457 the actual arguments in the list, but rather the rest argument as
2458 a list of arguments.
2459
2460 * validate.h (SCM_VALIDATE_REST_ARGUMENT): Added.
2461
2462 * async.c (scm_noop), eval.c (scm_map, scm_for_each), list.c
2463 (scm_list_star, scm_append, scm_append_x), ports.c
2464 (scm_close_all_ports_except), ramap.c (scm_array_map_x,
2465 scm_array_for_each), regex-posix.c (scm_make_regexp), stacks.c
2466 (scm_make_stack), strings.c (scm_string_append), struct.c
2467 (scm_make_struct, scm_make_vtable_vtable): Validate rest arguments.
2468
2469 * dynl.c (DYNL_GLOBAL, sysdep_dynl_link, kw_global, sym_global,
2470 scm_dynamic_link, scm_init_dynamic_linking), dynl.h
2471 (scm_dynamic_link): Removed possibility to pass flags to
2472 scm_dynamic_link, as it had no effect anyway.
2473
2474 * filesys.c (scm_fcntl): Made single optional rest argument into
2475 a standard optional argument.
2476
2477 * hooks.c (scm_run_hook): A list of rest arguments is never
2478 SCM_UNBNDP.
2479
2480 * list.c (scm_append, scm_append_x), stacks.c (scm_make_stack),
2481 strings.c (scm_string_append): Don't perform half-hearted checks
2482 to see whether the rest argument forms a proper list any more, use
2483 SCM_VALIDATE_REST_ARGUMENTS instead.
2484
2485 * ports.c (scm_close_all_ports_except): Accept empty list of rest
2486 arguments.
2487
2488 * posix.c (scm_convert_exec_args), print.c (scm_simple_format):
2489 Simplify verification of rest argument.
2490
2491 * stacks.c (scm_make_stack), stacks.h (scm_make_stack), throw.c
2492 (ss_handler, handler_message): Make first mandatory rest argument
83238bc1 2493 of scm_make_stack into a standard mandatory argument.
af45e3b0
DH
2494
2495 * unif.c (scm_transpose_array, scm_enclose_array,
2496 scm_array_in_bounds_p), unif.h (scm_transpose_array,
2497 scm_enclose_array, scm_array_in_bounds_p): Make first mandatory
2498 rest argument into a standard mandatory argument.
2499
c8a54c4b
DH
25002000-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2501
2502 * __scm.h: Added SCM_DEBUG as default debug option. (Thanks to
2503 Keisuke Nishida for the suggestion.) Added debug option
2504 SCM_DEBUG_REST_ARGUMENTS.
2505
2506 * eval.c (scm_map, scm_for_each): Make sure all lists have the
2507 same length. Also, removed redundant parameter checks.
2508
56100716
DH
25092000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2510
2511 * Makefile.am: Let 'make clean' remove *.x and *.doc files.
2512
2513 * __scm.h: Improved explanation of giving options to make.
2514
2515 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS), tags.h
2516 (SCM_STRICT_TYPING, SCM_DEBUG_TYPING_STRICTNESS): Renamed
2517 SCM_STRICT_TYPING to SCM_DEBUG_TYPING_STRICTNESS and moved the
2518 corresponding declaration and comment to __scm.h.
2519
2520 * _scm.h (errno), gc.h (SCM_CELLPTR, SCM_PTR_LT), numbers.c
2521 (scm_remainder, scm_modulo), numbers.h (SCM_SRS, SCM_MAKINUM,
2522 SCM_INUM): Removed conditionally compiled code for Turbo C.
2523
2524 * gdbint.c (gdb_maybe_valid_type_p): Eliminated call to scm_tag.
2525 That check can be assumed to be redundant except for very rare
2526 conditions that actually indicate broken heap data.
2527
3c9f20f8
DH
25282000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2529
2530 * numbers.c (scm_logcount, scm_integer_length): Reordered
2531 dispatch sequence.
2532
8536a982
GH
25332000-05-15 Gary Houston <ghouston@arglist.com>
2534
2535 * stime.c (scm_strftime): don't reset TZ if zone is an empty
2536 string. append a "0" to the zone for TZ.
c8a54c4b 2537
78166ad5
DH
25382000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2539
2540 * numbers.c (scm_logbit_p, scm_bit_extract): Reordered dispatch
2541 sequence.
2542
2543 (scm_bit_extract): Fixed handling of bignums.
2544
f5f2dcff
DH
25452000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2546
2547 * async.c (scm_sys_gc_async_thunk), chars.h (SCM_ICHRP, SCM_ICHR,
2548 SCM_MAKICHR), continuations.h (SCM_SETJMPBUF), error.c
2549 (scm_sysmissing), error.h (scm_sysmissing), evalext.c
2550 ('serial-map), ioext.c (scm_fseek), ioext.h (scm_fseek),
2551 keywords.c (scm_tc16_kw, scm_init_keywords), ports.h (SCM_CRDY,
2552 SCM_INPORTP, SCM_OUTPORTP), ramap.c ('serial-array-copy!,
2553 'serial-array-map!), smob.c (scm_newsmob), smob.h (scm_smobfuns,
2554 scm_newsmob), tag.c (scm_tag), tag.h (scm_tag), tags.h
2555 (scm_tc16_flo, scm_tc_flo, scm_tc_dblr, scm_tc_dblc): Wrapped
2556 deprecated code between #if (SCM_DEBUG_DEPRECATED == 0) #endif.
2557
2558 * fports.c (scm_fport_buffer_add), ports.c (scm_input_port_p,
2559 scm_output_port_p), print.c (scm_get_print_state), validate.h
2560 (SCM_VALIDATE_CHAR): Replace use of deprecated macros
2561 SCM_INPORTP, SCM_OUTPORTP, SCM_ICHRP by SCM_INPUT_PORT_P,
2562 SCM_OUTPUT_PORT_P, SCM_CHARP, respectively.
2563
07ccd85d
GH
25642000-05-14 Gary Houston <ghouston@arglist.com>
2565
32f1b9fd
GH
2566 * stime.c (scm_strftime): if HAVE_TM_ZONE is not defined, hack the
2567 TZ environment variable so that the %Z format returns the zone
2568 from the input vector instead of the system default.
2569
07ccd85d
GH
2570 from Keisuke Nishida:
2571 * fports.c (scm_setvbuf): minor docstring fix.
2572 * ports.h (scm_generic_fgets): obsolete prototype deleted.
2573
3a9809df
DH
25742000-05-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
2575
2576 * __scm.h: Added new section for debugging options.
2577
2578 (SCM_DEBUG_DEPRECATED): If 1, no deprecated code is included to
2579 help developers to get rid of references to deprecated code.
2580
2581 * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_UNEGFIXABLE,
2582 SCM_FIXABLE, SCM_FLOBUFLEN): These macros are no longer provided
2583 as part of the interface and are marked as deprecated in the
2584 header file.
2585
2586 * numbers.c (scm_make_real, scm_make_complex): Inlined the
2587 corresponding macros SCM_NEWREAL and SCM_NEWCOMPLEX,
2588 respectively.
2589
2590 * numbers.h (SCM_NEWREAL, SCM_NEWCOMPLEX, SCM_INEXP, SCM_CPLXP,
2591 SCM_REAL, SCM_IMAG, SCM_REALPART, scm_makdbl, SCM_SINGP,
2592 SCM_NO_BIGDIG, SCM_NUM2DBL, scm_dblproc): Deprecated.
2593
e828cb75
DH
25942000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2595
2596 * gc.h (scm_cell, SCM_CELL_WORD, SCM_CELL_OBJECT,
2597 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT): Scheme cells now consist
2598 of two scm_bits_t values instead of two SCM values, because it is
2599 legal for cell entries to hold values that are not scheme objects.
2600
2601 (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR):
2602 Use SCM_SETC[AD]R to modify contents of pairs.
2603
5986c47d
DH
26042000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2605
2606 * numbers.c (IS_INF, isfinite): Added FIXME comment.
2607
2608 (scm_abs, scm_magnitude): Make these two independent of each
2609 other. scm_abs now reports an error if given a complex argument.
2610
2611 (scm_istr2flo, scm_integer_p). Use SCM_REAL_VALUE instead of
2612 SCM_REALPART if the object is known to be real.
2613
2614 (scm_init_numbers): No need to use SCM_NEWREAL macro for speed
2615 here.
2616
2617 * numbers.h (SCM_SINGP): Set to 0 instead of SCM_BOOL_F.
2618
eb42e2f0
DH
26192000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2620
2621 * eq.c (scm_eqv_p): Separate handling of real and complex
2622 values. Remove #ifdef SCM_BIGDIG #endif test.
2623
2624 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_scm2floats,
2625 gh_scm2doubles), hash.c (scm_hasher), ramap.c (scm_array_fill_int,
2626 ramap_rp, scm_array_map_x), random.c (vector_scale,
2627 vector_sum_squares), unif.c (scm_make_uve, scm_array_p,
2628 scm_array_set_x): Use SCM_REAL_VALUE instead of SCM_REALPART if
2629 the object is known to be real. Use SCM_COMPLEXP instead of
2630 deprecated SCM_CPLXP. Use SCM_INEXACTP instead of deprecated
2631 SCM_INEXP.
2632
7235ee58
DH
26332000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2634
2635 * numbers.c: No need to include unif.h.
2636
2637 (IS_INF): Returned to old test for now: x == x + 1 will not work
2638 for large numbers due to rounding errors.
2639 Thanks to Kalle Olavi Niemitalo.
2640
bb628794
DH
26412000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
2642
2643 * numbers.c (scm_divbigdig): Removed outdated comment.
2644
2645 (scm_number_to_string, scm_string_to_number, scm_number_p,
2646 scm_real_p, scm_integer_p, scm_inexact_p, scm_gr_p, scm_leq_p,
2647 scm_geq_p, scm_make_rectangular, scm_make_polar,
2648 scm_inexact_to_exact): Added comments.
2649
2650 (add1, scm_init_numbers): Removed add1.
2651
98cb6e75
DH
26522000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
2653
2654 * numbers.c (IS_INF): The new test is x == x + 1. The old test
2655 x == x/2 did not work for zero values. Thanks to Han-Wen Nienhuys
2656 and Ivan Toshkov.
2657
2658 (scm_number_to_string, scm_sum, scm_difference, scm_two_doubles,
2659 scm_num2long, scm_num2long_long, scm_num2ulong): Reordered
2660 dispatch sequence.
2661
c45c2b6b
MV
26622000-05-09 Marius Vollmer <mvo@zagadka.ping.de>
2663
2664 * scmsigs.c (take_signal): Execute SCM_ASYNC_TICK for SIGSEGV,
2665 SIGILL and SIGBUS signals. These signals are not continuable and
2666 must be handled for real right away.
2667
c2ff8ab0
DH
26682000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2669
2670 * numbers.c (scm_zero_p, scm_positive_p, scm_negative_p,
2671 scm_real_part, scm_imag_part, scm_magnitude,
2672 scm_inexact_to_exact): Reordered dispatch sequence.
2673
1a450153
DH
26742000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2675
2676 * feature.c: No need to include "libguile/smob.h"
2677
2678 (scm_loc_features, features, scm_add_feature, scm_init_feature):
2679 Removed variable 'scm_loc_features' as a pointer to the SCM value
2680 holding the features list. Using variable 'features' instead,
2681 which holds the interned pair. Thus, SCM_SETCDR can be used
2682 instead of pointer trickery.
2683
665aeda3
DH
26842000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2685
2686 * alist.c (scm_acons): Use SCM{_SET}?_CELL_OBJECT as long as a
2687 cell is not known to be a valid pair.
2688
ab66ae47
DH
26892000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2690
2691 * eval.c (ASRTSYNTAX, scm_m_body, scm_m_letrec1): Removed
2692 ASRTSYNTAX. Using SCM_ASSYNT instead.
2693
2694 (scm_m_body): Don't create a redundant cons cell.
2695
2696 (scm_m_do): Removed redundant test 'bodycheck'.
2697
2698 (bodycheck): Removed.
2699
2700 * stacks.c (stack_depth, read_frame, read_frames): Removed
2701 redundant calculation of size, minimized some variable scopes.
2702
4983cbe4
DH
27032000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2704
2705 * pairs.c (scm_cons, scm_cons2): Use SCM{_SET}?_CELL_OBJECT as
2706 long as a cell is not known to be a valid pair.
2707
2708 (scm_pair_p): Eliminated redundant SCM_IMP test.
2709
44d3cb0d
DH
27102000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2711
2712 * eval.c (scm_m_body, scm_macroexp, unmemocopy, scm_eval_args,
2713 scm_deval_args): Eliminated redundant SCM_IMP tests.
2714
2715 * hashtab.c (scm_ihashx, scm_sloppy_assx, scm_delx_x), weaks.c
2716 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table,
2717 scm_make_doubly_weak_hash_table): Fixed critical sections.
2718 Thanks to Keisuke Nishida.
2719
9a00c9fc
DH
27202000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2721
2722 * numbers.c (scm_logand, scm_logior, scm_logxor, scm_logtest):
2723 Fixed some goto-related initialization bugs (introduced by me).
2724
b82c6ce0
DH
27252000-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
2726
2727 * numbers.h (SCM_INUM0): Uses SCM_MAKINUM instead of SCM_PACK.
2728
2729 * dynl.c (dynl_obj, DYNL_OBJ, get_dynl_obj): Removed.
2730
2731 (DYNL_FILENAME, DYNL_HANDLE): Use SCM_CELL... macros instead of
2732 pointer trickery.
2733
2734 (SET_DYNL_HANDLE): Added.
2735
2736 (scm_dynamic_object_p): Simplified.
2737
2738 (scm_dynamic_unlink, scm_dynamic_func): Changed comment. Deliver
2739 better error message when accessing unlinked dynamic objects.
2740 Eliminated call to get_dynl_obj.
2741
106428b3
MV
27422000-05-03 Marius Vollmer <mvo@zagadka.ping.de>
2743
7eea5296 2744 * scmsigs.c (orig_handlers) [!HAVE_SIGACTION]: Fix declaration to
106428b3
MV
2745 be an array of function pointers instead of being a pointer to an
2746 array returning function. Thanks to Kalle Olavi Niemitalo!
2747
f4c627b3
DH
27482000-05-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
2749
2750 * numbers.c (scm_divbigbig, scm_divbigint), numbers.h
2751 (scm_divbigbig, scm_divbigint): Don't return zero any more to
2752 indicate that a division has a remainder, return SCM_UNDEFINED
2753 instead. It is improbable that anyone actually used these
2754 functions outside of numbers.c. For this reason and due to the
2755 change in behaviour the functions are static now. Thus, if
2756 surprisingly there are users of these functions they will at least
2757 get alarmed.
2758
2759 * numbers.c: Removed #ifdef SCM_BIGDIG #endif in those functions,
2760 that already have a clean dispatch order. Note: SCM_BIGDIG is
2761 always defined.
2762
2763 * numbers.c (scm_inexact_p): Simplified.
2764
2765 * numbers.c (scm_num_eq_p, scm_less_p, scm_max, scm_min,
2766 scm_product, scm_num2dbl, scm_angle): Reordered dispatch
2767 sequence, thereby fixing some comparisons of SCM values with
2768 integer constants.
2769
2770 * numbers.c (scm_divide): Division by zero of inums leads to an
2771 error now. (Formerly, an infinite number was returned.)
2772
2773 Respect the fact, that scm_divbigbig does now return SCM_UNDEFINED
2774 if a division has a remainder.
2775
3a6e6616
GH
27762000-05-02 Gary Houston <ghouston@arglist.com>
2777
2778 * Makefile.am (INCLUDES): add ${INCLTDL} (thanks to Tim Mooney).
2779
f8de44c1
DH
27802000-05-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
2781
2782 * numbers.c (scm_logtest, scm_division): Reordered dispatch
2783 sequence, thereby fixing some comparisons of SCM values with
2784 integer constants.
2785
2786 * numbers.h (scm_makdbl): Mark as deprecated at the point of
2787 declaration.
2788
2789 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_double2scm,
2790 gh_doubles2scm), numbers.c (scm_istr2flo, scm_max, scm_min,
2791 scm_sum, scm_difference, scm_product, scm_divide, scm_sys_expt,
2792 scm_sys_atan2, scm_make_rectangular, scm_make_polar,
2793 scm_real_part, scm_imag_part, scm_magnitude, scm_angle,
2794 scm_long2num, scm_long_long2num, scm_ulong2num), ramap.c
2795 (ramap_rp, scm_array_map_x), random.c (scm_random,
2796 scm_random_uniform, scm_random_normal_vector_x, scm_random_exp),
2797 struct.c (scm_struct_ref), unif.c (scm_array_to_list): Replace
2798 call to scm_makdbl with a call to scm_make_real or
2799 scm_make_complex, depending on whether the imaginary part is known
2800 to be zero.
2801
7f5fa419
GH
28022000-05-01 Gary Houston <ghouston@arglist.com>
2803
0607c109
GH
2804 * scmsigs.c: fix the definition of orig_handlers for the case
2805 that HAVE_SIGACTION is not defined (thanks to
2806 Kalle Olavi Niemitalo).
2807
7f5fa419
GH
2808 * Makefile.am: remove include_HEADERS (was libguile.h)
2809 libguile.h: moved to top level directory.
2810
09fb7599
DH
28112000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2812
2813 * numbers.c (SCM_SWAP): Moved to the top of the file to allow for
2814 a wider use.
2815
2816 * numbers.c (scm_modulo, scm_gcd, scm_lcm, scm_logand, scm_logior,
2817 scm_logxor): Reordered dispatch sequence, thereby fixing some
2818 comparisons of SCM values with integer constants.
2819
2820 * number.c (scm_logtest): Removed some redundant SCM_{N}?IMP
83238bc1 2821 tests.
09fb7599 2822
89a7e495
DH
28232000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2824
2825 * numbers.c (scm_quotient, scm_remainder): Removed code that was
2826 conditionally compiled based on BADIVSGNS. BADIVSGNS does not
2827 occur anywhere else throughout guile.
2828
2829 * numbers.c (scm_quotient): Fixed parameter number in error
2830 message.
2831
2832 * numbers.c (scm_remainder): Reordered dispatch sequence.
2833
a4fbabb3
GH
28342000-04-25 Gary Houston <ghouston@arglist.com>
2835
2836 * posix.c (scm_execlp): docstring fix (thanks to Martin
2837 Grabmueller).
2838
09e4d064
DH
28392000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2840
2841 * eval.c (undef_object): Made into a local static variable
2842 (suggested by Jost Boekemeier).
2843
e59bb516
DH
28442000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2845
2846 * pairs.c (cxrs, scm_init_pairs): Simplify initialization of
2847 c[ad]+r functions.
2848
2849 * procs.c (scm_init_iprocs), procs.h (scm_subr, scm_iproc,
2850 scm_dsubr, scm_init_iprocs): Removed.
2851
2852 * procs.h (SCM_SUBRF, SCM_DSUBRF): Access the cell words
2853 directly instead of casting a cell to a C struct.
2854
820920e6
MD
28552000-04-22 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2856
2857 Better modularization of GC extensions through new C level GC
2858 hooks:
83238bc1 2859
820920e6
MD
2860 * weaks.c (scm_weaks_prehistory): New function: Add
2861 scm_weak_vector_gc_init to scm_before_mark_c_hook; Add
2862 scm_mark_weak_vector_spines to scm_before_sweep_c_hook.
2863 (scm_scan_weak_vectors): New function; added to
2864 scm_after_sweep_c_hook.
2865
2866 * weaks.h (scm_weak_vectors, scm_weaks_prehistory): Added
2867 declarations.
2868
2869 * guardians.h (scm_guardian_gc_init, scm_guardian_zombify): Are
2870 now static.
2871
2872 * guardians.c (scm_guardian_gc_init): Turned into a hook function
2873 and added to scm_before_mark_c_hook.
2874 (scm_guardian_zombify): Turned into a hook function and added to
2875 scm_before_sweep_c_hook.
2876
2877 * async.c (scm_sys_gc_async_thunk): Run after-gc-hook.
2878 Added #include "libguile/gc.h".
2879
2880 * gc.h: Added #include "libguile/hooks.h".
2881
2882 * gc.c: Removed #include "libguile/guardians.h".
2883 (scm_before_gc_c_hook, scm_before_mark_c_hook,
2884 scm_before_sweep_c_hook, scm_after_sweep_c_hook,
2885 scm_after_gc_c_hook): New C level hooks.
2886 (scm_after_gc_hook): New Scheme level hook.
2887 (scm_gc_sweep): Moved scanning of weak vectors to weaks.c.
2888 (scm_igc): Moved initialization of scm_weak_vectors and the call
2889 to scm_guardian_gc_init to respective module.
2890 (scm_mark_weak_vector_spines): Moved to weaks.c;
2891 Call to scm_guardian_zombify moved to guardians.c;
2892 Run scm_before_gc_c_hook, scm_before_sweep_c_hook,
2893 scm_after_gc_c_hook at appropriate places.
2894 (scm_init_gc): Initialize scm_after_gc_hook.
2895
2896 * hooks.c, hooks.h (scm_make_hook_with_name): Removed deprecated
2897 function.
2898
2899 * init.c (scm_boot_guile_1): Added `scm_init_hooks'.
2900
2901 * Makefile.am: Added hooks.c, hooks.h, hooks.x.
2902
2903 * feature.c, feature.h: Broke out hook code into separate files.
2904
2905 * hooks.c, hooks.h: New files.
9764c29b 2906
a0599745
MD
2907 * *.*: Change includes so that they always use the "prefixes"
2908 libguile/, qt/, guile-readline/, or libltdl/.
2909 (Thanks to Tim Mooney.)
2910
2911 * Makefile.am (INCLUDES): Removed THREAD_CPPFLAGS and INCLTDL.
2912 (DEFS): Added. automake adds -I options to DEFS, and we don't
2913 want that.
2914 Removed all -I options except for the root source directory and
2915 the root build directory.
2916
f4b0c568
MD
2917 * numbers.c (scm_odd_p, scm_even_p): Use SCM_WRONG_TYPE_ARG
2918 instead of SCM_ASSERT (0, ...). (Some compilers will complain
2919 about control reaching end of function otherwise, and, besides,
2920 the new code is not less clear.)
2921
9764c29b 2922 * gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Added
83238bc1 2923 calls to malloc debugging functions.
9764c29b
MD
2924
2925 * init.c (scm_boot_guile_1): Added calls to debug-malloc init
2926 functions.
2927
2928 * Makefile.am: Added debug-malloc.c, debug-malloc.h,
2929 debug-malloc.x.
2930
2931 * debug-malloc.c, debug-malloc.h: New files.
2932
4219f20d
DH
29332000-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
2934
2935 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p): Added
2936 documentation strings.
2937
2938 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p, scm_abs,
2939 scm_quotient): Reordered dispatch sequence to first handle
2940 immediates, second handle bignums and finally handle generic
2941 functions respectively signal wrong type arguments. Hopefully
2942 this will allow for easier separation when goops is integrated.
2943
195e6201
DH
29442000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2945
2946 * gc.c (which_seg): Use SCM2PTR to convert a non immediate SCM
2947 variable into a pointer to a heap cell.
2948
2949 * gc.c (scm_mark_locations, scm_cellp, init_heap_seg,
2950 scm_unhash_name): Remove redundant cast to SCM_CELLPTR.
2951
9e882eec
DH
29522000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2953
2954 * print.c (scm_iprin1): Don't assign zero to SCM values, use
2955 SCM_UNDEFINED instead.
2956
2957 * weaks.c (scm_make_weak_vector): Fix assignment of zero to a
2958 vector element. (Still to be improved)
2959
3201d763
DH
29602000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2961
2962 * eval.c (undef_cell): Removed, replaced by:
2963
2964 (undef_object): Added to replace undef_cell.
2965
2966 (scm_lookupcar, scm_lookupcar1): Use undef_object.
2967
2968 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
2969 scm_m_atbind, CHECK_EQVISH, SCM_CEVAL), procs.h (SCM_SETCODE):
2970 Don't perform arithmetic operations with SCM values.
2971
2972 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
2973 scm_m_atbind, scm_eval_args, scm_deval_args, SCM_CEVAL): Use
2974 symbolic names for the tc3 type codes.
2975
2976 * eval.c (scm_m_define, SCM_CEVAL, SCM_APPLY): Remove redundant
2977 cast to SCM.
2978
2979 * eval.c (scm_eval_args, scm_deval_args, SCM_CEVAL): Made the
2980 access of the struct vcell element explicit.
2981
f7c38587
MD
29822000-04-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2983
2984 * struct.c (scm_struct_free_light, scm_struct_free_standard,
2985 scm_struct_free_entity): Use `scm_must_free' instead of `free'.
2986
2987 * procs.c (scm_make_subr_opt): Tell scm_must_realloc that we're
2988 realloc:ing scm_subr_table ("what" instead of "who").
2989
2990 * numbers.c (scm_adjbig): Ditto.
2991
e8293eb6
GB
2992Tue Apr 18 08:22:41 2000 Greg J. Badros <gjb@cs.washington.edu>
2993
83238bc1
ML
2994 * validate.h: Do not cast to (unsigned) in SCM_VALIDATE_INUM_RANGE
2995 when testing high-end of the range. Mikael Djurfeldt noticed this
e8293eb6
GB
2996 anomaly -- thanks Mikael!
2997
baa702c8
DH
29982000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
2999
3000 * unif.c (l2ra): Don't eliminate the call to scm_array_set_x
3001 itself, as was done in the previous 'patch'. (Thanks to Radey
3002 Shouman)
3003
fee7ef83
DH
30042000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
3005
3006 * options.c (scm_options), read.c (recsexpr): Remove redundant
3007 SCM_IMP test.
3008
3009 * print.c (scm_iprin1): Made the access of the struct vcell
3010 element explicit.
3011
3012 * print.h (SCM_PRINT_CLOSURE): Added call to SCM_PACK.
3013
3014 * ramap.c (scm_ra_eqp, ra_compare), unif.c
3015 (scm_uniform_vector_ref, scm_cvref, rapr1): Separated accesses to
3016 unsigned long and signed long arrays and clarified the way the
3017 access is performed.
3018
3019 * ramap.c (scm_array_map_x, raeql), read.c (scm_lreadr), stacks.c
3020 (narrow_stack), unif.c (scm_cvref, scm_uniform_array_read_x,
3021 scm_raprin1): Use SCM_EQ_P to compare SCM values.
3022
3023 * strings.c (scm_makstr): Treat the msymbol slots as a field of
3024 scm_bits_t values.
3025
3026 * struct.h (SCM_SET_VTABLE_DESTRUCTOR): Treat the struct data as
3027 a field of scm_bits_t values.
3028
3029 * unif.c (l2ra): Don't test result of scm_array_set_x against
3030 zero: It is always SCM_UNSPECIFIED.
3031
9d0633a8
MD
30322000-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3033
3034 * script.c (scm_compile_shell_switches): Also enable
3035 record-positions when given the --debug option. (Thanks to Diego
3036 Dainese.)
3037
230d095f
DH
30382000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
3039
3040 * print.c (ENTER_NESTED_DATA, print_circref, scm_iprlist):
3041 Compare SCM's with SCM_EQ_P.
3042
3043 * print.c (scm_make_print_state), srcprop.c
3044 (scm_source_properties): Use valid scheme object to initialize
3045 SCM variable.
3046
3047 * print.c (scm_iprin1): Remove redundant calls to SCM_UNPACK.
3048
c8045e8d
DH
30492000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3050
3051 * struct.c (scm_alloc_struct, scm_struct_free_0,
3052 scm_struct_free_light, scm_struct_free_standard,
3053 scm_struct_free_entity, scm_make_struct, scm_make_vtable_vtable),
3054 struct.h (scm_struct_free_t, scm_alloc_struct, scm_struct_free_0,
3055 scm_struct_free_light, scm_struct_free_standard,
3056 scm_struct_free_entity): Struct data regions (and thus also
3057 vtable data regions) are now C arrays of scm_bits_t elements.
3058
3059 * gc.c (scm_gc_mark, scm_gc_sweep, scm_unhash_name): Made the
3060 mixup of glocs and structs explicit.
3061
3062 * gc.c (scm_unprotect_object): Compare SCM's with SCM_EQ_P.
3063
b0c54567
DH
30642000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3065
3066 * eval.c (scm_unmemocar): Use macros to test for gloc cell.
3067 Minimize scope of variable 'ir'.
3068
3069 * eval.h (SCM_IFRAME, SCM_IDIST), weaks.h (SCM_IS_WHVEC_ANY):
3070 Added missing call to SCM_UNPACK.
3071
b9c90f11
MD
30722000-04-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3073
7aac9824 3074 * validate.h (SCM_VALIDATE_INUM_RANGE_COPY,
2891588b 3075 SCM_VALIDATE_NUMBER_COPY): New macros.
b9c90f11 3076
9ae58e2d
MD
30772000-04-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3078
3079 * script.c (scm_compile_shell_switches): Added --debug option.
3080
49e12eb3
MD
30812000-04-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3082
3083 * vectors.c (scm_vector_set_x): Return SCM_UNSPECIFIED (as
3084 specified by R5RS).
3085
7c1e0b12
MD
30862000-04-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3087
3088 * ports.h (SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P): New macros.
3089 (SCM_INPORTP, SCM_OUTPORTP): Marked as deprecated.
3090
3091 * validate.h (SCM_VALIDATE_INPUT_PORT, SCM_VALIDATE_OUTPUT_PORT):
3092 New macros.
3093 Cleanup of code layout.
3094
3095 * ports.c, ports.h (close-input-port, close-output-port): New R5RS
3096 procedures.
3097
01c8a3dd
DH
30982000-04-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
3099
3100 * continuations.c (scm_make_cont, scm_dynthrow): Completely
3101 separated implementations for defined (CHEAP_CONTINUATIONS) and
3102 !defined (CHEAP_CONTINUATIONS). Also, now using memcpy for stack
3103 copying.
3104
3105 * continuations.c (grow_stack): Renamed from grow_throw.
3106
3107 * continuations.c (copy_stack_and_call): New static function.
3108
3109 * continuations.c (scm_dynthrow): Simplified and made static.
3110
3111 * continuations.h (scm_dynthrow): Made static.
3112
553f4414
MD
31132000-04-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3114
3115 * unif.c, unif.h (shared-array-root, shared-array-offset,
3116 shared-array-increments): New primitives.
3117
cf551a2b
DH
31182000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
3119
3120 * gc.c (scm_gc_sweep): Simplify the computation of freed memory
3121 size for msymbols.
3122
3123 * symbols.h (SCM_SLOTS, SCM_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
3124 SCM_SYMBOL_HASH): The msymbol slots are now a field of scm_bits_t
3125 values.
3126
3127 * symbols.h (SCM_SET_SYMBOL_FUNC, SCM_SET_SYMBOL_PROPS): New
3128 macros.
3129
3130 symbols.c (scm_intern_obarray_soft, msymbolize, scm_symbol_fset_x,
3131 scm_symbol_pset_x): Use them.
3132
83238bc1 3133 * symbols.c (scm_symbol_hash): Unpack to access SCM raw data.
cf551a2b 3134
12a8b769
DH
31352000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
3136
3137 * ports.c (scm_port_print): The port data is read as raw data.
3138
3139 * ports.h (SCM_TC2PTOBNUM, SCM_PTOBNUM): Fix SCM/scm_bits_t
3140 mismatch.
3141
d8c40b9f
DH
31422000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
3143
3144 * eval.c (SCM_CEVAL), objects.c (scm_mcache_lookup_cmethod,
3145 scm_make_subclass_object), objects.h (SCM_CLASS_FLAGS,
3146 SCM_ENTITY_PROCEDURE, SCM_ENTITY_SETTER), struct.c
3147 (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
3148 scm_struct_ref, scm_struct_set_x), struct.h (SCM_STRUCT_DATA):
3149 The struct data is now an array of scm_bits_t variables.
3150
3151 * objects.h (SCM_SET_ENTITY_PROCEDURE): New macro.
3152
cf551a2b 3153 objects.c (scm_set_object_procedure_x): Use it.
d8c40b9f
DH
3154
3155 * struct.c (scm_struct_init): Unused variable 'data' removed.
3156
3157 (scm_struct_vtable_p): Redundant SCM_IMP tests removed.
3158
1c3e63f0
DH
31592000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
3160
3161 * objects.h (SCM_OBJ_CLASS_FLAGS, SCM_OBJ_CLASS_REDEF), struct.h
3162 (SCM_STRUCT_VTABLE_DATA, SCM_STRUCT_LAYOUT, SCM_STRUCT_VTABLE,
3163 SCM_STRUCT_PRINTER): The struct vtable data is now an array of
3164 scm_bits_t variables.
3165
3166 * struct.h (SCM_SET_STRUCT_LAYOUT): New macro.
3167
cf551a2b 3168 struct.c (scm_make_vtable_vtable): Use it.
1c3e63f0 3169
bc66755e
DH
31702000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
3171
3172 * symbols.c (scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
3173 scm_intern_obarray_soft, scm_sysintern0,
3174 scm_string_to_obarray_symbol, scm_intern_symbol,
3175 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
3176 scm_symbol_bound_p, scm_symbol_set_x): Don't use C operators to
3177 compare SCM values.
3178
828865c3
DH
31792000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
3180
3181 * numbers.c (scm_quotient, scm_modulo): Reordered to handle the
3182 case of immediate numbers parameters first. Also, only use
3183 decoded numbers for numerical comparison.
83238bc1 3184
1cf49a85
MD
31852000-04-10 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3186
3187 * objects.h: Don't redeclare scm_call_generic_0 and
3188 scm_apply_generic. (Thanks to Tal Tversky.)
3189
dba97178
DH
31902000-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
3191
3192 * hash.c (scm_hasher): Use symbolic names for the tc3 constants.
3193 Unpack SCM value to use it as a switch parameter. Don't cast SCM
3194 values to int values.
3195
3da01fa3
MD
31962000-04-10 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3197
3198 * coop.c (mother): Handled EINTR (the wait has been interrupted by
3199 a signal).
3200
451e591c
DH
32012000-04-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
3202
3203 * __scm.h (SCM_WTA_DISPATCH_[012n]): To test whether a SCM value
3204 contains a raw zero value it has to be unpacked.
3205
3206 * debug.c (with_traps_inner, scm_with_traps): Passing SCM values
3207 via void * requires unpacking / packing.
3208
3209 * stacks.h (SCM_STACKP): Remove unnecessary SCM_NIMP test and use
3210 SCM_EQ_P to compare SCM values.
3211
3212 * stacks.h (SCM_FRAME_VOID_P, SCM_FRAME_REAL_P, SCM_FRAME_PROC_P,
3213 SCM_FRAME_EVAL_ARGS_P, SCM_FRAME_OVERFLOW_P): Remove unnecessary
3214 call to SCM_UNPACK.
3215
3216 * tags.h (SCM_NECONSP): Define in terms of SCM_ECONSP
3217
3218 * tags.h (SCM_ECONSP): Clarify the test for glocs. This is still
3219 quite ugly.
3220
e94e3f21
ML
32212000-04-05 Michael Livshin <mlivshin@bigfoot.com>
3222
3223 * async.[ch]: unexpose low-level async access macros (thanks to
3224 Dirk Herrmann).
3225
3226 * validate.h: move async validation macros to async.c (nobody else
3227 needs them anyway), and rename them.
3228
843e4e9d
ML
32292000-04-04 Michael Livshin <mlivshin@bigfoot.com>
3230
3231 * async.h: kill the scm_async_t struct. having a heap cell
3232 pretending to be a C struct is not helthy, and is not needed here
3233 anyway, as asyncs happily fit in one heap cell.
3234
3235 * async.c: reflect the fact that asyncs are now represented by
3236 single heap cell each.
3237
873c35ee
GH
32382000-04-04 Gary Houston <ghouston@arglist.com>
3239
3240 * error.c (scm_syserror): save errno before doing anything else,
3241 since it's used in two expressions and may get mutated (thanks to
3242 Dirk Herrmann).
3243
4260a7fc
DH
32442000-04-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
3245
3246 * debug.c (scm_procedure_source, scm_procedure_environment),
3247 gsubr.c (scm_make_gsubr_with_generic, scm_gsubr_apply), procs.c
3248 (scm_procedure, scm_setter): Return valid scheme value as dummy.
3249
3250 * filesys.c (scm_readdir, scm_rewinddir, scm_closedir,
3251 scm_dir_print, scm_dir_free), numbers.h (SCM_COMPLEX_REAL,
3252 SCM_COMPLEX_IMAG), regex-posix.h (SCM_RGX), throw.c (JBJMPBUF,
3253 SETJBJMPBUF, JBJMPBUF, SETJBJMPBUF, freejb, print_lazy_catch,
3254 scm_ithrow), unif.c (scm_uniform_vector_ref, scm_cvref,
3255 scm_array_set_x, rapr1), unif.h (SCM_ARRAY_V, SCM_ARRAY_BASE),
3256 vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS, SCM_SETVELTS): Use
3257 SCM_{SET_}?CELL_WORD* to access cell entries with raw data.
3258
3259 * filesys.c (scm_closedir), numbers.c (scm_addbig), numbers.h
3260 (SCM_SETNUMDIGS), throw.c (JBACTIVE, SCM_JBDFRAME,
3261 SCM_SETJBDFRAME): Read and modify data bits in cell entry #0 using
3262 SCM_{SET_}?CELL_WORD_0.
3263
3264 * filesys.c (fill_select_type, retrieve_select_type, scm_select),
3265 numbers.c (scm_gcd, scm_lcm, scm_integer_expt, scm_zero_p,
3266 scm_product, scm_divide), posix.c (scm_getgrgid), ramap.c
3267 (scm_array_fill_int, racp), throw.c (scm_catch, scm_lazy_catch,
3268 scm_ithrow), unif.c (scm_make_uve, scm_array_p,
3269 scm_transpose_array, scm_array_set_x, scm_bit_set_star_x,
3270 scm_bit_count_star, l2ra), variable.c (prin_var,
3271 scm_make_variable, scm_make_undefined_variable,
3272 scm_builtin_variable), vectors.c (scm_vector_set_length_x),
3273 vports.c (sf_flush, sf_close): Don't use C operators to compare
3274 SCM values.
3275
3276 * numbers.c (scm_odd_p, scm_even_p), variable.c (prin_var): Must
3277 unpack SCM values to access their raw contents.
3278
3279 * numbers.c (big2str): Eliminate unnecessary casts to SCM.
3280
3281 * numbers.h (SCM_NEWREAL), regex-posix.h (SCM_RGXP), vports.c
3282 (scm_make_soft_port): Use SCM_{SET_}?CELL_TYPE to access the cell
3283 type information.
3284
3285 * throw.c (printjb): Eliminated unnecessary unpack.
3286
3287 * variable.c (make_vcell_variable): Smob data is of type
3288 scm_bits_t.
3289
5b15c3b4
MD
32902000-04-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3291
3292 * print.c: Removed promise to rewrite printer code before next
3293 release. :)
3294
395c8567
MD
32952000-04-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3296
3297 * iselect.c (add_fd_sets): Insert empty statement after label.
3298 (Thanks to Tim Mooney.)
3299
50fecba9
ML
33002000-04-03 Michael Livshin <mlivshin@bigfoot.com>
3301
3302 * guardians.c (scm_guardian_zombify): mark all zombies in a
3303 separate loop after processing all the currently known live
3304 guardians, so as to not introduce order dependencies (thanks to
f6e2fd8b 3305 Gary Houston). note that the order problems are still there if
843e4e9d 3306 some guardians are themselves zombies, but that's a sick case that
f6e2fd8b
ML
3307 I'm not going to worry about.
3308 also, make another outer loop to process zombified
50fecba9
ML
3309 guardians (which are uncovered while marking zombies).
3310
54778cd3
DH
33112000-04-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
3312
3313 * evalext.c (scm_definedp, scm_m_undefine), gc.c
3314 (scm_mark_weak_vector_spines, scm_gc_sweep), hashtab.c
3315 (scm_hashq_ref, scm_hashv_ref, scm_hash_ref, scm_hashx_ref),
3316 keywords.c (scm_make_keyword_from_dash_symbol), lang.c
3317 (scm_nil_eq), lang.h (SCM_NILP, SCM_NIL2EOL), load.c
3318 (scm_primitive_load), modules.c (scm_module_full_name), objects.c
3319 (scm_class_of, scm_mcache_lookup_cmethod, scm_make_class_object),
3320 ports.c (scm_close_all_ports_except), ports.h (SCM_EOF_OBJECT_P),
3321 print.c (scm_iprin1, scm_prin1, scm_iprlist, scm_simple_format),
3322 print.h (SCM_PRINT_STATE_P), procprop.c (scm_i_procedure_arity,
3323 scm_stand_in_scm_proc, scm_procedure_property,
3324 scm_set_procedure_property_x), procs.c
3325 (scm_procedure_documentation), read.c (scm_lreadr, scm_lreadparen,
3326 scm_lreadrecparen, scm_read_hash_extend), script.c
3327 (scm_compile_shell_switches), srcprop.c (scm_source_property,
3328 scm_set_source_property_x), srcprop.h (SCM_WHASHFOUNDP), stacks.c
3329 (read_frame, NEXT_FRAME, read_frames, narrow_stack,
3330 scm_make_stack, scm_stack_id), strop.c (scm_i_index,
3331 scm_string_index, scm_string_rindex), struct.c (scm_struct_init),
3332 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_INUM_DEF,
3333 SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_PROC,
3334 SCM_VALIDATE_ARRAY): Don't use C operators to compare SCM values.
3335
3336 * feature.c (make_hook), keywords.c
3337 (scm_make_keyword_from_dash_symbol), macros.c (scm_makacro,
3338 scm_makmacro, scm_makmmacro), print.c (scm_iprin1,
3339 scm_printer_apply, scm_port_with_print_state): Smob data is of type
3340 scm_bits_t.
3341
3342 * feature.c (print_hook), gc.c (scm_object_address), hash.c
3343 (scm_ihashq, scm_ihashv), print.c (scm_iprin1, scm_ipruk), smob.c
843e4e9d 3344 (freeprint), struct.c (scm_print_struct): Must unpack
54778cd3
DH
3345 SCM values to access their raw contents.
3346
3347 * fluids.c (apply_thunk, scm_with_fluids), hashtab.c (fold_proc,
3348 scm_hash_fold), load.c (load, scm_primitive_load): Passing SCM
3349 values via void * requires unpacking / packing.
3350
3351 * fports.c (scm_fport_buffer_add, scm_setvbuf), procs.h
3352 (SCM_SUBRNUM, SCM_SET_SUBRNUM), srcprop.h (SRCPROPBRK, SRCBRKP):
3353 Read and modify data bits in cell entry #0 using
3354 SCM_{SET_}?CELL_WORD_0.
3355
3356 * fports.c (scm_fdes_to_port), gc.c (scm_gc_for_newcell,
3357 scm_gc_sweep, init_heap_seg), init.c (start_stack), ports.c
3358 (scm_void_port), procs.c (scm_make_subr_opt,
3359 scm_make_procedure_with_setter), root.c (scm_internal_cwdr),
3360 smob.c (scm_make_smob), strports.c (scm_mkstrport): Use
3361 SCM_SET_CELL_TYPE to write the cell type information.
3362
3363 * gc.c (scm_gc_mark): Use SCM_CELL_OBJECT* to access SCM values
3364 from cells that are no scheme pairs.
3365
3366 * gc.c (scm_gc_sweep), mallocs.c (prinmalloc), mallocs.h
3367 (SCM_MALLOCDATA, SCM_SETMALLOCDATA), print.c (scm_ipruk), random.h
3368 (SCM_RSTATE), root.h (SCM_ROOT_STATE), smob.c (scm_smob_free),
3369 srcprop.c (freesrcprops), srcprop.h (SRCPROPPOS, SRCPROPFNAME,
3370 SRCPROPCOPY, SRCPROPPLIST), struct.c (scm_make_struct,
3371 scm_make_vtable_vtable): Use SCM_{SET_}?CELL_WORD* to access cell
3372 entries with raw data.
3373
3374 * gc.c (scm_init_storage), sort.c (applyless), strop.c
3375 (scm_string_to_list): Eliminate unnecessary casts to SCM.
3376
3377 * mallocs.c (scm_malloc_obj): Store result of malloc as raw
3378 data.
3379
3380 * ports.c (scm_close_all_ports_except): Duplicate documentation
3381 text removed.
3382
3383 * print.c (scm_iprin1): Use SCM_ITAG3.
3384
3385 * procs.h (SCM_SET_SUBRNUM): Fix shift direction.
3386
3387 * snarf.h (SCM_GPROC, SCM_GPROC1, SCM_SYMBOL, SCM_GLOBAL_SYMBOL,
3388 SCM_KEYWORD, SCM_GLOBAL_KEYWORD, SCM_VCELL, SCM_GLOBAL_VCELL,
3389 SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): Don't initialize globals
3390 and static variables at their point of declaration, but rather in
3391 the init function.
3392
3393 * tags.h (SCM_PACK): Automatically cast to scm_bits_t.
3394
abeed821
GH
33952000-04-02 Gary Houston <ghouston@arglist.com>
3396
3397 * guardians.c (TCONC_IN, scm_make_guardian): set the CDR of the
3398 empty tconc pair to SCM_EOL instead of SCM_BOOL_F, avoiding the
3399 use of an improper list (which breaks g_print. g_print isn't
3400 used).
3401 guardians.c: Added more comments and modified the make-guardian
3402 docstring. Reordered a few procedures.
3403
cf498326
DH
34042000-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
3405
3406 * eval.c (scm_lookupcar1, scm_lookupcar, scm_m_case, scm_m_cond,
3407 scm_m_lambda, iqq, scm_m_define, scm_m_expand_body, unmemocopy,
3408 SCM_CEVAL), procs.h (SCM_TOP_LEVEL): Don't use C operators to
3409 compare SCM values.
3410
3411 (scm_makprom): Smob data is of type scm_bits_t.
3412
cffcab30
DH
34132000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
3414
3415 * backtrace.c (display_error_body), debug.c (scm_procedure_source,
3416 scm_reverse_lookup), dynl.c (scm_dynamic_link): Don't use C
3417 operators to compare SCM values.
3418
3419 * debug.c (scm_make_debugobj), debug.h (SCM_DEBUGOBJ_FRAME,
3420 SCM_SET_DEBUGOBJ_FRAME): Update SCM_{SET_}?DEBUGOBJ_FRAME to
3421 access raw cell data with SCM_{SET_}?CELL_WORD_1.
3422
3423 * debug.c (scm_make_debugobj): Don't use SCM_SETCAR to set types.
3424
3425 * debug.c (scm_make_memoized), dynl.c (scm_dynamic_link): Smob
3426 data is of type scm_bits_t.
3427
7fa93bf8
DH
34282000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
3429
3430 * gdbint.c (gdb_maybe_valid_type_p), guardians.c (TCONC_EMPTYP,
3431 scm_guardian_zombify): Use SCM_EQ_P to compare SCM values.
3432
3433 * guardians.c (GUARDIAN): Use SCM_CELL_WORD_1 for raw data.
3434
74a16888
DH
34352000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
3436
3437 * ports.h (scm_port): Change type of stream member to scm_bits_t.
3438
3439 * gdbint.c (unmark_port, remark_port), ports.c (scm_markstream),
3440 strports.c (st_resize_port, scm_mkstrport), vports (sf_flush,
3441 sf_write, sf_fill_input, sf_close, scm_make_soft_port): Since
3442 streams are now of type scm_bits_t, SCM streams have to be
3443 unpacked/packed.
3444
3445 * ports.h (SCM_SETPTAB_ENTRY, SCM_SETSTREAM): Cast input to
3446 scm_bits_t.
3447
b6cc0ef6
MD
34482000-03-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3449
6a878357
MD
3450 * coop-defs.h (struct coop_t): Added `sto'-field again because of
3451 binary compatibility---let's remove it next time we alter some
3452 major structure.
3453
b6cc0ef6
MD
3454 * coop.c (coop_quitting_p, coop_cond_create, coop_mutex_create,
3455 coop_mother, coop_child): New variables.
3456 (mother): New function.
3457 (coop_create): New thread spawning mechanism which uses a "mother
3458 thread". The "dummy" pthreads aren't healthy enough to give birth
3459 to new threads since Linux threads thinks they are asleep.
3460
3461 * coop-defs.h (struct coop_t): Removed dummy_mutex.
3462
3463 * coop-defs.h, coop-threads.c (struct coop_t): Eliminate
3464 `sto'-field when GUILE_PTHREAD_COMPAT is enabled.
3465
843524cc
DH
34662000-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
3467
3468 * arbiters.c (scm_make_arbiter), async.c (scm_async), dynwind.c
3469 (scm_internal_dynamic_wind): Smob data is always of type
3470 scm_bits_t.
3471
3472 * arbiters.c (SCM_ARB_LOCKED, SCM_LOCK_ARB, SCM_UNLOCK_ARB):
3473 Access the locking information in cell entry 0 with
3474 SCM_{SET_}?CELL_WORD_0 instead of SCM_*CAR.
3475
3476 * async.c (scm_run_asyncs): Use SCM_NULLP to test for the empty
3477 list.
3478
3479 * dynwind.c (scm_dowinds): Use SCM_EQ_P to compare SCM values.
3480
3481 * ports.h (SCM_PTAB_ENTRY, SCM_SETPTAB_ENTRY): Access the ptab
3482 entry data using SCM_{SET_}?CELL_WORD_1 instead of SCM_{SET}?CDR.
3483
fbd485ba
DH
34842000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
3485
3486 * alist.c (scm_sloppy_assq, scm_assq), eq.c (scm_eq_p, scm_eqv_p,
3487 scm_equal_p), list.c (scm_ilength, scm_last_pair, scm_reverse,
3488 scm_sloppy_memq, scm_delq_x, scm_delq1_x), tags.h (SCM_UNBNDP):
3489 Don't use C operators == and != to compare SCM values, use
3490 SCM_EQ_P instead.
3491
3492 * boolean.c (scm_boolean_p): Use SCM_BOOLP to determine whether a
3493 SCM value is equal to #t or #f.
3494
3495 * eq.c (scm_eqv_p, scm_equal_p): Don't use SCM_CAR to access the
3496 cell type entry of non immediate objects of unknown type. Use
3497 SCM_CELL_TYPE instead.
3498
3499 * gh_data.c (gh_scm2bool, gh_module_lookup), list.c
3500 (scm_sloppy_memv, scm_sloppy_member, scm_delv_x, scm_delete_x,
3501 scm_delv1_x, scm_delete1_x), scmsigs.c (scm_sigaction): Use
3502 SCM_FALSEP and SCM_TRUE_P to compare SCM values against #f and
3503 #t.
3504
3505 * list.c (scm_listify): Use SCM_UNBNDP to test for an unbound
3506 scheme value.
3507
64e3bf6c
MD
35082000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3509
0208baa0
MD
3510 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread,
3511 scm_make_mutex, scm_make_condition_variable): Cast data to
3512 scm_bits_t in SCM_SET_CELL_WORD and SCM_NEWSMOB macros.
3513
64e3bf6c
MD
3514 * coop.c (coop_create): Set `specific' field, not `data' to NULL.
3515
94113249
DH
35162000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
3517
3518 * smob.h (SCM_NEWSMOB, SCM_NEWSMOB2, SCM_NEWSMOB3, SCM_SMOB_DATA,
3519 SCM_SET_SMOB_DATA, SCM_TC2SMOBNUM, SCM_SMOBNUM): To access smob
3520 data, use SCM_{SET_}?CELL_TYPE or SCM_{SET_}?WORD_[1-3].
3521
3522 Note that this implies that smob data has always to be passed as
3523 values of type scm_bits_t.
3524
1978b33e
MD
35252000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3526
3527 * threads.c (scm_init_threads): Pass 0 size to scm_make_smob_type
3528 for scm_tc16_thread. As the current COOP threads are written, GC
3529 is not supposed to manage storage for threads.
3530
3531 * error.c (scm_error): Don't try to throw an error if
3532 scm_gc_heap_lock is true.
3533
3534 * coop.c (coop_finish): New function. Called at exit.
3535 (coop_aborthelp): Free thread structures when threads die.
3536 Finished LinuxThreads compatibility support => COOP threads now
3537 mesh with LinuxThreads.
843e4e9d 3538
1978b33e
MD
3539 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread):
3540 Changed SETCDR --> SET_CELL_WORD_1.
3541
3542 * coop-threads.c (scheme_launch_thread): Set word 1 of handle to 0
3543 when thread dies.
3544
dd039d6d
DH
35452000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
3546
3547 * boolean.h (SCM_TRUE_P): New macro.
3548
3549 * boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP), pairs.h
3550 (SCM_NULLP, SCM_NNULLP): Use SCM_EQ_P to compare SCM values.
3551
8b3bda20
DH
35522000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
3553
3554 * continuations.h (SCM_CONTREGS, SCM_SET_CONTREGS): New macros to
3555 access continuation data.
3556
3557 (SCM_SETJMPBUF): Deprecated. Use SCM_SET_CONTREGS instead.
3558
3559 (SCM_JMPBUF, SCM_DYNENV, SCM_THROW_VALUE, SCM_BASE, SCM_SEQ,
3560 SCM_DFRAME): Use SCM_CONTREGS instead of SCM_CHARS to access
3561 continuation data.
3562
843e4e9d 3563 * continuations.c (scm_make_cont), init.c (start_stack),
8b3bda20
DH
3564 root.c (scm_internal_cwdr): Use SCM_SET_CONTREGS instead of
3565 SCM_SETJMPBUF.
3566
3210f49a
DH
35672000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
3568
3569 * symbols.h (SCM_LENGTH, SCM_SETLENGTH): Access the length field
3570 of strings and symbols by using SCM_{SET_}?CELL_WORD_0.
3571
3572 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS): Use SCM_{SET_}?CELL_WORD_1
3573 to access the char * field of strings and symbols.
3574
2d67e390
DH
35752000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
3576
3577 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Use SCM_SET_CELL_TYPE to set
3578 the type entry of a new cell. Added a comment about things to
3579 remember when updating the list of free cells.
3580
3581 (SCM_FREEP, SCM_MARKEDP): Use SCM_CELL_TYPE to access the type
3582 entry of a cell.
3583
76a369d9
DH
35842000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
3585
3586 * pairs.h (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): Use
3587 SCM_CELL_OBJECT and SCM_SET_CELL_OBJECT. This change implies that
3588 with strict type checking enabled these macros will only work if
3589 given valid SCM parameters.
3590
3210f49a 3591 (SCM_GCCDR): Moved to tags.h.
76a369d9
DH
3592
3593 * tags.h (SCM_GCCDR): Moved here from pairs.h.
3594
2549a709
DH
35952000-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
3596
3597 * tags.h (SCM2PTR, PTR2SCM): Moved to gc.h.
3598
3599 * pairs.h (scm_cell, SCM_CELLPTR, SCM_CELL_WORD*, SCM_CELL_OBJECT*,
3600 SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*, SCM_CELL_TYPE,
3601 SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK, SCM_PTR_GT,
3602 SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC, SCM_NEWCELL,
3603 SCM_NEWCELL2): Moved to gc.h.
3604
3605 (SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR, SCM_SETAND_CDR,
3606 SCM_SETOR_CAR, SCM_SETOR_CDR): Moved to gc.h. These names should
3607 be changed, though, since the macros are not only pair related.
3608
3609 (SCMPTR): Deleted.
3610
3611 * gc.h (SCM2PTR, PTR2SCM, scm_cell, SCM_CELLPTR, SCM_CELL_WORD*,
3612 SCM_CELL_OBJECT*, SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*,
3613 SCM_CELL_TYPE, SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK,
3614 SCM_PTR_GT, SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC,
3615 SCM_NEWCELL, SCM_NEWCELL2, SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR,
3616 SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR): Moved here from
3617 tags.h and pairs.h.
3618
8d3356e7
DH
36192000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3620
3621 * tags.h (SCM_STRICT_TYPING): New macro that, if defined,
3622 activates strict compile time type checking for variables of
3623 type SCM.
3624 (SCM, SCM_PACK, SCM_UNPACK): Define according to whether
3625 SCM_STRICT_TYPING or SCM_VOIDP_TEST are defined.
3626 (SCM_EQ_P): Defined as a macro equivalent for eq?.
3627
96f6f4ae
DH
36282000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3629
3630 * tags.h (SCM_POINTERS_MUNGED): Removed.
3631
3632 * gc.c (scm_gc_sweep, init_heap_seg): Removed use of
3633 SCM_POINTERS_MUNGED, thus fixing some illegal casts to SCM.
3634
0cbaaf0b
DH
36352000-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
3636
3637 * pairs.h (SCM_CELL_OBJECT, SCM_CELL_OBJECT_[0-3],
3638 SCM_SET_CELL_OBJECT, SCM_SET_CELL_OBJECT_[0-3], SCM_CELL_TYPE,
3639 SCM_SET_CELL_TYPE): Added a set of low level macros for accessing
3640 cell entries.
3641 (SCM_CELL_WORD_[0-3]): Renamed from the SCM_CELL_WORD[0-3].
3642
3643 * procs.h, procs.c: Instead of SCM_{SET_}?CELL_WORD[12], use the
3644 newly introduced SCM_{SET_}?CELL_OBJECT_[12] macros.
3645
7284d584
MD
36462000-03-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3647
3648 * tags.h: Disabled definition of SCM_VOIDP_TEST.
3649
3650 Defining SCM as void * introduces problems which haven't been
3651 handled yet. Developers who work with these issues can enable it
3652 in their working copies.
3653
3654 Disabling this definition exposes a set of newly introduced and
3655 older misuses of types which causes warning messages during
3656 compilation. We'll fix this successively.
3657
3658 * gc.c (scm_mark_locations): Changed * (SCM **) X --> * (SCM *) X
3659 in order to obtain a value of type SCM.
3660 (scm_cellp): Updated with new changes to scm_mark_locations.
3661
3662 * continuations.h (SCM_SETJMPBUF): Cast second arg into SCM.
3663
2f9055ea
MD
3664 * continuations.c (scm_make_cont): Removed cast of size_t into
3665 long.
3666
7284d584
MD
3667 * symbols.h (SCM_SETCHARS): Cast second arg into SCM.
3668
f81e080b
DH
36692000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
3670
3671 * numbers.h (SCM_SETNUMDIGS): Use SCM_BIGSIZEFIELD macro for
3672 shifting, not constant. Thanks to Dale P. Smith.
3673
3674 * numbers.c (scm_sum, scm_difference): Don't test a SCM value
3675 for being less than zero. Decode it to a C value first. Again,
3676 thank you Dale.
3677
1ff2fa6e
DH
36782000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
3679
3680 * numbers.h, ramap.c, struct.h, vectors.h: Don't use SCM2PTR for
3681 non scheme values. If raw data is stored in SCM variables, it has
3682 to be accessed using SCM_UNPACK until a better solution is found.
3683
3920465b
MD
36842000-03-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3685
6f29dc6d
MD
3686 * tags.h (SCM_ECONSP, SCM_NECONSP): More corrections of
3687 pointer-arithmetic induced by the SCM_PACK/UNPACK change.
3688
3689 * print.c (scm_iprin1): SCM_PACK/UNPACK corrections.
3690
3691 * gc.c (scm_gc_sweep): SCM_PACK/UNPACK corrections.
3692
3693 * eval.c (SCM_CEVAL, scm_unmemocar): SCM_PACK/UNPACK corrections.
3694
3695 * dynwind.c (scm_swap_bindings): SCM_PACK/UNPACK corrections.
3696
3920465b
MD
3697 * async.c, __scm.h: Removed lots of the old async click logic. It
3698 is possible to reinsert it by defining GUILE_OLD_ASYNC_CLICK in
3699 __scm.h. Let's try this out and dump the old code after the
3700 threads reorganization.
3701 (set-tick-rate, set-switch-rate): Conditionally removed.
3702
90cca6f9
MD
37032000-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3704
3705 * gc.c (scm_gc_mark): Bugfix 1: The recent SCM_PACK/UNPACK change
3706 made SCM values into pointers. This turned an arithmetic
3707 computation of the address of the vcell into a pointer-arithmetic
3708 one, thereby screwing up marking of structs.
3709 Bugfix 2: Removed incompletely introduced loop variable `j' used
3710 when protecting the tail array of a struct.
3711
8246bf3e
DH
37122000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3713
3714 * struct.h (SCM_STRUCT_DATA): Don't cast SCM values to pointers.
3715
95c9e176
DH
37162000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3717
3718 * symbols.h, symbols.c (scm_strhash): Declare the string
3719 parameter as constant, since it is not modified.
3720
3721 * symbols.c (scm_intern_obarray_soft,
3722 scm_sysintern0_no_module_lookup): Can now pass constant strings
3723 to scm_strhash without need for casting.
3724
7352d0b2
DH
37252000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3726
3727 * vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS): Don't cast SCM
3728 values to pointers. Use SCM2PTR instead.
3729
b00c8cdc 37302000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
9b139b4e
DH
3731
3732 * async.c (scm_set_tick_rate, scm_set_switch_rate): Don't unpack
3733 results of SCM_INUM.
3734
df2d5178
MD
37352000-03-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3736
bd54e664
MD
3737 * init.c (scm_boot_guile_1): Renamed GUILE_GC_TRIGGER_1 -->
3738 GUILE_MIN_YIELD_1, GUILE_GC_TRIGGER_2 --> GUILE_MIN_YIELD_2.
3739 GUILE_MIN_YIELD_X now take *positive* fractions of heap size.
3740
3741 * gc.c, gc.h (SCM_MIN_YIELD_1, SCM_MIN_YIELD_2,
3742 min_yield_fraction, min_yield, adjust_min_yield): Renamed from
3743 SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2, gc_trigger_fraction,
3744 gc_trigger, adjust_gc_trigger.
3745
df2d5178
MD
3746 * gc.c (alloc_some_heap): Further improvement of minimal heap size
3747 prediction.
3748 (SCM_MAX): New macro.
3749 (scm_freelist_t): New field: collected_1. Previous amount of
3750 collected cells.
3751 (gc_sweep_freelist_finish): Trigger based on two last values of
3752 freelist->collected to avoid unnecessary allocation due to
3753 temporary peaks.
bd54e664
MD
3754 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2):
3755 Adjusted to 45000 cells, 40% and 40%. Gives quick startup
3756 without extra heap allocation.
df2d5178 3757
f2961ccd
DH
37582000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
3759
3760 * numbers.h (SCM_MAKINUM): The parameter to SCM_MAKINUM should
3761 already be a C value. No need to unpack it.
3762
3210f49a 3763 * numbers.c (scm_long_long2num): Cast the parameter to scm_bits_t
f2961ccd
DH
3764 if we know it fits into an inum.
3765
3766 * ramap.c (ramap_rp): An scm_tc7_[ui]vect object does point to a
3767 field of long values. In contrast, SCM_VELTS accesses a field of
3768 SCM values.
3769
7b4cc831
MD
37702000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3771
f1d316dd
MD
3772 * gc.c (scm_gc_stats): Inserted explanation of local_scm_mtrigger
3773 etc.
80770ddc
MD
3774 (scm_gc_yield_1): New variable: Holds previous yield. Used to
3775 make better judgements.
f1083dd7
MD
3776 (gc_sweep_freelist_finish): Inserted explanation of use of
3777 gc_trigger.
f1d316dd
MD
3778
3779 * print.h, stacks.h, options.c, options.h: Changed C++
3780 commentaries to C.
7b4cc831 3781
7a710745
DH
37822000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
3783
3784 * tags.h (SCM2PTR, PTR2SCM): Use SCM_PACK / SCM_UNPACK correctly.
3785
3786 * numbers.h (SCM_INUMP, SCM_MAKINUM, SCM_INUM0, SCM_COMPLEX_REAL,
3787 SCM_COMPLEX_IMAG, SCM_NUMP, SCM_BDIGITS): Use SCM_PACK /
3788 SCM_UNPACK / SCM2PTR correctly.
3789
1ef20c80
MD
37902000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3791
3792 * gc.c (adjust_gc_trigger): Improved documentation.
3793 (alloc_some_heap): Since gc_trigger is used against
3794 freelist->collected, this is the value which should be used to
3795 predict minimum growth.
3796
b464b970
DH
37972000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
3798
3799 * eval.h: Fix mixup of packed/unpacked SCM values. (Thanks
3800 Thien-Thi Nguyen for the patch.)
3801
3ab9f56e
DH
38022000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
3803
3804 * numbers.c (scm_ash): Fixed typing problems with the second
3805 parameter and added some documentation. (Thanks Thien-Thi Nguyen
3806 for indicating the problem.)
3807
05bc3265
MD
38082000-03-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3809
78a4915a
MD
3810 * gc.c, gc.h (scm_gc_yield): New variable.
3811 (adjust_gc_trigger): Use scm_gc_yield.
3812 (alloc_some_heap): Use scm_gc_yield instead of
3813 scm_gc_cells_collected.
3814
05bc3265
MD
3815 * coop-threads.c: Addd #include "root.h", #include "strings.h".
3816
3817 * debug.c: Added #include "root.h". (Thanks to Thien-Thi Nguyen.)
3818
3819 * gc.c (scm_gc_for_newcell, adjust_gc_trigger): Improved GC
3820 trigger adjustmeant: Take yield (freed cells) for all freelists
3821 into account.
3822 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Tuned
3823 to 50000 cell heap with 45% trigger.
3824 (scm_gc_cells_collected): Reintroduced.
3825 (SCM_HEAP_SIZE): New macro.
3826 (scm_gc_sweep): Reintroduced correct computation of
3827 scm_cells_allocated.
3828 (scm_freelist_t): Corrected commentary for field `cluster_size':
3829 Clustersize counts objects, not cells; New member
3830 `clusters_allocated'.
3831
89e00824
ML
38322000-03-19 Michael Livshin <mlivshin@bigfoot.com>
3833
3834 * *.[hc]: add Emacs magic at the end of file, to ensure GNU
3835 indentation style.
3836
afcfc5bb
MD
38372000-03-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3838
3839 * threads.h: Added #include "libguile/throw.h". (Thanks to
3840 Thien-Thi Nguyen.)
3841
a00c95d9
ML
38422000-03-18 Michael Livshin <mlivshin@bigfoot.com>
3843
50fecba9
ML
3844 * tags.h: (SCM_DOUBLE_CELLP, SCM_NDOUBLE_CELLP): new macros (bad
3845 names, anyone got any better ones?)
a00c95d9
ML
3846
3847 * gc.h: (typedef struct scm_freelist_t) remove from here.
3848
50fecba9 3849 * gc.c: (CELL_UP, CELL_DN) made these macros take additional
a00c95d9
ML
3850 parameter (the span).
3851 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK) new macros.
50fecba9 3852 (typedef struct scm_freelist_t) moved here from gc.h, it had no
a00c95d9
ML
3853 business being externally visible.
3854 (typedef struct scm_heap_seg_data_t) renamed from
3855 scm_heap_seg_data, to be style-compliant.
3856 (scm_mark_locations) if the possible pointer points to a
50fecba9
ML
3857 double-cell, check that it's properly aligned.
3858 (init_heap_seg) align double-cells properly, work with the
3859 assumption that the segment size divides cleanly by cluster size.
a00c95d9
ML
3860 (round_to_cluster_size) new function.
3861 (alloc_some_heap, make_initial_segment) use round_to_cluster_size
3862 to satisfy the new init_heap_seg invariant.
3863
28b3236d
DH
38642000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
3865
3866 * _scm.h: Don't include async.h everywhere...
3867
3868 * eq.c eval.c iselect.c: ... only include it here.
3869
ba11fd4c
DH
38702000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
3871
3872 * _scm.h: Don't include root.h everywhere...
3873
3874 * async.c continuations.c eq.c eval.c evalext.c feature.c gc.c
3875 gdbint.c gsubr.c ioext.c keywords.c lang.c load.c macros.c
3876 numbers.c objprop.c ports.c print.c procprop.c ramap.c read.c
3877 srcprop.c stackchk.c stacks.c strports.c symbols.c unif.c
3878 variable.c vectors.c vports.c: ... only include it here.
3879
7ab3fdd5
DH
38802000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3881
3882 * _scm.h: Don't include strings.h everywhere...
3883
3884 * backtrace.c dynl.c error.c feature.c filesys.c fports.c gc.c
3885 gdbint.c ioext.c load.c net_db.c numbers.c objects.c options.c
3886 ports.c posix.c print.c procs.c random.c read.c regex-posix.c
3887 simpos.c socket.c stacks.c stime.c strop.c strports.c struct.c
3888 symbols.c unif.c vectors.c version.c vports.c: ... only include it
3889 here.
3890
f04d8caf
DH
38912000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3892
3893 * _scm.h: Don't include ports.h everywhere...
3894
3895 * arbiters.c backtrace.c debug.c dynl.c dynwind.c eval.c feature.c
3896 fluids.c gc.c gdbint.c guardians.c hash.c keywords.c mallocs.c
3897 numbers.c objects.c print.c read.c root.c smob.c srcprop.c
3898 stackchk.c strports.c struct.c throw.c variable.c: ... only
3899 include it here.
3900
003d1fd0
DH
39012000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3902
3903 * _scm.h: Don't include vectors.h everywhere...
3904
3905 * eq.c eval.c filesys.c gc.c gsubr.c guardians.c hash.c hashtab.c
3906 keywords.c net_db.c numbers.c objects.c posix.c print.c procprop.c
3907 procs.c ramap.c random.c read.c scmsigs.c socket.c sort.c stime.c
3908 strports.c symbols.c unif.c vports.c weaks.c: ... only include it
3909 here.
3910
0fa27efa
DH
39112000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3912
3913 * genio.h: removed. (Only content was '/* delete me */'.)
3914
3915 * Makefile.am arbiters.c backtrace.c debug.c dynl.c dynwind.c
3916 error.c filesys.c fluids.c gc.c gsubr.c guardians.c keywords.c
3917 libguile.h mallocs.c numbers.c print.c random.c read.c root.c
3918 srcprop.c stackchk.c struct.c threads.c throw.c variable.c:
3919 Removed reference to genio.h
3920
148f31de
MD
39212000-03-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3922
3923 * gc.c, gc.h: Cleanup of the change of 2000-03-15.
3924 Cluster sizes are now independent of GC trigger values.
3925 GUILE_GC_TRIGGER_n can now specify a relative trigger value:
3926 A negative integer gives fraction of total heap size in percent.
1eb489a2 3927 (SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -40.
148f31de
MD
3928
3929 * init.c (scm_boot_guile_1): Introduced new variable
3930 GUILE_MAX_SEGMENT_SIZE; New environment variable names:
3931 GUILE_INIT_SEGMENT_SIZE_1, GUILE_GC_TRIGGER_1,
3932 GUILE_INIT_SEGMENT_SIZE_2, GUILE_GC_TRIGGER_2
3933
6d0f81dd 39342000-03-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
a00c95d9 3935
6d0f81dd
MD
3936 * __scm.h (GC_FREE_SEGMENTS): Disable this until we have made
3937 freeing of segment work with the new GC scheme. (Thanks to
bc2c8d98
MD
3938 Michael Livshin.) Oops, also happened to make GUILE_NEW_GC_SCHEME
3939 the default, but I'll let this change stay in CVS Guile since this
3940 code is not expected to contain serious bugs.
a00c95d9 3941
17351a6f 39422000-03-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
c5133dc9 3943
6c7c449e
MD
3944 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
3945 defined.
5a551542
MD
3946 (scm_free_list_length): New procedure (GUILE_DEBUG).
3947 Fixed a small but serious bug introduced by the previous change.
3948
17351a6f
MD
3949 * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
3950 loop and declare as register.
6c7c449e 3951
c5133dc9
MD
3952 * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
3953 after GC.
3954
3820581c
GB
3955Wed Mar 15 08:27:04 2000 Greg J. Badros <gjb@cs.washington.edu>
3956
3957 * fluids.c: Docstring patch from Keisuke Nishida. Some
3958 reindentation, too, and a couple formals renamed. Should
3959 fluid-set! return UNSPECIFIED instead of a value?
3960
3961Wed Mar 15 08:24:58 2000 Greg J. Badros <gjb@cs.washington.edu>
3962
3963 * Makefile.am: Separate out DOT_X_FILES and DOT_DOC_FILES, and
a00c95d9 3964 generate the latter from the concrete listing of the former. Then
3820581c
GB
3965 make guile-procedures.txt depend on DOT_DOC_FILES instead of
3966 *.doc, so that rebuilding it works.
3967
dd6390bf
GB
3968Wed Mar 15 08:12:14 2000 Greg J. Badros <gjb@cs.washington.edu>
3969
3970 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida!
3971
3972 * guile-snarf.awk.in: Replace docstring line-ending \n" and \n\n"
3973 with nothing and \n, respectively. Thanks Keisuke Nishida for
3974 noticing this problem.
3975
4fdb0ae2
MD
39762000-03-15 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3977
3978 * __scm.h (GUILE_NEW_GC_SCHEME): Define this if you want to test a
3979 new way of allocating heap. It makes Guile fast, but still
3980 contains bugs.
3981
3982 * gc.c, gc.h, pairs.h, init.c: Implementation of a new way of
3983 allocating heap. The basic idea is to trigger GC every Nth
3984 allocated cell and grow heap when free list runs out. The scheme
3985 has been extended so that GC isn't triggered until all remaining
3986 cells are used. The implementation is also prepared for
3987 development in the direction of POSIX threads.
3988
3989 * gc.c (SCM_EXPHEAP): In order to grow by a factor of 1.5,
3990 SCM_EXPHEAP should return half of the heap size.
3991
3d8d1283
MD
39922000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3993
5f4edb86
MD
3994 The following change to init.c is only enabled if Guile was
3995 configured with --enable-guile-debug.
a00c95d9 3996
5f4edb86
MD
3997 * init.c (scm_i_getenv_int): New function.
3998 (scm_boot_guile_1): Use the environment variables
3999 GUILE_INIT_HEAP_SIZE, GUILE_INIT_HEAP_SIZE2 to select heap size if
4000 they exist. (This may be replaced by a Scheme level mechanism in
4001 the future.)
4002
3d8d1283 4003 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
90e77861 4004 scm_assoc. (Thanks to Keisuke Nishida.)
3d8d1283 4005
b0e37c83
MD
40062000-03-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4007
4008 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
2b260c0f 4009 scm_nil, scm_t. (Thanks to Keisuke Nishida.)
b0e37c83 4010
16d35552
MD
40112000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4012
5ebf0091
MD
4013 * init.c (scm_boot_guile_1): Use same initial segment size for
4014 1-word and 2-word segments. Having the smaller size causes Guile
4015 to GC too often. Obviously something needs to be done to allow
4016 for a smaller 2-word segment without this to happen. (The amount
4017 of heap for each type should be automatically adapted to the
4018 application somehow.)
4019
31ed4cff
MD
4020 [Almost all of these changes should be documented in the NEWS
4021 file.]
4022
cf2c7413
MD
4023 * gc.h (scm_freelist_t): New type.
4024
4025 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
4026
4027 * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
4028 all of Guile basics fits into one segment and there suitable room
4029 for work.
4030 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
4031 instead of 2.
4032 (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
4033 Freelists now contains information about object span, cells
4034 collected and amount of cells in heap segments belonging to the
4035 list.
4036 (scm_heap_size, scm_gc_cells_collected): Removed.
4037
4038 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
4039
16d35552
MD
4040 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
4041 number.
4042
cf2c7413 4043 * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
16d35552
MD
4044 numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
4045 rewrite of handling of real and complex numbers.
4046 (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
4047 removed along with the support for floats. (Float vectors are
4048 still supported.)
4049
4050 * tags.h (scm_tcs_bignums): Removed.
4051 (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
4052 Use SCM_BIGSIGN(x) to test for sign!
4053 (scm_tc16_big): The new bignum type.
4054 (SCM_REAL_PART, SCM_IMAG_PART): Removed.
4055
4056 * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
4057 (scm_makdbl): Deprecated.
4058 (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
4059 (SCM_SINGP): Deprecated.
4060 (SCM_FLO): Removed.
4061 (SCM_INEXP, SCM_CPLXP): Deprecated.
4062 (SCM_INEXACTP, SCM_COMPLEXP): New macros.
4063 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
4064 SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
4065 (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
4066 for doubles and complex numbers.
4067 (SCM_REAL_VALUE): New selector for doubles.
4068 (scm_double_t, scm_complex_t): New types.
4069 (scm_dbl): Removed.
4070
4071 * numbers.c (scm_floprint, scm_floequal): Removed.
4072 (scm_print_real, scm_print_complex, scm_real_equalp,
4073 scm_complex_equalp): New functions.
4074
4075 * unif.c (scm_makflo): Removed.
4076
4077 * smob.h (SCM_SMOB_PREDICATE): New macro.
4078 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
4079 SCM_RETURN_NEWSMOB3): New macros.
4080
40811999-11-21 Michael Livshin <mlivshin@bigfoot.com>
4082
4083 The following changes implement primitive support for double cells
4084 (i.e. four-word cells) and change the representation of some
4085 things to multi-cells instead of cons+malloc. (Applied and
4086 modified by mdj.)
4087
4088 * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
4089 (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
4090 multi-cell access macros (used by the ones below).
4091 (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
4092 macros.
4093
4094 * gc.c (scm_freelist2): multi-cell freelists.
4095 (inner_map_free_list): map_free_list, parameterized on ncells.
4096 "nn cells in segment mm" was misleading for ncells > 1; changed to
4097 "objects". still print cells too, though.
4098 (scm_map_free_list): rewritten using inner_map_free_list.
4099 (scm_check_freelist): get freelist as parameter, since now we have
4100 more than one.
4101 (scm_debug_newcell2): multi-cell variants of
4102 scm_debug_newcell.
4103 (scm_gc_for_newcell): take ncells and freelist pointer as
4104 parameters.
4105 (scm_gc_mark): add case for tc7_pws (procedures with setters are
4106 now double cells).
4107 (scm_gc_sweep): don't free the float data, since it's not malloced
4108 anymore.
4109 (init_heap_seg): didn't understand what n_new_objects stood for,
4110 so changed to n_new_cells.
4111 (make_initial_segment): new function, makes an initial segment
4112 according to given ncells.
4113 (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
4114
4115 * numbers.c (scm_makdbl): no malloc'ing needed, so the
4116 {DEFER,ALLOW}_INTS thing removed.
4117
4118 * numbers.h (struct scm_dbl): changed to represent a double cell,
4119 with the number in the second half.
16d35552
MD
4120
4121 * dynwind.c: changed the wind-guards representation to double
4122 cell.
4123
4124 * procs.c, procs.h: changed the procedure-with-setter representation
4125 to double cell.
4126
4127 * async.c, async.h: made async representation a double cell.
4128
16d35552 4129 * dynl.c: made dynamic_obj representation a double cell.
a00c95d9 4130
b70ecbd0
GH
41312000-03-13 Gary Houston <ghouston@arglist.com>
4132
4133 * ports.c (flush_void_port): renamed to flush_port_default.
4134 (end_input_void_port): renamed to end_input_default.
4135
4136 * init.c (scm_standard_stream_to_port): create a void port instead
4137 of opening /dev/null if the standard file descriptors are bad.
4138 advantages: no portability problems, doesn't waste a file descriptor,
4139 simplifies the code (thanks to Marius for the idea).
4140
4141 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
4142
4143 * void ports: make reading from a void port give EOF instead of
4144 segv:
4145 * ports.c (s_scm_sys_make_void_port): modified docstring.
4146 (fill_input_void_port): new proc.
4147 (scm_init_ports): set up fill_input_void_port.
4148 * ports.c (scm_port_non_buffer): new proc.
4149 (scm_void_port): call scm_port_non_buffer.
4150
4151 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
4152 which was incorrectly appended.
4153
fdc7ea2d
MD
41542000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4155
4156 * guile-doc-snarf.in: Don't use absolute path for `sed'. (Note
4157 that we can't use autoconf for this. Autoconf itself relies on
26fba922 4158 the existence of `sed' somewhere on your path.) (Thanks to Dirk
fdc7ea2d 4159 Herrman.)
a00c95d9 4160
68933ba3
MD
41612000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4162
b44a555a
MD
4163 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
4164 EXTRA_libguile_la_SOURCES.
4165
4166 * iselect.h: Always declare scm_internal_select.
4167
4168 * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
4169 end. Also let scm_internal_select be a real function also when
4170 not using threads.
4171
68933ba3
MD
4172 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
4173
c7f6ea11
MD
41742000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4175
4176 * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
4177 SCM_ASYNC_TICK. (This is a preparation for POSIX threads support,
4178 and kind of an experiment: Will this cause problems?)
4179
62dbc244
GB
4180Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
4181
4182 * Makefile.am: Added *.doc to DISTCLEANFILES.
4183
4f2f645d
GH
41842000-03-12 Gary Houston <ghouston@arglist.com>
4185
4186 * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
4187 the fdes is valid before doing anything else. check that
4188 the file descriptor supports the modes required.
4189 (scm_fport_buffer_add): don't throw an error if fstat doesn't
4190 work: just use the default buffer size.
4191
4192 * throw.c: change an outdated comment about scm_internal_catch
4193 BODY: it doesn't take a jumpbuf arg.
4194
4195 * init.c (scm_standard_stream_to_port): install a handler in case
4196 scm_fdes_to_port throws an error. don't check here whether the
4197 file descriptor is valid, since scm_fdes_to_port will do that.
4198 set the revealed count depending on whether the port got the
4199 standard file descriptor.
4200 (stream_body_data): new type.
4201 (stream_body, stream_handler): new procs.
4202
7f782a0a
MD
42032000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4204
67673f75
MD
4205 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
4206 Renamed from SCMWORD.
4207
4208 * tags.h (SCM_NCELLP): Removed (SCMWORD).
4209
f1267706 4210 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
67673f75 4211
74a426ae
MD
4212 * async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,
4213 feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h,
4214 hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c,
4215 objects.h, options.c, pairs.h, ports.c, ports.h, print.c,
4216 procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c,
4217 stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h,
4218 throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c,
f1267706 4219 weaks.h (SCM_PACK, SCM_UNPACK, SCM_UNPACK_CAR): Renamed from
74a426ae
MD
4220 SCM_ASSCM, SCM_ASWORD, SCM_CARW).
4221
7f782a0a
MD
4222 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
4223
4224 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
4225 tags.h: Fixed copyright notices.
4226
4227 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
0cd87628 4228
7f782a0a 42292000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
a00c95d9 4230
0cd87628
MV
4231 * init.c (scm_standard_stream_to_port): Check whether the file
4232 descriptor is valid and substitute "/dev/null" when not.
a00c95d9 4233
f3b5e185
MD
42342000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4235
4236 * coop-defs.h (struct timespec): Conditionally defined.
4237
4238 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
4239 instead of ETIME.
38eca29b
MD
4240
4241 * readline.c (match_paren): Bugfix: First arg to select is not
4242 number of descriptors but the number of the highest descriptor +
4243 1.
4244
4245 This is a preliminary attempt at a cleanup of the threads support
4246 code. It moves things to better places, makes arguments more
4247 consistent with the POSIX API (which is used in GNOME's glib), and
4248 adds new functionality.
a00c95d9 4249
38eca29b
MD
4250 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
4251
4252 * coop-defs.h (scm_mutex_trylock): New macro: alias for
4253 coop_mutex_trylock.
4254 (scm_cond_init): Changed definition to
4255 coop_new_condition_variable_init.
a00c95d9 4256
38eca29b
MD
4257 * coop.c: #include <errno.h>
4258 (coop_timeout_qinsert): Moved here from iselect.c
4259 (coop_new_mutex_init, coop_new_condition_variable_init): New
4260 functions. The strange names are temporary. Use scm_mutex_init
4261 and scm_cond_init instead.
4262 (coop_mutex_trylock): New function. Uses errno.h:EBUSY. errno.h
4263 is ANSI C, but should we check for individual error codes in
4264 configure.in?
4265 (coop_condition_variable_timed_wait_mutex): New function.
4266 (coop_key_create, coop_setspecific, coop_getspecific,
7f782a0a 4267 coop_key_delete): New functions.
38eca29b
MD
4268
4269 * iselect.c (coop_timout_qinsert): Moved to coop.c
4270
32e1616c
MD
42712000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4272
4273 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
4274 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
4275
4276 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
4277 Layout cleanups.
4278
4279 * objects.h (SCM_CLASS_FLAGS, SCM_OBJ_CLASS_FLAGS,
4280 SCM_SET_CLASS_INSTANCE_SIZE), struct.h (SCM_STRUCT_VTABLE_DATA),
4281 proc.h (SCM_CLOSCAR): SCM_ASSCM/WORD fixes.
4282
4283 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
4284 dealing with ilocs.
4285
d5c39069
GB
42862000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
4287
4288 * numbers.c (scm_copy_big_dec, scm_copy_smaller, scm_big_ior,
4289 scm_big_xor, scm_big_and, scm_big_test): Added new lowlevel bignum
4290 logical functions from SCM.
4291
4292 (logand, logior, logxor, logtest, logbit?): Extended scheme
4293 logical functions to use bignums from SCM.
4294
4295 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
4296 lognot from using bignums.
4297
3e892913
GB
4298Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
4299
a00c95d9 4300 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
3e892913
GB
4301 eliminating some warnings.
4302
4303 * unif.c, strports.c, print.c, options.c: Fix some warnings on
4304 mis-use of SCM/long
4305
4306 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
4307 what the scm_return_first* functions do.
4308
7ac030d6
GB
43092000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
4310
4311 * libguile/*.[ch]: make a distinction between SCM as a generic
4312 name for a Scheme object (now a void*), and SCM as 32 bit word for
4313 storing tags and immediates (now a long int). Introduced
4314 SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
4315 code in the process: arbiter.c (use macros), unif.c (scm_array_p),
a00c95d9 4316
f635d2d4
GB
4317Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
4318
4319 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
4320 various logXXX primitives. Thanks Eric Moore!
4321
9eaa7fb6
GB
4322Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
4323
4324 * run-test, remaining-docs-needed: Added these scripts. The
4325 second one is only temporary until the docstring additions are
4326 complete. run-test may best live on, but is here mostly for
4327 convenience and awareness for now.
4328
4329 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
4330
49673698
GB
4331Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
4332
4333 * error.h, error.c: Added `scm_wrong_type_arg_msg' to support
4334 displaying the expected type. Use SCM_LISTn in a couple places
4335 instead of scm_cons-ing by hand.
4336
4337 * __scm.h: Added SCM_ASSERT_TYPE macro.
4338
4339 * validate.h, scm_validate.h: Added the former, as a renamed
4340 version of the latter with SCM_ASSERT_TYPE used in
4341 SCM_MAKE_VALIDATE (instead of just SCM_ASSERT)
4342
4343 * Makefile.am: Rename scm_validate.h to validate.h.
4344
4345 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
4346 prefix was superfluous).
4347
417bdef8
GB
4348Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
4349
4350 * hashtab.c: Improved documentation for lots of functions. Added
4351 handwritten docs for `hash-fold'.
4352
4353Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
4354
4355 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
4356
26a760c6
GB
4357Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
4358
a00c95d9 4359 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
26a760c6
GB
4360 added append docs from R4RS.
4361
4362 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
4363 Thanks Dirk Hermann!
4364
4365 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
4366 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
a00c95d9 4367
26a760c6
GB
4368 * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout.
4369 Drop use of SCM_P for function prototypes... assume an ANSI C
4370 compiler. Thanks Dirk Hermann!
4371
898942f8
GB
4372Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
4373
4374 * ports.c: Made `set-port-column!' and `set-port-line!' each
4375 return SCM_UNSPECIFIED instead of a (not-scheme-object) integer
4376 that caused a seg fault. Also fixed `set-port-column!'s
4377 docstring. Thanks Han-Wen Nienhuys for finding the bug!
4378
84a3df2c
GB
4379Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
4380
4381 * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c,
a00c95d9 4382 regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c,
84a3df2c
GB
4383 strings.c, variable.c: Added lots of documentation, cleaned up
4384 some existing documentation. Occasionally changed formal params
4385 to match docs. Also folded an #ifdef into the inners of a
4386 primitive instead of having two copies of the primitive
4387 (`get-internal-real-time', from stime.c)
4388
4389Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
4390
4391 * ports.c: Added docs for primitives missing them. Written by
4392 hand.
4393
3f557de6
GB
4394Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
4395
4396 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
4397 just execing guile-func-name-check. Thanks Michael Livshin!
4398
ddcccdb3
GB
4399Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
4400
4401 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
4402 dead code. Patch from Michael Livshin.
4403
4404 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
4405 Michael Livshin.
4406
720e8692
GH
44072000-02-09 Gary Houston <ghouston@arglist.com>
4408
4409 * init.c (scm_init_standard_ports): when stdout is a tty, make the
4410 current-output-port unbuffered by default. this is less confusing
4411 for interactive use. it was line-buffered because of a
4412 performance problem with unbuffered ports, but I think it will be
4413 OK now.
4414
43ff3170
GH
44152000-02-08 Gary Houston <ghouston@arglist.com>
4416
4417 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
4418 is not defined.
4419
4420 * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor
4421 HAVE_TZNAME are defined, use an empty string instead of giving two
4422 spurious compile-time errors.
4423
4ba47302
GB
4424Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
4425
4426 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
4427 Thanks Richard!
4428
09a617f7
GB
4429Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
4430
4431 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
4432
9dbcf010
GB
4433Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
4434
4435 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
4436 (which is GNU GPL'd).
4437
bd9e24b3
GH
44382000-01-31 Gary Houston <ghouston@arglist.com>
4439
4440 * strings.h: don't use SCM_P. don't include <string.h>.
4441 * error.c, gh_data.c, ports.c, script.c, strop.c: include <string.h>.
a00c95d9 4442
bd9e24b3
GH
4443 * strings.c (scm_string_ref): make the 2nd argument compulsory.
4444 previously it defaulted to zero for no good reason that I can see.
4445 use a local variable for SCM_INUM (k). replace
4446 SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY.
4447
4448 (scm_makfromstr): cosmetic changes.
4449
4450 (scm_string): Accept only chars in the list, not strings, for
4451 conformance to R5RS (particularly for list->string, which is
4452 supposed to be the inverse of string->list.) remove
4453 SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since
4454 scm_makstr handles the cell allocation. when reporting wrong-type
4455 arg, don't report the position as 1.
4456
4457 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
4458
28d77376
GH
44592000-01-29 Gary Houston <ghouston@arglist.com>
4460
ae1b098b
GH
4461 * posix.c (scm_pipe): rewrote the docstring.
4462
28d77376
GH
4463 * filesys.c (scm_select, retrieve_select_type, get_element,
4464 fill_select_type, set_element): modified so that Scheme
4465 "select" tests port buffers for the ability to provide input
4466 or accept output. Previously only the underlying file descriptors
4467 were checked. Rewrote the docstring.
a00c95d9 4468
7f1497ce
GB
4469Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
4470
4471 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
4472 from Gregg Reynolds. Thanks Gregg!
4473
2288ff9b
GB
4474Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
4475
4476 * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by
4477 adding "x" prefix to the line so that guile-func-name-check
4478 doesn't complain unnecessarily.
4479
349af6dd
GB
4480Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
4481
4482 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
4483 for maintainability.
4484
4485 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
4486 from qdocs, RnRs.
4487
a28eb127
GB
4488Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
4489
a00c95d9 4490 * tag.c: Added doc for `tag', but mark as deprecated since Mikael
a28eb127
GB
4491 suggests removing tag.c altogether (and using a new `class-of'
4492 instead).
4493
4494 * strings.c: Added documentation from Gregg A. Reynolds. Edited
4495 a bit by me to use FOO instead of @var{foo} and to have the
a00c95d9 4496 summary come before preconditions on input. Also dropped trailing
a28eb127
GB
4497 (rnrs) note.
4498
4499 * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the
4500 function with scm_make_subr_opt w/ last arg of 0 so it is not
4501 visible at the Scheme level. Mikael says that this is the right
4502 thing because the first arg to the proc is the guts of a compiled
4503 closure and shouldn't be exposed to the Scheme level.
4504
ac2259fc
GB
4505Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
4506
4507 * sort.c: typo in comment fixed.
4508
4509 * keywords.c: Added documentation.
4510
4511 * guardians.c: Added documentation (could be better).
4512
4513 * gc.c: Added docs for gc-set-debug-check-freelist.
4514
4515 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
4516
4517 * boolean.c: Added docs for `not', `boolean?' (by hand).
a00c95d9 4518
d928e0b4
GB
4519Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
4520
4521 * random.c: Added documentation, from SLIB page:
4522 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
4523
4524Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
4525
4526 * variable.c, version.c: Added documentation, written by hand
4527 since I could not find anything already written that was
4528 relevant.
4529
d831b039
GH
45302000-01-23 Gary Houston <ghouston@arglist.com>
4531
a00c95d9 4532 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
d831b039
GH
4533 not defined (thanks to Richard Y. Kim).
4534
88ec97ad
GB
4535Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
4536
4537 * Makefile.in: Removed, this is auto-generated.
4538
078e9092
GB
4539Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
4540
4541 * list.c: Put some variable initialization code at the point of
4542 declaration; Added a comment for list*; Formatting changes.
4543
4544 * load.c: use SCM_NNULLP to make sure the end of a list is not
4545 reached yet.
4546
e7a96050
MD
45472000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4548
a177af34
MD
4549 * backtrace.c (scm_display_error_message): Bugfix: Don't use
4550 result of scm_list_p as C boolean.
4551 (scm_display_error_message, scm_set_print_params_x): Use new
4552 validation macros. (Thanks to Dirk Herrmann.)
4553
d06bcb02
MD
4554 * net_db.c (scm_resolv_error): Cast result from hstrerror.
4555
4556 * strports.c (st_end_input): Inserted parenthesis to get operator
4557 grouping correct.
4558
4559 * list.h (scm_init_list): Removed SCM_P around prototypes.
4560
4561 * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c,
4562 filesys.c, posix.c: Converted docstrings to ANSI C format and
e7a96050
MD
4563 escaped " occurring inside string literals.
4564
682eefe9
MD
4565Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
4566
4567 * posix.c (scm_mknod): Escape " occuring inside docstring.
4568
56cfe22b
MD
45692000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4570
4571 * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,
4572 evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c,
4573 keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c,
4574 objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c,
4575 ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c,
4576 stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c,
4577 symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c,
4578 weaks.c: Converted docstrings to ANSI C format.
a00c95d9 4579
56cfe22b
MD
4580 * filesys.c (scm_chmod), simpos.c (scm_system), version
4581 (scm_version), vports (scm_make_soft_port): Escape " occuring
4582 inside docstring.
4583
fcb1720f
GB
4584Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
4585
4586 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
4587 SCM_VALIDATE_LONG_COPY
4588
4589 * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
4590 SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
4591 couple of formal arguments (and fix their uses) to make arguments
4592 match the documentation.
4593
b9af3d0e
MS
45942000-01-14 <mstachow@alum.mit.edu>
4595
4596 * Makefile.am: Augment path when running guile-doc-snarf so
4597 guile-func-name-check is found.
4598
153511a7
GB
4599Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
4600
4601 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
4602 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
4603
59d5245f
GB
4604Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
4605
4606 * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's
4607 the way guile-1.3.4 worked, but #if 0 out the version using
4608 SCM_VALIDATE_INUM_COPY for stricter testing.
4609
95aec69f
GB
4610Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
4611
4612 * guile-doc-snarf.in: Use new $fullfilename for running
4613 guile-func-name-check, and put "$fullfilename" and "$filename" in
4614 quotes at uses to make sure re-splitting on whitespace does not
a00c95d9 4615 occur (so filenames w/ embedded whitespace would work okay, though
95aec69f
GB
4616 I sure hope we never have to deal with that! :-) ). Thanks to
4617 Mikael for pointing out the source_dir != build_dir was broken.
4618
b7ac2837
GB
4619Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
4620
4621 * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make
4622 SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
4623 SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
4624 macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
4625 variants.
4626
4627 * ports.c (scm_port_closed_p): Validate that the arg is a PORT,
4628 then return whether it's an open port (was validating that it was
4629 an open port -- this was a bug I introduced back in December, but
4630 my careful reading of diffs caught it).
4631
4632 * numbers.c: Recombine the two conditional-compilation paths for
4633 all the log* primitives -- they were split based on #ifndef
4634 scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
4635 some bugs and inconsistencies in the two sets of implementations.
4636 (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
4637
4638 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
4639 SCM_VALIDATE_INUM_COPY once where it should've been used.
4640
4641 * fluids.c (scm_internal_with_fluids): Use
4642 SCM_VALIDATE_LIST_COPYLEN.
4643
4644 * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
4645 this is questionable as it relaxes type safety, but other changes
4646 were useful and all SCM_NUM2LONG's should probably be
4647 revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
4648
4649 * evalext.c: line-break change on 1 line.
4650
4651 * eval.c (nconc2last): Takes a non-empty list as its first
4652 argument, not just a list.
4653
4654 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
4655
4656Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
4657
4658 * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c,
4659 net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
4660 where possible.
4661
4662 * symbols.c (scm_sysintern0): Fixed the function name in a
4663 scm_misc_error invocation.
4664
4665 * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
4666 use scm_return_first to ward off latent GC bug that Mikael caught.
4667
4668 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
4669 used before but should've been.
4670
d61f6b02
MD
46712000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4672
4673 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
4674 SCM_FUNC_CAST_ARBITRARY_ARGS.
4675
88423ab1
GB
4676Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
4677
4678 * guile-func-name-check.in: Added this script to statically check
4679 #define FUNC_NAME, #undef FUNC_NAME in the source.
4680
4681 * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
4682 redundant comment, semicolon; caught by new guile-func-name-check
4683 script.
4684
4685 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
4686 Caught by new guile-func-name-check-script.
4687
4688 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
4689
4690 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
4691 guile-func-name-check.
4692
a00c95d9 4693 * guile-doc-snarf.in: Run guile-func-name-check on the file before
88423ab1
GB
4694 doing the snarf.
4695
7f15e635
GB
4696Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
4697
4698 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
4699 port function take const void*, not void*.
4700
bf121b59
GB
4701Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
4702
4703 * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c,
4704 strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
4705 SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
4706 consistency with the other macros dealing with immediate
4707 characters. (Similar to INT -> INUM change a week or so ago).
4708
7965d98f
GB
4709Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
4710
4711 * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c,
4712 net_db.c, read.c, socket.c: Update error messages to use ~A for
4713 %s, ~S for %S to work with new `simple-format' format and be
4714 standardized better.
4715
4716 * print.h, print.c (scm_simple_format): Added `simple-format'
4717 primitive. It's the old scm_display_error, with ARGS now a rest
a00c95d9 4718 parameter, and the destination first instead of last (and a couple
7965d98f
GB
4719 new capabilities inspired by `format' -- #t as destination means
4720 current-output-port, #f means return the formatted text as a
4721 string.
4722
4723 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
4724
4725 * backtrace.c (scm_display_error_message): Rewrote to use
4726 scm_simple_format() procedure.
4727
4728 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
4729
f73d2411
MV
47302000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
4731
4732 Finally applied the libltdl patch from Thomas Tanner, with slight
4733 modifications.
4734
4735 * DYNAMIC-LINKING: Removed because it is obsolete.
4736 * dynl.c: Use ANSI prototypes.
4737 (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen.
4738 * scmconfig.h.in: Do not change, as it is automatically generated.
a00c95d9 4739
f73d2411
MV
4740 1999-07-25 Thomas Tanner <tanner@ffii.org>
4741
4742 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
4743 (obsolete)
4744 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
4745 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
4746 against libltdl
4747 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
4748 * guile.c: register preloaded modules
4749 * scmconfig.h.in: remove obsolete symbols
4750
38c1d3c4
GH
47512000-01-09 Gary Houston <ghouston@arglist.com>
4752
4753 * These changes should make it unnecessary to call tzset from
4754 Scheme after modifying the TZ environment variable, even if the
4755 system date facilities cache the value.
4756 * stime.c (setzone, scm_localtime): added comments.
4757 (tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
4758 (setzone): don't call tzset.
4759 (restorezone): call tzset only if HAVE_TZSET is defined.
4760 (scm_tzset): don't define if HAVE_TZSET not defined. Change the
4761 doc string to indicate that this procedure isn't likely to do
4762 anything useful.
4763 (scm_localtime, scm_strftime, scm_mktime): call tzset if
4764 LOCALTIME_CACHE is defined.
4765
9359d657
MD
47662000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4767
4768 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
4769
f25f761d
GH
47702000-01-09 Gary Houston <ghouston@arglist.com>
4771
4772 * eval.c: define scm_unbound_variable_key ('unbound-variable).
4773 scm_lookupcar1: throw an error with key 'unbound-variable instead
4774 of 'misc-error when an unbound variable is encountered.
4775
a00c95d9 4776 * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
f25f761d
GH
4777 scm_symlink, scm_readlink, scm_lstat),
4778 posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
4779 scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
4780 scm_sync),
a00c95d9 4781 simpos.c (scm_system),
f25f761d
GH
4782 stime.c (scm_times, scm_strptime):
4783 move the HAVE_XXX feature tests out of the procedure bodies.
4784 don't use SCM_SYSMISSING.
4785 scm_validate.h (SCM_SYSMISSING): removed.
4786 error.h, error.c (scm_sysmissing): comment that this is deprecated.
4787 see ChangeLog entry for 1999-12-28.
4788
a4dd2611
GB
4789Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
4790
4791 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
4792
4793Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
4794
4795 * backtrace.c: Fix spelling typo in a comment.
4796
4797 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
4798 text. Reformatted some of the expansions.
4799
5ac36451
GB
4800Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
4801
4802 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
4803 report the position of the argument.
4804
a00c95d9 4805 * error.h, error.c (scm_out_of_range_pos): Added this function to
5ac36451 4806 take extra "pos" argument, the position number of the errant
a00c95d9 4807 argument.
5ac36451
GB
4808
4809 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
4810
4811 * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
4812 and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
4813 prefers that and I'm reasonably indifferent.
4814
4815Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
4816
4817 * snarf.h: Factor out differences between C++ and non-C++ into
4818 SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
4819 definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
4820 Mikael's macros, below, but changed names and SCM_SNARFING no
4821 longer expands to include %%% -- that must appear in the argument
4822 so that the token appears at the call-site as a reminder).
4823
088bb1d4
MD
48242000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
4825
4826 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
4827 snarf macro definitions.
4828
636480e6
MD
48292000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4830
4831 * chars.c (scm_integer_to_char): Use Greg's nice
4832 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
4833 adherence to R5RS.
4834
7c5628e2
GB
4835Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
4836
4837 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
4838
2cc0f8cb
GB
4839Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
4840
4841 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
4842 instead of GUILE_PROC.
4843
4844Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
4845
a00c95d9 4846 * alist.c: Do not report mismatch errors on some uses of `tmp' (do
2cc0f8cb
GB
4847 this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS
4848 macro call.
4849
9179dcdd
GB
4850Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
4851
4852 * scm_validate.h: Remove some redundant NIMP tests.
4853
4854 * alist.c: minimize scope of the tmp variables, and initialize
4855 them when declared. The strange SCM_NIMP tests are replaced by
4856 SCM_CONSP tests that more closely reflect the intended semantics.
4857 However, we don't get a performance penalty here, because the
4858 SCM_CONSP test was performed by the ALISTCELL test anyway. * The
4859 extremely ugly use of ASRTGO macros was removed: The calls to
4860 ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
4861 label parameter that only exists when SCM_RECKLESS is not defined.
4862 This works, because ASRTGO itself is defined in a way that it only
4863 makes use of the label parameter if SCM_RECKLESS is not defined
4864 (shudder!). Does guile make at all use of the possibility to
4865 define SCM_RECKLESS? * Codesize is likely to be reduced, since
4866 instead of two calls to SCM_ASSERT performed by the ALISTCELL test
4867 we now only get one test.
4868
4869 * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
4870 SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
4871 some variables in `list?'. Fix `reverse' and `reverse!'
4872 primitives to handle improper lists better.
4873
15b33280
GB
4874Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
4875
4876 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
4877 macros and SCM_DEFINE macros to match GNU coding standards.
4878
ca8cd130
GB
4879Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
4880
4881 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
4882
fb764465
GB
4883Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
4884
4885 * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for
4886 better consistency with the names of other SCM_VALIDATE_ macros
4887 and better conformance to guile naming policy.
4888
4889Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
4890
4891 * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a
4892 SCM_VALIDATE instead of 1 to avoid a check on the argument (since
4893 it's not the actual name of the formal).
1e484823
GB
4894
4895 * guile-snarf.awk.in: Do argument/number mismatch checking and
4896 print warnings in an Emacs compile-mode parseable format.
4897
4898 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
4899 SCM_OUTOFRANGE as 3rd argument.
4900
4901 * random.c: Fix argument/number mismatch (that I introduced :-( ).
4902
4903 * __scm.h: Do not #define SCM_ARG* when snarfing;
4904 lets us distinguish between 1 and SCM_ARG1 when snarfing as only
4905 the former (using the number) requires the argument to match the
4906 formal in the current argument snarfing check.
4907
4908 * snarf.h: Give new definition of SCM_ASSERT when in
a00c95d9 4909 snarfing mode to output a lexically-identifiable sequence that the
1e484823
GB
4910 guile-snarf.awk script uses to verify argument/position matching.
4911
4912 * ramap.c: Remove extraneous #undef FUNC_NAME.
4913
53fc4636
GB
4914Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
4915
4916 * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the
a00c95d9 4917 current version of the same functionality; it writes the .x output
53fc4636
GB
4918 to stdout instead of directly into the file.
4919
4920Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
4921
4922 * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c,
4923 posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
4924 redundant with the safer macros. Patch from Dirk Hermann applied
4925 by hand. Thanks Dirk!
4926
4927 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
4928 uses in random.c.
4929
4930 * ramap.c: whitespace change.
4931
3b5345d9
GB
4932Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
4933
4934 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
4935 removals from Dirk Hermann.
4936
4937 * alist.c: Rename formals to match the parameter names in the
4938 documentation, updates to documentation. Thanks Dirk Hermann!
4939
169aec65
MD
49402000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4941
db62436e
MD
4942 * eval.c (SCM_CEVAL): Reverse order of
4943 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
4944 (Thanks to Brad Knotwell.)
169aec65 4945
da43d822
GB
4946Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
4947
4948 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
a00c95d9 4949 allocated cell.
da43d822
GB
4950
4951 * pairs.h: Added a comment about the need for the SCM_SETCAR in
4952 SCM_NEWCELL macro.
4953
4954Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
4955
4956 * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More
4957 SCM_NIMP tests that were redundant are now eliminated. Patches
4958 from Dirk Hermann applied by hand.
4959
339999c7 4960The ChangeLog continues in the file: "ChangeLog-1996-1999"