Make (ice-9 buffered-input) more general
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
97d0e20b
GH
12001-03-10 Gary Houston <ghouston@arglist.com>
2
3 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
4 not already defined.
5
e75341b3
MD
62001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7
8 * coop.c: Inserted #include <stdio.h>.
9
10 * iselect.c: Reinserted #include <stdio.h>.
11
74355186
MV
122001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
13
14 * posix.c: Replaced `#define' of __USE_XOPEN right before
15 including unistd.h with a define of _GNU_SOURCE at the very top of
16 the file.
17
783e7774
KN
182001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
19
20 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
21 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
22 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
23 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
24 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
25 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
26 print.c, procprop.c, procs.c, properties.c, ramap.c,
27 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
28 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
29 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
30 Remove #include <stdio.h>
31 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
32
33 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
34
9a677c37
MG
352001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
36
37 * posix.c (scm_gethostname): Set initial name length to 256 for
38 Solaris.
39
94e6d793
MG
402001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
41
42 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
43 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
44 (scm_sethostname, scm_gethostname): New prototypes.
45
46 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
47 <sys/file.h>, if present.
48 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
49 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
50 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
51 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
52 (scm_sethostname, scm_gethostname): New procedures.
53
650a1cf9
NJ
542001-03-08 Neil Jerram <neil@ossau.uklinux.net>
55
56 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
57 not optional (ii) "recommend" spelling correction.
58
9636b49c
MD
592001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
60
5e4a4d09
MD
61 * ramap.c (racp): Removed optimization which caused array copying
62 to fail if the two arrays shared storage. Re-inserted the IVDEP
63 macros removed in the change of 2000-03-09. (Don't really have a
64 complete grasp of what they are for, but they seem to be necessary
65 on Crays. This needs testing!) Thanks to Miroslav Silovic.
66
9636b49c
MD
67 * hash.c (scm_string_hash): Don't downcase characters.
68
04a4d666
MD
692001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
70
9636b49c 71 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
04a4d666
MD
72 size from 277 --> 1009.
73
74 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
75 function.
76
77 * coop-threads.c: Fixed change of 2001-03-06.
78
79 * validate.h: Code formatting.
80
66418d34
KN
812001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
82
83 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
84 (*.doc): Add dependency on guile-snarf.awk.in.
85
86 * guile-snarf.awk.in: Neglect spaces at the end of
87 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
88 middle of docstrings. (To avoid the problem with gcc-2.96.)
89
2ade72d7
DH
902001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
91
92 * coop-threads.c (scm_call_with_new_thread), load.c
93 (scm_primitive_load, scm_sys_search_load_path), random.c
94 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
95 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
96 (potentially) issue a scm-misc-error or wrong-num-args error
97 message.
98
99 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
100 about the expected type with the wrong-type-arg error message.
101
102 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
103 a C level bug that can't be fixed from scheme anyway.
104
586d7da2
MD
1052001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
106
107 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
108 Duplicate bindings are OK in a let* since a let* is semantically
109 equivalent to a nested set of let:s.
110
1dd05fd8
MG
1112001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
112
113 * print.c (scm_print_options): Fixed texinfo in docstring.
114
115 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
116 the underlying functions getservent, getprotoent or getnetent
117 return NULL instead of signalling an error.
118
439006bf
GH
1192001-03-04 Gary Houston <ghouston@arglist.com>
120
121 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
122 taking an unexpectedly large filename for an AF_UNIX socket from
123 bind/connect/sendto (thanks to Martin Grabmueller).
124
125 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
126 former and adjusted the latter.
127 (scm_socket, scm_socketpair): cosmetic changes.
128 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
129 size_t as socklen_t substitute. don't restrict args/return values
130 to INUM: allow full range of int or size_t.
131 (scm_fill_sockaddr): check arguments before allocating memory, to
132 avoid leakage. use malloc, not scm_must_malloc.
133 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
134 substitute. free the sockaddr structure before throwing an error.
135 (scm_init_add_buffer): procedure removed, together with its static
136 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
137 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
138 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
139 scm_sendto): use a local buffer instead of scm_addr_buffer.
140 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
141 not size_t.
142 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
143 call to detect whether recvfrom could be bothered to set the address.
144 (scm_init_socket): don't call scm_init_addr_buffer.
145
276dd677
DH
1462001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
147
148 * debug.c (scm_procedure_source, scm_procedure_environment),
149 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
150 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
151 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
152 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
153 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
154 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
155 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
156 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
157 scm_array_to_list, scm_array_prototype), validate.h
158 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
159 scm_misc_error or scm_wrong_type_arg instead.
160
161 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
162
5e03762c
MD
1632001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
164
165 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
166 (scm_sys_tag_body): Added.
167
db4b4ca6
DH
1682001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
169
170 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
171 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
172 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
173 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
174 options.c (scm_options), ports.c (scm_remove_from_port_table),
175 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
176 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
177 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
178 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
179 instead.
180
87e7741d
MD
1812001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
182
183 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
184
d19b0aac
MV
1852001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
186
187 * eval.c (scm_s_duplicate_bindings): New error message.
188 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
189
2fd945df
MV
1902001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
191
192 * eval.h (SCM_EVALIM2): New macro. Use it when a
193 immediate, literal constant should be evaluated.
194 * eval.c (scm_s_duplicate_formals): New error message string.
195 (scm_c_improper_memq): New function.
196 (scm_m_lambda): Check for duplicate arguments.
197 (scm_ceval, scm_deval): When executing a body: only cons a new
198 toplevel environment frame when it is different from the
199 existing one; use EVALCAR instead of SIDEVAL so that we can properly
200 check for empty combinations; use SCM_EVALIM2 for the same reason
201 in the non-toplevel loop.
202 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
203 New labels with the meaning of their non-"nontoplevel" partners,
204 but they are used when it is known that the body is not evaluated at
205 top-level.
206 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
207 reporting for empty combinations.
208
9e6fc585
KN
2092001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
210
211 * Remove dump facilities.
212 * dump.c, dump.h: Removed.
213 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
214 * init.c: Remove #include "libguile/dump.h".
215 (scm_init_guile_1): Remove scm_init_dump.
216 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
217 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
218 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
219 (scm_set_smob_dump, scm_set_smob_undump): Removed.
220
221 * keywords.c: Remove #include "libguile/dump.h".
222 (keyword_dump, keyword_undump): Removed.
223 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
224
eae54bf0
MG
2252001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
226
227 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
228 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
229 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
230 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
231 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
232 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
233 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
234 to @code{} as the texinfo manual recommends, converted the
235 examples to use a @lisp{}-environment.
236
237 * strports.c (scm_eval_string): Cleaned up the docstring.
238
239 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
240 markup.
241
242 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
243 (scm_number_to_string, scm_string_to_number, scm_number_p)
244 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
245 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
246 (scm_ash): Added texinfo markup and removed obsolete @refill.
247 (scm_gr_p): Corrected comment.
248 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
249 docstring) comments.
250 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
251 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
252 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
253 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
254 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
255 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
256 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
257 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
258
23deee81
DH
2592001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
260
261 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
262 (Obviously nobody compiles with SCM_RECKLESS defined...)
263
264 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
265
6fe692e9
MD
2662001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
267
268 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
269
270 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
271
27c37006
NJ
2722001-02-24 Neil Jerram <neil@ossau.uklinux.net>
273
274 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
275 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
276 since use of `z' suggests that the arguments may be complex.
277
278 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
279 typos.
280
2069af38
NJ
2812001-02-23 Neil Jerram <neil@ossau.uklinux.net>
282
283 * dump.c (scm_binary_write, scm_binary_read), eval.c
284 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
285 scm_guardian_greedy_p, scm_make_guardian), fports.c
286 (scm_file_port_p): Minor docstring fixes.
287
b42ff180
MV
2882001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
289
2069af38 290 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
97ea55f8
MV
291
292 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
293 scm_i_eval.
294 (make_class_from_template): Do not bother to set the current
295 module around the call to DEFVAR, scm_eval takes care of that.
296 (scm_init_goops): Make scm_module_goops and
297 scm_goops_lookup_closure permanent objects.
298
299 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
300 top level, create a fresh top-level environment for each
301 expression instead of mutating the exisint frame. This is
302 important when that frame is closed over.
303
b42ff180
MV
304 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
305 SCM_DIGSPERLONG instead of DIGSPERLONG.
306
09f2ab1e
MV
3072001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
308
309 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
310 before applying arrow procedure in `cond' and before applying
311 receiver procedure in call-with-current-continuation.
312 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
313 macro. The argument is expanded more than one time.
314
315 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
316 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
317
3182001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
319
320 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
321 notice and license.
322
7090240c
MG
3232001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
324
325 * variable.c (scm_make_variable, scm_make_undefined_variable)
326 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
327 (scm_variable_bound_p), values.c (scm_values)
328 (scm_call_with_values), unif.c (scm_bit_count)
329 (scm_bit_set_star_x), symbols.c (scm_gentemp)
330 (scm_gensym), strings.c (scm_string_p, scm_make_string)
331 (scm_read_only_string_p, scm_string_length, scm_string_ref)
332 (scm_string_set_x, scm_substring, scm_string_append), stime.c
333 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
334 (scm_copy_random_state, scm_random), print.c (scm_newline)
335 (scm_write_char, scm_simple_format), debug-malloc.c
336 (scm_malloc_stats), environments.c (scm_environment_p)
337 (scm_environment_bound_p, scm_environment_ref)
338 (scm_environment_fold, scm_environment_define)
339 (scm_environment_undefine, scm_environment_set_x)
340 (scm_environment_cell, scm_environment_observe)
341 (scm_environment_observe_weak, scm_environment_unobserve)
342 (scm_make_eval_environment, scm_eval_environment_p)
343 (scm_eval_environment_set_local_x, scm_eval_environment_local)
344 (scm_eval_environment_imported)
345 (scm_eval_environment_set_imported_x, scm_make_import_environment)
346 (scm_import_environment_p, scm_import_environment_imports)
347 (scm_import_environment_set_imports_x, scm_make_export_environment)
348 (scm_export_environment_p, scm_export_environment_private)
349 (scm_export_environment_set_private_x)
350 (scm_export_environment_signature)
351 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
352 Added texinfo markup.
353
354 * ports.c (scm_drain_input): Lowercased argument to @var.
355 (scm_current_input_port, scm_current_output_port): Filled in
356 missing explanation.
357 (scm_current_load_port, scm_set_current_output_port)
358 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
359 Added texinfo markup.
360
361 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
362 (scm_release_arbiter): Added texinfo markup to docstrings.
363 Changed `Returns' to `Return'.
364 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
365
25703850
NJ
3662001-02-16 Neil Jerram <neil@ossau.uklinux.net>
367
368 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
369 by doubling them to `@@'.
370
73c0fdce
MG
3712001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
372
373 * numbers.c (scm_lognot), random.c (scm_random,
374 scm_random_normal, scm_random_solid_sphere_x,
375 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
376 scm_random_exp), dynwind.c
377 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
378
379 * goops.c (scm_sys_initialize_object, scm_instance_p,
380 scm_class_name, scm_class_precedence_list, scm_class_slots,
381 scm_class_environment, scm_generic_function_name,
382 scm_generic_function_methods, scm_method_generic_function,
383 scm_method_specializers, scm_method_procedure, scm_make_unbound,
384 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
385 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
386 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
387 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
388 scm_class_direct_supers, scm_class_direct_slots,
389 scm_class_direct_subclasses, scm_class_direct_methods,
390 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
391 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
392 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
393 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
394 scm_memoized_environment, scm_procedure_name,
395 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
396 objects.c
397 (scm_class_of, scm_entity_p, scm_operator_p,
398 scm_set_object_procedure_x, scm_object_procedure,
399 scm_make_class_object), hooks.c (scm_make_hook_with_name,
400 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
401 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
402 scm_hook_to_list), lang.c
403 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
404 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
405 (scm_print_options, scm_port_with_print_state,
406 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
407 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
408 scm_make_procedure_with_setter, scm_procedure), throw.c
409 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
410 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
411 scm_stack_ref, scm_stack_length, scm_frame_p,
412 scm_last_stack_frame, scm_frame_number, scm_frame_source,
413 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
414 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
415 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
416 (scm_dirname, scm_basename), dynwind.c
417 (scm_wind_chain), read.c (scm_read_options, scm_read,
418 scm_read_hash_extend), gc.c
419 (scm_unhash_name), eval.c (scm_eval_options_interface,
420 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
421 (scm_display_error, scm_set_print_params_x,
422 scm_display_application, scm_display_backtrace, scm_backtrace),
423 async.c (scm_async, scm_system_async, scm_async_mark,
424 scm_system_async_mark, scm_run_asyncs, scm_noop,
425 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
426 scm_mask_signals): Added docstrings.
427
e228a203
KN
4282001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
429
430 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
431 address of car/cdr. (Thanks to Dirk Herrmann)
432 Use scm_sizet to obtain the length of strings.
433 (Thanks to Matthias Koeppe)
434
1552a59d
MV
4352001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
436
437 * symbols.c (scm_mem2symbol): Put a empty statement after the
438 next_symbol label. This is mandated by ANSI, appearantly.
439
3178f751
MV
4402001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
441
442 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
443 sense to compile for a specific kernel version. Do not include
444 <asm/signal.h> while defining __KERNEL__. This hack should no
445 longer be needed and caused problems.
446
7af4defe
MV
4472001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
448
449 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
450 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
451 can not deal with immediates.
452
5d6bb349
KN
4532001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
454
455 * list.c (scm_list_copy): Validate the first argument.
456
ec9709f0
MV
4572001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
458
459 Fix evaluator so that top-level expressions are correctly
460 evaluated with respect to the module system.
461
462 * modules.h. modules.c (scm_current_module_lookup_closure): New
463 function.
464
465 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
466 prototypes.
467 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
468 names to better reflect their meaning.
469
470 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
471 evaluated at top-level and synronize lookup closure before
472 executing every subform.
473 (scm_primitve_eval_x, scm_primitive_eval): New functions.
474 (scm_eval_x, scm_eval): Reimplement in terms of
475 scm_primitive_eval_x and scm_primitive_eval, respectively.
476
4772001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
478
479 * macros.c (scm_macro_name, scm_macro_transformer): Use
480 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
481 Thanks!
482
42417394
KN
4832001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
484
485 * dump.c (scm_store_bytes): Store data size before data.
486 (scm_restore_bytes): Restore data size. Takes a pointer to size.
487 * dump.h (scm_restore_bytes): Updated.
488
bf942687
KN
4892001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
490
491 * dump.c: Use double cells for update schedule.
492
1be4270a
KN
4932001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
494
495 * ports.c (scm_unread_char): Take an optional argument.
496
548728ea
MV
4972001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
498
499 * modules.h (scm_selected_module, scm_current_module): Renamed
500 scm_selected_module to scm_current_module to synchronize Scheme
501 and C names.
502 (scm_select_module, scm_set_current_module): Likewise. Changed
503 all uses.
504
505 * ports.c (scm_port_for_each): Make a snapshot of the port table
506 before iterating over it. The table might change while the user
507 code is running. With the snapshot, the user can depend on the
c5408bc3 508 fact that each port that existed at the start of the iteration is
548728ea
MV
509 encountered exactly once. (ice-9 popen) depends on this.
510
cb0d8be2
DH
5112001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
512
513 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
514
515 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
516 range checking for the size parameter. Thanks to Martin
517 Grabmueller for the hint.
518
519 (scm_makstr): Reordered string initialization to make interrupt
520 deferring unnecessary.
521
522 * vectors.c (scm_make_vector): Fixed range checking.
523
e382fdbe
DH
5242001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
525
526 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
527
528 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
529 checking of the size parameter for type correctness and valid
530 range. Thanks to Rob Browning for reporting the problem. Instead
531 of deferring interrupts, scm_remember_upto_here_1 is used.
532
bf8f0922
KN
5332001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
534
535 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
536 (scm_dump_cell_update): Removed.
537 (scm_dump_update): Renamed from scm_dump_object_update.
538 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
539 a pointer instead of returning a value.
540 * keywords.c (keyword_undump): Updated.
541
914cceec
KN
5422001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
543
544 * dump.c, dump.h: Modified a lot.
5f17c66f 545 (SCM_DUMP_COOKIE): Version 0.1
914cceec
KN
546 (scm_dump_mark): Removed.
547 (scm_restore_cell_object, scm_store_cell_object): New functions.
548
549 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
550 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
551 New slots: dump, undump.
552 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
553 Updated.
554
555 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
556 (keyword_undump): Renamed from keyword_alloc.
557 (scm_init_keywords): Set keyword_dump and keyword_undump.
558
ecf470a2
ML
5592001-02-03 Michael Livshin <mlivshin@bigfoot.com>
560
561 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
562 the deprecated SCM_DOUBLE_CELLP.
563
564 * tags.h (SCM_DOUBLE_CELLP): deprecated.
565
03416a99
KN
5662001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
567
568 * dump.c, dump.h: New files.
569 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
570 * init.c: #include "libguile/dump.h".
571 (scm_init_guile_1): Call scm_init_dump.
572 * smob.h (scm_smob_descriptor): New slots: dump_mark,
573 dump_dealloc, dump_store, undump_alloc, undump_restore,
574 undump_init.
575 * smob.c (scm_make_smob_type): Init the new slots.
576 (scm_set_smob_dump, scm_set_smob_undump): New functions.
577 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
578
579 * keywords.c: #include "libguile/dump.h".
580 (keyword_dealloc, keyword_alloc): New functions.
581 (scm_init_keywords): Set smob_dump and smob_undump.
582
00ffa0e7
KN
5832001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
584
585 * vectors.c (scm_c_make_vector): New function.
586 * vectors.h (scm_c_make_vector): Declared.
587 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
588 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
589 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
590 (scm_make_method_cache, scm_i_vector2list,
591 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
592 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
593 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
594 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
595 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
596 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
597 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
598 (scm_vector, scm_make_vector): Use scm_c_make_vector.
599
600 * hashtab.c (scm_c_make_hash_table): New function.
601 * hashtab.h (scm_c_make_hash_table): Declared.
602 * environments.c (scm_make_leaf_environment,
603 scm_make_eval_environment), gc.c (scm_init_storage),
604 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
605 Use scm_c_make_hash_table.
606
b8446ce8
MD
6072001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
608
609 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
610
e3239868
DH
6112001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
612
613 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
614 end of docstring.
615
616 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
617 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
618 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
619 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
620 srcprop.c (scm_source_properties, scm_set_source_properties_x,
621 scm_source_property, scm_set_source_property_x), sort.c
622 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
623 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
624 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
625 docstrings.
626
41ee56dd
MD
6272001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
628
629 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
630 really get that arg.
631
b6311c08
KN
6322001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
633
634 * goops.c (s_scm_get_keyword): Bug fix.
635
a49af0c0
DH
6362001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
637
638 The following patch was sent by Martin Grabmueller. It makes sure
639 that in case of parameter errors the correct function name is
640 shown, and that parameter types are only checked once.
641
642 * strop.c (string_copy, string_upcase_x, string_downcase_x,
643 string_capitalize_x): New functions. Each one performs the core
644 functionality of the corresponding scm_* function.
645
646 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
647 scm_string_downcase_x, scm_string_downcase,
648 scm_string_capitalize_x, scm_string_capitalize): Reduced to
649 parameter checking wrappers of the above functions.
650
13070bd3
DH
6512001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
652
653 * continuations.c, dynl.c, keywords.c, load.c: Include
654 strings.h. Thanks to Bill Schottstaedt for the bug report.
655
2f2b390c
DH
6562001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
657
658 * backtrace.c (display_header): Make sure that line and column
659 information is shown independent of whether the port the code was
660 read from had an associated filename. Thanks to Martin
661 Grabmueller for providing this patch.
662
efa40607
DH
6632001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
664
665 * fports.[ch] (scm_file_port_p): New primitive.
666
a98bddfd
DH
6672001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
668
669 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
670 These are now defined in fports.c, strports.c and vports.c.
671
672 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
673 vports.c (scm_tc16_sfport): Made variables (were macros defined in
674 tags.h).
675
676 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
677 (scm_make_sfptob): Made static. These return a type code now.
678
679 fports.c (scm_init_fports), strports.c (scm_init_strports),
680 vports.c (scm_init_vports): Create the corresponding port types.
681
682 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
683 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
684
685 * init.c (scm_init_guile_1): Make sure strports are initialized
686 before gdbint.
687
688 * ports.[ch] (scm_make_port_type): Changed the return type to
689 scm_bits_t.
690
691 * ports.c (scm_ports_prehistory): Don't create any port types
692 here.
693
694 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
695 against scm_tc16_fport directly.
696
0419a528
DH
6972001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
698
699 * srcprop.c (scm_set_source_property_x): Fix to handle
700 (set-source-property! <obj> 'copy <datum>) correctly.
701
6d36532c
GH
7022001-01-24 Gary Houston <ghouston@arglist.com>
703
704 * filesys.c (scm_link): docstring fix.
705 * fports.h (scm_setfileno): obsolete declaration removed.
706 * posix.c: bogus popen declaration removed.
707
708 * rdelim.c: new file, split from ioext.c.
709 * rdelim.h: new file, split from ioext.h
710 * Makefile.am: add rdelim.c and related files.
711 * init.c: call scm_init_rdelim. include rdelim.h.
712
3ba5a6c2
DH
7132001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
714
715 This patch was sent by Martin Grabmueller and makes sure that
716 parameter errors are reported correctly by the lexicographic
717 ordering predicates.
718
719 * strorder.c (string_less_p, string_ci_less_p): New functions.
720
721 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
722 functionality into string_less_p, string_ci_less_p respectively.
723 The remaining code is just a wrapper to do the parameter
724 checking.
725
726 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
727 parameters and call string_less_p instead of scm_string_less_p.
728
729 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
730 Check the parameters and call string_less_ci_p instead of
731 scm_string_ci_less_p.
732
e40a4095
DH
7332001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
734
ed6a2db9
DH
735 This patch modifies scm_display_error to perform parameter
736 checking. Thanks to Neil Jerram for the bug report.
737
e40a4095
DH
738 * backtrace.[ch] (scm_i_display_error): New function.
739
740 * backtrace.c (scm_display_error): Added parameter check and
741 extracted the core functionality into function
742 scm_i_display_error.
743
744 * throw.c (handler_message): Call scm_i_display_error to display
745 the error message.
746
f1e06a96
MD
7472001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
748
749 * eval.c (SCM_APPLY): Added # args check for application of
750 procedures with arity 3. (Thanks to Anders Holst.)
751
30ea841d
DH
7522001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
753
754 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
755
756 (SCM_OPDIRP): Deprecated.
757
758 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
759 SCM_OPN.
760
761 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
762 Instead, give an explicit error message in case the directory is
763 closed.
764
765 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
766 instead of SCM_OPENP and SCM_CLOSEDP.
767
768 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
769
312ae976
DH
7702001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
771
772 * eval.c (inner_eval, scm_eval): Move all real functionality into
773 inner_eval. Avoid to copy the expression twice by inlining some
774 code from scm_i_eval.
775
4567ed78
DH
7762001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
777
778 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
779 now has to be the last clause, as required by R5RS. Thanks to
780 Martin Grabmueller for the patch.
781
10288a09
GH
7822001-01-18 Gary Houston <ghouston@arglist.com>
783
784 * ioext.c: further simplify scm_read_string_x_partial by defining
785 a macro SCM_EBLOCK.
786
8f379a8f
DH
7872001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
788
789 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
790
5c75b29f
DH
7912001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
792
793 * __scm.h: Added comment about architecture and compiler
794 properties that are required by guile.
795
796 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
797 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
798
799 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
800
801 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
802
803 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
804 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
805
ac0c002c
DH
8062001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
807
808 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
809 to the names in limits.h.
810
811 * numbers.c (abs_most_negative_fixnum): Added.
812
813 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
814 fixnum-min) special case.
815
816 (scm_big_and): Fix for negative first parameter.
817
818 (scm_bit_extract): Fix for fixnum paramters.
819 Thanks to Rob Browning for the bug report.
820
821 (scm_init_numbers): Initialize abs_most_negative_fixnum.
822
debe0dc2
DH
8232001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
824
825 * symbols.c (scm_symbol_bound_p): Fixed comment.
826 Thanks to Chris Cramer.
827
8a39e3fc
DH
8282001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
829
830 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
831 Thanks to Bill Schottstaedt.
832
322ec19d
ML
8332001-01-11 Michael Livshin <mlivshin@bigfoot.com>
834
835