1 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3 The following changes make the documentation more consistent.
5 * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
6 (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
7 (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
8 (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
11 * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
12 (scm_array_dimensions, scm_make_shared_array),
13 (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
14 throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
15 (scm_string_rindex, scm_string_index, scm_substring_fill_x),
16 (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
17 (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
18 posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
19 macros.c (scm_makmmacro), list.c (scm_append), environments.c
20 (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
21 @example ... @end example to @lisp ... @end lisp.
23 * weaks.c (scm_weak_vector): Corrected docstring.
25 * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
26 (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
27 (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
28 (scm_hashx_set_x, scm_hashx_get_handle),
29 (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
30 (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
31 vectors.c (scm_vector_fill_x), strings.c
32 (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
33 objprop.c (scm_set_object_properties_x):
34 (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
35 strports.c (scm_call_with_input_string), ports.c
36 (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
37 list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
38 (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
39 (scm_make_weak_vector,scm_weak_vector_p),
40 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
41 (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
42 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
43 macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
44 (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
45 Made parameter names match documentation by renaming parameters
46 and/or fixing docstrings.
48 * numbers.c (scm_ash): Corrected Texinfo markup.
50 * strop.c (scm_string_index, scm_string_rindex),
51 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
53 * vports.c (scm_make_soft_port), unif.c
54 (scm_uniform_vector_length, scm_array_p, scm_array_rank),
55 (scm_dimensions_to_uniform_array, scm_transpose_array),
56 (scm_array_in_bounds_p, scm_uniform_vector_ref),
57 (scm_bit_count, scm_bit_position, scm_bit_count_star),
58 (scm_array_to_list, scm_list_to_uniform_array),
59 (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
60 (scm_open_input_string, scm_open_output_string),
61 (scm_get_output_string), strop.c (scm_string_copy),
62 (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
63 (scm_get_internal_real_time, scm_times),
64 (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
65 (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
66 (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
67 (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
68 simpos.c (scm_system), random.c (scm_random_uniform),
69 (scm_random_normal, scm_random_exp), ramap.c
70 (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
71 (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
72 (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
73 (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
74 (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
75 (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
76 (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
77 (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
78 (scm_port_closed_p, scm_eof_object_p, scm_read_char),
79 (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
80 (scm_logand, scm_logior, scm_logxor, scm_lognot),
81 (scm_integer_expt, scm_bit_extract, scm_logcount),
82 (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
83 net_db.c (scm_inet_netof, scm_lnaof), modules.c
84 (scm_interaction_environment), macros.c (scm_makacro),
85 (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
86 (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
87 (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
88 (scm_fluid_ref), filesys.c (scm_open_fdes),
89 (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
90 Docstring correction: `Returns' -> `Return'
92 * gc.c (scm_set_debug_cell_accesses_x):
93 (s_scm_gc_set_debug_check_freelist_x):
94 * fluids.c (scm_fluid_p): Added texinfo markup.
96 * error.c (scm_strerror): Made docstring more precise.
98 * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
99 (scm_vector_to_list, _scm_vector_fill_x), symbols.c
100 (scm_symbol_p, scm_symbol_to_string), strorder.c
101 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
102 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
103 (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
104 (scm_string_ci_geq_p), strop.c (scm_string_copy),
105 (scm_string_fill_x): Removed `(r5rs)' from docstrings.
107 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
109 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
110 mode, as suggested by Michael Livshin.
112 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
114 * backtrace.c (display_backtrace_body): since the `print_state'
115 variable is not used (instead its data field is used directly as
116 `pstate'), protect it from the hungry compiler optimizations.
117 thanks to Bill Schottstaedt for the report.
119 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
121 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
122 It is only defined and used if guile is compiled with
123 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
124 let cells with a free_cell type tag be visible outside of the
125 garbage collector when in debug mode.
127 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
129 (scm_assert_cell_valid): Use a local static variable to avoid
132 (MARK): Only check for rogue cell pointers in debug mode. Use
133 scm_cellp for this purpose and place all checks for rogue pointers
134 into that function. Further, since due to conservative scanning
135 we may encounter free cells during marking, don't use the standard
136 cell type accessor macro to determine the cell type.
138 (scm_cellp): Check if the cell pointer actually points into a
141 (scm_init_gc): Initalize scm_tc16_allocated.
143 * gc.h (GCH): Renamed to SCM_GC_H.
145 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
146 might be unnecessary, but I feel better this way :-)
148 (SCM_GC_CELL_TYPE): New macro.
150 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
151 in guile, and it is unlikely that they will be applied to real
154 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
156 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
157 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
159 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
160 make sure that in debug mode no free cell will ever be visible
161 outside of the garbage collector.
163 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
165 * async.c (scm_asyncs_pending): Don't use != to compare SCM
168 * async.c (scm_system_async), variable.c (scm_make_variable,
169 scm_make_undefined_variable): Use scm_cons to create a pair.
171 * debug.c (scm_reverse_lookup): Perform proper type checking.
172 Remove suspicious use of SCM_SLOPPY_CONSP.
174 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
175 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
176 the corresponding optimization.
178 * eval.c (iqq): Use proper type check.
180 (scm_m_expand_body): Remove redundant type checks.
182 (promise_print): Don't access promise cells as pairs.
184 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
185 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
186 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
187 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
188 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
190 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
191 (scm_iprin1): Use new macro predicate and accessors.
193 * eval.h (scm_tc16_macro): Removed declaration. It is declared
196 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
197 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
198 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
199 SCM_VARIABLE_H. Even the macros that are used to inhibit
200 including a header file twice should be in the SCM_ namespace.
202 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
203 properties.c (scm_primitive_property_ref,
204 scm_primitive_property_del_x): Prefer stronger predicates like
205 SCM_NULLP or SCM_FALSEP over SCM_IMP.
207 * gc.c (MARK): Use proper macros to access procedure-with-setter
208 cell elements and closure cell elements.
210 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
211 access free cells as pairs.
213 (scm_unprotect_object): scm_hashq_get_handle returns #f if
214 no hashtab entry is found.
216 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
217 SCM_CLR_PORT_OPEN_FLAG.
219 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
220 use SCM_SET_C[AD]R for uninitialized cells.
222 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
223 If the hashtable has no slots, return #f instead of '(). This
224 unifies the return value with most assoc-functions.
226 (scm_hash_fn_ref): Use proper type check.
228 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
229 Removed references to non-existing functions from documentation.
231 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
232 access keyword cell elements.
234 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
237 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
239 * print.c (scm_iprlist): Added comment. Improved loop
242 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
245 * smob.c (scm_markcdr): Don't access smob cells as pairs.
247 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
249 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
252 * variable.c (variable_print, variable_equalp, scm_variable_ref,
253 scm_variable_set_x): Use proper macros to access variable cell
256 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
258 * variable.h (SCM_VARVCELL): Don't access variable cells as
261 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
262 added FIXME comment, removed register specifier.
264 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
266 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
267 * init.c (scm_init_guile_1): Don't init goopscore module.
269 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
271 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
273 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
275 * strop.c (scm_string_to_list): Fixed docstring markup.
276 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
277 (scm_string_downcase, scm_string_capitalize_x),
278 (scm_string_capitalize): Rewrote and corrected docstrings.
279 (scm_string_ci_to_symbol): Made docstring more explicit.
281 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
283 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
285 (scm_call_with_values): Removed.
286 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
287 so that it can be exported.
288 (scm_call_with_values): Removed.
290 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
291 * eval.c: Include "libguile/values.h"
292 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
294 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
295 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
296 New delcarations to support above change.
298 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
299 errors with last change.
301 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
303 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
304 scm_i_eval): Moved the application of the system transformer from
305 scm_i_eval to scm_primitive_eval.
307 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
309 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
311 * strop.c (scm_string_index): Fix docstring line break
314 * list.c (scm_cons_star): Fix docstring typo.
316 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
318 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
319 (big2str), ports.c (scm_drain_input), read.c (scm_read,
320 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
321 scm_make_string, scm_string_append), strports.c (st_resize_port,
322 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
323 scm_makstr with calls to scm_allocate_string.
325 * strings.[ch] (scm_allocate_string): New function.
327 * strings.[ch] (scm_makstr): Deprecated.
329 2001-03-18 Gary Houston <ghouston@arglist.com>
331 * posix.c (scm_tmpnam): check that return value from tmpnam is not
332 NULL. rewrote the docstring.
333 (scm_mkstemp): new procedure implementing "mkstemp!".
334 * posix.h: declare scm_mkstemp.
336 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
337 normally it would be found in netdb.h.
339 2001-03-17 Gary Houston <ghouston@arglist.com>
341 * sort.c (scm_sort): move sortvec variable to avoid a compiler
342 warning when HAVE_ARRAYS is not defined. move len too.
344 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
345 (EXTRA_DOT_X_FILES): let configure set the value.
346 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
348 * gc.c (scm_must_malloc): changed the comment explaining when
349 scm_must variants of malloc/free etc., should be used, based on
350 explanation from Dirk Herrmann.
351 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
352 string with procedure name. use scm_must_malloc instead of malloc.
353 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
355 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
356 scm_ungetc): use scm_must variants of malloc/realloc/free.
357 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
359 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
361 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
362 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
363 scm_wrong_type_arg instead.
365 (SCM_WNA): Deprecated.
367 * error.[ch] (scm_wta): Deprecated.
369 * numbers.c (s_i_log): Minor comment fix.
371 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
372 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
373 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
374 wrong-num-args or misc errors.
376 * unif.c (scm_make_shared_array, scm_transpose_array,
377 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
378 Validate the rest argument (note: this is only done when guile is
379 built with SCM_DEBUG_REST_ARGUMENT=1)
381 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
382 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
384 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
385 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
387 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
389 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
390 instead of scm_wrong_num_args.
392 * coop-threads.c: Don't include libguile/strings.h. (Was only
393 needed for former implementation of SCM_WRONG_NUM_ARGS.)
395 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
396 wrong-num-args errors.
398 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
400 * error.[ch] (scm_error_num_args_subr): New function.
402 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
404 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
405 (scm_length, scm_append, scm_reverse, scm_list_ref),
406 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
407 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
408 (scm_delete1_x), gc.c (scm_map_free_list),
409 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
410 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
411 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
412 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
413 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
414 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
415 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
417 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
418 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
419 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
420 symbols.c (scm_symbol_interned_p), numbers.c
421 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
424 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
426 * snarf.h (SCM_CONST_LONG): Deprecated.
427 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
429 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
431 * numbers.c (scm_num2ulong): Check that a bignum is positive
432 before looking at the magnitude. Correctly check for overflow
434 (scm_num2long_long): Likewise.
435 (scm_num2ulong_long): New.
436 (ULONG_LONG_MAX): Define if not already defined.
437 * numbers.h: (scm_num2ulong_long): New prototype.
439 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
441 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
443 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
444 (SCM_OPOUTSTRPORTP): New predicate macros.
445 (scm_open_input_string, scm_open_output_string),
446 (scm_get_output_string): New prototypes.
448 * strports.c (scm_open_input_string, scm_open_output_string),
449 (scm_get_output_string): New procedures (SRFI-6 compliant).
450 Made scm_tc16_strport non-static.
452 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
454 * macros.h (SCM_ASSYNT): Removed unused object argument from
457 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
458 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
459 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
460 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
461 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
462 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
463 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
464 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
465 scm_m_atdispatch): Removed unused object argument from call to
468 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
470 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
471 const int* to reflect that the input array of integers remains
472 unchanged. Thanks to Brett Viren for the hint.
474 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
476 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
477 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
479 (gh_scm2newstr, gh_symbol2newstr): Change call to
480 scm_must_malloc() to malloc(), because user-free()able memory is
483 * gc.c: Added declaration of `scm_debug_check_freelist'.
485 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
487 * ports.c (scm_port_mode): Changed `mode' array size to 4.
489 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
491 * strports.c (scm_object_to_string): New procedure.
492 (scm_strprint_obj): Deprecated.
493 * strports.h: Reflect the changes.
495 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
497 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
499 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
500 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
501 SCM_ASSYNT to check for correct argument types. Either use some
502 SCM_VALIDATE_* macro or an explicit test.
504 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
507 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
508 instead of calling scm_wta.
510 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
512 * load.c (scm_primitive_load, scm_primitive_load_path),
513 (scm_sys_search_load_path): Corrected docstrings (file ->
516 * eval.c (scm_force): Added texinfo markup to docstring.
517 (scm_promise_p): Renamed parameter to `obj' to match docstring.
519 * debug-malloc.c: Reinserted #include <stdio.h>.
521 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
523 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
525 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
526 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
527 Use SCM_LISTn instead of scm_listify.
529 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
531 * _scm.h: Removed #include <errno.h>.
533 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
534 errno variable (can be a macro on some systems, for example when
535 using linux libc with threads).
537 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
538 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
539 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
540 #include <errno.h> in these 20 out of 100 files.
542 2001-03-10 Gary Houston <ghouston@arglist.com>
544 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
547 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
549 * coop.c: Inserted #include <stdio.h>.
551 * iselect.c: Reinserted #include <stdio.h>.
553 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
555 * posix.c: Replaced `#define' of __USE_XOPEN right before
556 including unistd.h with a define of _GNU_SOURCE at the very top of
559 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
561 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
562 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
563 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
564 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
565 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
566 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
567 print.c, procprop.c, procs.c, properties.c, ramap.c,
568 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
569 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
570 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
571 Remove #include <stdio.h>
572 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
574 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
576 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
578 * posix.c (scm_gethostname): Set initial name length to 256 for
581 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
583 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
584 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
585 (scm_sethostname, scm_gethostname): New prototypes.
587 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
588 <sys/file.h>, if present.
589 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
590 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
591 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
592 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
593 (scm_sethostname, scm_gethostname): New procedures.
595 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
597 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
598 not optional (ii) "recommend" spelling correction.
600 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
602 * ramap.c (racp): Removed optimization which caused array copying
603 to fail if the two arrays shared storage. Re-inserted the IVDEP
604 macros removed in the change of 2000-03-09. (Don't really have a
605 complete grasp of what they are for, but they seem to be necessary
606 on Crays. This needs testing!) Thanks to Miroslav Silovic.
608 * hash.c (scm_string_hash): Don't downcase characters.
610 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
612 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
613 size from 277 --> 1009.
615 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
618 * coop-threads.c: Fixed change of 2001-03-06.
620 * validate.h: Code formatting.
622 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
624 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
625 (*.doc): Add dependency on guile-snarf.awk.in.
627 * guile-snarf.awk.in: Neglect spaces at the end of
628 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
629 middle of docstrings. (To avoid the problem with gcc-2.96.)
631 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
633 * coop-threads.c (scm_call_with_new_thread), load.c
634 (scm_primitive_load, scm_sys_search_load_path), random.c
635 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
636 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
637 (potentially) issue a scm-misc-error or wrong-num-args error
640 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
641 about the expected type with the wrong-type-arg error message.
643 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
644 a C level bug that can't be fixed from scheme anyway.
646 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
648 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
649 Duplicate bindings are OK in a let* since a let* is semantically
650 equivalent to a nested set of let:s.
652 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
654 * print.c (scm_print_options): Fixed texinfo in docstring.
656 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
657 the underlying functions getservent, getprotoent or getnetent
658 return NULL instead of signalling an error.
660 2001-03-04 Gary Houston <ghouston@arglist.com>
662 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
663 taking an unexpectedly large filename for an AF_UNIX socket from
664 bind/connect/sendto (thanks to Martin Grabmueller).
666 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
667 former and adjusted the latter.
668 (scm_socket, scm_socketpair): cosmetic changes.
669 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
670 size_t as socklen_t substitute. don't restrict args/return values
671 to INUM: allow full range of int or size_t.
672 (scm_fill_sockaddr): check arguments before allocating memory, to
673 avoid leakage. use malloc, not scm_must_malloc.
674 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
675 substitute. free the sockaddr structure before throwing an error.
676 (scm_init_add_buffer): procedure removed, together with its static
677 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
678 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
679 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
680 scm_sendto): use a local buffer instead of scm_addr_buffer.
681 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
683 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
684 call to detect whether recvfrom could be bothered to set the address.
685 (scm_init_socket): don't call scm_init_addr_buffer.
687 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
689 * debug.c (scm_procedure_source, scm_procedure_environment),
690 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
691 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
692 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
693 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
694 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
695 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
696 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
697 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
698 scm_array_to_list, scm_array_prototype), validate.h
699 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
700 scm_misc_error or scm_wrong_type_arg instead.
702 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
704 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
706 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
707 (scm_sys_tag_body): Added.
709 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
711 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
712 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
713 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
714 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
715 options.c (scm_options), ports.c (scm_remove_from_port_table),
716 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
717 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
718 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
719 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
722 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
724 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
726 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
728 * eval.c (scm_s_duplicate_bindings): New error message.
729 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
731 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
733 * eval.h (SCM_EVALIM2): New macro. Use it when a
734 immediate, literal constant should be evaluated.
735 * eval.c (scm_s_duplicate_formals): New error message string.
736 (scm_c_improper_memq): New function.
737 (scm_m_lambda): Check for duplicate arguments.
738 (scm_ceval, scm_deval): When executing a body: only cons a new
739 toplevel environment frame when it is different from the
740 existing one; use EVALCAR instead of SIDEVAL so that we can properly
741 check for empty combinations; use SCM_EVALIM2 for the same reason
742 in the non-toplevel loop.
743 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
744 New labels with the meaning of their non-"nontoplevel" partners,
745 but they are used when it is known that the body is not evaluated at
747 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
748 reporting for empty combinations.
750 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
752 * Remove dump facilities.
753 * dump.c, dump.h: Removed.
754 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
755 * init.c: Remove #include "libguile/dump.h".
756 (scm_init_guile_1): Remove scm_init_dump.
757 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
758 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
759 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
760 (scm_set_smob_dump, scm_set_smob_undump): Removed.
762 * keywords.c: Remove #include "libguile/dump.h".
763 (keyword_dump, keyword_undump): Removed.
764 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
766 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
768 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
769 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
770 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
771 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
772 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
773 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
774 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
775 to @code{} as the texinfo manual recommends, converted the
776 examples to use a @lisp{}-environment.
778 * strports.c (scm_eval_string): Cleaned up the docstring.
780 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
783 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
784 (scm_number_to_string, scm_string_to_number, scm_number_p)
785 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
786 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
787 (scm_ash): Added texinfo markup and removed obsolete @refill.
788 (scm_gr_p): Corrected comment.
789 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
791 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
792 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
793 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
794 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
795 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
796 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
797 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
798 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
800 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
802 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
803 (Obviously nobody compiles with SCM_RECKLESS defined...)
805 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
807 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
809 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
811 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
813 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
815 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
816 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
817 since use of `z' suggests that the arguments may be complex.
819 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
822 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
824 * dump.c (scm_binary_write, scm_binary_read), eval.c
825 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
826 scm_guardian_greedy_p, scm_make_guardian), fports.c
827 (scm_file_port_p): Minor docstring fixes.
829 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
831 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
833 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
835 (make_class_from_template): Do not bother to set the current
836 module around the call to DEFVAR, scm_eval takes care of that.
837 (scm_init_goops): Make scm_module_goops and
838 scm_goops_lookup_closure permanent objects.
840 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
841 top level, create a fresh top-level environment for each
842 expression instead of mutating the exisint frame. This is
843 important when that frame is closed over.
845 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
846 SCM_DIGSPERLONG instead of DIGSPERLONG.
848 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
850 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
851 before applying arrow procedure in `cond' and before applying
852 receiver procedure in call-with-current-continuation.
853 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
854 macro. The argument is expanded more than one time.
856 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
857 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
859 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
861 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
864 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
866 * variable.c (scm_make_variable, scm_make_undefined_variable)
867 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
868 (scm_variable_bound_p), values.c (scm_values)
869 (scm_call_with_values), unif.c (scm_bit_count)
870 (scm_bit_set_star_x), symbols.c (scm_gentemp)
871 (scm_gensym), strings.c (scm_string_p, scm_make_string)
872 (scm_read_only_string_p, scm_string_length, scm_string_ref)
873 (scm_string_set_x, scm_substring, scm_string_append), stime.c
874 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
875 (scm_copy_random_state, scm_random), print.c (scm_newline)
876 (scm_write_char, scm_simple_format), debug-malloc.c
877 (scm_malloc_stats), environments.c (scm_environment_p)
878 (scm_environment_bound_p, scm_environment_ref)
879 (scm_environment_fold, scm_environment_define)
880 (scm_environment_undefine, scm_environment_set_x)
881 (scm_environment_cell, scm_environment_observe)
882 (scm_environment_observe_weak, scm_environment_unobserve)
883 (scm_make_eval_environment, scm_eval_environment_p)
884 (scm_eval_environment_set_local_x, scm_eval_environment_local)
885 (scm_eval_environment_imported)
886 (scm_eval_environment_set_imported_x, scm_make_import_environment)
887 (scm_import_environment_p, scm_import_environment_imports)
888 (scm_import_environment_set_imports_x, scm_make_export_environment)
889 (scm_export_environment_p, scm_export_environment_private)
890 (scm_export_environment_set_private_x)
891 (scm_export_environment_signature)
892 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
893 Added texinfo markup.
895 * ports.c (scm_drain_input): Lowercased argument to @var.
896 (scm_current_input_port, scm_current_output_port): Filled in
898 (scm_current_load_port, scm_set_current_output_port)
899 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
900 Added texinfo markup.
902 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
903 (scm_release_arbiter): Added texinfo markup to docstrings.
904 Changed `Returns' to `Return'.
905 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
907 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
909 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
910 by doubling them to `@@'.
912 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
914 * numbers.c (scm_lognot), random.c (scm_random,
915 scm_random_normal, scm_random_solid_sphere_x,
916 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
917 scm_random_exp), dynwind.c
918 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
920 * goops.c (scm_sys_initialize_object, scm_instance_p,
921 scm_class_name, scm_class_precedence_list, scm_class_slots,
922 scm_class_environment, scm_generic_function_name,
923 scm_generic_function_methods, scm_method_generic_function,
924 scm_method_specializers, scm_method_procedure, scm_make_unbound,
925 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
926 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
927 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
928 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
929 scm_class_direct_supers, scm_class_direct_slots,
930 scm_class_direct_subclasses, scm_class_direct_methods,
931 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
932 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
933 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
934 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
935 scm_memoized_environment, scm_procedure_name,
936 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
938 (scm_class_of, scm_entity_p, scm_operator_p,
939 scm_set_object_procedure_x, scm_object_procedure,
940 scm_make_class_object), hooks.c (scm_make_hook_with_name,
941 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
942 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
943 scm_hook_to_list), lang.c
944 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
945 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
946 (scm_print_options, scm_port_with_print_state,
947 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
948 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
949 scm_make_procedure_with_setter, scm_procedure), throw.c
950 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
951 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
952 scm_stack_ref, scm_stack_length, scm_frame_p,
953 scm_last_stack_frame, scm_frame_number, scm_frame_source,
954 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
955 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
956 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
957 (scm_dirname, scm_basename), dynwind.c
958 (scm_wind_chain), read.c (scm_read_options, scm_read,
959 scm_read_hash_extend), gc.c
960 (scm_unhash_name), eval.c (scm_eval_options_interface,
961 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
962 (scm_display_error, scm_set_print_params_x,
963 scm_display_application, scm_display_backtrace, scm_backtrace),
964 async.c (scm_async, scm_system_async, scm_async_mark,
965 scm_system_async_mark, scm_run_asyncs, scm_noop,
966 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
967 scm_mask_signals): Added docstrings.
969 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
971 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
972 address of car/cdr. (Thanks to Dirk Herrmann)
973 Use scm_sizet to obtain the length of strings.
974 (Thanks to Matthias Koeppe)
976 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
978 * symbols.c (scm_mem2symbol): Put a empty statement after the
979 next_symbol label. This is mandated by ANSI, appearantly.
981 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
983 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
984 sense to compile for a specific kernel version. Do not include
985 <asm/signal.h> while defining __KERNEL__. This hack should no
986 longer be needed and caused problems.
988 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
990 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
991 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
992 can not deal with immediates.
994 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
996 * list.c (scm_list_copy): Validate the first argument.
998 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
1000 Fix evaluator so that top-level expressions are correctly
1001 evaluated with respect to the module system.
1003 * modules.h. modules.c (scm_current_module_lookup_closure): New
1006 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
1008 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
1009 names to better reflect their meaning.
1011 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
1012 evaluated at top-level and synronize lookup closure before
1013 executing every subform.
1014 (scm_primitve_eval_x, scm_primitive_eval): New functions.
1015 (scm_eval_x, scm_eval): Reimplement in terms of
1016 scm_primitive_eval_x and scm_primitive_eval, respectively.
1018 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
1020 * macros.c (scm_macro_name, scm_macro_transformer): Use
1021 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
1024 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
1026 * dump.c (scm_store_bytes): Store data size before data.
1027 (scm_restore_bytes): Restore data size. Takes a pointer to size.
1028 * dump.h (scm_restore_bytes): Updated.
1030 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
1032 * dump.c: Use double cells for update schedule.
1034 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
1036 * ports.c (scm_unread_char): Take an optional argument.
1038 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1040 * modules.h (scm_selected_module, scm_current_module): Renamed
1041 scm_selected_module to scm_current_module to synchronize Scheme
1043 (scm_select_module, scm_set_current_module): Likewise. Changed
1046 * ports.c (scm_port_for_each): Make a snapshot of the port table
1047 before iterating over it. The table might change while the user
1048 code is running. With the snapshot, the user can depend on the
1049 fact that each port that existed at the start of the iteration is
1050 encountered exactly once. (ice-9 popen) depends on this.
1052 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1054 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
1056 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
1057 range checking for the size parameter. Thanks to Martin
1058 Grabmueller for the hint.
1060 (scm_makstr): Reordered string initialization to make interrupt
1061 deferring unnecessary.
1063 * vectors.c (scm_make_vector): Fixed range checking.
1065 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1067 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
1069 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
1070 checking of the size parameter for type correctness and valid
1071 range. Thanks to Rob Browning for reporting the problem. Instead
1072 of deferring interrupts, scm_remember_upto_here_1 is used.
1074 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
1076 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
1077 (scm_dump_cell_update): Removed.
1078 (scm_dump_update): Renamed from scm_dump_object_update.
1079 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
1080 a pointer instead of returning a value.
1081 * keywords.c (keyword_undump): Updated.
1083 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
1085 * dump.c, dump.h: Modified a lot.
1086 (SCM_DUMP_COOKIE): Version 0.1
1087 (scm_dump_mark): Removed.
1088 (scm_restore_cell_object, scm_store_cell_object): New functions.
1090 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
1091 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
1092 New slots: dump, undump.
1093 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
1096 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
1097 (keyword_undump): Renamed from keyword_alloc.
1098 (scm_init_keywords): Set keyword_dump and keyword_undump.
1100 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
1102 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
1103 the deprecated SCM_DOUBLE_CELLP.
1105 * tags.h (SCM_DOUBLE_CELLP): deprecated.
1107 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
1109 * dump.c, dump.h: New files.
1110 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
1111 * init.c: #include "libguile/dump.h".
1112 (scm_init_guile_1): Call scm_init_dump.
1113 * smob.h (scm_smob_descriptor): New slots: dump_mark,
1114 dump_dealloc, dump_store, undump_alloc, undump_restore,
1116 * smob.c (scm_make_smob_type): Init the new slots.
1117 (scm_set_smob_dump, scm_set_smob_undump): New functions.
1118 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
1120 * keywords.c: #include "libguile/dump.h".
1121 (keyword_dealloc, keyword_alloc): New functions.
1122 (scm_init_keywords): Set smob_dump and smob_undump.
1124 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
1126 * vectors.c (scm_c_make_vector): New function.
1127 * vectors.h (scm_c_make_vector): Declared.
1128 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
1129 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
1130 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
1131 (scm_make_method_cache, scm_i_vector2list,
1132 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
1133 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
1134 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
1135 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
1136 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
1137 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
1138 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
1139 (scm_vector, scm_make_vector): Use scm_c_make_vector.
1141 * hashtab.c (scm_c_make_hash_table): New function.
1142 * hashtab.h (scm_c_make_hash_table): Declared.
1143 * environments.c (scm_make_leaf_environment,
1144 scm_make_eval_environment), gc.c (scm_init_storage),
1145 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
1146 Use scm_c_make_hash_table.
1148 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1150 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
1152 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1154 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
1157 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
1158 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
1159 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
1160 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
1161 srcprop.c (scm_source_properties, scm_set_source_properties_x,
1162 scm_source_property, scm_set_source_property_x), sort.c
1163 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
1164 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
1165 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
1168 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1170 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
1171 really get that arg.
1173 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
1175 * goops.c (s_scm_get_keyword): Bug fix.
1177 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1179 The following patch was sent by Martin Grabmueller. It makes sure
1180 that in case of parameter errors the correct function name is
1181 shown, and that parameter types are only checked once.
1183 * strop.c (string_copy, string_upcase_x, string_downcase_x,
1184 string_capitalize_x): New functions. Each one performs the core
1185 functionality of the corresponding scm_* function.
1187 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
1188 scm_string_downcase_x, scm_string_downcase,
1189 scm_string_capitalize_x, scm_string_capitalize): Reduced to
1190 parameter checking wrappers of the above functions.
1192 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1194 * continuations.c, dynl.c, keywords.c, load.c: Include
1195 strings.h. Thanks to Bill Schottstaedt for the bug report.
1197 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1199 * backtrace.c (display_header): Make sure that line and column
1200 information is shown independent of whether the port the code was
1201 read from had an associated filename. Thanks to Martin
1202 Grabmueller for providing this patch.
1204 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1206 * fports.[ch] (scm_file_port_p): New primitive.
1208 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1210 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
1211 These are now defined in fports.c, strports.c and vports.c.
1213 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
1214 vports.c (scm_tc16_sfport): Made variables (were macros defined in
1217 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
1218 (scm_make_sfptob): Made static. These return a type code now.
1220 fports.c (scm_init_fports), strports.c (scm_init_strports),
1221 vports.c (scm_init_vports): Create the corresponding port types.
1223 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
1224 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
1226 * init.c (scm_init_guile_1): Make sure strports are initialized
1229 * ports.[ch] (scm_make_port_type): Changed the return type to
1232 * ports.c (scm_ports_prehistory): Don't create any port types
1235 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
1236 against scm_tc16_fport directly.
1238 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1240 * srcprop.c (scm_set_source_property_x): Fix to handle
1241 (set-source-property! <obj> 'copy <datum>) correctly.
1243 2001-01-24 Gary Houston <ghouston@arglist.com>
1245 * filesys.c (scm_link): docstring fix.
1246 * fports.h (scm_setfileno): obsolete declaration removed.
1247 * posix.c: bogus popen declaration removed.
1249 * rdelim.c: new file, split from ioext.c.
1250 * rdelim.h: new file, split from ioext.h
1251 * Makefile.am: add rdelim.c and related files.
1252 * init.c: call scm_init_rdelim. include rdelim.h.
1254 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1256 This patch was sent by Martin Grabmueller and makes sure that
1257 parameter errors are reported correctly by the lexicographic
1258 ordering predicates.
1260 * strorder.c (string_less_p, string_ci_less_p): New functions.
1262 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
1263 functionality into string_less_p, string_ci_less_p respectively.
1264 The remaining code is just a wrapper to do the parameter
1267 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
1268 parameters and call string_less_p instead of scm_string_less_p.
1270 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
1271 Check the parameters and call string_less_ci_p instead of
1272 scm_string_ci_less_p.
1274 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1276 This patch modifies scm_display_error to perform parameter
1277 checking. Thanks to Neil Jerram for the bug report.
1279 * backtrace.[ch] (scm_i_display_error): New function.
1281 * backtrace.c (scm_display_error): Added parameter check and
1282 extracted the core functionality into function
1283 scm_i_display_error.
1285 * throw.c (handler_message): Call scm_i_display_error to display
1288 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1290 * eval.c (SCM_APPLY): Added # args check for application of
1291 procedures with arity 3. (Thanks to Anders Holst.)
1293 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1295 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
1297 (SCM_OPDIRP): Deprecated.
1299 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
1302 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
1303 Instead, give an explicit error message in case the directory is
1306 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
1307 instead of SCM_OPENP and SCM_CLOSEDP.
1309 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
1311 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1313 * eval.c (inner_eval, scm_eval): Move all real functionality into
1314 inner_eval. Avoid to copy the expression twice by inlining some
1315 code from scm_i_eval.
1317 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1319 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
1320 now has to be the last clause, as required by R5RS. Thanks to
1321 Martin Grabmueller for the patch.
1323 2001-01-18 Gary Houston <ghouston@arglist.com>
1325 * ioext.c: further simplify scm_read_string_x_partial by defining
1328 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1330 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
1332 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1334 * __scm.h: Added comment about architecture and compiler
1335 properties that are required by guile.
1337 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
1338 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
1340 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
1342 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
1344 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
1345 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
1347 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1349 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
1350 to the names in limits.h.
1352 * numbers.c (abs_most_negative_fixnum): Added.
1354 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
1355 fixnum-min) special case.
1357 (scm_big_and): Fix for negative first parameter.
1359 (scm_bit_extract): Fix for fixnum paramters.
1360 Thanks to Rob Browning for the bug report.
1362 (scm_init_numbers): Initialize abs_most_negative_fixnum.
1364 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1366 * symbols.c (scm_symbol_bound_p): Fixed comment.
1367 Thanks to Chris Cramer.
1369 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1371 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
1372 Thanks to Bill Schottstaedt.
1374 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
1376 from Matthias Köppe:
1378 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
1379 casts its result, so doesn't yield an lvalue per ANSI C.
1381 * goops.c (s_scm_sys_set_object_setter_x): use
1382 SCM_SET_ENTITY_SETTER.
1383 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
1385 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
1386 its result, so doesn't yield an lvalue per ANSI C.
1387 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
1388 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
1389 SCM_GC_SET_CARD_FLAGS.
1390 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
1392 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
1394 2001-01-08 Gary Houston <ghouston@arglist.com>
1396 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
1397 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
1398 socket.c (scm_recvfrom): use the new macro, plus minor docstring
1400 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
1401 for fdes. if current input port is used, check that it's a file
1404 2001-01-06 Gary Houston <ghouston@arglist.com>
1406 * ioext.c (scm_read_string_x_partial): new procedure, implements
1407 read-string!/partial.
1408 * ports.c (scm_take_from_input_buffers): new procedure used by
1409 scm_read_string_x_partial.
1410 (scm_drain_input): use scm_take_from_input_buffers.
1412 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
1414 * validate.h (SCM_VALIDATE_NUMBER): New.
1416 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
1418 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
1419 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
1420 SET_DESTROYED): new defines/macros.
1421 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
1422 (add_to_live_list): takes a `guardian_t *' now, not SCM.
1423 (guardian_print): print more info.
1424 (guardian_apply): check if the guardian is destroyed, and throw an
1425 error if so. take one more optional argument `throw_p'.
1426 (scm_guard): depending on the value of `throw_p', return a boolean
1428 (scm_get_one_zombie): remove redundant property test.
1429 (guardian_t): represent the various (currently 3, I hope nothing
1430 more gets added) boolean fields as bit flags.
1431 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
1432 (scm_destroy_guardian_x): new procedure.
1434 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
1435 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
1437 2001-01-01 Gary Houston <ghouston@arglist.com>
1439 * fports.c (fport_write): bugfix: handle short writes for
1440 unbuffered ports too. optimize the buffered case by minimizing
1441 the number of write/flush calls.
1442 (write_all): new helper procedure.
1444 The ChangeLog continues in the file: "ChangeLog-2000"