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