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