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