* Removed SCM_CDR misuse.
[bpt/guile.git] / libguile / ChangeLog
1 2001-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2
3 * print.h (PRINTH, SCM_PRINT_H): Renamed PRINTH to SCM_PRINT_H.
4
5 (SCM_PORT_WITH_PS_PORT, SCM_PORT_WITH_PS_PS): Only pairs may be
6 accessed with SCM_C[AD]R.
7
8 (SCM_COERCE_OUTPORT): Removed redundant SCM_NIMP test.
9
10 2001-05-16 Rob Browning <rlb@cs.utexas.edu>
11
12 * version.c (s_scm_major_version): doc fixes.
13 (s_scm_minor_version): doc fixes.
14 (s_scm_minor_version): new function.
15
16 * version.h (scm_init_version): new function.
17
18 * versiondat.h.in: add GUILE_MICRO_VERSION.
19
20 2001-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
21
22 * deprecation.c (scm_init_deprecation): Renamed
23 GUILE_WARN_DEPRECATED_DEFAULT to SCM_WARN_DEPRECATED_DEFAULT.
24
25 2001-05-16 Marius Vollmer <mvo@zagadka.ping.de>
26
27 * Makefile.am (cpp_sig_symbols.c, cpp_err_symbols.c): Make
28 dependent on cpp_cnvt.awk
29
30 2001-05-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
31
32 * script.c (scm_compile_shell_switches): New command line option
33 `--use-srfi' for loading a list of SRFIs on startup.
34 (scm_shell_usage): Added `--use-srfi' to help message.
35
36 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
37
38 Merged from mvo-vcell-cleanup-1-branch.
39
40 The concept of vcells has been removed from Guile. With it,
41 explicit obarrays and associated operations are gone. Use
42 hashtables instead of obarrays.
43
44 Throughout: use scm_sym2var instead of scm_sym2vcell and treat
45 result as variable instead of vcell. Glocs no longer point to a
46 vcell but to a variable. Use scm_c_define instead of
47 scm_sysintern and treat the result as a variable (which it is),
48 not a vcell.
49
50 * variable.c, variable.h (SCM_VARVCELL, SCM_UDVARIABLEP,
51 SCM_DEFVARIABLEP): Deprecated.
52 (SCM_VARIABLE_REF, SCM_VARIABLE_SET, SCM_VARIABLE_LOC): New.
53 (variable_print): Do not print name of variable.
54 (variable_equalp): Compare values, not vcells.
55 (anonymous_variable_sym): Removed.
56 (make_vcell_variable): Removed.
57 (make_variable): New, as replacement.
58 (scm_make_variable, scm_make_undefined_variable): Do not take name
59 hint parameter.
60 (scm_variable_ref): Check for SCM_UNDEFINED and throw "unbound"
61 error in that case.
62 (scm_builtin_variable): Deprecated.
63
64 * symbols.c, symbols.h (scm_sym2vcell, scm_sym2ovcell_soft,
65 scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
66 scm_intern, scm_intern0, scm_sysintern0_no_module_lookup,
67 scm_sysintern, scm_sysintern0, scm_symbol_value0,
68 scm_string_to_obarray_symbol, scm_intern_symbol,
69 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned,
70 scm_symbol_bound_p, scm_symbol_set_x, scm_gentmp, gentmp_counter):
71 Deprecated and moved to "symbols-deprecated.c".
72 (copy_and_prune_obarray, scm_builtin_bindings): Removed.
73 (scm_init_symbols): Call scm_init_symbols_deprecated.
74 * symbols-deprecated.c: New file.
75 * Makefile.am: Added symbols-deprecated.c and related files in all
76 the right places.
77
78 * snarf.h (SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
79 SCM_GLOBAL_VCELL_INIT): Deprecated.
80 (SCM_VARIABLE, SCM_GLOBAL_VARIABLE, SCM_VARIABLE_INIT,
81 SCM_GLOBAL_VARIABLE_INIT): New, as replacement. Changed all uses.
82
83 * print.c (scm_iprin1): Use scm_module_reverse_lookup instead of
84 SCM_GLOC_SYM.
85
86 * evalext.c, filesys.c, fports.c, gdbint.c, gh_data.c, gsubr.c,
87 hooks.c, load.c, numbers.c, objects.c, ports.c, posix.c, procs.c,
88 ramap.c, random.c, read.c, regex-posix.c, scmsigs.c, script.c,
89 socket.c, srcprop.c, stacks.c, stime.c, struct.c, tag.c, throw.c:
90 Changed according to the `throughout' comments.
91
92 * modules.h, modules.c (scm_module_system_booted_p): Changed type
93 to `int'.
94 (scm_module_type): Removed.
95 (the_root_module): Renamed to the_root_module_var. Now points to
96 a variable instead of a vcell. Updated all uses.
97 (scm_the_root_module): Return SCM_BOOL_F when module systems
98 hasn't been booted yet.
99 (SCM_VALIDATE_STRUCT_TYPE): Removed.
100 (scm_post_boot_init_modules): Made static.
101 (scm_set_current_module): Call scm_post_boot_init_modules on first
102 call.
103 (make_modules_in, beautify_user_module_x, resolve_module,
104 try_module_autoload, module_make_local_var_x): Tacked on "_var"
105 suffix. Now point to variables instead of vcells. Updated all
106 uses.
107 (scm_module_lookup_closure): Deal with the module being SCM_BOOL_F
108 and return SCM_BOOL_F in that case.
109 (scm_module_transformer): Likewise.
110 (sym_module, scm_lookup_closure_module, scm_env_module): New.
111 (SCM_F_EVAL_CLOSURE_INTERFACE, SCM_EVAL_CLOSURE_INTERFACE_P): New.
112 (scm_eval_closure_lookup): Do not allow new definitions when
113 `interface' flag is set.
114 (scm_standard_interface_eval_closure): New.
115 (scm_pre_modules_obarray, scm_sym2var, scm_module_lookup,
116 scm_lookup, scm_module_define, scm_define, scm_c_module_lookup,
117 scm_c_lookup, scm_c_module_define, scm_c_define,
118 scm_module_reverse_lookup, scm_get_pre_modules_obarray,
119 scm_modules_prehistory): New.
120 (scm_post_boot_init_modules): Use scm_c_define and scm_c_lookup
121 instead of scm_intern0.
122
123 * macros.c (scm_make_synt): Return SCM_UNSPECIFIED instead of the
124 symbol.
125
126 * keywords.c (s_scm_make_keyword_from_dash_symbol): Use a regular
127 hashtable operations to maintain the keywords, not obarray ones.
128
129 * init.c (scm_load_startup_files): Do not call
130 scm_post_boot_init_modules. This is done by
131 scm_set_current_module now.
132 (scm_init_guile_1): Call scm_modules_prehistory. Call
133 scm_init_variable early on.
134
135 * goops.c (s_scm_sys_goops_loaded): Get
136 var_compute_applicable_methods from scm_sym2var, not from a direct
137 invocation of scm_goops_lookup_closure.
138
139 * gh_funcs.c (gh_define): Return SCM_UNSPECIFIED instead of vcell.
140
141 * gc.c: Added simple debugging hack to mark phase of GC: When
142 activated, do not tail-call scm_gc_mark. This gives nice
143 backtraces.
144 (scm_unhash_name): Removed.
145
146 * feature.c (features): Renamed to features_var. Now points to a
147 variable instead of a vcell. Updated all uses.
148
149 * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): Use
150 `scm_current_module_lookup_closure' which will do the right thing
151 when the module system hasn't been booted yet.
152 (SCM_GLOC_SYM): Removed.
153 (SCM_GLOC_VAR, SCM_GLOC_SET_VAL): New.
154 (SCM_GLOC_VAL, SCM_GLOC_LOC): Reimplemented in terms of variables.
155
156 * eval.c (scm_lookupcar, scm_lookupcar1): Deal with variables
157 instead of with vcells. Do not overwrite `var' with the result of
158 the lookup, use the new `real_var' instead. Remove `var2' in
159 exchange (which was only used with threads).
160 (sym_three_question_marks): New.
161 (scm_unmemocar): Use `scm_module_reverse_lookup' instead of
162 `SCM_GLOC_SYM'.
163 (scm_lisp_nil, scm_lisp_t): Directly define as symbols.
164 (scm_m_atfop): Expect the function definition to be a variable
165 instead of a vcell.
166 (scm_macroexp): Do not use `unmemocar', explicitely remember the
167 symbol instead.
168 (scm_unmemocopy): Removed thoughts about anti-macro interface.
169 (scm_eval_args): Use more explicit code in the gloc branch of the
170 atrocious struct ambiguity test. The optimizer will sort this
171 out.
172 (scm_deval_args): Likewise.
173 (SCM_CEVAL): Likewise. Also, do not use unmemocar, explicitely
174 remember the symbol instead. Added some comments where
175 scm_tc3_cons_gloc really exclusively refers to structs.
176 (scm_init_eval): Use scm_define to initialize "nil" and "t" to
177 scm_lisp_nil and scm_lisp_t, respectively. Use scm_define instead
178 of scm_sysintern in general.
179
180 * dynwind.c (scm_swap_bindings): Use SCM_GLOC_SET_VAL instead of
181 explicit magic.
182
183 * debug.c (s_scm_make_gloc): Only allow proper variables, no
184 pairs. Put the variable directly in the gloc.
185 (s_scm_gloc_p): Use `scm_tc3_cons_gloc' instead of the magic `1'.
186 (scm_init_debug): Use scm_c_define instead scm_sysintern.
187
188 * cpp_cnvt.awk: Emit "scm_c_define" instead of "scm_sysintern".
189
190 * backtrace.h, backtrace.c (scm_the_last_stack_fluid): Renamed to
191 scm_the_last_stack_fluid_var. It now points to a variable instead
192 of a vcell. Updated all uses.
193 (scm_has_shown_backtrace_hint_p_var): Now points to a variable
194 instead of a vcell. Updated all uses.
195
196 * _scm.h: Include "variables.h" and "modules.h" since almost
197 everybody needs them now.
198
199 * root.h (scm_symhash, scm_symhash_vars): Removed.
200 * gc.c (scm_init_storage): Do not initialize them.
201
202 2001-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
203
204 * eval.c (scm_init_eval): Initialize scm_undefineds and
205 scm_listofnull.
206
207 * gc.c (scm_debug_newcell, scm_debug_newcell2): Fixed to behave
208 like the SCM_NEWCELL macro counterparts.
209
210 (scm_init_storage, scm_init_gc): Moved initialization of
211 scm_tc16_allocated from scm_init_gc to scm_init_storage.
212
213 (scm_init_storage): Moved initialization of scm_undefineds and
214 scm_listofnull to eval.c, initializion of scm_nullstr to
215 strings.c, initializion of scm_nullvect to vectors.c.
216
217 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Prefer SCM_NULLP over
218 SCM_IMP, as in scm_debug_newcell and scm_debug_newcell2.
219
220 * init.c (scm_init_guile_1): Reordered some initializations and
221 added dependcy information comments.
222
223 * load.c (scm_init_load): Use scm_nullstr.
224
225 * strings.c (scm_init_strings): Initialize scm_nullstr.
226
227 * vectors.c (scm_init_vectors): Initialize scm_nullvect.
228
229 2001-05-15 Marius Vollmer <mvo@zagadka.ping.de>
230
231 * values.c (print_values): Print as a unreadable object, not as
232 multiple lines. Thanks to Matthias Köppe!
233
234 2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
235
236 * deprecation.c: Fixed copyright date.
237
238 * deprecation.h (DEPRECATION_H, SCM_DEPRECATION_H): Renamed
239 DEPRECATION_H to SCM_DEPRECATION_H.
240
241 2001-05-10 Thien-Thi Nguyen <ttn@revel.glug.org>
242
243 * guile-doc-snarf.in: Update copyright.
244 Fix relative path bug. Thanks to Sergey Poznyakoff.
245
246 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
247
248 * ports.c (scm_port_revealed, scm_set_port_revealed_x): Only
249 accept open ports. Thanks to Quetzalcoatl Bradley!
250
251 2001-05-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
252
253 * procs.c: Increased `scm_subr_table_room' to 800 because Guile now
254 has 779 primitives on startup.
255
256 2001-05-09 Marius Vollmer <mvo@zagadka.ping.de>
257
258 * eval.c (scm_i_eval): Copy expression before passing it to
259 SCM_XEVAL. The copy operation was removed unintendedly during my
260 change on 2001-03-25.
261
262 2001-05-09 Michael Livshin <mlivshin@bigfoot.com>
263
264 from Matthias Köppe (thanks!):
265
266 * ports.c (scm_c_read): pointer arithmetic on void pointers isn't
267 portable.
268
269 * deprecation.c (s_scm_include_deprecated_features): ANSI'fied the
270 docstring.
271
272 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
273
274 * gc.c (scm_init_gc): Added FIXME comment.
275
276 * hooks.c: Since hooks don't have a name any more, it is not
277 necessary to include objprop.h.
278
279 (hook_print, scm_add_hook_x): Replace SCM_NFALSEP by !SCM_FALSEP.
280
281 (symbol_name, scm_make_hook_with_name): Removed.
282
283 (scm_create_hook): Don't set the hook's name property.
284
285 * hooks.h (HOOKSH, SCM_HOOKS_H): Renamed HOOKSH to SCM_HOOKS_H.
286
287 (SCM_HOOK_NAME, scm_make_hook_with_name): Removed.
288
289 * init.c (scm_init_guile_1): Hooks don't use objprops any more.
290
291 * numbers.c (SCM_FLOBUFLEN, FLOBUFLEN, scm_number_to_string,
292 scm_print_real, scm_print_complex): Renamed SCM_FLOBUFLEN to
293 FLOBUFLEN and define it unconditionally.
294
295 2001-05-07 Marius Vollmer <mvo@zagadka.ping.de>
296
297 * gh_data.c (gh_lookup): Call gh_module_lookup with
298 `scm_current_module ()', not `#f'.
299 (gh_module_lookup): Expect a module instead of an obarray as first
300 argument and do lookup in that module.
301
302 * ramap.c (raeql_1): Do not call scm_uniform_vector_length on
303 arrays. The length of array is already determined differently and
304 scm_uniform_vector_length does not work on arrays.
305
306 2001-05-06 Marius Vollmer <mvo@zagadka.ping.de>
307
308 * snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
309 as well. "SCM (*)(...)" does not work on RedHat 7.1.
310
311 * __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
312 they are not used. Changed `wrong type' error into `wrong num
313 args' error. Changed all callers.
314
315 * numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
316 arguments are supplied.
317
318 2001-05-05 Thien-Thi Nguyen <ttn@revel.glug.org>
319
320 * regex-posix.c (scm_regexp_exec): Expand docstring to briefly
321 describe `regexp/notbol' and `regexp/noteol' execution flags.
322
323 * strop.c (scm_substring_move_x): Doc fix; nfc.
324
325 2001-05-05 Marius Vollmer <mvo@zagadka.ping.de>
326
327 * objects.c, objects.h (scm_valid_object_procedure_p): New.
328 (scm_set_object_procedure_x): Use it to check argument. Fix
329 docstring.
330
331 * evalext.c (scm_definedp): Fix docstring.
332
333 2001-05-05 Gary Houston <ghouston@arglist.com>
334
335 * socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
336 support.
337
338 2001-05-04 Neil Jerram <neil@ossau.uklinux.net>
339
340 * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
341 symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
342 Change R4RS references to R5RS.
343
344 * guile-snarf.awk.in: Fixes so that (i) blank lines in the
345 docstring source are correctly reproduced in the output (ii)
346 we don't anymore get occasional trailing quotes. Also reorganized
347 and commented the code a little.
348
349 * scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
350 fixes.
351
352 2001-05-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
353
354 * strop.c (scm_string_split): New procedure.
355
356 * strop.h (scm_string_split): Added prototype.
357
358 2001-05-04 Gary Houston <ghouston@arglist.com>
359
360 * socket.c: define uint32_t if netdb.h doesn't. thanks to
361 Dale P. Smith.
362
363 2001-05-02 Marius Vollmer <mvo@zagadka.ping.de>
364
365 * rw.c: Include "modules.h" and "strports.h".
366
367 * net_db.h (scm_gethost): Added prototype.
368
369 * deprecation.h, deprecation.c: New.
370 * Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
371 (DOT_X_FILES): Added "deprecation.x".
372 (modinclude_HEADERS): Added "deprecation.h".
373
374 * init.c: Include "deprecation.h".
375 (scm_init_guile_1): Call scm_init_deprecation.
376
377 2001-05-01 Marius Vollmer <mvo@zagadka.ping.de>
378
379 * gh.h (gh_init_guile, gh_make_string, gh_string_length,
380 gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
381 New.
382
383 2001-04-29 Gary Houston <ghouston@arglist.com>
384
385 * rw.c: new file, implementing C part of module (ice-9 rw).
386 (scm_read_string_x_partial): moved from ioext.c
387 (scm_init_rw): new proc.
388 * rw.h: new file.
389 init.c: include rw.h and call scm_init_rw.
390 Makefile.am: include rw.c and rw.h.
391
392 2001-04-28 Rob Browning <rlb@cs.utexas.edu>
393
394 * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
395 know what's supposed to happen to it.
396
397 * list.h (scm_list_star): deprecation expired - removed.
398
399 * numbers.h (scm_dblproc): deprecation expired - removed.
400 (SCM_UNEGFIXABLE): deprecation expired - removed.
401 (SCM_FLOBUFLEN): deprecation expired - removed.
402 (SCM_INEXP): deprecation expired - removed.
403 (SCM_CPLXP): deprecation expired - removed.
404 (SCM_REAL): deprecation expired - removed.
405 (SCM_IMAG): deprecation expired - removed.
406 (SCM_REALPART): deprecation expired - removed.
407 (scm_makdbl): deprecation expired - removed.
408 (SCM_SINGP): deprecation expired - removed.
409 (SCM_NUM2DBL): deprecation expired - removed.
410 (SCM_NO_BIGDIG): deprecation expired - removed.
411
412 * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
413 (scm_tc_dblr): deprecation expired - removed.
414 (scm_tc_dblc): deprecation expired - removed.
415 (scm_tc16_flo): deprecation expired - removed.
416 (scm_tc_flo): deprecation expired - removed.
417
418 * tag.h (scm_tag): deprecation expired - removed.
419
420 * tag.c: (scm_tag): deprecation expired - removed.
421
422 * ioext.c: (scm_fseek): deprecation expired - removed.
423
424 * ioext.h (scm_fseek): deprecation expired - removed.
425
426 * gh_data.c (gh_int2scmb): deprecation expired - removed.
427
428 * gh.h (gh_int2scmb): deprecation expired - removed.
429
430 2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
431
432 * stacks.c (scm_make_stack): Fix typo in docstring.
433
434 2001-04-27 Rob Browning <rlb@cs.utexas.edu>
435
436 * error.c (scm_sysmissing): deprecation expired - removed.
437
438 * error.h (scm_sysmissing): deprecation expired - removed.
439
440 * gc.c
441 (scm_init_gc): gc-thunk deprecation expired - removed.
442 (scm_gc_vcell): deprecation expired - removed.
443 (gc_async_thunk): scm_gc_vcell related code removed.
444
445 * vectors.h (SCM_NVECTORP): deprecation expired - removed.
446
447 * strings.h
448 (SCM_NSTRINGP): deprecation expired - removed.
449 (SCM_NRWSTRINGP): deprecation expired - removed.
450
451 * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
452
453 * chars.h
454 (SCM_ICHRP): deprecation expired - removed.
455 (SCM_ICHR): deprecation expired - removed.
456 (SCM_MAKICHR): deprecation expired - removed.
457
458 * ports.h
459 (SCM_INPORTP): deprecation expired - removed.
460 (SCM_OUTPORTP): deprecation expired - removed.
461
462 2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
463
464 * modules.c (scm_module_type): New.
465 (scm_post_boot_init_modules): Initialize from Scheme value.
466 (the_module, scm_current_module, scm_init_modules): the_module is
467 now a C only fluid.
468 (scm_current_module): Export to Scheme.
469 (scm_set_current_module): Do not call out to Scheme, do all the
470 work in C. Export procedure to Scheme. Only accept modules, `#f'
471 is no longer valid as the current module. Only set
472 scm_top_level_lookup_closure_var and scm_system_transformer when
473 they are not deprecated.
474 (scm_module_transformer, scm_current_module_transformer): New.
475
476 * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
477 scm_current_module_transformer, scm_module_transformer): New.
478
479 * gh_data.c: Removed FIXME comment about gh_lookup returning
480 SCM_UNDEFINED. That's the right thing to do.
481
482 * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
483 into the conditionally compiled sections.
484 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
485 scm_current_module_transformer instead of scm_system_transformer.
486 * init.c (start_stack): Move initialization of
487 scm_system_transformer to the deprecated section.
488
489 2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
490
491 * throw.c (scm_throw): Correct docstring.
492
493 2001-04-22 Gary Houston <ghouston@arglist.com>
494
495 * socket.c: attempted to improve the docstrings slightly.
496
497 * net_db.c: remove bogus "close" declaration.
498 (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
499 scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
500 moved to socket.c.
501 * net_db.h: declarations moved too.
502
503 * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
504 long.
505 (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
506 (VALIDATE_INET6): new macro.
507 (scm_inet_pton, scm_inet_ntop): new procedures, implementing
508 inet-pton and inet-ntop.
509 (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
510 (scm_addr_vector): use ipv6_net_to_num.
511
512 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
513
514 * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
515 smob number explicitly. Use SCM_TC2SMOBNUM instead.
516
517 * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
518 when compiled in debug mode.
519
520 (scm_gc_sweep): Only call smob's free function if it is defined.
521
522 * print.c (scm_iprin1): No need to check for validity of smob
523 type or existence of print function.
524
525 * smob.[ch] (scm_smobs): Made into a fixed size global array.
526 Resizing will not work well with preemptive threading.
527
528 * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
529
530 (scm_make_smob_type): Extracted initialization of smob
531 descriptors to scm_smob_prehistory. Don't use scm_numsmob outside
532 of the critical section.
533
534 (scm_smob_prehistory): Initialize all smob descriptors. By
535 default, don't assign a smob free function: Most smob types don't
536 need one.
537
538 * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
539
540 2001-04-21 Gary Houston <ghouston@arglist.com>
541
542 * socket.c (FLIP_NET_HOST_128): new macro.
543 (scm_fill_sockaddr): use new macro.
544 (scm_addr_vector): completed IPv6 address support. added const
545 to the address parameter.
546
547 2001-04-20 Gary Houston <ghouston@arglist.com>
548
549 * socket.c (scm_fill_sockaddr): call htons for sin6_port.
550 Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
551 is defined.
552 (scm_addr_vector): use a switch instead of multiple if statements.
553 Add support for IPv6 (incomplete) .
554 MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
555
556 2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
557
558 * struct.c (scm_free_structs): Only pairs may be accessed with
559 SCM_C[AD]R.
560
561 2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
562
563 * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
564
565 * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
566 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
567 parentheses in order to get the correct associativity.
568
569 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
570
571 * unif.c (scm_array_to_list): Added missing handling of arrays of
572 bytes. Thanks to Masao Uebayashi for the bug report.
573
574 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
575
576 * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
577 consistently.
578
579 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
580
581 * procs.h (SCM_CLOSURE_FORMALS): New macro.
582
583 * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
584 SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
585 procprop.c (scm_i_procedure_arity), sort.c (closureless): Use
586 SCM_CLOSURE_FORMALS.
587
588 * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
589 (scm_i_procedure_arity): Prefer stronger predicates like
590 SCM_NULLP or SCM_FALSEP over SCM_IMP.
591
592 * macros.c (macro_print): Extracted macro printing code from
593 print.c and simplified it.
594
595 (scm_macro_type): Use SCM_MACRO_TYPE;
596
597 (scm_init_macros): Use macro_print for printing macros.
598
599 * print.c (scm_print_opts): Improved option documentation.
600
601 (scm_iprin1): Extracted printing of macros to macros.c.
602 Simplified printing of ordinary closures.
603
604 * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
605 Martin Grabmueller for the bug report.
606
607 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
608
609 This patch eliminates some further applications of SCM_C[AD]R to
610 non pair cells.
611
612 * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
613 never been applied to real pairs.
614
615 * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
616
617 (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
618
619 * unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
620 SCM_ARRAY_CONTP): Renamed SCM_ARRAY_CONTIGUOUS to
621 SCM_ARRAY_FLAG_CONTIGUOUS and use it.
622
623 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
624 Added.
625
626 * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
627 SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
628
629 * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
630 (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
631 SCM_SET{AND,OR}_CAR.
632
633 2001-04-17 Gary Houston <ghouston@arglist.com>
634
635 * some initial support for IPv6:
636
637 * socket.c (scm_fill_sockaddr): improve the argument validation.
638 don't allocate memory until all args are checked. instead of
639 unconditional memset of soka, try setting sin_len to 0 if
640 SIN_LEN is defined. add support for AF_INET6. define FUNC_NAME.
641 (scm_socket, scm_connect): extend docstrings for IPv6.
642 (scm_init_socket): intern AF_INET6 and PF_INET6.
643
644 2001-04-17 Niibe Yutaka <gniibe@m17n.org>
645
646 * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
647 matches SCM_DEFER_INTS at the beginning of the function.
648
649 * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
650
651 * gc.c (scm_igc): Unconditionally call
652 SCM_CRITICAL_SECTION_START/END.
653
654 * fluids.c (next_fluid_num): Unconditionally call
655 SCM_CRITICAL_SECTION_START/END.
656 (s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.
657
658 * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
659 SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
660 Removed.
661
662 * __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
663 Defined as nothing for the case of !defined(USE_THREADS).
664 (SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
665 Removed.
666 (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
667 (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
668 LINE.
669 (SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
670 SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
671 SCM_THREAD_DEFER/SCM_THREAD_ALLOW. Instead, use
672 SCM_CRITICAL_SECTION_START/END.
673 (SCM_REALLOW_INTS: Bug fix. Don't call
674 SCM_THREAD_SWITCHING_CODE.
675 (SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS. Instead, use
676 SCM_THREAD_SWITCHING_CODE directly.
677 (SCM_ENTER_A_SECTION): Unconditionally use
678 SCM_CRITICAL_SECTION_START/END. (was:
679 SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).
680
681 2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
682
683 * __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS): Replaced the
684 macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
685 allowed to explicitly set this macro via the CFLAGS variable
686 during make.
687
688 * fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
689 (SCM_THREAD_CRITICAL_SECTION_START,
690 SCM_THREAD_CRITICAL_SECTION_END): Renamed
691 SCM_THREAD_CRITICAL_SECTION_START/END to
692 SCM_CRITICAL_SECTION_START/END.
693
694 2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
695
696 * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
697 instead of bzero.
698
699 * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
700 (MISSING_BZERO_DECL): Remove the declaration.
701
702 Thanks to NIIBE Yutaka.
703
704 2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
705
706 * init.c, goops.c, goops.h: Reverted change of 2001-03-29. (The
707 goops module should be registered in order to work for an
708 application which uses libguile statically linked.)
709
710 2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
711
712 * numbers.[ch] (scm_num2long, scm_num2long_long,
713 scm_num2ulong_long, scm_num2ulong): Argument position is an
714 unsigned integer.
715
716 * environments.c (eval_environment_folder,
717 import_environment_folder), gh_data.c (gh_scm2longs,
718 gh_scm2floats, gh_scm2doubles): Distinguish between 0 and NULL
719 for integers and pointers, respectively.
720
721 * gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
722 (scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
723 (SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
724 SCM_NUM2LONG_LONG): Don't pass argument positions as pointers.
725
726 * filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
727 scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
728 (scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
729 (scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
730 stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
731 validate.h (SCM_VALIDATE_LONG_COPY): Whitespace fixes.
732
733 2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
734
735 * strings.c (scm_read_only_string_p): Update docstring to reflect
736 current (non-)usage of "read only" strings.
737 (scm_make_shared_substring): Clarify docstring by changing
738 "semantics" to "arguments".
739
740 2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
741
742 * hooks.c (scm_make_hook, scm_make_hook_with_name),
743 (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
744 improvements.
745
746 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
747
748 The following changes make the documentation more consistent.
749
750 * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
751 (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
752 (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
753 (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
754 ... @end lisp.
755
756 * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
757 (scm_array_dimensions, scm_make_shared_array),
758 (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
759 throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
760 (scm_string_rindex, scm_string_index, scm_substring_fill_x),
761 (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
762 (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
763 posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
764 macros.c (scm_makmmacro), list.c (scm_append), environments.c
765 (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
766 @example ... @end example to @lisp ... @end lisp.
767
768 * weaks.c (scm_weak_vector): Corrected docstring.
769
770 * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
771 (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
772 (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
773 (scm_hashx_set_x, scm_hashx_get_handle),
774 (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
775 (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
776 vectors.c (scm_vector_fill_x), strings.c
777 (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
778 objprop.c (scm_set_object_properties_x):
779 (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
780 strports.c (scm_call_with_input_string), ports.c
781 (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
782 list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
783 (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
784 (scm_make_weak_vector,scm_weak_vector_p),
785 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
786 (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
787 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
788 macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
789 (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
790 Made parameter names match documentation by renaming parameters
791 and/or fixing docstrings.
792
793 * numbers.c (scm_ash): Corrected Texinfo markup.
794
795 * strop.c (scm_string_index, scm_string_rindex),
796 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
797
798 * vports.c (scm_make_soft_port), unif.c
799 (scm_uniform_vector_length, scm_array_p, scm_array_rank),
800 (scm_dimensions_to_uniform_array, scm_transpose_array),
801 (scm_array_in_bounds_p, scm_uniform_vector_ref),
802 (scm_bit_count, scm_bit_position, scm_bit_count_star),
803 (scm_array_to_list, scm_list_to_uniform_array),
804 (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
805 (scm_open_input_string, scm_open_output_string),
806 (scm_get_output_string), strop.c (scm_string_copy),
807 (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
808 (scm_get_internal_real_time, scm_times),
809 (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
810 (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
811 (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
812 (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
813 simpos.c (scm_system), random.c (scm_random_uniform),
814 (scm_random_normal, scm_random_exp), ramap.c
815 (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
816 (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
817 (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
818 (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
819 (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
820 (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
821 (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
822 (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
823 (scm_port_closed_p, scm_eof_object_p, scm_read_char),
824 (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
825 (scm_logand, scm_logior, scm_logxor, scm_lognot),
826 (scm_integer_expt, scm_bit_extract, scm_logcount),
827 (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
828 net_db.c (scm_inet_netof, scm_lnaof), modules.c
829 (scm_interaction_environment), macros.c (scm_makacro),
830 (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
831 (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
832 (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
833 (scm_fluid_ref), filesys.c (scm_open_fdes),
834 (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
835 Docstring correction: `Returns' -> `Return'
836
837 * gc.c (scm_set_debug_cell_accesses_x):
838 (s_scm_gc_set_debug_check_freelist_x):
839 * fluids.c (scm_fluid_p): Added texinfo markup.
840
841 * error.c (scm_strerror): Made docstring more precise.
842
843 * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
844 (scm_vector_to_list, _scm_vector_fill_x), symbols.c
845 (scm_symbol_p, scm_symbol_to_string), strorder.c
846 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
847 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
848 (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
849 (scm_string_ci_geq_p), strop.c (scm_string_copy),
850 (scm_string_fill_x): Removed `(r5rs)' from docstrings.
851
852 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
853
854 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
855 mode, as suggested by Michael Livshin.
856
857 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
858
859 * backtrace.c (display_backtrace_body): since the `print_state'
860 variable is not used (instead its data field is used directly as
861 `pstate'), protect it from the hungry compiler optimizations.
862 thanks to Bill Schottstaedt for the report.
863
864 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
865
866 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
867 It is only defined and used if guile is compiled with
868 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
869 let cells with a free_cell type tag be visible outside of the
870 garbage collector when in debug mode.
871
872 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
873
874 (scm_assert_cell_valid): Use a local static variable to avoid
875 recursion.
876
877 (MARK): Only check for rogue cell pointers in debug mode. Use
878 scm_cellp for this purpose and place all checks for rogue pointers
879 into that function. Further, since due to conservative scanning
880 we may encounter free cells during marking, don't use the standard
881 cell type accessor macro to determine the cell type.
882
883 (scm_cellp): Check if the cell pointer actually points into a
884 card header.
885
886 (scm_init_gc): Initalize scm_tc16_allocated.
887
888 * gc.h (GCH): Renamed to SCM_GC_H.
889
890 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
891 might be unnecessary, but I feel better this way :-)
892
893 (SCM_GC_CELL_TYPE): New macro.
894
895 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
896 in guile, and it is unlikely that they will be applied to real
897 pairs anyway.
898
899 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
900
901 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
902 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
903
904 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
905 make sure that in debug mode no free cell will ever be visible
906 outside of the garbage collector.
907
908 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
909
910 * async.c (scm_asyncs_pending): Don't use != to compare SCM
911 values.
912
913 * async.c (scm_system_async), variable.c (scm_make_variable,
914 scm_make_undefined_variable): Use scm_cons to create a pair.
915
916 * debug.c (scm_reverse_lookup): Perform proper type checking.
917 Remove suspicious use of SCM_SLOPPY_CONSP.
918
919 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
920 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
921 the corresponding optimization.
922
923 * eval.c (iqq): Use proper type check.
924
925 (scm_m_expand_body): Remove redundant type checks.
926
927 (promise_print): Don't access promise cells as pairs.
928
929 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
930 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
931 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
932 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
933 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
934
935 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
936 (scm_iprin1): Use new macro predicate and accessors.
937
938 * eval.h (scm_tc16_macro): Removed declaration. It is declared
939 in macros.h.
940
941 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
942 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
943 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
944 SCM_VARIABLE_H. Even the macros that are used to inhibit
945 including a header file twice should be in the SCM_ namespace.
946
947 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
948 properties.c (scm_primitive_property_ref,
949 scm_primitive_property_del_x): Prefer stronger predicates like
950 SCM_NULLP or SCM_FALSEP over SCM_IMP.
951
952 * gc.c (MARK): Use proper macros to access procedure-with-setter
953 cell elements and closure cell elements.
954
955 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
956 access free cells as pairs.
957
958 (scm_unprotect_object): scm_hashq_get_handle returns #f if
959 no hashtab entry is found.
960
961 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
962 SCM_CLR_PORT_OPEN_FLAG.
963
964 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
965 use SCM_SET_C[AD]R for uninitialized cells.
966
967 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
968 If the hashtable has no slots, return #f instead of '(). This
969 unifies the return value with most assoc-functions.
970
971 (scm_hash_fn_ref): Use proper type check.
972
973 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
974 Removed references to non-existing functions from documentation.
975
976 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
977 access keyword cell elements.
978
979 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
980 macros.
981
982 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
983
984 * print.c (scm_iprlist): Added comment. Improved loop
985 conditions.
986
987 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
988 pairs.
989
990 * smob.c (scm_markcdr): Don't access smob cells as pairs.
991
992 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
993
994 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
995 cells as pairs.
996
997 * variable.c (variable_print, variable_equalp, scm_variable_ref,
998 scm_variable_set_x): Use proper macros to access variable cell
999 elements.
1000
1001 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
1002
1003 * variable.h (SCM_VARVCELL): Don't access variable cells as
1004 pairs.
1005
1006 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
1007 added FIXME comment, removed register specifier.
1008
1009 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
1010
1011 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
1012 * init.c (scm_init_guile_1): Don't init goopscore module.
1013
1014 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
1015
1016 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
1017
1018 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1019
1020 * strop.c (scm_string_to_list): Fixed docstring markup.
1021 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
1022 (scm_string_downcase, scm_string_capitalize_x),
1023 (scm_string_capitalize): Rewrote and corrected docstrings.
1024 (scm_string_ci_to_symbol): Made docstring more explicit.
1025
1026 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
1027
1028 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
1029 eval.c can use it.
1030 (scm_call_with_values): Removed.
1031 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
1032 so that it can be exported.
1033 (scm_call_with_values): Removed.
1034
1035 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
1036 * eval.c: Include "libguile/values.h"
1037 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
1038 New.
1039 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
1040 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
1041 New delcarations to support above change.
1042
1043 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
1044 errors with last change.
1045
1046 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
1047
1048 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
1049 scm_i_eval): Moved the application of the system transformer from
1050 scm_i_eval to scm_primitive_eval.
1051
1052 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
1053
1054 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
1055
1056 * strop.c (scm_string_index): Fix docstring line break
1057 regression.
1058
1059 * list.c (scm_cons_star): Fix docstring typo.
1060
1061 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1062
1063 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
1064 (big2str), ports.c (scm_drain_input), read.c (scm_read,
1065 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
1066 scm_make_string, scm_string_append), strports.c (st_resize_port,
1067 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
1068 scm_makstr with calls to scm_allocate_string.
1069
1070 * strings.[ch] (scm_allocate_string): New function.
1071
1072 * strings.[ch] (scm_makstr): Deprecated.
1073
1074 2001-03-18 Gary Houston <ghouston@arglist.com>
1075
1076 * posix.c (scm_tmpnam): check that return value from tmpnam is not
1077 NULL. rewrote the docstring.
1078 (scm_mkstemp): new procedure implementing "mkstemp!".
1079 * posix.h: declare scm_mkstemp.
1080
1081 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
1082 normally it would be found in netdb.h.
1083
1084 2001-03-17 Gary Houston <ghouston@arglist.com>
1085
1086 * sort.c (scm_sort): move sortvec variable to avoid a compiler
1087 warning when HAVE_ARRAYS is not defined. move len too.
1088
1089 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
1090 (EXTRA_DOT_X_FILES): let configure set the value.
1091 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
1092
1093 * gc.c (scm_must_malloc): changed the comment explaining when
1094 scm_must variants of malloc/free etc., should be used, based on
1095 explanation from Dirk Herrmann.
1096 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
1097 string with procedure name. use scm_must_malloc instead of malloc.
1098 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
1099 of malloc/free.
1100 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
1101 scm_ungetc): use scm_must variants of malloc/realloc/free.
1102 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
1103
1104 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1105
1106 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
1107 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
1108 scm_wrong_type_arg instead.
1109
1110 (SCM_WNA): Deprecated.
1111
1112 * error.[ch] (scm_wta): Deprecated.
1113
1114 * numbers.c (s_i_log): Minor comment fix.
1115
1116 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
1117 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
1118 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
1119 wrong-num-args or misc errors.
1120
1121 * unif.c (scm_make_shared_array, scm_transpose_array,
1122 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
1123 Validate the rest argument (note: this is only done when guile is
1124 built with SCM_DEBUG_REST_ARGUMENT=1)
1125
1126 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
1127 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
1128
1129 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
1130 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
1131
1132 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1133
1134 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
1135 instead of scm_wrong_num_args.
1136
1137 * coop-threads.c: Don't include libguile/strings.h. (Was only
1138 needed for former implementation of SCM_WRONG_NUM_ARGS.)
1139
1140 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
1141 wrong-num-args errors.
1142
1143 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1144
1145 * error.[ch] (scm_error_num_args_subr): New function.
1146
1147 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1148
1149 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
1150 (scm_length, scm_append, scm_reverse, scm_list_ref),
1151 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
1152 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
1153 (scm_delete1_x), gc.c (scm_map_free_list),
1154 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
1155 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
1156 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
1157 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
1158 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
1159 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
1160 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
1161
1162 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
1163 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
1164 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
1165 symbols.c (scm_symbol_interned_p), numbers.c
1166 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
1167 markup.
1168
1169 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
1170
1171 * snarf.h (SCM_CONST_LONG): Deprecated.
1172 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
1173
1174 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1175
1176 * numbers.c (scm_num2ulong): Check that a bignum is positive
1177 before looking at the magnitude. Correctly check for overflow
1178 during conversion.
1179 (scm_num2long_long): Likewise.
1180 (scm_num2ulong_long): New.
1181 (ULONG_LONG_MAX): Define if not already defined.
1182 * numbers.h: (scm_num2ulong_long): New prototype.
1183
1184 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1185
1186 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
1187
1188 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
1189 (SCM_OPOUTSTRPORTP): New predicate macros.
1190 (scm_open_input_string, scm_open_output_string),
1191 (scm_get_output_string): New prototypes.
1192
1193 * strports.c (scm_open_input_string, scm_open_output_string),
1194 (scm_get_output_string): New procedures (SRFI-6 compliant).
1195 Made scm_tc16_strport non-static.
1196
1197 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1198
1199 * macros.h (SCM_ASSYNT): Removed unused object argument from
1200 signature.
1201
1202 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
1203 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
1204 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
1205 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
1206 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
1207 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
1208 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
1209 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
1210 scm_m_atdispatch): Removed unused object argument from call to
1211 SCM_ASSYNT.
1212
1213 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1214
1215 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
1216 const int* to reflect that the input array of integers remains
1217 unchanged. Thanks to Brett Viren for the hint.
1218
1219 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1220
1221 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
1222 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
1223 in various places.
1224 (gh_scm2newstr, gh_symbol2newstr): Change call to
1225 scm_must_malloc() to malloc(), because user-free()able memory is
1226 allocated.
1227
1228 * gc.c: Added declaration of `scm_debug_check_freelist'.
1229
1230 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1231
1232 * ports.c (scm_port_mode): Changed `mode' array size to 4.
1233
1234 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
1235
1236 * strports.c (scm_object_to_string): New procedure.
1237 (scm_strprint_obj): Deprecated.
1238 * strports.h: Reflect the changes.
1239
1240 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
1241
1242 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
1243
1244 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
1245 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
1246 SCM_ASSYNT to check for correct argument types. Either use some
1247 SCM_VALIDATE_* macro or an explicit test.
1248
1249 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
1250 misc-errors.
1251
1252 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
1253 instead of calling scm_wta.
1254
1255 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1256
1257 * load.c (scm_primitive_load, scm_primitive_load_path),
1258 (scm_sys_search_load_path): Corrected docstrings (file ->
1259 filename).
1260
1261 * eval.c (scm_force): Added texinfo markup to docstring.
1262 (scm_promise_p): Renamed parameter to `obj' to match docstring.
1263
1264 * debug-malloc.c: Reinserted #include <stdio.h>.
1265
1266 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
1267
1268 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
1269
1270 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
1271 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
1272 Use SCM_LISTn instead of scm_listify.
1273
1274 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1275
1276 * _scm.h: Removed #include <errno.h>.
1277
1278 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
1279 errno variable (can be a macro on some systems, for example when
1280 using linux libc with threads).
1281
1282 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
1283 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
1284 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
1285 #include <errno.h> in these 20 out of 100 files.
1286
1287 2001-03-10 Gary Houston <ghouston@arglist.com>
1288
1289 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
1290 not already defined.
1291
1292 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1293
1294 * coop.c: Inserted #include <stdio.h>.
1295
1296 * iselect.c: Reinserted #include <stdio.h>.
1297
1298 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
1299
1300 * posix.c: Replaced `#define' of __USE_XOPEN right before
1301 including unistd.h with a define of _GNU_SOURCE at the very top of
1302 the file.
1303
1304 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
1305
1306 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
1307 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
1308 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
1309 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
1310 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
1311 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
1312 print.c, procprop.c, procs.c, properties.c, ramap.c,
1313 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
1314 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
1315 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
1316 Remove #include <stdio.h>
1317 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
1318
1319 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
1320
1321 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1322
1323 * posix.c (scm_gethostname): Set initial name length to 256 for
1324 Solaris.
1325
1326 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1327
1328 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
1329 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
1330 (scm_sethostname, scm_gethostname): New prototypes.
1331
1332 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
1333 <sys/file.h>, if present.
1334 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
1335 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
1336 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
1337 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
1338 (scm_sethostname, scm_gethostname): New procedures.
1339
1340 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
1341
1342 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
1343 not optional (ii) "recommend" spelling correction.
1344
1345 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1346
1347 * ramap.c (racp): Removed optimization which caused array copying
1348 to fail if the two arrays shared storage. Re-inserted the IVDEP
1349 macros removed in the change of 2000-03-09. (Don't really have a
1350 complete grasp of what they are for, but they seem to be necessary
1351 on Crays. This needs testing!) Thanks to Miroslav Silovic.
1352
1353 * hash.c (scm_string_hash): Don't downcase characters.
1354
1355 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1356
1357 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
1358 size from 277 --> 1009.
1359
1360 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
1361 function.
1362
1363 * coop-threads.c: Fixed change of 2001-03-06.
1364
1365 * validate.h: Code formatting.
1366
1367 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
1368
1369 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
1370 (*.doc): Add dependency on guile-snarf.awk.in.
1371
1372 * guile-snarf.awk.in: Neglect spaces at the end of
1373 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
1374 middle of docstrings. (To avoid the problem with gcc-2.96.)
1375
1376 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1377
1378 * coop-threads.c (scm_call_with_new_thread), load.c
1379 (scm_primitive_load, scm_sys_search_load_path), random.c
1380 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
1381 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
1382 (potentially) issue a scm-misc-error or wrong-num-args error
1383 message.
1384
1385 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
1386 about the expected type with the wrong-type-arg error message.
1387
1388 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
1389 a C level bug that can't be fixed from scheme anyway.
1390
1391 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1392
1393 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
1394 Duplicate bindings are OK in a let* since a let* is semantically
1395 equivalent to a nested set of let:s.
1396
1397 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1398
1399 * print.c (scm_print_options): Fixed texinfo in docstring.
1400
1401 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
1402 the underlying functions getservent, getprotoent or getnetent
1403 return NULL instead of signalling an error.
1404
1405 2001-03-04 Gary Houston <ghouston@arglist.com>
1406
1407 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
1408 taking an unexpectedly large filename for an AF_UNIX socket from
1409 bind/connect/sendto (thanks to Martin Grabmueller).
1410
1411 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
1412 former and adjusted the latter.
1413 (scm_socket, scm_socketpair): cosmetic changes.
1414 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
1415 size_t as socklen_t substitute. don't restrict args/return values
1416 to INUM: allow full range of int or size_t.
1417 (scm_fill_sockaddr): check arguments before allocating memory, to
1418 avoid leakage. use malloc, not scm_must_malloc.
1419 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
1420 substitute. free the sockaddr structure before throwing an error.
1421 (scm_init_add_buffer): procedure removed, together with its static
1422 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
1423 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
1424 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
1425 scm_sendto): use a local buffer instead of scm_addr_buffer.
1426 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
1427 not size_t.
1428 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
1429 call to detect whether recvfrom could be bothered to set the address.
1430 (scm_init_socket): don't call scm_init_addr_buffer.
1431
1432 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
1433
1434 * debug.c (scm_procedure_source, scm_procedure_environment),
1435 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
1436 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
1437 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
1438 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
1439 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
1440 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
1441 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
1442 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
1443 scm_array_to_list, scm_array_prototype), validate.h
1444 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
1445 scm_misc_error or scm_wrong_type_arg instead.
1446
1447 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
1448
1449 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1450
1451 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
1452 (scm_sys_tag_body): Added.
1453
1454 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
1455
1456 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
1457 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
1458 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
1459 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
1460 options.c (scm_options), ports.c (scm_remove_from_port_table),
1461 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
1462 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
1463 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
1464 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
1465 instead.
1466
1467 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1468
1469 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
1470
1471 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
1472
1473 * eval.c (scm_s_duplicate_bindings): New error message.
1474 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
1475
1476 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
1477
1478 * eval.h (SCM_EVALIM2): New macro. Use it when a
1479 immediate, literal constant should be evaluated.
1480 * eval.c (scm_s_duplicate_formals): New error message string.
1481 (scm_c_improper_memq): New function.
1482 (scm_m_lambda): Check for duplicate arguments.
1483 (scm_ceval, scm_deval): When executing a body: only cons a new
1484 toplevel environment frame when it is different from the
1485 existing one; use EVALCAR instead of SIDEVAL so that we can properly
1486 check for empty combinations; use SCM_EVALIM2 for the same reason
1487 in the non-toplevel loop.
1488 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
1489 New labels with the meaning of their non-"nontoplevel" partners,
1490 but they are used when it is known that the body is not evaluated at
1491 top-level.
1492 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
1493 reporting for empty combinations.
1494
1495 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
1496
1497 * Remove dump facilities.
1498 * dump.c, dump.h: Removed.
1499 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
1500 * init.c: Remove #include "libguile/dump.h".
1501 (scm_init_guile_1): Remove scm_init_dump.
1502 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
1503 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
1504 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
1505 (scm_set_smob_dump, scm_set_smob_undump): Removed.
1506
1507 * keywords.c: Remove #include "libguile/dump.h".
1508 (keyword_dump, keyword_undump): Removed.
1509 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
1510
1511 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1512
1513 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
1514 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
1515 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
1516 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
1517 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
1518 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
1519 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
1520 to @code{} as the texinfo manual recommends, converted the
1521 examples to use a @lisp{}-environment.
1522
1523 * strports.c (scm_eval_string): Cleaned up the docstring.
1524
1525 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
1526 markup.
1527
1528 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
1529 (scm_number_to_string, scm_string_to_number, scm_number_p)
1530 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
1531 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
1532 (scm_ash): Added texinfo markup and removed obsolete @refill.
1533 (scm_gr_p): Corrected comment.
1534 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
1535 docstring) comments.
1536 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
1537 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
1538 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
1539 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
1540 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
1541 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
1542 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
1543 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
1544
1545 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1546
1547 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
1548 (Obviously nobody compiles with SCM_RECKLESS defined...)
1549
1550 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
1551
1552 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1553
1554 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
1555
1556 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
1557
1558 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
1559
1560 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
1561 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
1562 since use of `z' suggests that the arguments may be complex.
1563
1564 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
1565 typos.
1566
1567 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
1568
1569 * dump.c (scm_binary_write, scm_binary_read), eval.c
1570 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
1571 scm_guardian_greedy_p, scm_make_guardian), fports.c
1572 (scm_file_port_p): Minor docstring fixes.
1573
1574 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
1575
1576 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
1577
1578 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
1579 scm_i_eval.
1580 (make_class_from_template): Do not bother to set the current
1581 module around the call to DEFVAR, scm_eval takes care of that.
1582 (scm_init_goops): Make scm_module_goops and
1583 scm_goops_lookup_closure permanent objects.
1584
1585 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
1586 top level, create a fresh top-level environment for each
1587 expression instead of mutating the exisint frame. This is
1588 important when that frame is closed over.
1589
1590 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
1591 SCM_DIGSPERLONG instead of DIGSPERLONG.
1592
1593 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
1594
1595 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
1596 before applying arrow procedure in `cond' and before applying
1597 receiver procedure in call-with-current-continuation.
1598 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
1599 macro. The argument is expanded more than one time.
1600
1601 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
1602 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
1603
1604 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
1605
1606 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
1607 notice and license.
1608
1609 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1610
1611 * variable.c (scm_make_variable, scm_make_undefined_variable)
1612 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
1613 (scm_variable_bound_p), values.c (scm_values)
1614 (scm_call_with_values), unif.c (scm_bit_count)
1615 (scm_bit_set_star_x), symbols.c (scm_gentemp)
1616 (scm_gensym), strings.c (scm_string_p, scm_make_string)
1617 (scm_read_only_string_p, scm_string_length, scm_string_ref)
1618 (scm_string_set_x, scm_substring, scm_string_append), stime.c
1619 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
1620 (scm_copy_random_state, scm_random), print.c (scm_newline)
1621 (scm_write_char, scm_simple_format), debug-malloc.c
1622 (scm_malloc_stats), environments.c (scm_environment_p)
1623 (scm_environment_bound_p, scm_environment_ref)
1624 (scm_environment_fold, scm_environment_define)
1625 (scm_environment_undefine, scm_environment_set_x)
1626 (scm_environment_cell, scm_environment_observe)
1627 (scm_environment_observe_weak, scm_environment_unobserve)
1628 (scm_make_eval_environment, scm_eval_environment_p)
1629 (scm_eval_environment_set_local_x, scm_eval_environment_local)
1630 (scm_eval_environment_imported)
1631 (scm_eval_environment_set_imported_x, scm_make_import_environment)
1632 (scm_import_environment_p, scm_import_environment_imports)
1633 (scm_import_environment_set_imports_x, scm_make_export_environment)
1634 (scm_export_environment_p, scm_export_environment_private)
1635 (scm_export_environment_set_private_x)
1636 (scm_export_environment_signature)
1637 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
1638 Added texinfo markup.
1639
1640 * ports.c (scm_drain_input): Lowercased argument to @var.
1641 (scm_current_input_port, scm_current_output_port): Filled in
1642 missing explanation.
1643 (scm_current_load_port, scm_set_current_output_port)
1644 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
1645 Added texinfo markup.
1646
1647 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
1648 (scm_release_arbiter): Added texinfo markup to docstrings.
1649 Changed `Returns' to `Return'.
1650 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
1651
1652 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
1653
1654 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
1655 by doubling them to `@@'.
1656
1657 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1658
1659 * numbers.c (scm_lognot), random.c (scm_random,
1660 scm_random_normal, scm_random_solid_sphere_x,
1661 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
1662 scm_random_exp), dynwind.c
1663 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
1664
1665 * goops.c (scm_sys_initialize_object, scm_instance_p,
1666 scm_class_name, scm_class_precedence_list, scm_class_slots,
1667 scm_class_environment, scm_generic_function_name,
1668 scm_generic_function_methods, scm_method_generic_function,
1669 scm_method_specializers, scm_method_procedure, scm_make_unbound,
1670 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
1671 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
1672 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
1673 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
1674 scm_class_direct_supers, scm_class_direct_slots,
1675 scm_class_direct_subclasses, scm_class_direct_methods,
1676 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
1677 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
1678 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
1679 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
1680 scm_memoized_environment, scm_procedure_name,
1681 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
1682 objects.c
1683 (scm_class_of, scm_entity_p, scm_operator_p,
1684 scm_set_object_procedure_x, scm_object_procedure,
1685 scm_make_class_object), hooks.c (scm_make_hook_with_name,
1686 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
1687 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
1688 scm_hook_to_list), lang.c
1689 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
1690 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
1691 (scm_print_options, scm_port_with_print_state,
1692 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
1693 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
1694 scm_make_procedure_with_setter, scm_procedure), throw.c
1695 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
1696 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
1697 scm_stack_ref, scm_stack_length, scm_frame_p,
1698 scm_last_stack_frame, scm_frame_number, scm_frame_source,
1699 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
1700 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
1701 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
1702 (scm_dirname, scm_basename), dynwind.c
1703 (scm_wind_chain), read.c (scm_read_options, scm_read,
1704 scm_read_hash_extend), gc.c
1705 (scm_unhash_name), eval.c (scm_eval_options_interface,
1706 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
1707 (scm_display_error, scm_set_print_params_x,
1708 scm_display_application, scm_display_backtrace, scm_backtrace),
1709 async.c (scm_async, scm_system_async, scm_async_mark,
1710 scm_system_async_mark, scm_run_asyncs, scm_noop,
1711 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
1712 scm_mask_signals): Added docstrings.
1713
1714 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
1715
1716 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
1717 address of car/cdr. (Thanks to Dirk Herrmann)
1718 Use scm_sizet to obtain the length of strings.
1719 (Thanks to Matthias Koeppe)
1720
1721 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
1722
1723 * symbols.c (scm_mem2symbol): Put a empty statement after the
1724 next_symbol label. This is mandated by ANSI, appearantly.
1725
1726 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1727
1728 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
1729 sense to compile for a specific kernel version. Do not include
1730 <asm/signal.h> while defining __KERNEL__. This hack should no
1731 longer be needed and caused problems.
1732
1733 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
1734
1735 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
1736 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
1737 can not deal with immediates.
1738
1739 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
1740
1741 * list.c (scm_list_copy): Validate the first argument.
1742
1743 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
1744
1745 Fix evaluator so that top-level expressions are correctly
1746 evaluated with respect to the module system.
1747
1748 * modules.h. modules.c (scm_current_module_lookup_closure): New
1749 function.
1750
1751 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
1752 prototypes.
1753 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
1754 names to better reflect their meaning.
1755
1756 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
1757 evaluated at top-level and synronize lookup closure before
1758 executing every subform.
1759 (scm_primitve_eval_x, scm_primitive_eval): New functions.
1760 (scm_eval_x, scm_eval): Reimplement in terms of
1761 scm_primitive_eval_x and scm_primitive_eval, respectively.
1762
1763 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
1764
1765 * macros.c (scm_macro_name, scm_macro_transformer): Use
1766 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
1767 Thanks!
1768
1769 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
1770
1771 * dump.c (scm_store_bytes): Store data size before data.
1772 (scm_restore_bytes): Restore data size. Takes a pointer to size.
1773 * dump.h (scm_restore_bytes): Updated.
1774
1775 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
1776
1777 * dump.c: Use double cells for update schedule.
1778
1779 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
1780
1781 * ports.c (scm_unread_char): Take an optional argument.
1782
1783 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1784
1785 * modules.h (scm_selected_module, scm_current_module): Renamed
1786 scm_selected_module to scm_current_module to synchronize Scheme
1787 and C names.
1788 (scm_select_module, scm_set_current_module): Likewise. Changed
1789 all uses.
1790
1791 * ports.c (scm_port_for_each): Make a snapshot of the port table
1792 before iterating over it. The table might change while the user
1793 code is running. With the snapshot, the user can depend on the
1794 fact that each port that existed at the start of the iteration is
1795 encountered exactly once. (ice-9 popen) depends on this.
1796
1797 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1798
1799 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
1800
1801 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
1802 range checking for the size parameter. Thanks to Martin
1803 Grabmueller for the hint.
1804
1805 (scm_makstr): Reordered string initialization to make interrupt
1806 deferring unnecessary.
1807
1808 * vectors.c (scm_make_vector): Fixed range checking.
1809
1810 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1811
1812 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
1813
1814 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
1815 checking of the size parameter for type correctness and valid
1816 range. Thanks to Rob Browning for reporting the problem. Instead
1817 of deferring interrupts, scm_remember_upto_here_1 is used.
1818
1819 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
1820
1821 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
1822 (scm_dump_cell_update): Removed.
1823 (scm_dump_update): Renamed from scm_dump_object_update.
1824 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
1825 a pointer instead of returning a value.
1826 * keywords.c (keyword_undump): Updated.
1827
1828 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
1829
1830 * dump.c, dump.h: Modified a lot.
1831 (SCM_DUMP_COOKIE): Version 0.1
1832 (scm_dump_mark): Removed.
1833 (scm_restore_cell_object, scm_store_cell_object): New functions.
1834
1835 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
1836 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
1837 New slots: dump, undump.
1838 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
1839 Updated.
1840
1841 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
1842 (keyword_undump): Renamed from keyword_alloc.
1843 (scm_init_keywords): Set keyword_dump and keyword_undump.
1844
1845 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
1846
1847 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
1848 the deprecated SCM_DOUBLE_CELLP.
1849
1850 * tags.h (SCM_DOUBLE_CELLP): deprecated.
1851
1852 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
1853
1854 * dump.c, dump.h: New files.
1855 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
1856 * init.c: #include "libguile/dump.h".
1857 (scm_init_guile_1): Call scm_init_dump.
1858 * smob.h (scm_smob_descriptor): New slots: dump_mark,
1859 dump_dealloc, dump_store, undump_alloc, undump_restore,
1860 undump_init.
1861 * smob.c (scm_make_smob_type): Init the new slots.
1862 (scm_set_smob_dump, scm_set_smob_undump): New functions.
1863 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
1864
1865 * keywords.c: #include "libguile/dump.h".
1866 (keyword_dealloc, keyword_alloc): New functions.
1867 (scm_init_keywords): Set smob_dump and smob_undump.
1868
1869 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
1870
1871 * vectors.c (scm_c_make_vector): New function.
1872 * vectors.h (scm_c_make_vector): Declared.
1873 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
1874 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
1875 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
1876 (scm_make_method_cache, scm_i_vector2list,
1877 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
1878 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
1879 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
1880 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
1881 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
1882 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
1883 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
1884 (scm_vector, scm_make_vector): Use scm_c_make_vector.
1885
1886 * hashtab.c (scm_c_make_hash_table): New function.
1887 * hashtab.h (scm_c_make_hash_table): Declared.
1888 * environments.c (scm_make_leaf_environment,
1889 scm_make_eval_environment), gc.c (scm_init_storage),
1890 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
1891 Use scm_c_make_hash_table.
1892
1893 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1894
1895 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
1896
1897 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1898
1899 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
1900 end of docstring.
1901
1902 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
1903 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
1904 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
1905 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
1906 srcprop.c (scm_source_properties, scm_set_source_properties_x,
1907 scm_source_property, scm_set_source_property_x), sort.c
1908 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
1909 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
1910 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
1911 docstrings.
1912
1913 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1914
1915 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
1916 really get that arg.
1917
1918 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
1919
1920 * goops.c (s_scm_get_keyword): Bug fix.
1921
1922 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1923
1924 The following patch was sent by Martin Grabmueller. It makes sure
1925 that in case of parameter errors the correct function name is
1926 shown, and that parameter types are only checked once.
1927
1928 * strop.c (string_copy, string_upcase_x, string_downcase_x,
1929 string_capitalize_x): New functions. Each one performs the core
1930 functionality of the corresponding scm_* function.
1931
1932 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
1933 scm_string_downcase_x, scm_string_downcase,
1934 scm_string_capitalize_x, scm_string_capitalize): Reduced to
1935 parameter checking wrappers of the above functions.
1936
1937 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1938
1939 * continuations.c, dynl.c, keywords.c, load.c: Include
1940 strings.h. Thanks to Bill Schottstaedt for the bug report.
1941
1942 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1943
1944 * backtrace.c (display_header): Make sure that line and column
1945 information is shown independent of whether the port the code was
1946 read from had an associated filename. Thanks to Martin
1947 Grabmueller for providing this patch.
1948
1949 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1950
1951 * fports.[ch] (scm_file_port_p): New primitive.
1952
1953 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1954
1955 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
1956 These are now defined in fports.c, strports.c and vports.c.
1957
1958 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
1959 vports.c (scm_tc16_sfport): Made variables (were macros defined in
1960 tags.h).
1961
1962 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
1963 (scm_make_sfptob): Made static. These return a type code now.
1964
1965 fports.c (scm_init_fports), strports.c (scm_init_strports),
1966 vports.c (scm_init_vports): Create the corresponding port types.
1967
1968 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
1969 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
1970
1971 * init.c (scm_init_guile_1): Make sure strports are initialized
1972 before gdbint.
1973
1974 * ports.[ch] (scm_make_port_type): Changed the return type to
1975 scm_bits_t.
1976
1977 * ports.c (scm_ports_prehistory): Don't create any port types
1978 here.
1979
1980 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
1981 against scm_tc16_fport directly.
1982
1983 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1984
1985 * srcprop.c (scm_set_source_property_x): Fix to handle
1986 (set-source-property! <obj> 'copy <datum>) correctly.
1987
1988 2001-01-24 Gary Houston <ghouston@arglist.com>
1989
1990 * filesys.c (scm_link): docstring fix.
1991 * fports.h (scm_setfileno): obsolete declaration removed.
1992 * posix.c: bogus popen declaration removed.
1993
1994 * rdelim.c: new file, split from ioext.c.
1995 * rdelim.h: new file, split from ioext.h
1996 * Makefile.am: add rdelim.c and related files.
1997 * init.c: call scm_init_rdelim. include rdelim.h.
1998
1999 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2000
2001 This patch was sent by Martin Grabmueller and makes sure that
2002 parameter errors are reported correctly by the lexicographic
2003 ordering predicates.
2004
2005 * strorder.c (string_less_p, string_ci_less_p): New functions.
2006
2007 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
2008 functionality into string_less_p, string_ci_less_p respectively.
2009 The remaining code is just a wrapper to do the parameter
2010 checking.
2011
2012 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
2013 parameters and call string_less_p instead of scm_string_less_p.
2014
2015 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
2016 Check the parameters and call string_less_ci_p instead of
2017 scm_string_ci_less_p.
2018
2019 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2020
2021 This patch modifies scm_display_error to perform parameter
2022 checking. Thanks to Neil Jerram for the bug report.
2023
2024 * backtrace.[ch] (scm_i_display_error): New function.
2025
2026 * backtrace.c (scm_display_error): Added parameter check and
2027 extracted the core functionality into function
2028 scm_i_display_error.
2029
2030 * throw.c (handler_message): Call scm_i_display_error to display
2031 the error message.
2032
2033 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2034
2035 * eval.c (SCM_APPLY): Added # args check for application of
2036 procedures with arity 3. (Thanks to Anders Holst.)
2037
2038 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2039
2040 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
2041
2042 (SCM_OPDIRP): Deprecated.
2043
2044 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
2045 SCM_OPN.
2046
2047 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
2048 Instead, give an explicit error message in case the directory is
2049 closed.
2050
2051 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
2052 instead of SCM_OPENP and SCM_CLOSEDP.
2053
2054 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
2055
2056 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
2057
2058 * eval.c (inner_eval, scm_eval): Move all real functionality into
2059 inner_eval. Avoid to copy the expression twice by inlining some
2060 code from scm_i_eval.
2061
2062 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2063
2064 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
2065 now has to be the last clause, as required by R5RS. Thanks to
2066 Martin Grabmueller for the patch.
2067
2068 2001-01-18 Gary Houston <ghouston@arglist.com>
2069
2070 * ioext.c: further simplify scm_read_string_x_partial by defining
2071 a macro SCM_EBLOCK.
2072
2073 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
2074
2075 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
2076
2077 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
2078
2079 * __scm.h: Added comment about architecture and compiler
2080 properties that are required by guile.
2081
2082 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
2083 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
2084
2085 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
2086
2087 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
2088
2089 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
2090 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
2091
2092 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2093
2094 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
2095 to the names in limits.h.
2096
2097 * numbers.c (abs_most_negative_fixnum): Added.
2098
2099 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
2100 fixnum-min) special case.
2101
2102 (scm_big_and): Fix for negative first parameter.
2103
2104 (scm_bit_extract): Fix for fixnum paramters.
2105 Thanks to Rob Browning for the bug report.
2106
2107 (scm_init_numbers): Initialize abs_most_negative_fixnum.
2108
2109 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2110
2111 * symbols.c (scm_symbol_bound_p): Fixed comment.
2112 Thanks to Chris Cramer.
2113
2114 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2115
2116 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
2117 Thanks to Bill Schottstaedt.
2118
2119 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
2120
2121 from Matthias Köppe:
2122
2123 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
2124 casts its result, so doesn't yield an lvalue per ANSI C.
2125
2126 * goops.c (s_scm_sys_set_object_setter_x): use
2127 SCM_SET_ENTITY_SETTER.
2128 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
2129
2130 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
2131 its result, so doesn't yield an lvalue per ANSI C.
2132 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
2133 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
2134 SCM_GC_SET_CARD_FLAGS.
2135 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
2136
2137 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
2138
2139 2001-01-08 Gary Houston <ghouston@arglist.com>
2140
2141 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
2142 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
2143 socket.c (scm_recvfrom): use the new macro, plus minor docstring
2144 changes.
2145 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
2146 for fdes. if current input port is used, check that it's a file
2147 port.
2148
2149 2001-01-06 Gary Houston <ghouston@arglist.com>
2150
2151 * ioext.c (scm_read_string_x_partial): new procedure, implements
2152 read-string!/partial.
2153 * ports.c (scm_take_from_input_buffers): new procedure used by
2154 scm_read_string_x_partial.
2155 (scm_drain_input): use scm_take_from_input_buffers.
2156
2157 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
2158
2159 * validate.h (SCM_VALIDATE_NUMBER): New.
2160
2161 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
2162
2163 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
2164 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
2165 SET_DESTROYED): new defines/macros.
2166 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
2167 (add_to_live_list): takes a `guardian_t *' now, not SCM.
2168 (guardian_print): print more info.
2169 (guardian_apply): check if the guardian is destroyed, and throw an
2170 error if so. take one more optional argument `throw_p'.
2171 (scm_guard): depending on the value of `throw_p', return a boolean
2172 result.
2173 (scm_get_one_zombie): remove redundant property test.
2174 (guardian_t): represent the various (currently 3, I hope nothing
2175 more gets added) boolean fields as bit flags.
2176 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
2177 (scm_destroy_guardian_x): new procedure.
2178
2179 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
2180 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
2181
2182 2001-01-01 Gary Houston <ghouston@arglist.com>
2183
2184 * fports.c (fport_write): bugfix: handle short writes for
2185 unbuffered ports too. optimize the buffered case by minimizing
2186 the number of write/flush calls.
2187 (write_all): new helper procedure.
2188
2189 The ChangeLog continues in the file: "ChangeLog-2000"