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