1 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
3 * macros.h (SCM_ASSYNT): Removed unused object argument from
6 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
7 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
8 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
9 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
10 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
11 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
12 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
13 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
14 scm_m_atdispatch): Removed unused object argument from call to
17 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
19 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
20 const int* to reflect that the input array of integers remains
21 unchanged. Thanks to Brett Viren for the hint.
23 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
25 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
26 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
28 (gh_scm2newstr, gh_symbol2newstr): Change call to
29 scm_must_malloc() to malloc(), because user-free()able memory is
32 * gc.c: Added declaration of `scm_debug_check_freelist'.
34 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
36 * ports.c (scm_port_mode): Changed `mode' array size to 4.
38 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
40 * strports.c (scm_object_to_string): New procedure.
41 (scm_strprint_obj): Deprecated.
42 * strports.h: Reflect the changes.
44 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
46 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
48 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
49 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
50 SCM_ASSYNT to check for correct argument types. Either use some
51 SCM_VALIDATE_* macro or an explicit test.
53 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
56 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
57 instead of calling scm_wta.
59 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
61 * load.c (scm_primitive_load, scm_primitive_load_path),
62 (scm_sys_search_load_path): Corrected docstrings (file ->
65 * eval.c (scm_force): Added texinfo markup to docstring.
66 (scm_promise_p): Renamed parameter to `obj' to match docstring.
68 * debug-malloc.c: Reinserted #include <stdio.h>.
70 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
72 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
74 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
75 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
76 Use SCM_LISTn instead of scm_listify.
78 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
80 * _scm.h: Removed #include <errno.h>.
82 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
83 errno variable (can be a macro on some systems, for example when
84 using linux libc with threads).
86 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
87 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
88 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
89 #include <errno.h> in these 20 out of 100 files.
91 2001-03-10 Gary Houston <ghouston@arglist.com>
93 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
96 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
98 * coop.c: Inserted #include <stdio.h>.
100 * iselect.c: Reinserted #include <stdio.h>.
102 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
104 * posix.c: Replaced `#define' of __USE_XOPEN right before
105 including unistd.h with a define of _GNU_SOURCE at the very top of
108 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
110 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
111 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
112 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
113 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
114 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
115 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
116 print.c, procprop.c, procs.c, properties.c, ramap.c,
117 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
118 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
119 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
120 Remove #include <stdio.h>
121 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
123 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
125 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
127 * posix.c (scm_gethostname): Set initial name length to 256 for
130 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
132 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
133 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
134 (scm_sethostname, scm_gethostname): New prototypes.
136 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
137 <sys/file.h>, if present.
138 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
139 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
140 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
141 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
142 (scm_sethostname, scm_gethostname): New procedures.
144 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
146 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
147 not optional (ii) "recommend" spelling correction.
149 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
151 * ramap.c (racp): Removed optimization which caused array copying
152 to fail if the two arrays shared storage. Re-inserted the IVDEP
153 macros removed in the change of 2000-03-09. (Don't really have a
154 complete grasp of what they are for, but they seem to be necessary
155 on Crays. This needs testing!) Thanks to Miroslav Silovic.
157 * hash.c (scm_string_hash): Don't downcase characters.
159 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
161 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
162 size from 277 --> 1009.
164 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
167 * coop-threads.c: Fixed change of 2001-03-06.
169 * validate.h: Code formatting.
171 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
173 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
174 (*.doc): Add dependency on guile-snarf.awk.in.
176 * guile-snarf.awk.in: Neglect spaces at the end of
177 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
178 middle of docstrings. (To avoid the problem with gcc-2.96.)
180 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
182 * coop-threads.c (scm_call_with_new_thread), load.c
183 (scm_primitive_load, scm_sys_search_load_path), random.c
184 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
185 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
186 (potentially) issue a scm-misc-error or wrong-num-args error
189 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
190 about the expected type with the wrong-type-arg error message.
192 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
193 a C level bug that can't be fixed from scheme anyway.
195 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
197 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
198 Duplicate bindings are OK in a let* since a let* is semantically
199 equivalent to a nested set of let:s.
201 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
203 * print.c (scm_print_options): Fixed texinfo in docstring.
205 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
206 the underlying functions getservent, getprotoent or getnetent
207 return NULL instead of signalling an error.
209 2001-03-04 Gary Houston <ghouston@arglist.com>
211 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
212 taking an unexpectedly large filename for an AF_UNIX socket from
213 bind/connect/sendto (thanks to Martin Grabmueller).
215 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
216 former and adjusted the latter.
217 (scm_socket, scm_socketpair): cosmetic changes.
218 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
219 size_t as socklen_t substitute. don't restrict args/return values
220 to INUM: allow full range of int or size_t.
221 (scm_fill_sockaddr): check arguments before allocating memory, to
222 avoid leakage. use malloc, not scm_must_malloc.
223 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
224 substitute. free the sockaddr structure before throwing an error.
225 (scm_init_add_buffer): procedure removed, together with its static
226 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
227 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
228 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
229 scm_sendto): use a local buffer instead of scm_addr_buffer.
230 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
232 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
233 call to detect whether recvfrom could be bothered to set the address.
234 (scm_init_socket): don't call scm_init_addr_buffer.
236 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
238 * debug.c (scm_procedure_source, scm_procedure_environment),
239 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
240 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
241 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
242 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
243 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
244 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
245 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
246 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
247 scm_array_to_list, scm_array_prototype), validate.h
248 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
249 scm_misc_error or scm_wrong_type_arg instead.
251 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
253 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
255 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
256 (scm_sys_tag_body): Added.
258 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
260 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
261 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
262 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
263 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
264 options.c (scm_options), ports.c (scm_remove_from_port_table),
265 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
266 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
267 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
268 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
271 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
273 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
275 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
277 * eval.c (scm_s_duplicate_bindings): New error message.
278 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
280 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
282 * eval.h (SCM_EVALIM2): New macro. Use it when a
283 immediate, literal constant should be evaluated.
284 * eval.c (scm_s_duplicate_formals): New error message string.
285 (scm_c_improper_memq): New function.
286 (scm_m_lambda): Check for duplicate arguments.
287 (scm_ceval, scm_deval): When executing a body: only cons a new
288 toplevel environment frame when it is different from the
289 existing one; use EVALCAR instead of SIDEVAL so that we can properly
290 check for empty combinations; use SCM_EVALIM2 for the same reason
291 in the non-toplevel loop.
292 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
293 New labels with the meaning of their non-"nontoplevel" partners,
294 but they are used when it is known that the body is not evaluated at
296 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
297 reporting for empty combinations.
299 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
301 * Remove dump facilities.
302 * dump.c, dump.h: Removed.
303 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
304 * init.c: Remove #include "libguile/dump.h".
305 (scm_init_guile_1): Remove scm_init_dump.
306 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
307 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
308 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
309 (scm_set_smob_dump, scm_set_smob_undump): Removed.
311 * keywords.c: Remove #include "libguile/dump.h".
312 (keyword_dump, keyword_undump): Removed.
313 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
315 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
317 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
318 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
319 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
320 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
321 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
322 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
323 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
324 to @code{} as the texinfo manual recommends, converted the
325 examples to use a @lisp{}-environment.
327 * strports.c (scm_eval_string): Cleaned up the docstring.
329 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
332 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
333 (scm_number_to_string, scm_string_to_number, scm_number_p)
334 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
335 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
336 (scm_ash): Added texinfo markup and removed obsolete @refill.
337 (scm_gr_p): Corrected comment.
338 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
340 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
341 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
342 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
343 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
344 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
345 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
346 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
347 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
349 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
351 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
352 (Obviously nobody compiles with SCM_RECKLESS defined...)
354 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
356 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
358 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
360 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
362 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
364 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
365 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
366 since use of `z' suggests that the arguments may be complex.
368 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
371 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
373 * dump.c (scm_binary_write, scm_binary_read), eval.c
374 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
375 scm_guardian_greedy_p, scm_make_guardian), fports.c
376 (scm_file_port_p): Minor docstring fixes.
378 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
380 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
382 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
384 (make_class_from_template): Do not bother to set the current
385 module around the call to DEFVAR, scm_eval takes care of that.
386 (scm_init_goops): Make scm_module_goops and
387 scm_goops_lookup_closure permanent objects.
389 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
390 top level, create a fresh top-level environment for each
391 expression instead of mutating the exisint frame. This is
392 important when that frame is closed over.
394 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
395 SCM_DIGSPERLONG instead of DIGSPERLONG.
397 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
399 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
400 before applying arrow procedure in `cond' and before applying
401 receiver procedure in call-with-current-continuation.
402 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
403 macro. The argument is expanded more than one time.
405 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
406 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
408 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
410 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
413 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
415 * variable.c (scm_make_variable, scm_make_undefined_variable)
416 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
417 (scm_variable_bound_p), values.c (scm_values)
418 (scm_call_with_values), unif.c (scm_bit_count)
419 (scm_bit_set_star_x), symbols.c (scm_gentemp)
420 (scm_gensym), strings.c (scm_string_p, scm_make_string)
421 (scm_read_only_string_p, scm_string_length, scm_string_ref)
422 (scm_string_set_x, scm_substring, scm_string_append), stime.c
423 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
424 (scm_copy_random_state, scm_random), print.c (scm_newline)
425 (scm_write_char, scm_simple_format), debug-malloc.c
426 (scm_malloc_stats), environments.c (scm_environment_p)
427 (scm_environment_bound_p, scm_environment_ref)
428 (scm_environment_fold, scm_environment_define)
429 (scm_environment_undefine, scm_environment_set_x)
430 (scm_environment_cell, scm_environment_observe)
431 (scm_environment_observe_weak, scm_environment_unobserve)
432 (scm_make_eval_environment, scm_eval_environment_p)
433 (scm_eval_environment_set_local_x, scm_eval_environment_local)
434 (scm_eval_environment_imported)
435 (scm_eval_environment_set_imported_x, scm_make_import_environment)
436 (scm_import_environment_p, scm_import_environment_imports)
437 (scm_import_environment_set_imports_x, scm_make_export_environment)
438 (scm_export_environment_p, scm_export_environment_private)
439 (scm_export_environment_set_private_x)
440 (scm_export_environment_signature)
441 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
442 Added texinfo markup.
444 * ports.c (scm_drain_input): Lowercased argument to @var.
445 (scm_current_input_port, scm_current_output_port): Filled in
447 (scm_current_load_port, scm_set_current_output_port)
448 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
449 Added texinfo markup.
451 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
452 (scm_release_arbiter): Added texinfo markup to docstrings.
453 Changed `Returns' to `Return'.
454 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
456 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
458 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
459 by doubling them to `@@'.
461 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
463 * numbers.c (scm_lognot), random.c (scm_random,
464 scm_random_normal, scm_random_solid_sphere_x,
465 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
466 scm_random_exp), dynwind.c
467 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
469 * goops.c (scm_sys_initialize_object, scm_instance_p,
470 scm_class_name, scm_class_precedence_list, scm_class_slots,
471 scm_class_environment, scm_generic_function_name,
472 scm_generic_function_methods, scm_method_generic_function,
473 scm_method_specializers, scm_method_procedure, scm_make_unbound,
474 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
475 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
476 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
477 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
478 scm_class_direct_supers, scm_class_direct_slots,
479 scm_class_direct_subclasses, scm_class_direct_methods,
480 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
481 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
482 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
483 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
484 scm_memoized_environment, scm_procedure_name,
485 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
487 (scm_class_of, scm_entity_p, scm_operator_p,
488 scm_set_object_procedure_x, scm_object_procedure,
489 scm_make_class_object), hooks.c (scm_make_hook_with_name,
490 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
491 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
492 scm_hook_to_list), lang.c
493 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
494 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
495 (scm_print_options, scm_port_with_print_state,
496 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
497 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
498 scm_make_procedure_with_setter, scm_procedure), throw.c
499 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
500 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
501 scm_stack_ref, scm_stack_length, scm_frame_p,
502 scm_last_stack_frame, scm_frame_number, scm_frame_source,
503 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
504 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
505 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
506 (scm_dirname, scm_basename), dynwind.c
507 (scm_wind_chain), read.c (scm_read_options, scm_read,
508 scm_read_hash_extend), gc.c
509 (scm_unhash_name), eval.c (scm_eval_options_interface,
510 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
511 (scm_display_error, scm_set_print_params_x,
512 scm_display_application, scm_display_backtrace, scm_backtrace),
513 async.c (scm_async, scm_system_async, scm_async_mark,
514 scm_system_async_mark, scm_run_asyncs, scm_noop,
515 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
516 scm_mask_signals): Added docstrings.
518 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
520 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
521 address of car/cdr. (Thanks to Dirk Herrmann)
522 Use scm_sizet to obtain the length of strings.
523 (Thanks to Matthias Koeppe)
525 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
527 * symbols.c (scm_mem2symbol): Put a empty statement after the
528 next_symbol label. This is mandated by ANSI, appearantly.
530 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
532 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
533 sense to compile for a specific kernel version. Do not include
534 <asm/signal.h> while defining __KERNEL__. This hack should no
535 longer be needed and caused problems.
537 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
539 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
540 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
541 can not deal with immediates.
543 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
545 * list.c (scm_list_copy): Validate the first argument.
547 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
549 Fix evaluator so that top-level expressions are correctly
550 evaluated with respect to the module system.
552 * modules.h. modules.c (scm_current_module_lookup_closure): New
555 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
557 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
558 names to better reflect their meaning.
560 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
561 evaluated at top-level and synronize lookup closure before
562 executing every subform.
563 (scm_primitve_eval_x, scm_primitive_eval): New functions.
564 (scm_eval_x, scm_eval): Reimplement in terms of
565 scm_primitive_eval_x and scm_primitive_eval, respectively.
567 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
569 * macros.c (scm_macro_name, scm_macro_transformer): Use
570 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
573 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
575 * dump.c (scm_store_bytes): Store data size before data.
576 (scm_restore_bytes): Restore data size. Takes a pointer to size.
577 * dump.h (scm_restore_bytes): Updated.
579 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
581 * dump.c: Use double cells for update schedule.
583 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
585 * ports.c (scm_unread_char): Take an optional argument.
587 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
589 * modules.h (scm_selected_module, scm_current_module): Renamed
590 scm_selected_module to scm_current_module to synchronize Scheme
592 (scm_select_module, scm_set_current_module): Likewise. Changed
595 * ports.c (scm_port_for_each): Make a snapshot of the port table
596 before iterating over it. The table might change while the user
597 code is running. With the snapshot, the user can depend on the
598 fact that each port that existed at the start of the iteration is
599 encountered exactly once. (ice-9 popen) depends on this.
601 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
603 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
605 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
606 range checking for the size parameter. Thanks to Martin
607 Grabmueller for the hint.
609 (scm_makstr): Reordered string initialization to make interrupt
610 deferring unnecessary.
612 * vectors.c (scm_make_vector): Fixed range checking.
614 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
616 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
618 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
619 checking of the size parameter for type correctness and valid
620 range. Thanks to Rob Browning for reporting the problem. Instead
621 of deferring interrupts, scm_remember_upto_here_1 is used.
623 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
625 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
626 (scm_dump_cell_update): Removed.
627 (scm_dump_update): Renamed from scm_dump_object_update.
628 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
629 a pointer instead of returning a value.
630 * keywords.c (keyword_undump): Updated.
632 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
634 * dump.c, dump.h: Modified a lot.
635 (SCM_DUMP_COOKIE): Version 0.1
636 (scm_dump_mark): Removed.
637 (scm_restore_cell_object, scm_store_cell_object): New functions.
639 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
640 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
641 New slots: dump, undump.
642 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
645 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
646 (keyword_undump): Renamed from keyword_alloc.
647 (scm_init_keywords): Set keyword_dump and keyword_undump.
649 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
651 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
652 the deprecated SCM_DOUBLE_CELLP.
654 * tags.h (SCM_DOUBLE_CELLP): deprecated.
656 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
658 * dump.c, dump.h: New files.
659 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
660 * init.c: #include "libguile/dump.h".
661 (scm_init_guile_1): Call scm_init_dump.
662 * smob.h (scm_smob_descriptor): New slots: dump_mark,
663 dump_dealloc, dump_store, undump_alloc, undump_restore,
665 * smob.c (scm_make_smob_type): Init the new slots.
666 (scm_set_smob_dump, scm_set_smob_undump): New functions.
667 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
669 * keywords.c: #include "libguile/dump.h".
670 (keyword_dealloc, keyword_alloc): New functions.
671 (scm_init_keywords): Set smob_dump and smob_undump.
673 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
675 * vectors.c (scm_c_make_vector): New function.
676 * vectors.h (scm_c_make_vector): Declared.
677 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
678 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
679 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
680 (scm_make_method_cache, scm_i_vector2list,
681 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
682 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
683 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
684 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
685 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
686 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
687 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
688 (scm_vector, scm_make_vector): Use scm_c_make_vector.
690 * hashtab.c (scm_c_make_hash_table): New function.
691 * hashtab.h (scm_c_make_hash_table): Declared.
692 * environments.c (scm_make_leaf_environment,
693 scm_make_eval_environment), gc.c (scm_init_storage),
694 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
695 Use scm_c_make_hash_table.
697 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
699 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
701 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
703 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
706 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
707 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
708 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
709 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
710 srcprop.c (scm_source_properties, scm_set_source_properties_x,
711 scm_source_property, scm_set_source_property_x), sort.c
712 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
713 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
714 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
717 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
719 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
722 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
724 * goops.c (s_scm_get_keyword): Bug fix.
726 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
728 The following patch was sent by Martin Grabmueller. It makes sure
729 that in case of parameter errors the correct function name is
730 shown, and that parameter types are only checked once.
732 * strop.c (string_copy, string_upcase_x, string_downcase_x,
733 string_capitalize_x): New functions. Each one performs the core
734 functionality of the corresponding scm_* function.
736 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
737 scm_string_downcase_x, scm_string_downcase,
738 scm_string_capitalize_x, scm_string_capitalize): Reduced to
739 parameter checking wrappers of the above functions.
741 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
743 * continuations.c, dynl.c, keywords.c, load.c: Include
744 strings.h. Thanks to Bill Schottstaedt for the bug report.
746 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
748 * backtrace.c (display_header): Make sure that line and column
749 information is shown independent of whether the port the code was
750 read from had an associated filename. Thanks to Martin
751 Grabmueller for providing this patch.
753 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
755 * fports.[ch] (scm_file_port_p): New primitive.
757 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
759 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
760 These are now defined in fports.c, strports.c and vports.c.
762 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
763 vports.c (scm_tc16_sfport): Made variables (were macros defined in
766 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
767 (scm_make_sfptob): Made static. These return a type code now.
769 fports.c (scm_init_fports), strports.c (scm_init_strports),
770 vports.c (scm_init_vports): Create the corresponding port types.
772 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
773 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
775 * init.c (scm_init_guile_1): Make sure strports are initialized
778 * ports.[ch] (scm_make_port_type): Changed the return type to
781 * ports.c (scm_ports_prehistory): Don't create any port types
784 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
785 against scm_tc16_fport directly.
787 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
789 * srcprop.c (scm_set_source_property_x): Fix to handle
790 (set-source-property! <obj> 'copy <datum>) correctly.
792 2001-01-24 Gary Houston <ghouston@arglist.com>
794 * filesys.c (scm_link): docstring fix.
795 * fports.h (scm_setfileno): obsolete declaration removed.
796 * posix.c: bogus popen declaration removed.
798 * rdelim.c: new file, split from ioext.c.
799 * rdelim.h: new file, split from ioext.h
800 * Makefile.am: add rdelim.c and related files.
801 * init.c: call scm_init_rdelim. include rdelim.h.
803 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
805 This patch was sent by Martin Grabmueller and makes sure that
806 parameter errors are reported correctly by the lexicographic
809 * strorder.c (string_less_p, string_ci_less_p): New functions.
811 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
812 functionality into string_less_p, string_ci_less_p respectively.
813 The remaining code is just a wrapper to do the parameter
816 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
817 parameters and call string_less_p instead of scm_string_less_p.
819 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
820 Check the parameters and call string_less_ci_p instead of
821 scm_string_ci_less_p.
823 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
825 This patch modifies scm_display_error to perform parameter
826 checking. Thanks to Neil Jerram for the bug report.
828 * backtrace.[ch] (scm_i_display_error): New function.
830 * backtrace.c (scm_display_error): Added parameter check and
831 extracted the core functionality into function
834 * throw.c (handler_message): Call scm_i_display_error to display
837 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
839 * eval.c (SCM_APPLY): Added # args check for application of
840 procedures with arity 3. (Thanks to Anders Holst.)
842 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
844 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
846 (SCM_OPDIRP): Deprecated.
848 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
851 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
852 Instead, give an explicit error message in case the directory is
855 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
856 instead of SCM_OPENP and SCM_CLOSEDP.
858 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
860 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
862 * eval.c (inner_eval, scm_eval): Move all real functionality into
863 inner_eval. Avoid to copy the expression twice by inlining some
864 code from scm_i_eval.
866 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
868 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
869 now has to be the last clause, as required by R5RS. Thanks to
870 Martin Grabmueller for the patch.
872 2001-01-18 Gary Houston <ghouston@arglist.com>
874 * ioext.c: further simplify scm_read_string_x_partial by defining
877 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
879 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
881 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
883 * __scm.h: Added comment about architecture and compiler
884 properties that are required by guile.
886 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
887 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
889 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
891 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
893 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
894 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
896 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
898 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
899 to the names in limits.h.
901 * numbers.c (abs_most_negative_fixnum): Added.
903 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
904 fixnum-min) special case.
906 (scm_big_and): Fix for negative first parameter.
908 (scm_bit_extract): Fix for fixnum paramters.
909 Thanks to Rob Browning for the bug report.
911 (scm_init_numbers): Initialize abs_most_negative_fixnum.
913 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
915 * symbols.c (scm_symbol_bound_p): Fixed comment.
916 Thanks to Chris Cramer.
918 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
920 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
921 Thanks to Bill Schottstaedt.
923 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
927 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
928 casts its result, so doesn't yield an lvalue per ANSI C.
930 * goops.c (s_scm_sys_set_object_setter_x): use
931 SCM_SET_ENTITY_SETTER.
932 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
934 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
935 its result, so doesn't yield an lvalue per ANSI C.
936 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
937 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
938 SCM_GC_SET_CARD_FLAGS.
939 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
941 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
943 2001-01-08 Gary Houston <ghouston@arglist.com>
945 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
946 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
947 socket.c (scm_recvfrom): use the new macro, plus minor docstring
949 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
950 for fdes. if current input port is used, check that it's a file
953 2001-01-06 Gary Houston <ghouston@arglist.com>
955 * ioext.c (scm_read_string_x_partial): new procedure, implements
956 read-string!/partial.
957 * ports.c (scm_take_from_input_buffers): new procedure used by
958 scm_read_string_x_partial.
959 (scm_drain_input): use scm_take_from_input_buffers.
961 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
963 * validate.h (SCM_VALIDATE_NUMBER): New.
965 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
967 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
968 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
969 SET_DESTROYED): new defines/macros.
970 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
971 (add_to_live_list): takes a `guardian_t *' now, not SCM.
972 (guardian_print): print more info.
973 (guardian_apply): check if the guardian is destroyed, and throw an
974 error if so. take one more optional argument `throw_p'.
975 (scm_guard): depending on the value of `throw_p', return a boolean
977 (scm_get_one_zombie): remove redundant property test.
978 (guardian_t): represent the various (currently 3, I hope nothing
979 more gets added) boolean fields as bit flags.
980 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
981 (scm_destroy_guardian_x): new procedure.
983 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
984 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
986 2001-01-01 Gary Houston <ghouston@arglist.com>
988 * fports.c (fport_write): bugfix: handle short writes for
989 unbuffered ports too. optimize the buffered case by minimizing
990 the number of write/flush calls.
991 (write_all): new helper procedure.
993 The ChangeLog continues in the file: "ChangeLog-2000"