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