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