2002-01-28 Stefan Jahn <stefan@lkcc.org>
[bpt/guile.git] / libguile / ChangeLog
1 2002-01-28 Stefan Jahn <stefan@lkcc.org>
2
3 * symbols.c (scm_c_symbol2str): New function, replacement for
4 `gh_scm2newsymbol()'.
5
6 * strings.c (scm_c_substring2str): New function. Proper
7 replacement for `gh_get_substr()'.
8
9 * socket.c: Include `stdint.h' if available for the `uint32_t'
10 declaration.
11
12 * scmsigs.c (s_scm_sigaction): Initialize `chandler' (inhibits
13 compiler warning).
14
15 * backtrace.c: Include `lang.h' for GUILE_DEBUG conditional.
16
17 2002-01-22 Neil Jerram <neil@ossau.uklinux.net>
18
19 Other changes unrelated to Elisp...
20
21 * eval.c (scm_m_if): Use s_if rather than repeating string literal
22 "if".
23 (comments): Fix a few typos.
24 (scm_for_each): Add parentheses around oddly unparenthesized
25 if/while conditions.
26
27 * read.c (scm_read_opts): Add full stop at end of doc for
28 `keywords' option.
29
30 * script.c (scm_compile_shell_switches): Use scm_str2symbol
31 instead of gh_symbol2scm.
32
33 * srcprop.h (SRCPROPBRK): Return C type rather than SCM.
34 (SRCBRKP): Use SRCPROPBRK rather than duplicating its logic.
35
36 * srcprop.c (scm_srcprops_to_plist, scm_source_property): Change
37 SRCPROPBRK (x) to SCM_BOOL (SRCPROPBRK (x)).
38
39 First batch of changes for Elisp support...
40
41 * alist.c, async.c, boolean.c, dynl.c, eval.c, filesys.c,
42 fluids.c, list.c, load.c, options.c, posix.c, print.c, sort.c,
43 throw.c, vectors.c, weaks.c: Add #include for lang.h.
44
45 * eval.c, eval.h, init.c, lang.c, lang.h: Use SCM_ENABLE_ELISP to
46 conditionalize compilation and initialization of Elisp support
47 function.
48
49 * alist.c (scm_assq, scm_assv, scm_assoc), async.c
50 (scm_asyncs_pending, scm_run_asyncs, noop), backtrace.c
51 (scm_set_print_params_x), dynl.c (scm_make_argv_from_stringlist),
52 filesys.c (fill_select_type, retrieve_select_type), fluids.c
53 (scm_swap_fluids, scm_swap_fluids_reverse), list.c (scm_null_p,
54 scm_ilength, scm_append_x, scm_last_pair, scm_reverse,
55 scm_reverse_x, scm_list_ref, scm_list_set_x, scm_list_cdr_set_x,
56 scm_c_memq, scm_memv), load.c (scm_search_path), options.c
57 (change_option_setting, scm_options), posix.c (environ_list_to_c),
58 print.c (scm_iprlist), throw.c (scm_exit_status), vectors.c
59 (scm_vector), weaks.c (scm_weak_vector): Use SCM_NULL_OR_NIL_P
60 instead of SCM_NULLP.
61
62 * boolean.c (scm_not): Use `SCM_FALSEP || SCM_NILP' instead of
63 just SCM_FALSEP.
64
65 * boolean.c (scm_boolean_p): Use `SCM_BOOLP || SCM_NILP' instead
66 of just SCM_BOOLP.
67
68 * eval.c (scm_lisp_nil, scm_lisp_t, s_nil_ify, scm_m_nil_ify,
69 s_t_ify, scm_m_t_ify, s_0_cond, scm_m_0_cond, s_0_ify,
70 scm_m_0_ify, s_1_ify, scm_m_1_ify): Removed.
71 (scm_m_atfop): Support function aliasing. Support both function
72 args, which need transformation, and macro args, which do not.
73 Add explanatory comments.
74 (SCM_CEVAL): In switch cases for SCM_IM_AND, SCM_IM_COND,
75 SCM_IM_DO, SCM_IM_IF and SCM_IM_OR, add `|| SCM_NILP' to existing
76 checks for SCM_FALSEP. In switch case for SCM_IM_NIL_COND, use
77 SCM_NULLP || SCM_NILP instead of checks against (removed)
78 scm_lisp_nil. Removed switch cases for SCM_IM_NIL_IFY,
79 SCM_IM_T_IFY, SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY.
80
81 * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
82 scm_m_while, scm_nil_eq): Commented out; I don't think we need
83 these, but I don't want to remove them yet, just in case.
84 (scm_init_lang): Define `%nil' variable on Scheme level to hold
85 Elisp nil value.
86
87 * lang.h (SCM_NILP): Test against Elisp nil value instead of
88 against (removed) scm_lisp_nil.
89 (SCM_NILNULLP, SCM_NIL2EOL, SCM_EOL2NIL): Commented out.
90 (SCM_NULL_OR_NIL_P): New.
91
92 * list.c (scm_append): Use SCM_VALIDATE_NULL_OR_NIL instead of
93 SCM_VALIDATE_NULL.
94
95 * print.c (scm_isymnames): Fix comment. Remove #@nil-ify,
96 #@t-ify, #@0-cond, #@0-ify, #@1-ify. Add #nil (for SCM_ELISP_NIL
97 value).
98
99 * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
100 scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort): Use
101 SCM_NULL_OR_NIL_P instead of SCM_NULLP. In constructions like `if
102 (SCM_NULLP (x)) return SCM_EOL;', return x rather than SCM_EOL.
103
104 * tags.h (SCM_IM_NIL_IFY, SCM_IM_T_IFY, SCM_IM_0_COND,
105 SCM_IM_0_IFY, SCM_IM_1_IFY): Removed.
106 (SCM_IM_BIND, SCM_IM_DELAY, SCM_IM_CALL_WITH_VALUES, SCM_UNBOUND):
107 Numbering shifted down accordingly.
108 (SCM_ELISP_NIL): New IFLAG.
109
110 * validate.h (SCM_VALIDATE_NULL_OR_NIL): New.
111
112 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
113
114 * eval.c: Removed outdated references to "everr". Improved some
115 comments.
116
117 (scm_deval_args, deval_args): Renamed scm_deval_args to
118 deval_args, since it is not part of the interface.
119
120 (SCM_CEVAL): Added (maybe somewhat verbose) comment. Avoid to
121 use references to debug.vect[0] before it exists. Add parentheses
122 to switch statement.
123
124 * goops.h: Added local emacs variables.
125
126 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
127
128 * eval.[ch] (scm_deval_args): Made static.
129
130 * srcprop.c (scm_source_property): Remove redundant SCM_IMP
131 test.
132
133 * strings.c (scm_c_string2str): Clarified comment. Replaced
134 THINKME by FIXME for uniformness. Removed question about whether
135 arguments need to be protected from garbage collection: Arguments
136 must be protected as any other variable.
137
138 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
139
140 * procs.h (SCM_CLOSURE_BODY): New Macro.
141
142 * debug.c (scm_procedure_name, scm_procedure_source), eval.c
143 (SCM_CEVAL, SCM_APPLY), goops.c (scm_sys_initialize_object,
144 get_slot_value, set_slot_value), procs.c
145 (scm_procedure_documentation), sort.c (closureless), stacks.c
146 (get_applybody): Replace SCM_CDR (SCM_CODE (...)) by
147 SCM_CLOSURE_BODY.
148
149 * sort.c (closureless): Prefer !SCM_FOOP over SCM_NFOOP.
150
151 2001-12-26 Marius Vollmer <mvo@zagadka.ping.de>
152
153 * Makefile.am (guile-procedures.txt): When we don't have makeinfo,
154 use "cp" instead.
155
156 2001-12-16 Marius Vollmer <mvo@zagadka.ping.de>
157
158 * stacks.c, stacks.h (scm_t_stackype): Renamed to scm_stack_type
159 everywhere.
160
161 * continuations.c (scm_make_continuation): Do not retain the
162 throw_value when the continuation is invoked.
163
164 2001-12-08 Stefan Jahn <stefan@lkcc.org>
165
166 * strings.c (scm_c_string2str): New function. Converts a
167 given Scheme string into a C string. Also put in two
168 THINKME's regarding the malloc policy for the missing converter
169 routines.
170
171 2001-12-01 Neil Jerram <neil@ossau.uklinux.net>
172
173 * gh_data.c (gh_module_lookup): Use scm_str2symbol rather than
174 gh_symbol2scm.
175
176 2001-11-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
177
178 * gc.h (SCM_GC_CELL_WORD, SCM_GC_CELL_OBJECT,
179 SCM_GC_SET_CELL_WORD, SCM_GC_SET_CELL_OBJECT): New macros.
180
181 (SCM_GC_CELL_TYPE, SCM_CELL_WORD, SCM_CELL_OBJECT,
182 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT, SCM_FREE_CELL_CDR,
183 SCM_GC_SET_CELL_OBJECT): Express in terms of SCM_GC_CELL_*
184 macros.
185
186 (SCM_FREE_CELL_P): Express in terms of SCM_GC_CELL_TYPE.
187
188 * inline.h (scm_alloc_cell, scm_alloc_double_cell): Use
189 SCM_GC_CELL_* macros when accessing free cells.
190
191 2001-11-25 Marius Vollmer <mvo@zagadka.ping.de>
192
193 * vectors.h (SCM_MAKE_VECTOR_TAG): New.
194 * unif.h (SCM_MAKE_BITVECTOR_TAG, SCM_MAKE_UVECTOR_TAG): New.
195 * symbols.h (SCM_MAKE_SYMBOL_TAG): New.
196 * strings.h (SCM_MAKE_STRING_TAG): New.
197 * procs.h (SCM_MAKE_CCLO_TAG): New.
198 * numbers.h (SCM_MAKE_BIGNUM_TAG): New.
199
200 * goops.h: Replaced SCM_DEBUG_DEPRECATED with
201 !SCM_ENABLE_DEPRECATED.
202
203 * async.c, async.h (scm_system_async_mark_from_signal_handler):
204 New.
205
206 * scmsigs.c (scm_take_signal): Removed all code that assumes that
207 signal handlers are allowed to divert the flow of control. Call
208 scm_system_async_mark_from_signal_handler instead of
209 scm_system_async_mark.
210
211
212 Deprecated SCM_NEWCELL and SCM_NEWCELL2. Added scm_alloc_cell and
213 scm_alloc_double_cell in their place.
214
215 * gc.h (SCM_GC_SET_ALLOCATED, scm_debug_newcell,
216 scm_debug_newcell2, scm_tc16_allocated): Removed from header.
217 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
218 (SCM_NEWCELL, SCM_NEWCELL2): Implement in terms of
219 scm_deprecated_newcell and scm_deprecated_newcell2.
220
221 gc.c (scm_tc16_allocated): Only define when including deprecated
222 features.
223 (scm_debug_newcell, scm_debug_newcell2): Removed.
224 (scm_init_storage): Do not initialize scm_tc16_allocated.
225 (scm_init_gc): Do it here.
226 (allocated_mark): New, from old code.
227 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
228
229 * inline.c, inline.h: New files.
230 * Makefile.am: Added them in all the right places.
231
232 * _scm.h: Include "libguile/inline.h".
233
234 * alist.c, coop-threads.c, debug.c, environments.c, eval.c,
235 fports.c, gh_data.c, goops.c, guardians.c, lang.c, list.c,
236 num2float.i.c, numbers.c, pairs.c, ports.c, print.c, procs.c,
237 smob.c, smob.h, strings.c, strports.c, struct.c, symbols.c,
238 unif.c, variable.c, vectors.c, vports.c, weaks.c: Replaced
239 SCM_NEWCELL and SCM_NEWCELL2 with scm_alloc_cell and
240 scm_alloc_double_cell, respectively.
241
242 2001-11-23 Marius Vollmer <mvo@zagadka.ping.de>
243
244 * modules.c (scm_c_use_module): Adapt to changes to
245 `process-use-modules'.
246
247 2001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
248
249 * numbers.c (scm_divide): Fix more division by zero errors.
250
251 2001-11-21 Gary Houston <ghouston@arglist.com>
252
253 * Makefile.am (OMIT_DEPENDENCIES): removed, since it seems to be
254 obsolete. autogen.sh says:
255 invalid unused variable name: `OMIT_DEPENDENCIES'
256
257 2001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
258
259 * numbers.c (scm_divide): Fix (/ 0). Thanks to Keith Wright for
260 reporting the bug.
261
262 2001-11-21 Marius Vollmer <mvo@zagadka.ping.de>
263
264 * Makefile.am (install-exec-hook): Prepend $(DESTDIR) to filename.
265 Thanks to Eric Gillespie, Jr!
266
267 2001-11-21 Stefan Jahn <stefan@lkcc.org>
268
269 * win32-socket.c (getservent, setservent, endservent,
270 getprotoent, setprotoent, endprotoent): New functions.
271 Appropriate replacements for M$-Windows.
272
273 * numbers.c (SIZE_MAX, PTRDIFF_MAX, PTRDIFF_MIN): Reintroduced
274 these definitions for GUILE_DEBUG.
275
276 * net_db.c: Include "win32-socket.h" if compiling with a native
277 M$-Windows compiler. Include some pieces of code (protoent and
278 servent interface) protected by HAVE_* macros when using a
279 native M$-Windows compiler.
280
281 2001-11-20 Marius Vollmer <mvo@zagadka.ping.de>
282
283 * modules.c (scm_c_export): Do nothing when the first argument is
284 already the terminating NULL. Thanks to Han-Wen Nienhuys!
285
286 2001-11-20 Thien-Thi Nguyen <ttn@glug.org>
287
288 * Makefile.am (libpath.h): In SCM_BUILD_INFO,
289 also include `buildstamp'.
290
291 2001-11-18 Rob Browning <rlb@defaultvalue.org>
292
293 * version.c
294 (s_scm_major_version): use SCM_MAJOR_VERSION.
295 (s_scm_minor_version): use SCM_MINOR_VERSION.
296 (s_scm_micro_version): use SCM_MICRO_VERSION.
297 (s_scm_version): use SCM_MAJOR_VERSION, SCM_MINOR_VERSION, and
298 SCM_MICRO_VERSION.
299
300 * version.h.in
301 (SCM_MAJOR_VERSION): renamed from SCM_GUILE_MAJOR_VERSION.
302 (SCM_MINOR_VERSION): renamed from SCM_GUILE_MINOR_VERSION.
303 (SCM_MICRO_VERSION): renamed from SCM_GUILE_MICRO_VERSION.
304
305 2001-11-18 Neil Jerram <neil@ossau.uklinux.net>
306
307 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
308 Rewrite docstrings without reference to substring-move-left/right,
309 since the latter no longer exist.
310
311 2001-11-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
312
313 * eval.c: Removed bogus comment about acros.
314
315 (scm_unmemocar): Use !SCM_CONSP instead of SCM_IMP.
316 Minimize scope of local variable. Eliminate dependency on
317 macro DEBUG_EXTENSIONS.
318
319 (s_splicing): New error message string.
320
321 (scm_m_body): Issue 'bad body' message rather than 'missing
322 expression' message.
323
324 (scm_m_quote): Eliminate unnecessary copying.
325
326 (scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let): Leave the
327 checking of the body to scm_m_body.
328
329 (scm_m_do): Move comment to function header. Rename arg1 to
330 binding. Made the code a bit easier to read.
331
332 (evalcar): Removed.
333
334 (iqq): Added a comment. Changed the depth parameter to
335 unsigned. Use size_t for vector lengths. Make sure vector object
336 is gc protected as long as its contents are read. Add some syntax
337 checks. Get rid of unnecessary SCM_IMP test. Clean up the
338 control structure a bit.
339
340 (scm_m_delay): Added comment about the implementation of
341 scm_m_delay.
342
343 (scm_m_define): Add comment about guile's currying define
344 syntax. Renamed 'proc' to 'name'. Eliminate dependency on macro
345 DEBUG_EXTENSIONS. Simplified code a bit. Eliminate SICP code.
346
347 (scm_m_letrec1): Removed. Part of the functionality is taken
348 over by the new function 'transform_bindings'.
349
350 (transform_bindings): New function. Takes over some of the
351 functionality of removed function 'scm_m_letrec1', namely to split
352 a list of bindings into a reversed list of variables and a list of
353 initializers.
354
355 (scm_m_letrec): Call 'transform_bindings'.
356
357 (scm_m_let): Minimized scope of local variables. Renamed 'proc'
358 to 'temp' and 'arg1' to 'binding'. Eliminated redundant SCM_NIMP
359 test. Use 'transform_bindings'. Fixed scoping error with named
360 let (Thanks to Aubrey Jaffer for reporting the bug and to Neil
361 Jerram for suggesting the fix). Cleaned up the control structure
362 a bit.
363
364 (scm_m_expand_body): Use 'transform_bindings'. Eliminated
365 unnecessary consing. Eliminated unnecessary
366 SCM_DEFER/ALLOW_INTS.
367
368 (SCM_CEVAL): Un-obfuscated some loops.
369
370 2001-11-16 Neil Jerram <neil@ossau.uklinux.net>
371
372 * gc.h (scm_unhash_name): Old declaration removed.
373
374 * eval.c (s_scm_eval): Change @var{primitive-eval} to
375 @code{primitive-eval}.
376
377 * feature.c, vectors.c, net_db.c, unif.c, weaks.c, struct.c,
378 version.c, alist.c, ports.c, ramap.c, unif.c, strings.c, list.c:
379 Change @deffnx lines in docstrings to say {Scheme Procedure}
380 rather than primitive or procedure.
381
382 * posix.c (scm_execl), filesys.c (scm_close), unif.c
383 (scm_array_set_x, scm_array_contents, scm_uniform_array_read_x,
384 scm_bit_set_star_x, scm_bit_invert_x), ramap.c (scm_array_fill_x,
385 scm_array_for_each, scm_array_index_map_x), vectors.c (scm_vector,
386 scm_make_vector, scm_vector_to_list, scm_vector_fill_x), strop.c
387 (scm_string_split, scm_string_ci_to_symbol), strings.c
388 (scm_string_p), sort.c (scm_merge), print.c (scm_newline),
389 macros.c (scm_macro_type), alist.c (scm_acons, scm_assq):
390 Docstring fixes and improvements reflecting edits that have been
391 made in the reference manual source.
392
393 * objprop.c (scm_object_properties, scm_set_object_properties_x,
394 scm_object_property, scm_set_object_property_x): Remove invalid
395 @deffnx lines for corresponding procedure property primitives.
396
397 These changes add a @deffnx C function declaration and function
398 index entries for each Guile primitive to the copy of the doc
399 snarf output that is used for reference manual synchronization.
400 Online help is unchanged.
401
402 * snarf.h (SCM_SNARF_DOCS): Output primitive's C function name.
403 (SCM_DEFINE, SCM_DEFINE1, SCM_REGISTER_PROC): Supply to C function
404 name to SCM_SNARF_DOCS.
405
406 * guile-snarf-docs-texi.in: Pass the shell script's arguments into
407 snarf-check-and-output-texi.
408
409 * Makefile.am (guile-procedures.texi): New rule.
410 (BUILT_SOURCES, guile.texi, guile-procedures.txt, CLEANFILES):
411 Changed so that the last stage of doc snarfing is now performed
412 twice, once to produce guile-procedures.txt for online help, and
413 once to produce guile.texi for reference manual synchronization.
414
415 2001-11-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
416
417 * eval.c (RETURN): Wrap in do{}while(0) in order to make it
418 safely usable as a single statement followed by a ';', for example
419 in an if statement.
420
421 (SCM_CEVAL, SCM_APPLY): Clean up code using 'RETURN'.
422
423 2001-11-13 Neil Jerram <neil@ossau.uklinux.net>
424
425 * random.c (scm_random_solid_sphere_x,
426 scm_random_hollow_sphere_x): Correct "shere" typos.
427
428 * hashtab.c (scm_hash_fold): Add missing apostrophe to docstring.
429
430 * version.c (scm_version): Update docstring to include
431 `micro-version'.
432
433 2001-11-13 Marius Vollmer <mvo@zagadka.ping.de>
434
435 * modules.c (scm_c_export): Call va_end after collecting the
436 symbols.
437
438 * strop.h, strop.c (scm_substring_move_left_x,
439 scm_substring_move_right_x): Removed.
440
441 * __scm.h (HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG,
442 HAVE_LONG_LONGS): Define to "1" when defining them, to mirror what
443 configure does.
444
445 2001-11-12 Marius Vollmer <mvo@zagadka.ping.de>
446
447 * numbers.c: Document macros to define when including
448 num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we
449 now rely on SIZEOF_ macros that have been figured out at
450 configure time.
451
452 * num2integral.i.c: Adapt to new interface.
453 (NUM2INTEGRAL): Test whether a fixnum can be represented in the
454 target type by casting it and checking whether it is still the
455 same. Do not try to handle bignums for integral types that are
456 smaller than fixnums. When handling bignums, collect the
457 magnituse first into a unsigned type, and correctly check for
458 overflow.
459 (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that
460 only -MIN_VALUE can still be negative of all negative numbers (in
461 twos-complement).
462
463 * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately.
464
465 * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and
466 HAVE_LONG_LONG depending on whether their size is non-zero.
467
468 2001-11-11 Thien-Thi Nguyen <ttn@glug.org>
469
470 * strop.c (scm_string_null_p): Docfix; nfc.
471 Thanks to Scott Lenser.
472
473 2001-11-07 Neil Jerram <neil@ossau.uklinux.net>
474
475 * extensions.c (scm_load_extension): Canonicalize docstring
476 whitespace.
477
478 * unif.c (scm_uniform_array_write), ports.c
479 (scm_current_output_port, scm_force_output), dynwind.c
480 (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer),
481 filesys.c (scm_open, scm_lstat), struct.c
482 (scm_make_struct_layout), random.c (scm_random,
483 scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c
484 (scm_i_index): Remove superfluous whitespace from end of docstring
485 lines.
486
487 * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p),
488 strings.c (scm_make_string), variable.c (scm_make_variable,
489 scm_make_undefined_variable, scm_variable_p, scm_variable_set_x,
490 scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer),
491 posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c
492 (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous
493 newline at end of docstrings.
494
495 * modules.c (scm_set_current_module): Add missing newline to
496 docstring.
497
498 2001-11-07 Stefan Jahn <stefan@lkcc.org>
499
500 * win32-socket.[ch]: New files. Defines Winsock-API error codes
501 and makes them available through Guile. That is because the
502 Winsock-API does not store its errors in `errno' and thus cannot
503 return error messages via `strerror (errno)'.
504
505 * socket.c (scm_init_socket): Initialize `win32-socket' part
506 here under M$-Windows.
507
508 * numbers.h: Added missing declaration of
509 `scm_sys_check_number_conversions()'.
510
511 * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
512 and use in `(strerror)' and `(system-error)'.
513
514 * Makefile.am (EXTRA_libguile_la_SOURCES): Added
515 `win32-socket.[ch]' to extra source and header files.
516
517 2001-11-06 Marius Vollmer <mvo@zagadka.ping.de>
518
519 * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend
520 a call to turn-on-debugging when --debug has been given instead of
521 turning it on directly. Also, handle new `--no-debug' option,
522 which might suppress the call to turn-on-debugging.
523
524 2001-11-05 Stefan Jahn <stefan@lkcc.org>
525
526 * struct.c (s_scm_struct_vtable_p): Corrected docstring.
527
528 2001-11-04 Stefan Jahn <stefan@lkcc.org>
529
530 * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
531 here (was at guile_LDADD) which describes the dependency
532 correctly and allows a clean build on Win32.
533
534 * __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros
535 into FOO.
536
537 * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
538 import macros for external libraries (libcrypt, libqthreads,
539 libreadline and libregex).
540
541 * coop-defs.h: Include <winsock2.h> for `struct timeval'.
542
543 * posix.c (flock): Added support for flock() in M$-Windows.
544
545 * guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead
546 of __SCM_IMPORT__.
547
548 * fports.c (getflags): Differentiate reading and writing pipes
549 descriptors.
550
551 * filesys.c (S_IS*): Redefine all of the S_IS*() macros for
552 M$-Windows.
553
554 * coop.c (coop_condition_variable_timed_wait_mutex): Use
555 conditionalized error code if `ETIMEDOUT' is not available.
556 (scm_thread_usleep): Remove bogus declaration of `struct timeval
557 timeout'.
558
559 * numbers.c (PTRDIFF_MIN): Moved this definition where it actually
560 belongs. That is because NO_PREPRO_MAGIC gets undefined after
561 each inclusion of `num2integral.i.c'.
562 (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.
563
564 2001-11-03 Marius Vollmer <mvo@zagadka.ping.de>
565
566 * eval.c (scm_m_begin): Allow `(begin)`, with no subforms.
567 (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED.
568
569 2001-11-02 Mikael Djurfeldt <mdj@linnaeus>
570
571 * print.c (scm_iprin1): Mark print state as revealed when
572 dispatching to generic write or display.
573
574 * unif.c (scm_ra2contig): Fixed memory overwrite bug.
575
576 2001-11-02 Marius Vollmer <mvo@zagadka.ping.de>
577
578 Support for native Win32. Thanks to Stefan Jahn!
579
580 * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c
581 and win32-dirent.h to extra source and header files. These
582 include the uname() and the POSIX dirent interface implementation
583 for M$-Windows. Put `-no-undefined' into LDFLAGS to support
584 linkers which do not allow unresolved symbols inside shared
585 libraries. Corrected `guile_filter_doc_snarfage$(EXEEXT)'
586 dependency.
587
588 * __scm.h: Defined SCM_API. This macro gets prepended to all
589 function and data definitions which should be exported or imported
590 in the resulting dynamic link library in the Win32 port.
591
592 * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h,
593 chars.h, continuations.h, coop-defs.h, coop-threads.h,
594 debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h,
595 environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h,
596 feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h,
597 gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h,
598 hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h,
599 load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h,
600 objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h,
601 procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h,
602 read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h,
603 smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h,
604 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
605 tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h,
606 vports.h, weaks.h:
607 Prefixed each each exported symbol with SCM_API.
608
609 * continuations.c: Added comment about the use of the extern
610 declarations of {get,set}context() functions used in the ia64 port.
611
612 * continuations.h, gc.c: `__libc_ia64_register_backing_store_base'
613 is meant to be a `unsigned long *'.
614
615 * filesys.c: Include `direct.h' if possible. Use local
616 `win32-dirent.h' for the native M$-Windows port. Define S_IS*()
617 macros for M$-Windows. Implementation of `fstat_Win32()' which is
618 able to differentiate between sockets and other file descriptors.
619 Use this function as wrapper in `scm_fstat()'. Fixed typo in
620 `scm_dirname()'.
621
622 * fports.c: Include `io.h' is possible. Put `*fp' into referring
623 statement block in `scm_fport_buffer_add()'.
624 Some corrections in `getflags()'.
625
626 * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__.
627
628 * guile.c: Make sure to define __SCM_IMPORT__ for shared library
629 build on Win32. Disable preloaded symbols on Win2 platforms.
630
631 * ioext.c, ports.c: Include `io.h' is possible.
632
633 * mkstemp.c: Include `process.h' is possible.
634
635 * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__,
636 too.
637 Put `scm_return_entry()' into HAVE_GETSERVENT conditional.
638
639 * posix.c: Remove unnecessary dirent includes and defines. Include
640 local `win32-uname.h' for MinGW. Extern declaration of
641 `mkstemp()' for systems where it does not exists. Make
642 `getlogin()' available on M$-Windows.
643
644 * scmsigs.c: Made `usleep()' avalable on MinGW.
645
646 * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'.
647
648 * win32-dirent.c: Include "win32-dirent.h", not "dirent.h".
649
650 * win32-uname.c: Include "win32-uname.h", not "uname.h".
651
652 2001-10-28 Mikael Djurfeldt <mdj@linnaeus>
653
654 * unif.c (scm_uniform_array_read_x, scm_uniform_array_write):
655 Don't apply scm_uniform_vector_length on arrays.
656
657 2001-10-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
658
659 * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
660 scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
661 scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
662 SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer
663 scm_list_<n> over scm_cons[2]?.
664
665 (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
666 scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use
667 SCM_C[AD][AD]R instead of explicit form.
668
669 (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered
670 comparison parameters.
671
672 (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use
673 !SCM_NULLP instead of SCM_NIMP.
674
675 (scm_m_case): Don't copy the form. Renamed proc to clause and
676 minimized its scope. Renamed x to clauses. Removed side
677 effecting operation from macro call.
678
679 (scm_m_cond): Don't copy the form. Renamed arg1 to clause and
680 minimized its scope. Renamed x to clauses. Minimized the scope
681 of variable 'len'. Make sure the else clause is treated specially
682 even in case of '=>' occurences. Don't change the else to #t in
683 order to be able to distinguish this case in the evaluator. Leave
684 type checking of the recipient to the evaluator.
685
686 (scm_c_improper_memq): Made the comment somewhat clearer.
687
688 (scm_m_lambda): Renamed proc to formals. Removed unnecessary
689 test for SCM_IM_LET at the place of the formal parameters.
690 Simplified the formal parameter checking.
691
692 (scm_m_letstar): Added Comment. Renamed proc to bindings.
693 Renamed arg1 to binding and minimized its scope. Eliminated
694 unnecessary consing.
695
696 (scm_m_do): Renamed proc to bindings. Minimized the scope of
697 variable 'len'.
698
699 (build_binding_list): New static function.
700
701 (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean).
702 Further, split up the 'letrec' unmemoizing code to the
703 corresponding parts for 'do', 'let' and 'letrec', adding comments
704 to each form. Cleanup the handling of the do form (This removes
705 some *real* code :-).
706
707 (SCM_CEVAL): Removed side effecting operation from macro call.
708 Handle the 'else clause of the 'cond form specially - the symbol
709 'else is not replaced with #t any more.
710
711 2001-10-14 Gary Houston <ghouston@arglist.com>
712
713 * version.c (scm_version): use sprintf instead of snprintf,
714 for portability. thanks to Bill Schottstaedt.
715
716 2001-10-14 Mikael Djurfeldt <mdj@linnaeus>
717
718 * read.c (scm_lreadr): When user-defined hash procedure returns
719 SCM_UNSPECIFIED: Fall back to standard handling instead of raising
720 an exception. (This prevents parsing of uniform vectors from
721 interfering with parsing of numbers.)
722
723 2001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
724
725 * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
726 PTRDIFF_MIN. Thanks to Ken Raeburn.
727
728 2001-10-07 Marius Vollmer <mvo@zagadka.ping.de>
729
730 * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
731
732 * eval.c (scm_m_atbind): First try to find the variable without
733 defining it locally; when it has not been found, define it
734 locally.
735
736 * modules.c (module_variable): Pass over variables that exist but
737 are unbound.
738
739 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
740
741 * backtrace.c (display_backtrace_file_and_line): Only use
742 scm_basename when POSIX support is compiled in. Thanks to Chris
743 Cramer.
744
745 2001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
746
747 * numbers.c (mem2uinteger): Return number read so far when coming
748 across a hexdigit after having read a # or if not reading a hex
749 value. This will enable the calling code to correctly handle
750 forms like 1e2. (The background is, that the exponent markers d,
751 e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
752 providing this patch.
753
754 (mem2complex): Fix erroneous double-negation. Now, numbers like
755 1-i will be read correctly.
756
757 2001-10-12 Mikael Djurfeldt <mdj@linnaeus>
758
759 * debug.c (scm_mem_to_proc): Fixed typo in previous change.
760
761 * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro.
762
763 2001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
764
765 * print.c (scm_print_state_vtable, print_state_pool):
766 Initialize. These variables are now registered as gc roots.
767
768 (scm_current_pstate): Update documentation.
769
770 (scm_current_pstate, scm_make_print_state, scm_free_print_state,
771 scm_prin1, scm_init_print): print_state_pool is registered as a
772 gc root and thus does not need to be protected by a surrounding
773 pair any more.
774
775 (make_print_state): The car of print_state_pool no longer holds
776 the scm_print_state_vtable.
777
778 (scm_current_pstate, scm_make_print_state, print_circref,
779 scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
780 SCM_N<foo>.
781
782 (scm_prin1): When building lists, prefer scm_list_<n> over
783 scm_cons[2]?.
784
785 (scm_iprlist): Removed a redundant SCM_IMP test.
786
787 (scm_simple_format): Use SCM_EQ_P to compare SCM values.
788
789 2001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
790
791 * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>.
792
793 (scm_memcons, scm_mem_to_proc): When building lists, prefer
794 scm_list_<n> over scm_cons[2]?.
795
796 (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
797
798 (scm_procedure_name): Use SCM_CADR instead of explicit form.
799
800 (debugobj_print): Coerce scm_intprint arg 1 to long, not int.
801 Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
802 for some reason his patch didn't make it into the cvs.
803
804 2001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
805
806 * numbers.c (mem2decimal_from_point): Cleaned up the parsing a
807 little bit - should even be somewhat more accurate now.
808
809 2001-10-08 Rob Browning <rlb@defaultvalue.org>
810
811 * gc.c: support ia64 register backing store.
812 (SCM_MARK_BACKING_STORE): new macro.
813
814 * continuations.h: support ia64 register backing store.
815 (struct scm_t_contregs): add ia64 register backing store.
816
817 * continuations.c: support ia64 register backing store.
818 (continuation_mark): mark ia64 register backing store.
819 (continuation_free): free ia64 register backing store.
820 (scm_make_continuation): capture ia64 register backing store.
821 (copy_stack_and_call): copy ia64 register backing store.
822
823 2001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
824
825 * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
826 is known to be #f if no entry is found. Thus, use !SCM_FALSEP
827 instead of SCM_NIMP to test for that case.
828
829 * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
830 scm_t_bits instead of long.
831
832 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
833
834 * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
835 SCM_T_SIGNED_BITS_MIN): New.
836 * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
837 Use them to make these macros computable by the preprocessor.
838
839 * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
840 whether the integral type fits in a fixnum, not the compiler.
841 This removes a spurious compiler warning. Also, honor the
842 NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
843 needed for `long long's.
844
845 * numbers.c: Define NO_PREPRO_MAGOC when including
846 num2integral.c.i for `long long' and `signed long long'.
847
848 2001-10-06 Mikael Djurfeldt <mdj@linnaeus>
849
850 These changes fixes a race condition in the Guile coop - pthread
851 compatibility code.
852
853 * coop.c (mother_awake_p): New variable.
854 (coop_create): Set mother_awake_p before creating or signalling
855 mother; wait until mother is going to sleep before returning.
856 (mother): Reset mother_awake_p before going to sleep.
857
858 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
859
860 * options.c (protected_objects, scm_init_options): The content of
861 protected_objects is now protected from garbage collection using
862 scm_gc_register_root instead of scm_permanent_object.
863
864 (get_option_setting): New static function that computes an option
865 setting as it was formerly done in the function scm_options.
866
867 (get_documented_option_setting): New static function that
868 returns option documentation as it was formerly done in the
869 function scm_options. Note that documentation C strings are no
870 longer precomputed into SCM objects. Instead, they are converted
871 into SCM strings every time get_documented_option_setting is
872 called.
873
874 (change_option_setting): New static functions that modifies the
875 option setting as it was formerly done in the function
876 scm_options. The function is now exception safe, i. e. won't
877 cause a memory leak when interrupted. Further, only non-immediate
878 option values are added to the protection list.
879
880 (scm_options): This function now has only the purpose to dispatch
881 to to get_option_setting, get_documented_option_setting or
882 change_option_setting, depending on the arguments given to
883 scm_options.
884
885 (scm_init_opts): Don't convert documentation C strings into SCM
886 strings. Further, don't protect any object values: They _must_
887 be immediate values, otherwise there is no guarantee that they
888 have not been collected before anyway.
889
890 * options.[ch] (scm_t_option): Made type unsigned, name into a
891 constant char* and val into a scm_t_bits type.
892
893 (scm_options, scm_init_opts): The number of options is guaranteed
894 to be larger or equal to zero. Thus, the type is changed to
895 unsigned.
896
897 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
898
899 * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
900 testing an unsigned value for being >= 0.
901
902 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
903
904 * numbers.h: Removed old comment about using SCM_CAR to access
905 non-pair cells.
906
907 (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
908 the return value is signed. Thanks to Brian Crowder for the bug
909 report.
910
911 (SCM_SRS): Avoid unnecessary casting and don't unpack input
912 values. With this patch, SCM_SRS can be safely used for other
913 types than scm_t_signed_bits. However, it should still better be
914 an internal macro and thus be renamed to SCM_I_SRS.
915
916 (SCM_MAKINUM, SCM_INUM): Use proper casting.
917
918 2001-10-03 Gary Houston <ghouston@arglist.com>
919
920 * continuations.h, unif.h: in the descriptions of the bit patterns
921 of the heap cells, make bit 0 the least significant.
922
923 2001-09-25 Thien-Thi Nguyen <ttn@glug.org>
924
925 * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
926 Thanks to Golubev I. N.
927
928 2001-09-25 Gary Houston <ghouston@arglist.com>
929
930 * ports.c (scm_drain_input): extended the docstring. thanks to
931 Alex Schroeder and Thien-Thi Nguyen.
932
933 2001-09-23 Mikael Djurfeldt <mdj@linnaeus>
934
935 * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
936 SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
937 macros. (The NUM names might soon change.)
938
939 * numbers.h: Added missing declarations.
940
941 2001-09-22 Mikael Djurfeldt <mdj@linnaeus>
942
943 * Makefile.am: Distribute num2float.i.c.
944
945 * num2float.i.c: New file, multiply included by numbers.c, used
946 to "templatize" the float <-> num conversion routines.
947
948 * numbers.c: New functions: scm_num2float, scm_float2num,
949 scm_num2double, scm_double2num.
950
951 2001-09-21 Rob Browning <rlb@defaultvalue.org>
952
953 * .cvsignore: really add version.h
954
955 * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
956 Otherwise it fails on the alpha. However, we might rather choose
957 this size conditionally.
958
959 * numbers.c (scm_gcd): change "k" to a long from an int.
960 Otherwise it fails on the alpha. However, we might rather choose
961 this size conditionally.
962
963 * error.c (scm_wta): coerce char* to intptr_t before int
964 assignment.
965
966 * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
967 int.
968
969 * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
970
971 2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
972
973 * numbers.c (scm_integer_expt): Accept inexact integer in second
974 argument. (Thanks to Bill Schottstaedt.)
975
976 2001-09-20 Rob Browning <rlb@defaultvalue.org>
977
978 * .cvsignore: add version.h
979
980 * versiondat.h.in: removed (obsolete).
981
982 * version.h.in: renamed from version.h.
983 (SCM_GUILE_MAJOR_VERSION): new public macro.
984 (SCM_GUILE_MINOR_VERSION): new public macro.
985 (SCM_GUILE_MICRO_VERSION): new public macro.
986
987 * version.h: renamed to version.h.in.
988
989 * version.c
990 (scm_major_version): support integer *_VERSION macros.
991 (scm_minor_version): support integer *_VERSION macros.
992 (scm_micro_version): support integer *_VERSION macros.
993 (scm_version): support integer *_VERSION macros.
994
995 2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
996
997 * error.c, error.h: Made error keys globally accessible.
998 Applications might want to test for these or use them in a direct
999 call to scm_error.
1000
1001 * num2integral.i.c (NUM2INTEGRAL): Report an error when these
1002 routines are passed an inexact. This change in behavior is
1003 motivated by concordance with R5RS: It is more common that a
1004 primitive doesn't want to accept an inexact for an exact.
1005
1006 2001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1007
1008 The following patch partially undoes my patch from 2001-06-30,
1009 where I added the function scm_gc_mark_cell_conservatively. The
1010 function is buggy, since it breaks guile during conservative
1011 marking if a pointer on the stack points directly into the list of
1012 free cells on the heap: With conservative cell marking this will
1013 cause the whole free list to be scanned and marked - boom!
1014
1015 * gc.c (allocated_mark, MARK, heap_segment,
1016 scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
1017 (scm_gc_mark_cell_conservatively): Remove function
1018 scm_gc_mark_cell_conservatively and update the corresponding
1019 comments and uses accordingly. Thanks to Christopher Cramer for
1020 the patch. (Minor corrections by me.)
1021
1022 2001-09-15 Gary Houston <ghouston@arglist.com>
1023
1024 * root.h (scm_root_state): removed the continuation_stack and
1025 continuation_stack_ptr members, which have no apparent purpose.
1026 (scm_continuation_stack, scm_continuation_stack_ptr): #defines
1027 removed.
1028
1029 * root.c (root_mark), init.c (restart_stack, start_stack), gc
1030 (scm_igc): remove all references to contination_stack and
1031 continuation_stack_ptr, avoiding allocation of a vector and
1032 useless processing during gc.
1033
1034 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1035
1036 * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
1037
1038 (TCONC_IN): Make sure that the cell word 0 is initialized last.
1039
1040 (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
1041
1042 (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
1043
1044 (guardian_apply, scm_get_one_zombie, scm_make_guardian,
1045 mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
1046
1047 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1048
1049 * guardians.c (mark_dependencies_in_tconc,
1050 whine_about_self_centered_zombies, scm_init_guardians): Register
1051 the static global variable `self_centered_zombies' via
1052 scm_gc_register_root, to make some cdr-ing unnecessary.
1053
1054 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1055
1056 * backtrace.c (display_backtrace_file,
1057 display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
1058 values, use SCM_FALSEP when comparing SCM values against #f.
1059 Thanks to Rob Browning for the bug report.
1060
1061 2001-09-12 Martin Baulig <martin@home-of-linux.org>
1062
1063 * strings.[ch] (scm_str2string): New function.
1064
1065 2001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
1066
1067 * gc.c (scm_done_free): Always subtract size from scm_mallocated
1068 when computing nm, even if it's negative.
1069 (scm_must_malloc): Abort on overflow of scm_mtrigger.
1070 (scm_must_realloc): Likewise.
1071
1072 2001-09-01 Michael Livshin <mlivshin@bigfoot.com>
1073
1074 * numbers.c (scm_sys_check_number_conversions): new function,
1075 defined if Guile is compiled in debugging mode. currently checks
1076 `scm_num2ulong', should check much much more.
1077
1078 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
1079 unsigned, ensure that it's positive. thanks to Martin Baulig!
1080
1081 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1082
1083 * __scm.h: Added new section about compile time selectable
1084 features.
1085
1086 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
1087 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
1088 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
1089 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
1090 Removed.
1091
1092 * deprecation.c (scm_include_deprecated_features): Simplified.
1093
1094 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
1095 `SCM_IMP´ instead of `!SCM_CELLP´.
1096
1097 * eval.c (unmemocopy): Eliminate redundant SCM_CELLP tests.
1098 Extract side-effecting operations from macros.
1099
1100 (scm_init_eval): Don't initialize *top-level-lookup-closure*,
1101 scm_top_level_lookup_closure_var and scm_system_transformer.
1102
1103 * gc.c (CELL_P): New local definition to replace SCM_CELLP.
1104
1105 (heap_segment): Use CELL_P instead of SCM_CELLP.
1106
1107 * init.c (start_stack): Don't initialize
1108 scm_top_level_lookup_closure_var and scm_system_transformer.
1109
1110 * modules.c (scm_set_current_module): Don't access
1111 scm_top_level_lookup_closure_var and scm_system_transformer.
1112
1113 (scm_sym2var): Don't call scm_variable_set_name_hint.
1114
1115 (scm_post_boot_init_modules): Removed deprecated initializations.
1116
1117 * print.c (scm_ipruk): Don't access cell contents of non cells.
1118
1119 * strings.c (scm_string_set_x): All strings are writable.
1120
1121 * strings.h (SCM_STRINGP): Use SCM_TYP7 to determine the string
1122 type. There is only one string type now.
1123
1124 (SCM_STRING_COERCE_0TERMINATION_X): Deprecated.
1125
1126 * tags.h: Remove comments about two different string types.
1127
1128 (SCM_CELLP, SCM_NCELLP): Deprecated.
1129
1130 * variable.c (make_variable): Remove code variant for vcells.
1131
1132 * variable.h (SCM_VARIABLE_REF, SCM_VARIABLE_SET,
1133 SCM_VARIABLE_LOC): Remove code variant for vcells.
1134
1135 * __scm.h, deprecation.[ch]: Renamed SCM_DEBUG_DEPRECATED to
1136 SCM_ENABLE_DEPRECATED with the logic reversed.
1137
1138 * dynl.c (moddata, registered_mods), dynl.[ch]
1139 (scm_register_module_xxx, scm_registered_modules,
1140 scm_clear_registered_modules), error.[ch] (scm_wta), eval.c
1141 (*top-level-lookup-closure*), eval.[ch]
1142 (scm_top_level_lookup_closure_var, scm_system_transformer,
1143 scm_eval_3, scm_eval2), gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR,
1144 SCM_SETAND_CDR, SCM_SETOR_CDR, SCM_FREEP, SCM_NFREEP,
1145 SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
1146 SCM_GCCDR), gc.[ch] (scm_remember, scm_protect_object,
1147 scm_unprotect_object), modules.c (root_module_lookup_closure,
1148 scm_sym_app, scm_sym_modules, module_prefix, make_modules_in_var,
1149 beautify_user_module_x_var, try_module_autoload_var,
1150 scm_module_full_name), modules.[ch] (scm_the_root_module,
1151 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
1152 ports.h (scm_port, scm_ptob_descriptor, scm_port_rw_active),
1153 ports.[ch] (scm_close_all_ports_except), random.h (scm_rstate,
1154 scm_rng, scm_i_rstate), strings.h (SCM_SLOPPY_STRINGP,
1155 SCM_RWSTRINGP, SCM_STRING_UCHARS, SCM_STRING_CHARS), strings.[ch]
1156 (scm_read_only_string_p, scm_makstr, scm_makfromstr,
1157 scm_make_shared_substring), tags.h (scm_tc7_substring,
1158 SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP, scm_tc7_ssymbol,
1159 scm_tc7_msymbol, scm_tcs_symbols), variable.c (sym_huh),
1160 variable.[ch] (scm_variable_set_name_hint, scm_builtin_variable),
1161 variable.h (SCM_VARVCELL, SCM_UDVARIABLEP, SCM_DEFVARIABLEP):
1162 Removed.
1163
1164 * dynl.c (scm_dynamic_link, scm_dynamic_func), error.c
1165 (scm_error_scm), filesys.c (scm_chown, scm_chmod, scm_open_fdes,
1166 scm_stat, scm_link, scm_rename, scm_delete_file, scm_mkdir,
1167 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
1168 scm_lstat, scm_copy_file), fports.c (scm_open_file), ioext.c
1169 (scm_fdopen), net_db.c (scm_gethost, scm_getnet, scm_getproto,
1170 scm_getserv), ports.c (scm_truncate_file, scm_sys_make_void_port),
1171 posix.c (scm_getpwuid, scm_getgrgid, scm_execl, scm_execlp,
1172 scm_execle, scm_mkstemp, scm_utime, scm_access, scm_setlocale,
1173 scm_mknod, scm_crypt, scm_chroot, scm_getpass, scm_sethostname),
1174 regex-posix.c (scm_make_regexp, scm_regexp_exec), simpos.c
1175 (scm_system, scm_getenv), socket.c (scm_inet_aton), stime.c
1176 (setzone, scm_strftime, scm_strptime), vports.c
1177 (scm_make_soft_port): Remove calls to
1178 SCM_STRING_COERCE_0TERMINATION_X. Since the substring type is
1179 gone, all strings are 0-terminated anyway.
1180
1181 * dynl.h (LIBGUILE_DYNL_H, SCM_DYNL_H), random.h (RANDOMH,
1182 SCM_RANDOM_H): Renamed the macros that are defined to inhibit
1183 double inclusion of the same headers to the SCM_<filename>_H
1184 format.
1185
1186 * eval.c (SCM_CEVAL), gc.c (MARK, scm_gc_sweep), gh_data.c
1187 (gh_scm2chars), hash.c (scm_hasher), objects.c (scm_class_of),
1188 print.c (scm_iprin1): The type scm_tc7_substring does not exist
1189 any more.
1190
1191 * ports.h (SCM_PORTP, SCM_OPPORTP, SCM_OPINPORTP, SCM_OPOUTPORTP,
1192 SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP), tags.h
1193 (SCM_TYP16_PREDICATE), variable.h (SCM_VARIABLEP): Prefer
1194 !SCM_<foo> over SCM_N<foo>.
1195
1196 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1197
1198 * Makefile.am: Remove references to symbols-deprecated.c.
1199
1200 * symbols.c (scm_init_symbols): Don't initialize deprecated
1201 symbol functions.
1202
1203 * symbols-deprecated.c: Removed.
1204
1205 * fluids.[ch] (scm_internal_with_fluids), gsubr.[ch]
1206 (scm_make_gsubr, scm_make_gsubr_with_generic), hooks.[ch]
1207 (scm_create_hook), list.c (list*), list.h (SCM_LIST[0-9],
1208 scm_listify), list.[ch] (scm_sloppy_memq, scm_sloppy_memv,
1209 scm_sloppy_member), load.c (scm_end_of_file_key), load.[ch]
1210 (scm_read_and_eval_x), numbers.[ch] (scm_mkbig, scm_big2inum,
1211 scm_adjbig, scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big,
1212 scm_big2dbl), numbers.h (SCM_FIXNUM_BIT), procs.h
1213 (scm_subr_entry, SCM_SUBR_DOC), procs.[ch] (scm_make_subr_opt,
1214 scm_make_subr, scm_make_subr_with_generic), root.c (setjmp_type,
1215 setjmp_type), root.[ch] (scm_call_catching_errors), smob.[ch]
1216 (scm_make_smob_type_mfpe, scm_set_smob_mfpe), strports.[ch]
1217 (scm_strprint_obj, scm_read_0str, scm_eval_0str), symbols.h
1218 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS, SCM_SLOPPY_SUBSTRP,
1219 SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_LENGTH_MAX, SCM_LENGTH,
1220 SCM_SETLENGTH, SCM_ROSTRINGP, SCM_ROLENGTH, SCM_ROCHARS,
1221 SCM_ROUCHARS, SCM_SUBSTRP, SCM_COERCE_SUBSTR, scm_strhash,
1222 scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
1223 scm_intern_obarray_soft, scm_intern_obarray, scm_intern,
1224 scm_intern0, scm_sysintern, scm_sysintern0,
1225 scm_sysintern0_no_module_lookup, scm_symbol_value0,
1226 scm_string_to_obarray_symbol, scm_intern_symbol,
1227 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
1228 scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp,
1229 scm_init_symbols_deprecated), vectors.c (s_vector_set_length_x),
1230 vectors.[ch] (scm_vector_set_length_x): Removed.
1231
1232 * fluids.h (FLUIDSH, SCM_FLUIDS_H), gsubr.c (GSUBRH, SCM_GSUBR_H),
1233 list.h (LISTH, SCM_LIST_H), load.h (LOADH, SCM_LOAD_H), root.h
1234 (ROOTH, SCM_ROOT_H), strports.h (STRPORTSH, SCM_STRPORTS_H):
1235 Renamed the macros that are defined to inhibit double inclusion of
1236 the same headers to the SCM_<filename>_H format.
1237
1238 * procs.h (SCM_CLOSUREP, SCM_PROCEDURE_WITH_SETTER_P), symbols.h
1239 (SCM_SYMBOLP), vectors.h (SCM_VECTORP): Prefer !SCM_<foo> over
1240 SCM_N<foo>.
1241
1242 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1243
1244 * continuations.h (scm_contregs), debug.h (scm_debug_info,
1245 scm_debug_frame, SCM_DSIDEVAL), filesys.h (SCM_OPDIRP), fports.h
1246 (scm_fport), options.h (scm_option), snarf.h (SCM_CONST_LONG,
1247 SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
1248 SCM_GLOBAL_VCELL_INIT), srcprop.h (scm_srcprops,
1249 scm_srcprops_chunk), stacks.h (scm_info_frame, scm_stack), unif.h
1250 (scm_array, scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_HUGE_LENGTH),
1251 validate.h (SCM_FUNC_NAME, SCM_WTA, RETURN_SCM_WTA,
1252 SCM_VALIDATE_NUMBER_COPY, SCM_VALIDATE_NUMBER_DEF_COPY,
1253 SCM_VALIDATE_STRINGORSUBSTR, SCM_VALIDATE_ROSTRING,
1254 SCM_VALIDATE_ROSTRING_COPY, SCM_VALIDATE_NULLORROSTRING_COPY,
1255 SCM_VALIDATE_RWSTRING, SCM_VALIDATE_OPDIR): Removed.
1256
1257 * continuations.h (CONTINUATIONSH, SCM_CONTINUATIONS_H), filesys.h
1258 (FILESYSH, SCM_FILESYS_H), fports.h (FPORTSH, SCM_FPORTS_H),
1259 options.h (OPTIONSH, SCM_OPTIONS_H), regex-posix.h (REGEXPOSIXH,
1260 SCM_REGEX_POSIX_H), snarf.h (LIBGUILE_SNARF_H, SCM_SNARF_H),
1261 srcprop.h (SCM_SOURCE_PROPERTIES_H, SCM_SRCPROP_H), unif.h
1262 (SCM_UNIFORM_VECTORS_H, SCM_UNIF_H), validate.h (SCM_VALIDATE_H__,
1263 SCM_VALIDATE_H): Renamed the macros that are defined to inhibit
1264 double inclusion of the same headers to the SCM_<filename>_H
1265 format.
1266
1267 * debug.h (SCM_RESET_DEBUG_MODE), regex-posix.h (SCM_RGXP),
1268 srcprop.h (SRCBRKP, PROCTRACEP), struct.h (SCM_STRUCTP),
1269 validate.h (SCM_VALIDATE_THUNK, SCM_VALIDATE_ARRAY,
1270 SCM_VALIDATE_VECTOR_OR_DVECTOR, SCM_VALIDATE_VTABLE): Prefer
1271 !SCM_<foo> over SCM_N<foo>.
1272
1273 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1274
1275 * _scm.h (_SCMH, SCM__SCM_H), alist.h (ALISTH, SCM_ALIST_H),
1276 arbiters.h (ARBITERSH, SCM_ARBITERS_H), backtrace.h (BACKTRACEH,
1277 SCM_BACKTRACE_H), boolean.h (BOOLEANH, SCM_BOOLEAN_H), chars.h
1278 (SCM_CHARSH, SCM_CHARS_H), coop-defs.h (COOP_DEFSH,
1279 SCM_COOP_DEFS_H), coop-threads.h (COOP_THREADSH,
1280 SCM_COOP_THREADS_H), debug-malloc.h (DEBUGMALLOCH,
1281 SCM_DEBUG_MALLOC_H), dynwind.h (DYNWINDH, SCM_DYNWIND_H),
1282 environments.h (ENVIRONMENTS_H, SCM_ENVIRONMENTS_H), eq.h (EQH,
1283 SCM_EQ_H), evalext.h (EVALEXTH, SCM_EVALEXT_H), extensions.h
1284 (LIBGUILE_EXTENSIONS_H, SCM_EXTENSIONS_H), feature.h (FEATUREH,
1285 SCM_FEATURE_H), gdbint.h (GDBINTH, SCM_GDBINT_H), guardians.h
1286 (SCM_GUARDIANH, SCM_GUARDIANS_H), hash.h (HASHH, SCM_HASH_H),
1287 hashtab.h (HASHTABH, SCM_HASHTAB_H), init.h (INITH, SCM_INIT_H),
1288 ioext.h (IOEXTH, SCM_IOEXT_H), iselect.h (ISELECTH,
1289 SCM_ISELECT_H), keywords.h (KEYWORDSH, SCM_KEYWORDS_H), lang.h
1290 (LANGH, SCM_LANG_H), mallocs.h (MALLOCSH, SCM_MALLOCS_H), net_db.h
1291 (SCM_NETDBH, SCM_NET_DB_H), objprop.h (OBJPROPH, SCM_OBJPROP_H),
1292 posix.h (POSIXH, SCM_POSIX_H), procprop.h (PROCPROPH,
1293 SCM_PROCPROP_H), properties.h (PROPERTIES_H, SCM_PROPERTIES_H),
1294 ramap.h (RAMAPH, SCM_RAMAP_H), rdelim.h (SCM_RDELIM,
1295 SCM_RDELIM_H), read.h (READH, SCM_READ_H), rw.h (SCM_RW,
1296 SCM_RW_H), scmsigs.h (SCMSIGSH, SCM_SCMSIGS_H), script.h (SCRIPTH,
1297 SCM_SCRIPT_H), simpos.h (SIMPOSH, SCM_SIMPOS_H), socket.h
1298 (SCM_SOCKETH, SCM_SOCKET_H), sort.h (SORTH, SCM_SORT_H),
1299 stackchk.h (STACKCHKH, SCM_STACKCHK_H), stime.h (STIMEH,
1300 SCM_STIME_H), strop.h (STROPH, SCM_STROP_H), strorder.h
1301 (STRORDERH, SCM_STRORDER_H), threads.h (THREADSH, SCM_THREADS_H),
1302 throw.h (THROWH, SCM_THROW_H), version.h (VERSIONH,
1303 SCM_VERSION_H), vports.h (VPORTSH, SCM_VPORTS_H): Renamed
1304 the macros that are defined to inhibit double inclusion of the
1305 same headers to the SCM_<filename>_H format.
1306
1307 2001-08-27 Marius Vollmer <mvo@zagadka.ping.de>
1308
1309 * ports.c, ports.h, fprots.c, gc.c, ioext.c: Replaced
1310 "scm_t_portable" with "scm_port_table" which was an artifact from
1311 the great "scm_*_t -> scm_t_" renaming.
1312
1313 2001-08-25 Thien-Thi Nguyen <ttn@revel.glug.org>
1314
1315 * gc_os_dep.c (GC_noop1): Move before `GC_find_limit' where it is
1316 used; nfc. Thanks to Bill Schottstaedt.
1317
1318 * validate.h (SCM_VALIDATE_USHORT_COPY, SCM_VALIDATE_SHORT_COPY,
1319 SCM_VALIDATE_UINT_COPY, SCM_VALIDATE_INT_COPY): New macros.
1320 Thanks to Chris Cramer.
1321
1322 2001-08-25 Marius Vollmer <mvo@zagadka.ping.de>
1323
1324 * Makefile.am (AUTOMAKE_OPTIONS): Change "foreign" to "gnu".
1325
1326 * eval.c (scm_m_atbind): Redesigned to behvae like `let', but with
1327 dynamic scope.
1328 * dynwind.h (scm_swap_bindings): Declare.
1329 * dynwind.c (scm_swap_bindings): Make non-static.
1330
1331 2001-08-25 Michael Livshin <mlivshin@bigfoot.com>
1332
1333 * gc.c (scm_gc_sweep): now can sweep unreachable variables (by
1334 doing exactly nothing about them). thanks Neil!
1335
1336 2001-08-18 Neil Jerram <neil@ossau.uklinux.net>
1337
1338 * __scm.h (SCM_ENABLE_VCELLS): Fix spelling mistake in comment.
1339
1340 2001-08-17 Thien-Thi Nguyen <ttn@revel.glug.org>
1341
1342 * gc.c: Fix omission bug: Add `heap_segment' forward decl
1343 (proto) in the case when either `GUILE_DEBUG' or
1344 `GUILE_DEBUG_FREELIST' preprocessor symbols are defined.
1345
1346 (map_free_list): Fix typo: Ref `f' correctly.
1347
1348 Thanks to Chris Cramer.
1349
1350 2001-08-15 Rob Browning <rlb@defaultvalue.org>
1351
1352 * Makefile.am (libguile_la_LDFLAGS): use libtool interface version
1353 variables.
1354 (libpath.h): change libguileversion to libguileinterface.
1355
1356 2001-08-07 Marius Vollmer <mvo@zagadka.ping.de>
1357
1358 * Makefile.am (EXTRA_DIST): Distribute ChangeLog-1996-1999 and
1359 ChangeLog-2000. Thanks to Daniel Skarda!
1360
1361 2001-08-07 Michael Livshin <mlivshin@bigfoot.com>
1362
1363 * guile-snarf-docs-texi.in: don't call the tokenizer here, we now
1364 do it from the Makefile.
1365
1366 * Makefile.am: rearrange the snarfing slightly, so that .doc files
1367 are of a reasonable size.
1368
1369 2001-08-02 Neil Jerram <neil@ossau.uklinux.net>
1370
1371 * stacks.c (scm_make_stack): Improve docstring by explaining use
1372 of cutting args.
1373
1374 2001-08-01 Marius Vollmer <mvo@zagadka.ping.de>
1375
1376 * chars.c (scm_char_alphabetic_p, scm_char_numeric_p,
1377 scm_char_whitespace_p, scm_char_upper_case_p,
1378 scm_char_lower_case_p, scm_char_is_both_p): Do not require
1379 characters to fulfill isascii in addition to the primary
1380 predicate.
1381
1382 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1383
1384 * numbers.c (DIGITS, scm_small_istr2int, scm_istr2int,
1385 scm_istr2flo, scm_istring2number): Removed.
1386
1387 (iflo2str, scm_real_p, scm_integer_p): Use SCM_<foo> instead of
1388 SCM_SLOPPY_<foo>.
1389
1390 (t_exactness, t_radix, DIGIT2UINT, XDIGIT2UINT, mem2uinteger,
1391 mem2decimal_from_point, mem2ureal, mem2complex, scm_i_mem2number):
1392 Added.
1393
1394 (scm_string_to_number): Use new number parser.
1395
1396 (scm_exact_to_inexact): Replace dummy by a GPROC, which also
1397 handles complex numbers.
1398
1399 * numbers.h (NUMBERSH, SCM_NUMBERS_H): Rename <foo>H to
1400 SCM_<foo>_H.
1401
1402 (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Prefer !SCM_<pred> over
1403 SCM_N<pred>.
1404
1405 (scm_istr2int, scm_istr2flo, scm_istring2number): Removed.
1406
1407 (scm_i_mem2number): Added.
1408
1409 (scm_exact_to_inexact): Changed signature.
1410
1411 * read.c (scm_lreadr): Perform the shortcut test for '+ and '-
1412 here instead of within scm_i_mem2number. Call scm_i_mem2number
1413 instead of scm_istr2int and scm_istring2number.
1414
1415 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1416
1417 * eval.c (scm_lookupcar, scm_m_body, scm_m_lambda, unmemocopy,
1418 scm_unmemocopy, scm_badargsp, scm_eval_body, CHECK_EQVISH,
1419 SCM_CEVAL, scm_nconc2last, SCM_APPLY, scm_copy_tree): Prefer
1420 !SCM_<pred> over SCM_N<pred>.
1421
1422 (scm_eval_body): Remove side effecting code from macro call.
1423
1424 (SCM_CEVAL, SCM_APPLY): Remove goto statement and redundant
1425 SCM_NIMP test.
1426
1427 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1428
1429 * pairs.h (SCM_VALIDATE_PAIR): Use SCM_CONSP, not SCM_ECONSP.
1430
1431 2001-07-29 Marius Vollmer <mvo@zagadka.ping.de>
1432
1433 Removed vcell slot from structs.
1434
1435 * struct.h (scm_vtable_index_vcell): Removed. Renumbered
1436 subsequent indices.
1437
1438 * struct.c (scm_struct_vtable_p): Do not check vcell slot for
1439 zero. Use scm_vtable_index_layout instead of "0" when accessing
1440 said slot.
1441 (scm_init_struct): Remove vcell slot layout code from
1442 required_vtable_fields.
1443
1444 * objects.h (scm_si_redefined, scm_si_hashsets): Renumbered.
1445
1446 * goops.c (build_class_class_slots): Removed vcell slot
1447 definition.
1448
1449 * goops.h: Renumbered slot indices. (SCM_CLASS_CLASS_LAYOUT):
1450 Removed vcell slot layout code.
1451 (scm_si_vcell): Removed.
1452
1453 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
1454
1455 "Glocs" have been removed.
1456
1457 * tags.h: Update tag system docs.
1458 (scm_tc3_cons_gloc): Renamed to scm_tc3_struct. Changed all uses.
1459 (scm_tcs_cons_gloc): Renamed to scm_tcs_struct. Changed all uses.
1460 (SCM_ECONSP, SCM_NECONSP): Removed. Changed all uses to SCM_CONSP
1461 or SCM_NCONSP, respectively.
1462
1463 * struct.c, struct.h, srcprop.c, procs.c, procprop.c, print.c,
1464 objects.c. modules.c, goops.c, eval.c, debug.c: Changed all uses
1465 of scm_tc3_cond_gloc and scm_tcs_cons_gloc. See above.
1466
1467 * print.c (scm_iprin1): Remove printing of glocs. Do not try to
1468 tell glocs from structs.
1469
1470 * gc.c (scm_gc_mark, scm_gc_sweep): Remove handling of glocs.
1471
1472 * eval.c (scm_m_atbind): Make a list of variables, not glocs.
1473 (scm_ceval, scm_deval): For SCM_IM_BIND, fiddle with variables
1474 instead of with glocs.
1475 (EVALCAR): Do not test for glocs.
1476 (scm_lookupcar, scm_lookupcar1): Do not handle glocs in race
1477 condition.
1478 (scm_unmemocar): Do not handle glocs.
1479 (scm_m_atfop): Memoize as a variable, not as a gloc.
1480 (scm_eval_args, scm_deval_args): Do not handle glocs.
1481 (scm_ceval, scm_deval): Likewise.
1482
1483 * eval.h (SCM_XEVALCAR): Do not test for glocs.
1484 (SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL, SCM_GLOC_VAL_LOC):
1485 Removed.
1486
1487 * debug.h, debug.c (scm_make_gloc, scm_gloc_p): Removed.
1488
1489 * dynwind.c (scm_swap_bindings): Likewise.
1490 (scm_dowinds): Updated to recognize lists of variables instead of
1491 lists of glocs.
1492
1493 * __scm.h (SCM_CAUTIOS, SCM_RECKLESS): Update comments.
1494
1495
1496 * gc_os_dep.c (GC_noop1): Moved into the same #if/#endif context
1497 where it is needed.
1498
1499 2001-07-25 Gary Houston <ghouston@arglist.com>
1500
1501 * numbers.c (scm_logand, scm_logior, scm_logxor): adjusted the
1502 docstrings to reflect the n-ary implementation.
1503
1504 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
1505
1506 * eval.c (scm_ceval, scm_deval): Use "RETURN" macro when returning
1507 value of a variable, not the plain "return" statement.
1508
1509 2001-07-25 Marius Vollmer <mvo@zagadka.ping.de>
1510
1511 * eval.c: Allow variables in memoized code (in addition to glocs).
1512 (scm_lookupcar): Handle variables in lost races. Replace symbol
1513 with variable directly, do not make a gloc.
1514 (scm_unmemocar): Rewrite variables using a reverse lookup, just
1515 like glocs.
1516 (scm_ceval, scm_deval): Deal with variables in SCM_IM_SET and in
1517 the main switch.
1518
1519 2001-07-25 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1520
1521 * variable.c (scm_i_variable_print): Use "value" instead of
1522 "binding" since a binding is the mapping between symbols and
1523 variables, not between variables and their values.
1524
1525 * tags.h (scm_tc7_variable): New.
1526 * gc.c (scm_gc_mark): Handle scm_tc7_variable objects.
1527 * print.c (scm_iprin1): Likewise.
1528
1529 * variable.h (scm_tc16_variable): Removed.
1530 (SCM_VARIABLEP): Test for new tc7 code.
1531 (scm_i_variable_print): New.
1532 * variable.c (scm_tc16_variable): Removed.
1533 (variable_print): Renamed to scm_i_variable_print and made
1534 non-static.
1535 (variable_equal_p): Removed.
1536 (make_variable): Construct a tc7 object instead of a smob.
1537 (scm_init_variable): Do not register smob.
1538
1539 2001-07-22 Marius Vollmer <mvo@zagadka.ping.de>
1540
1541 * tags.h: Include inttypes.h when we have it.
1542
1543 2001-07-13 Marius Vollmer <mvo@zagadka.ping.de>
1544
1545 * tags.h (SCM_UNBOUND): Make it the 34th isym/iflag, the 33th slot
1546 is taken by the new SCM_IM_CALL_WITH_VALUES.
1547 * print.c (scm_isymnames): Update table accordingly.
1548
1549 2001-07-22 Gary Houston <ghouston@arglist.com>
1550
1551 * regex-posix.c (s_scm_regexp_exec): use scm_long2num not
1552 SCM_MAKINUM to convert regoff_t value to SCM.
1553
1554 2001-07-21 Gary Houston <ghouston@arglist.com>
1555
1556 * scmsigs.c: include sys/time.h for itimer stuff.
1557
1558 2001-07-19 Rob Browning <rlb@defaultvalue.org>
1559
1560 * gc_os_dep.c (GC_noop1): ifdef out (unused) to quiet warning.
1561
1562 * c-tokenize.lex: add option %nounput to quiet warning.
1563 Add prototype for yylex to quiet warning.
1564
1565 * scmconfig.h.in: add flags for setitimer and getitimer.
1566
1567 * scmsigs.h (scm_init_scmsigs): new prototype.
1568 (scm_init_scmsigs): new prototype.
1569
1570 * scmsigs.c (s_scm_setitimer): new function.
1571 (s_scm_setitimer): new function.
1572
1573 2001-07-18 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1574
1575 * alist.c, arbiters.c, async.h, backtrace.h, boolean.c, chars.c,
1576 chars.h, continuations.h, debug-malloc.h, dynl.c, feature.c,
1577 feature.h, filesys.h, fluids.h, fports.h, gc_os_dep.c,
1578 gdb_interface.h, gh_eval.c, gh_funcs.c, gh_io.c, gh_list.c,
1579 gh_predicates.c, gsubr.c, gsubr.h, guardians.h,
1580 guile-func-name-check.in, guile-snarf-docs-texi.in,
1581 guile-snarf-docs.in, guile-snarf.awk.in, guile-snarf.in,
1582 hashtab.h, iselect.h, keywords.h, lang.c, list.h, load.h,
1583 objprop.c, objprop.h, options.c, options.h, random.h,
1584 regex-posix.h, root.c, root.h, script.c, snarf.h, stackchk.c,
1585 strerror.c, strop.h, strports.h, threads.h, values.c, values.h,
1586 version.c, version.h: Updated copyright notice.
1587
1588 2001-07-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1589
1590 * goops.c (sym_layout, sym_vcell, sym_vtable, sym_print,
1591 sym_procedure, sym_setter, sym_redefined, sym_h0, sym_h1, sym_h2,
1592 sym_h3, sym_h4, sym_h5, sym_h6, sym_h7, sym_name,
1593 sym_direct_supers, sym_direct_slots, sym_direct_subclasses,
1594 sym_direct_methods, sym_cpl, sym_default_slot_definition_class,
1595 sym_slots, sym_getters_n_setters, sym_keyword_access, sym_nfields,
1596 sym_environment, scm_sym_change_class): New static variables to
1597 hold predefined symbols.
1598
1599 (build_class_class_slots): Build the list using scm_list_n
1600 instead of cons. Also, slots are already created as lists, thus
1601 making a call to maplist unnecessary.
1602
1603 (scm_class_name, scm_class_direct_supers, scm_class_direct_slots,
1604 scm_class_direct_subclasses, scm_class_direct_methods,
1605 scm_class_precedence_list, scm_class_slots, scm_class_environment,
1606 scm_method_procedure, create_standard_classes, purgatory): Use
1607 predefined symbols.
1608
1609 (build_slots_list, compute_getters_n_setters,
1610 scm_sys_initialize_object, scm_sys_inherit_magic_x,
1611 get_slot_value_using_name, set_slot_value_using_name,
1612 scm_sys_invalidate_method_cache_x, scm_generic_capability_p,
1613 scm_compute_applicable_methods, scm_sys_method_more_specific_p,
1614 make_struct_class): Prefer !SCM_<pred> over SCM_N<pred>.
1615
1616 (scm_sys_prep_layout_x): Minimize variable scopes.
1617
1618 (scm_sys_prep_layout_x, scm_sys_fast_slot_ref,
1619 scm_sys_fast_slot_set_x): Fix signedness.
1620
1621 (go_to_hell, go_to_heaven, purgatory, scm_change_object_class,
1622 lock_cache_mutex, unlock_cache_mutex, call_memoize_method,
1623 scm_memoize_method, scm_wrap_object): Use packing and unpacking
1624 when converting to and from SCM values.
1625
1626 (scm_enable_primitive_generic_x): Add rest argument checking.
1627
1628 (map, filter_cpl, maplist, scm_sys_initialize_object,
1629 scm_sys_prep_layout_x, slot_definition_using_name,
1630 scm_enable_primitive_generic_x, scm_compute_applicable_methods,
1631 call_memoize_method, scm_make, scm_make_class): Prefer explicit
1632 predicates over SCM_N?IMP tests.
1633
1634 (scm_sys_prep_layout_x): Fix typo in error message. Fix type
1635 checking.
1636
1637 (burnin, go_to_hell): Use SCM_STRUCT_DATA instead of the SCM_INST
1638 alias.
1639
1640 2001-07-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1641
1642 * fports.c (fport_print): Don't use SCM_C[AD]R for non pairs.
1643
1644 * num2integral.i.c (INTEGRAL2NUM, INTEGRAL2BIG): Fix signedness.
1645
1646 * symbols-deprecated.c (scm_gentemp): Simplify vector test.
1647
1648 * vectors.c (scm_vector_p): Eliminate redundant IMP test.
1649
1650 2001-07-12 Michael Livshin <mlivshin@bigfoot.com>
1651
1652 * strings.c (s_scm_string): fix arg position in assert.
1653
1654 2001-07-11 Gary Houston <ghouston@arglist.com>
1655
1656 * strports.c (st_write): use memcpy, not strncpy. thanks to
1657 Dale P. Smith.
1658
1659 2001-07-09 Thien-Thi Nguyen <ttn@revel.glug.org>
1660
1661 * alist.c, alloca.c, arbiters.c, async.c, async.h, backtrace.c,
1662 boolean.c, chars.c, continuations.c, coop-defs.h, coop-threads.c,
1663 debug-malloc.h, debug.c, debug.h, dynl.c, dynwind.c, eq.c,
1664 error.c, eval.c, evalext.c, feature.c, feature.h, filesys.c,
1665 filesys.h, fluids.c, fluids.h, fports.c, fports.h, gc.c, gc.h,
1666 gdbint.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
1667 hooks.h, inet_aton.c, init.c, ioext.c, keywords.c, keywords.h,
1668 lang.c, list.c, load.c, macros.c, mallocs.c, memmove.c, modules.c,
1669 net_db.c, numbers.c, numbers.h, objects.c, objprop.c, options.c,
1670 pairs.c, pairs.h, ports.c, ports.h, posix.c, print.c, print.h,
1671 procprop.c, procs.c, procs.h, properties.c, putenv.c, ramap.c,
1672 random.c, random.h, read.c, regex-posix.c, regex-posix.h, root.c,
1673 root.h, scmsigs.c, script.c, simpos.c, smob.c, snarf.h, socket.c,
1674 sort.c, srcprop.c, srcprop.h, stackchk.c, stacks.c, stacks.h,
1675 stime.c, strerror.c, strings.c, strings.h, strop.c, strorder.c,
1676 strports.c, struct.c, struct.h, symbols-deprecated.c, symbols.c,
1677 symbols.h, tags.h, threads.c, threads.h, throw.c, unif.c, unif.h,
1678 variable.c, variable.h, vectors.c, vectors.h, version.c, vports.c,
1679 weaks.c, weaks.h: Remove "face-lift" comment.
1680
1681 2001-07-08 Rob Browning <rlb@defaultvalue.org>
1682
1683 * .cvsignore: add stamp-h.in.
1684
1685 2001-07-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1686
1687 * hooks.c (scm_make_hook, scm_add_hook_x),
1688 (scm_remove_hook_x, scm_reset_hook_x, scm_run_hook): Added return
1689 value info to the docstrings.
1690
1691 2001-07-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1692
1693 Some more compatibility patches for Windows.
1694
1695 * posix.c (getlogin): getlogin() implementation for Windows.
1696
1697 * backtrace.c, ioext.c: Include <stdio.h>.
1698
1699 * unif.c, script.c, rw.c, error.c: Include <io.h>, if it does
1700 exist.
1701
1702 * cpp_sig_symbols.in: Added SIGBREAK.
1703
1704 2001-07-01 Marius Vollmer <mvo@zagadka.ping.de>
1705
1706 * strports.c (scm_read_0str, scm_eval_0str): Call
1707 scm_c_read_string and scm_c_eval_string respectively, not
1708 themselves. Thanks to Dale P. Smith!
1709
1710 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1711
1712 * unif.c (scm_array_set_x): The variable args does not
1713 necessarily have to be a list. Further, got rid of a redundant
1714 SCM_NIMP test.
1715
1716 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1717
1718 * list.c (SCM_I_CONS): Make sure the cell type is initialized
1719 last.
1720
1721 * gc.c (s_scm_map_free_list, scm_igc, scm_gc_sweep,
1722 init_heap_seg): Fixed signedness.
1723
1724 (init_heap_seg): Replaced strange for-loop with a while loop.
1725
1726 * weaks.h (WEAKSH, SCM_WEAKS_H): Rename <foo>H to SCM_<foo>_H.
1727
1728 (SCM_WVECTP): Prefer !SCM_<pred> over SCM_N<pred>.
1729
1730 The following patch adds conservative marking for the elements of
1731 free or allocated cells.
1732
1733 * gc.c (allocated_mark, heap_segment): New static functions.
1734
1735 (which_seg): Deleted, since the functionality is now provided by
1736 function heap_segment.
1737
1738 (map_free_list): Use heap_segment instead of which_seg.
1739
1740 (MARK): If cell debugging is disabled, mark free cells
1741 conservatively.
1742
1743 (scm_mark_locations, scm_cellp): Extracted the search for the
1744 heap segment of a SCM value into function heap_segment.
1745
1746 (scm_init_storage): Allocated cells must be marked
1747 conservatively.
1748
1749 * gc.[ch] (scm_gc_mark_cell_conservatively): New function.
1750
1751 The following patch changes the representation of weak vectors to
1752 double cells instead of using an extension of the vector's
1753 allocated memory.
1754
1755 * gc.c (MARK): Use SCM_SET_WVECT_GC_CHAIN instead of assigning to
1756 the result of SCM_WVECT_GC_CHAIN.
1757
1758 (scm_gc_sweep): Weak vectors don't have extra fields any more.
1759
1760 * weaks.c (allocate_weak_vector): New static function. It does
1761 not patch any previously created vector object during the
1762 construction of a weak vector, and thus doesn't need to switch
1763 off interrupts during vector creation.
1764
1765 (scm_make_weak_vector, scm_make_weak_key_hash_table,
1766 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
1767 Use allocate_weak_vector to provide the new weak vector object.
1768
1769 * weaks.h (SCM_WVECT_TYPE, SCM_SET_WVECT_TYPE,
1770 SCM_SET_WVECT_GC_CHAIN): New macros. The weak vector subtype is
1771 now stored in the double cell.
1772
1773 (SCM_IS_WHVEC, SCM_IS_WHVEC_V, SCM_IS_WHVEC_B, SCM_IS_WHVEC_ANY):
1774 Use SCM_WVECT_TYPE.
1775
1776 (SCM_WVECT_GC_CHAIN): The weak objects are now chained together
1777 using an entry of the double cell.
1778
1779 2001-06-30 Thien-Thi Nguyen <ttn@revel.glug.org>
1780
1781 * stamp-h.in: bye bye
1782
1783 2001-06-30 Marius Vollmer <mvo@zagadka.ping.de>
1784
1785 * gh_eval.c (gh_eval_str): Use scm_c_eval_string instead of
1786 scm_eval_0str.
1787
1788 * load.c, load.h (scm_c_primitive_load,
1789 scm_c_primitive_load_path): New.
1790
1791 * strports.c, strports.h (scm_c_read_string): Renamed from
1792 scm_read_0str. Also, added "const" qualifier to argument.
1793 (scm_c_eval_string): Renamed from scm_eval_0str.
1794 (scm_read_0str, scm_eval_0str): Deprecated.
1795
1796 2001-06-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1797
1798 * fluids.c (scm_c_with_fluid): Use scm_list_1() instead of
1799 SCM_LIST1.
1800
1801 2001-06-28 Keisuke Nishida <kxn30@po.cwru.edu>
1802
1803 * list.h (scm_list_1, scm_list_2, scm_list_3, scm_list_4, scm_list_5,
1804 scm_list_n): New functions.
1805 (SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
1806 SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify): Deprecated.
1807 (lots of files): Use the new functions.
1808
1809 * goops.c (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4): Use scm_call_N.
1810
1811 * strings.c: #include "libguile/deprecation.h".
1812
1813 2001-06-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1814
1815 * read.c (scm_lreadr): When reading a hash token, check for a
1816 user-defined hash procedure first, so that overriding the builtin
1817 hash characters is possible (this was needed for implementing
1818 SRFI-4's read synax `f32(...)').
1819
1820 * num2integral.i.c: Use scm_t_signed_bits instead of scm_t_bits,
1821 because the latter is unsigned now and breaks comparisons like
1822 (n < (scm_t_signed_bits)MIN_VALUE).
1823
1824 2001-06-26 Neil Jerram <neil@ossau.uklinux.net>
1825
1826 * eval.h, eval.c (scm_call_4): New function.
1827
1828 * eval.c (SCM_APPLY, SCM_CEVAL, ENTER_APPLY): Call trap handlers
1829 directly rather than dispatching to them via scm_ithrow and a lazy
1830 catch.
1831
1832 * eval.c (scm_evaluator_trap_table), eval.h (SCM_ENTER_FRAME_HDLR,
1833 SCM_APPLY_FRAME_HDLR, SCM_EXIT_FRAME_HDLR): Add three new options
1834 for trap handler procedures.
1835
1836 * debug.h (SCM_RESET_DEBUG_MODE): Add checks for trap handler
1837 procedures not being #f.
1838
1839 2001-06-27 Michael Livshin <mlivshin@bigfoot.com>
1840
1841 * Makefile.am (c-tokenize.c): add rule to generate it.
1842 (EXTRA_DIST): add c-tokenize.lex, so it gets distributed.
1843
1844 filter-doc-snarfage.c: remove.
1845
1846 2001-06-26 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1847
1848 * ports.c (scm_output_port_p): Use result of SCM_COERCE_OUTPORT.
1849
1850 The following set of changes makes compiling Guile under various
1851 Windows compilers easier. Compilation under GNU systems should
1852 not be affected at all.
1853
1854 Thanks to Stefan Jahn for all necessary information, patches and
1855 testing.
1856
1857 * posix.c: Conditialize getpwent, getgrent, kill, getppid, getuid,
1858 getpgrp, ttyname, primitive-fork and some header inclusion for
1859 Windows.
1860
1861 * random.c: Define M_PI, if not predefined and use __int64 for
1862 LONG64 under Windows.
1863
1864 * scmsigs.c: Emulate some functions (alarm, sleep, kill) under
1865 Windows and conditionalize some signal names.
1866
1867 * socket.c (scm_getsockopt): Added missing comma.
1868 Include socket library header under Windows.
1869
1870 * stime.c (CLKTCK): Add cast to int, to make it compile under
1871 Windows.
1872
1873 * ports.c (truncate): New function, compiled only under Windows.
1874
1875 * net_db.c: Do not declare errno under Windows.
1876
1877 * iselect.h, inet_aton.c: Include socket library headers under
1878 Windows.
1879
1880 * guile.c (inner_main): Under Windows, initialize socket library
1881 and initialize gdb_interface data structures.
1882
1883 * gdb_interface.h: Under Windows, gdb_interface cannot be
1884 initialized statically. Initialize at runtime instead.
1885
1886 * fports.c (write_all): ssize_t -> size_t.
1887 (fport_print): Conditionalize call to ttyname().
1888 (getflags): New function, compiled only under Windows.
1889
1890 * filesys.c: Conditionalize inclusion of <pwd.h>. Conditionalize
1891 primitives chown, link, fcntl.
1892 (scm_basename, scm_dirname): Under Windows, handle \ as well as /
1893 as path seperator.
1894
1895 * backtrace.c: Include <io.h> under Windows.
1896
1897 * async.h (ASYNCH, SCM_ASYNC_H): Rename <foo>H to SCM_<foo>_H.
1898
1899 * _scm.h: Added preprocessor conditional for __MINGW32__ for errno
1900 declaration.
1901
1902 2001-06-27 Keisuke Nishida <kxn30@po.cwru.edu>
1903
1904 * eval.c (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
1905 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): New functions.
1906 * eval.h (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
1907 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): Declared.
1908 * async.c (scm_run_asyncs), coop-threads.c (scheme_body_bootstrip,
1909 scheme_handler_bootstrip), debug.c (with_traps_inner), dynwind.c
1910 (scm_dynamic_wind, scm_dowinds), environments.c
1911 (import_environment_conflict), eval.c (scm_macroexp, scm_force,
1912 scm_primitive_eval_x, scm_primitive_eval), fluids.c (apply_thunk),
1913 goops.c (GETVAR, purgatory, make_class_from_template,
1914 scm_ensure_accessor), hashtab.c (scm_ihashx, scm_sloppy_assx,
1915 scm_delx_x, fold_proc), hooks.c (scm_c_run_hook), load.c
1916 (scm_primitive_load), modules.c (scm_resolve_module,
1917 scm_c_define_module, scm_c_use_module, scm_c_export,
1918 module_variable, scm_eval_closure_lookup, scm_sym2var,
1919 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
1920 ports.c (scm_port_for_each), print.c (scm_printer_apply),
1921 properties.c (scm_primitive_property_ref), ramap.c (ramap,
1922 ramap_cxr, rafe, scm_array_index_map_x, read.c (scm_lreadr),
1923 scmsigs.c (sys_deliver_signals), sort.c (applyless), strports.c
1924 (scm_object_to_string, scm_call_with_output_string,
1925 scm_call_with_input_string), throw.c (scm_body_thunk,
1926 scm_handle_by_proc, hbpca_body), unif.c (scm_make_shared_array,
1927 scm_make_shared_array), vports.c (sf_flush, sf_write,
1928 sf_fill_input, sf_close): Use one of the above functions.
1929 * goops.c, hashtab.c, scmsigs.c, sort.c: #include "libguile/root.h".
1930
1931 2001-06-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1932
1933 * filesys.c (scm_close), ports.c (scm_close_port,
1934 scm_port_closed_p), strop.c (scm_string_null_p): Use SCM_BOOL
1935 instead of SCM_NEGATE_BOOL.
1936
1937 * filesys.c (scm_stat): Clean up type dispatch.
1938
1939 * filesys.c (scm_stat), ports.c (scm_input_port_p,
1940 scm_output_port_p): Get rid of redundant IM type check.
1941
1942 * filesys.c (scm_readdir, scm_getcwd, scm_readlink), gh_data.c
1943 (gh_str2scm), load.c (scm_primitive_load, scm_internal_parse_path,
1944 scm_search_path), net_db.c (scm_gethost, scm_getnet, scm_getproto,
1945 scm_return_entry), numbers.c (scm_number_to_string), objects.c
1946 (scm_make_subclass_object), ports.c (scm_port_mode), read.c
1947 (scm_lreadr), simpos.c (scm_getenv), socket.c (scm_inet_ntoa,
1948 scm_addr_vector), stime.c (scm_strftime), strings.c
1949 (scm_makfromstrs, scm_makfrom0str, scm_substring), strings.h
1950 (SCM_STRING_COERCE_0TERMINATION_X), strop.c (string_copy,
1951 scm_string_split), strports.c (scm_strport_to_string), symbols.c
1952 (scm_symbol_to_string), vports.c (sf_write): Use scm_mem2string
1953 instead of scm_makfromstr.
1954
1955 * net_db.c (scm_sethost, scm_setnet, scm_setproto, scm_setserv),
1956 ports.c (scm_close_all_ports_except), read.c (scm_lreadr,
1957 scm_read_hash_extend), stime.c (scm_strftime), strings.c
1958 (scm_string_append, scm_string), strings.h (SCM_STRINGP,
1959 SCM_STRING_COERCE_0TERMINATION_X, SCM_RWSTRINGP), strop.c
1960 (string_capitalize_x): Prefer explicit type check over SCM_N?IMP,
1961 !SCM_<pred> over SCM_N<pred>.
1962
1963 * strings.[ch] (scm_makfromstr): Deprecated.
1964
1965 (scm_mem2string): New function, replaces scm_makfromstr.
1966
1967 * strings.c (scm_substring), strop.c (string_copy,
1968 scm_string_split), strports.c (scm_strport_to_string), symbols.c
1969 (scm_symbol_to_string): Fix gc problem.
1970
1971 * strings.h (STRINGSH, SCM_STRINGS_H): Rename <foo>H to
1972 SCM_<foo>_H.
1973
1974 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): Eliminate
1975 warning about comparing signed and unsigned values. This fix is
1976 not optimal, since it won't work reliably if sizeof (c_start) >
1977 sizeof (size_t) or sizeof (c_end) > sizeof (size_t). A better
1978 solution is to define this macro as an inline function, thus
1979 allowing to specifiy the types of c_start and c_end.
1980
1981 2001-06-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1982
1983 * debug.h (SCM_DEBUGOBJ_FRAME): Deliver result as a
1984 scm_t_debug_frame*.
1985
1986 * debug.h (DEBUGH, SCM_DEBUG_H), stacks.h (STACKSH, SCM_STACKSH):
1987 Rename <foo>H to SCM_<foo>_H.
1988
1989 * stacks.c (NEXT_FRAME, narrow_stack): Prefer explicit type check
1990 over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
1991
1992 (narrow_stack): Make i unsigned. Don't use side-effecting
1993 operations in conditions.
1994
1995 (narrow_stack, scm_make_stack, scm_stack_id,
1996 scm_last_stack_frame): Get rid of redundant SCM_N?IMP checks.
1997
1998 (scm_make_stack, scm_stack_id, scm_last_stack_frame): Clean up
1999 type dispatch. No need to cast result of SCM_DEBUGOBJ_FRAME any
2000 more.
2001
2002 (scm_stack_ref, scm_frame_previous, scm_frame_next): Fix
2003 signedness.
2004
2005 (scm_last_stack_frame): Remove bogus `;´.
2006
2007 * stacks.h (SCM_FRAMEP): Fix type check.
2008
2009 2001-06-25 Michael Livshin <mlivshin@bigfoot.com>
2010
2011 * Makefile.am (MAINTAINERCLEANFILES): be sure to remove
2012 c-tokenize.c when doing maintainer-clean.
2013
2014 * snarf.h (SCM_SNARF_DOCS): change the "grammar" slightly.
2015
2016 * guile-snarf-docs.in, guile-snarf-docs-texi.in: rewrite &
2017 simplify.
2018
2019 * eval.c: all hash signs are in column 0.
2020
2021 * Makefile.am (guile_filter_doc_snarfage): build using
2022 c-tokenize.c, not filter-doc-snarfage.c.
2023 rearrange snarfing dependencies a bit.
2024
2025 * c-tokenize.lex: new file.
2026
2027 2001-06-25 Marius Vollmer <mvo@zagadka.ping.de>
2028
2029 * srcprop.h, srcprop.c (scm_srcprops_to_plist): Renamed from
2030 scm_t_srcpropso_plist. See the big type renaming.
2031 * coop-defs.h (scm_mutex_trylock, scm_cond_timedwait): Likewise.
2032 Thanks to Seth Alves!
2033
2034 * numbers.c (SIZE_MAX, PTRDIFF_MIN, PTRDIFF_MAX): Only define when
2035 they aren't defined already.
2036
2037 2001-06-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
2038
2039 * backtrace.c (display_backtrace_body): Use SCM_VALIDATE_STACK
2040 and SCM_VALIDATE_OPOUTPORT instead of SCM_ASSERT. Fix signedness
2041 problem.
2042
2043 * backtrace.c (display_expression, scm_set_print_params_x,
2044 display_application, display_frame, scm_backtrace), numbers.c
2045 (scm_istring2number), objects.c (scm_class_of,
2046 scm_mcache_lookup_cmethod, scm_mcache_compute_cmethod): Prefer
2047 explicit type check over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
2048
2049 * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fluid numbers are
2050 always positive.
2051
2052 * numbers.c (scm_i_mkbig): Remove unnecessary casts, remove
2053 unnecessary SCM_DEFER_INTS, SCM_ALLOW_INTS.
2054
2055 * objects.c (scm_class_of): Type fix.
2056
2057 (scm_mcache_lookup_cmethod): Improved comment, simplified,
2058 eliminated goto.
2059
2060 * pairs.h (scm_error_pair_access): The function can return if
2061 called recursively.
2062
2063 2001-06-20 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2064
2065 * init.c (scm_init_guile_1): Removed initialization of tag.c.
2066
2067 * gdbint.c, init.c: Removed inclusion of tag.h.
2068
2069 * tag.h, tag.c: Removed files.
2070
2071 * Makefile.am: Removed tag.{h,c,doc,x} in various places.
2072
2073 2001-06-20 Gary Houston <ghouston@arglist.com>
2074
2075 * deprecation.c, extensions.c, rw.c: include string.h.
2076
2077 2001-06-19 Gary Houston <ghouston@arglist.com>
2078
2079 * filter-doc-snarfage.c (process): added ungetc in
2080 MULTILINE_COOKIE case since otherwise it fails when there's no
2081 space between the '(' and the quote of the following string
2082 (gcc 3.0).
2083
2084 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
2085
2086 Throughout: replace "scm_*_t" with "scm_t_*", except "scm_lisp_t".
2087
2088 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
2089
2090 * unif.h (SCM_ARRAY_NDIM): Shift then cast so that no sign
2091 extension takes place.
2092 * strings.h (SCM_STRING_LENGTH): Likewise.
2093 (SCM_STRING_MAX_LENGTH): Use unsigned numbers.
2094
2095 * __scm.h (ptrdiff_t): Typedef to long when configure didn't find
2096 it.
2097
2098 * tags.h: Include <stdint.h> when we have it.
2099 (scm_bits_t): Changed to be a unsigned type. Use uintptr_t when
2100 available. Else use "unsigned long".
2101 (scm_signed_bits_t): New.
2102
2103 * numbers.h (SCM_SRS): Cast shiftee to scm_signed_bits_t.
2104 (SCM_INUM): Cast result to scm_signed_bits_t.
2105
2106 2001-06-13 Thien-Thi Nguyen <ttn@revel.glug.org>
2107
2108 * mkstemp.c: Update path to #include file scmconfig.h.
2109 Thanks to Golubev I. N.
2110
2111 2001-06-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
2112
2113 * struct.h (SCM_STRUCT_VTABLE_FLAGS): New macro.
2114
2115 * goops.h (SCM_NUMBER_OF_SLOTS): Removed bogus `\´ at the end of
2116 the macro definition.
2117
2118 (SCM_CLASSP, SCM_INSTANCEP, SCM_PUREGENERICP, SCM_ACCESSORP,
2119 SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Use SCM_STRUCT_VTABLE_FLAGS
2120 instead of SCM_INST_TYPE.
2121
2122 (SCM_ACCESSORP, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Make sure
2123 the object is a struct before accessing its struct flags.
2124
2125 (SCM_INST_TYPE, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Deprecated.
2126
2127 2001-06-10 Gary Houston <ghouston@arglist.com>
2128
2129 * rdelim.c (scm_init_rdelim_builtins): don't try to activate the
2130 (ice-9 rdelim) module in (guile) and (guile-user). it didn't
2131 work reliably anymore. try it from boot-9.scm instead.
2132
2133 2001-06-09 Marius Vollmer <mvo@zagadka.ping.de>
2134
2135 * ports.c (scm_lfwrite): Maintain columnd and row count in port.
2136 Thanks to Matthias Köppe!
2137
2138 2001-06-08 Michael Livshin <mlivshin@bigfoot.com>
2139
2140 * snarf.h, filter-doc-snarfage.c: more changes to cope with
2141 space-happy C preprocessors.
2142
2143 * filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
2144 inside cookies. thanks to Matthias Köppe!
2145
2146 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2147
2148 * keywords.c (keyword_print): Don't use SCM_C[AD]R to access
2149 keywords. Fix gc protection.
2150
2151 * objects.c (scm_mcache_lookup_cmethod): Don't use side effecting
2152 operations in macro calls.
2153
2154 * pairs.c (scm_error_pair_access): Avoid recursion.
2155
2156 Thanks to Matthias Koeppe for reporting the bugs that correspond
2157 to the following set of patches.
2158
2159 * unif.c (scm_bit_set_star_x, scm_bit_invert_x), vectors.h
2160 (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR): Obtain the
2161 bitvector base address using SCM_BITVECTOR_BASE.
2162
2163 * unif.h (SCM_BITVECTOR_BASE): Return the base address as an
2164 unsigned long*.
2165
2166 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
2167
2168 * goops.c (SCM_CLASS_REDEF): Removed.
2169
2170 * vectors.h (VECTORSH, SCM_VECTORS_H): Renamed <foo>H to
2171 SCM_<foo>_H.
2172
2173 Thanks to Matthias Koeppe for reporting the bugs that correspond
2174 to the following set of patches.
2175
2176 * goops.c (scm_sys_prep_layout_x, scm_basic_basic_make_class,
2177 create_basic_classes, scm_sys_fast_slot_set_x, set_slot_value,
2178 scm_sys_allocate_instance, clear_method_cache,
2179 scm_sys_invalidate_method_cache_x, scm_make,
2180 create_standard_classes, scm_make_port_classes, scm_make_class,
2181 scm_add_slot): Use SCM_SET_SLOT to set slot values.
2182
2183 (prep_hashsets): Use SCM_SET_HASHSET to set class hash values.
2184
2185 * goops.h (SCM_SET_SLOT, SCM_SET_HASHSET): New macros.
2186
2187 * ramap.c (BINARY_ELTS_CODE, BINARY_PAIR_ELTS_CODE,
2188 UNARY_ELTS_CODE): Remove bogus break statement.
2189
2190 * vectors.h (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR):
2191 Don't access bit vectors elements as SCM objects.
2192
2193 * weaks.c (scm_make_weak_vector, scm_make_weak_key_hash_table,
2194 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
2195 Don't assign to an unpacked value.
2196
2197 2001-06-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
2198
2199 * __scm.h (SCM_NORETURN): Moved here from error.h.
2200
2201 (SCM_UNUSED): New macro.
2202
2203 (SCM_DEBUG_PAIR_ACCESSES): New macro.
2204
2205 * backtrace.c (display_error_handler), continuations.c
2206 (continuation_print), debug.c (debugobj_print), dynwind.c
2207 (guards_print), environments.c (observer_print,
2208 core_environments_finalize, leaf_environment_cell,
2209 leaf_environment_print, eval_environment_print,
2210 eval_environment_observer, import_environment_define,
2211 import_environment_undefine, import_environment_print,
2212 import_environment_observer, export_environment_define,
2213 export_environment_undefine, export_environment_print,
2214 export_environment_observer), eval.c (scm_m_quote, scm_m_begin,
2215 scm_m_if, scm_m_set_x, scm_m_and, scm_m_or, scm_m_case,
2216 scm_m_cond, scm_m_lambda, scm_m_letstar, scm_m_do, scm_m_delay,
2217 scm_m_letrec1, scm_m_apply, scm_m_cont, scm_m_nil_cond,
2218 scm_m_nil_ify, scm_m_t_ify, scm_m_0_cond, scm_m_0_ify,
2219 scm_m_1_ify, scm_m_atfop, scm_m_at_call_with_values), evalext.c
2220 (scm_m_generalized_set_x), fluids.c (fluid_print), fports.c
2221 (fport_print), gc.c (gc_start_stats, scm_remember_upto_here_1,
2222 scm_remember_upto_here_2, scm_remember_upto_here, mark_gc_async),
2223 gh_init.c (gh_standard_handler), goops.c (get_slot_value,
2224 set_slot_value, test_slot_existence, scm_change_object_class,
2225 scm_m_atslot_ref, scm_m_atslot_set_x, make_struct_class,
2226 default_setter), guardians.c (guardian_print, guardian_gc_init,
2227 guardian_zombify, whine_about_self_centered_zombies), guile.c
2228 (inner_main), init.c (stream_handler), keywords.c (keyword_print),
2229 mallocs.c (malloc_print), numbers.c (scm_print_real,
2230 scm_print_complex, scm_bigprint), ports.c (flush_port_default,
2231 end_input_default, scm_port_print, fill_input_void_port,
2232 write_void_port), root.c (root_print), smob.c (scm_mark0,
2233 scm_free0, scm_smob_print, scm_smob_apply_1_error,
2234 scm_smob_apply_2_error, scm_smob_apply_3_error, free_print),
2235 stime.c (restorezone), strings.c (scm_makfromstr), struct.c
2236 (scm_struct_free_0, scm_struct_free_standard,
2237 scm_struct_free_entity, scm_struct_gc_init, scm_free_structs),
2238 throw.c (jmpbuffer_print, lazy_catch_print, ss_handler,
2239 scm_handle_by_throw, scm_ithrow), weaks.c
2240 (scm_weak_vector_gc_init, scm_mark_weak_vector_spines,
2241 scm_scan_weak_vectors), ramap.c (scm_array_fill_int), filesys.c
2242 (scm_dir_print): Mark unused parameters with SCM_UNUSED.
2243
2244 * error.h (SCM_NORETURN): Moved to __scm.h.
2245
2246 * error.h (ERRORH, SCM_ERROR_H), pairs.h (PAIRSH, SCM_PAIRS_H):
2247 Renamed <foo>H to SCM_<foo>_H.
2248
2249 * gc.c (debug_cells_gc_interval): New static variable.
2250
2251 (scm_assert_cell_valid): If selected by the user, perform
2252 additional garbage collections.
2253
2254 (scm_set_debug_cell_accesses_x): Extended to let the user specify
2255 if additional garbage collections are desired.
2256
2257 (mark_gc_async): If additional garbage collections are selected
2258 by the user, don't call the after-gc-hook. Instead require the
2259 user to run the hook manually.
2260
2261 * pairs.c (scm_error_pair_access): New function. Only compiled
2262 if SCM_DEBUG_PAIR_ACCESSES is set to 1.
2263
2264 * pairs.h (SCM_VALIDATE_PAIR): New macro.
2265
2266 (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): If
2267 SCM_DEBUG_PAIR_ACCESSES is set to 1, make sure that the argument
2268 is a real pair object. (Glocs are also accepted, but that may
2269 change.) If not, abort with an error message.
2270
2271 2001-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
2272
2273 * eval.c (SCM_VALIDATE_NON_EMPTY_COMBINATION): New macro.
2274
2275 (SCM_CEVAL, SCM_APPLY): Replace calls to SCM_EVALIM2 with calls
2276 to SCM_VALIDATE_NON_EMPTY_COMBINATION.
2277
2278 2001-06-05 Marius Vollmer <mvo@zagadka.ping.de>
2279
2280 * extensions.c (scm_c_register_extension): Allow NULL as library
2281 name.
2282 (load_extension): Ignore NULL library names when comparing.
2283
2284 * hash.c (scm_hasher): Use SCM_UNPACK in the case labels so that
2285 non-pointers are being compared. Thanks to Alexander Klimov!
2286
2287 2001-06-04 Gary Houston <ghouston@arglist.com>
2288
2289 * rw.c (scm_write_string_partial): new procedure implementing
2290 write-string/partial in (ice-9 rw).
2291 * rw.h: declare scm_write_string_partial.
2292
2293 2001-06-04 Marius Vollmer <mvo@zagadka.ping.de>
2294
2295 * keywords.c (keyword_print): Substract 1 from length of symbol
2296 name, accounting for the silly dash.
2297
2298 * dynl.c (scm_registered_modules, scm_clear_registered_modules):
2299 Do not emit deprecation warning.
2300
2301 Added exception notice to all files.
2302
2303 * dynl.c: Include "deprecation.h".
2304
2305 2001-06-03 Marius Vollmer <mvo@zagadka.ping.de>
2306
2307 * dynl.c (scm_register_module_xxx, scm_registered_modules,
2308 scm_clear_registered_modules): Deprecated.
2309
2310 2001-06-02 Rob Browning <rlb@cs.utexas.edu>
2311
2312 * .cvsignore: add guile_filter_doc_snarfage guile-snarf-docs
2313 guile-snarf-docs-texi.
2314
2315 * fports.c: HAVE_ST_BLKSIZE changed to
2316 HAVE_STRUCT_STAT_ST_BLKSIZE.
2317 (scm_fport_buffer_add): HAVE_ST_BLKSIZE changed to
2318 HAVE_STRUCT_STAT_ST_BLKSIZE.
2319
2320 * filesys.c (scm_stat2scm): HAVE_ST_RDEV changed to
2321 HAVE_STRUCT_STAT_ST_RDEV.
2322 (scm_stat2scm): HAVE_ST_BLKSIZE changed to
2323 HAVE_STRUCT_STAT_ST_BLKSIZE.
2324 (scm_stat2scm): HAVE_ST_BLOCKS changed to
2325 HAVE_STRUCT_STAT_ST_BLOCKS.
2326
2327 2001-06-02 Marius Vollmer <mvo@zagadka.ping.de>
2328
2329 * strports.c (scm_eval_string): Use scm_primitive_eval_x instead
2330 of scm_eval_x to allow module changes between the forms in the
2331 string. Set/restore module using scm_c_call_with_current_module.
2332
2333 * mkstemp.c: New file, slightly modified from libiberties
2334 mkstemps.c.
2335
2336 2001-05-31 Michael Livshin <mlivshin@bigfoot.com>
2337
2338 * guile-snarf-docs.in, guile-snarf-docs-texi.in,
2339 filter-doc-snarfage.c: new files.
2340
2341 * Makefile.am: add stuff to [build,] use and distribute
2342 guile-snarf-docs, guile-snarf-docs-texi, guile_filter_doc_snarfage.
2343
2344 * guile-snarf.in: grok the new snarf output.
2345
2346 * snarf.h: make the output both texttools- and `read'-friendly.
2347
2348 * guile-doc-snarf.in: reimplement in terms of guile-snarf and
2349 guile-snarf-docs. (should also deprecate, I guess. maybe not).
2350
2351 2001-05-31 Marius Vollmer <mvo@zagadka.ping.de>
2352
2353 * print.c (scm_simple_format): Support "~~" and "~%". Signal
2354 error for unsupported format controls and for superflous
2355 arguments. Thanks to Daniel Skarda!
2356
2357 * print.h, print.c (scm_print_symbol_name): Factored out of
2358 scm_iprin1.
2359 (scm_iprin1): Call it.
2360
2361 * keywords.c (keyword_print): Use scm_print_symbol_name so that
2362 weird names are printed correctly.
2363
2364 * print.c (scm_print_symbol_name): Symbols whose name starts with
2365 `#' or `:' or ends with `:' are considered weird.
2366
2367 2001-05-30 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2368
2369 * numbers.c (scm_difference, scm_divide): Clarified comments for -
2370 and /.
2371
2372 2001-05-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2373
2374 * debug.h: Removed prototype for scm_eval_string.
2375
2376 2001-05-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2377
2378 * symbols.c (scm_gensym): Fix buffer overrun (try `(gensym
2379 (make-string 2000 #\!))' in an older version).
2380
2381 Change strncpy to memcpy to allow embedded NUL characters in
2382 symbol prefix.
2383
2384 2001-05-28 Michael Livshin <mlivshin@bigfoot.com>
2385
2386 * hooks.c (scm_create_hook): deprecated.
2387 (make_hook): deleted.
2388 (scm_make_hook): all the hook creation code is now here.
2389
2390 * gc.c (scm_init_gc): don't call `scm_create_hook'. instead make
2391 a hook, make it permanent, and do a `scm_c_define' on it.
2392
2393 * strop.c (s_scm_string_capitalize_x): fix docstring quoting.
2394
2395 * socket.c (s_scm_inet_pton): fix docstring quoting.
2396 (s_scm_inet_ntop): ditto.
2397
2398 * num2integral.i.c (INTEGRAL2NUM): cast to fix a warning.
2399
2400 * hashtab.c (scm_internal_hash_fold): fix argument position in
2401 SCM_ASSERT.
2402
2403 * environments.c (s_scm_import_environment_set_imports_x): fix
2404 argument position in SCM_ASSERT.
2405
2406 * debug.c (s_scm_make_gloc): fix SCM packing/unpacking.
2407 (s_scm_make_iloc): ditto.
2408
2409 2001-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
2410
2411 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS): Make 1 the default.
2412
2413 * eval.c (promise_print): Read the promise's value as an object.
2414
2415 (SCM_CEVAL): Don't perform side-effecting operations in macro
2416 parameters.
2417
2418 * eval.h (SCM_EVALIM2): Fix the typing strictness of the
2419 conditional expression.
2420
2421 * gc.c (scm_master_freelist, scm_master_freelist2): Added missing
2422 initializer.
2423
2424 * gh_data.c (gh_set_substr): Removed redundant unsigned >= 0
2425 text, removed redundant computation of effective_length and fixed
2426 the overflow check.
2427
2428 * goops.c (test_slot_existence): Use SCM_EQ_P to compare SCM
2429 values.
2430
2431 (wrap_init): Don't use SCM_C[AD]R for non pairs.
2432
2433 (hell): Make it a scm_bits_t pointer rather than a SCM pointer.
2434
2435 * goops.c (scm_sys_modify_class), strports.c (st_resize_port),
2436 struct.h (SCM_SET_STRUCT_PRINTER): Store unpacked values.
2437
2438 * goops.h (SCM_ACCESSORS_OF, SCM_SLOT): Return a SCM value.
2439
2440 * goops.h (GOOPSH, SCM_GOOPS_H), modules.h (MODULESH,
2441 SCM_MODULES_H), objects.h (OBJECTSH, SCM_OBJECTS_H), struct.h
2442 (STRUCTH, SCM_STRUCT_H), symbols.h (SYMBOLSH, SCM_SYMBOLS_H),
2443 __scm.h (__SCMH, SCM___SCM_H): Change <foo>H to SCM_<foo>_H.
2444
2445 * modules.[ch] (scm_module_tag): Make it a scm_bits_t value.
2446
2447 * objects.h (SCM_SET_CLASS_INSTANCE_SIZE): Fixed typing.
2448
2449 * ramap.c (ramap_rp): Removed bogus `;´.
2450
2451 * sort.c (scm_restricted_vector_sort_x): Fixed signedness
2452 problem.
2453
2454 * symbols.h (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS, SCM_SYMBOL_FUNC,
2455 SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS, SCM_SET_SYMBOL_PROPS):
2456 Read SCM objects rather than scm_bits_t values.
2457
2458 * tags.h (SCM_VOIDP_TEST): Removed.
2459
2460 (SCM_DEBUG_TYPING_STRICTNESS): Now takes values 0, 1, 2. The
2461 value of 2 now corresponds to the former 1, the current 1
2462 corresponds to the former situation that SCM_VOIDP_TEST was
2463 defined.
2464
2465 (SCM): Now defined as typedef struct scm_unused_struct * SCM;
2466 If this appears to be not ANSI compliant, we will change it to
2467 typedef struct scm_unused_struct { } * SCM;
2468 Thanks to Han-Wen Nienhuys for the suggestion.
2469
2470 * unif.c (scm_array_set_x): Fix typing problem, and use
2471 SCM_UVECTOR_BASE instead of SCM_VELTS or SCM_CELL_WORD_1 when
2472 dealing with uniform vectors.
2473
2474 2001-05-27 Michael Livshin <mlivshin@bigfoot.com>
2475
2476 * gc.c (scm_init_storage): init `scm_gc_registered_roots'.
2477 (scm_igc): mark from them, too (precisely, not conservatively!).
2478
2479 * root.h (scm_gc_registered_roots): new object in
2480 scm_sys_protects.
2481
2482 * hooks.c (scm_create_hook): call `scm_gc_protect_object' instead
2483 `scm_protect_object'. shouldn't call it at all, though, it seems.
2484
2485 * gc.c (scm_[un]protect_object): deprecated.
2486 (scm_gc_[un]protect_object): new names for scm_[un]protect_object.
2487 (scm_gc_[un]register_root[s]): new.
2488
2489 * gc.h: add prototypes for scm_gc_[un]protect_object,
2490 scm_gc_[un]register_root[s].
2491
2492 2001-05-26 Michael Livshin <mlivshin@bigfoot.com>
2493
2494 revert the controversial part of the 2001-05-24 changes.
2495
2496 2001-05-25 Marius Vollmer <mvo@zagadka.ping.de>
2497
2498 * modules.c (scm_env_module): Exported to Scheme.
2499
2500 * eval.c (scm_debug_opts): New option `show-file-name'.
2501
2502 * debug.h (SCM_SHOW_FILE_NAME): New.
2503
2504 * backtrace.c: Include "libguile/filesys.h".
2505 (sym_base, display_backtrace_get_file_line,
2506 display_backtrace_file, display_backtrace_file_and_line): New.
2507 (display_frame): Call display_backtrace_file_and_line if that is
2508 requested.
2509 (display_backtrace_body): Call scm_display_backtrace_file if
2510 requested.
2511
2512 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr):
2513 Prototypes removed since there's no definition for these
2514 functions.
2515
2516 2001-05-24 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2517
2518 * unif.c (scm_make_ra, array_free), unif.h (SCM_ARRAY_DIMS):
2519 Changed use of scm_array->scm_array_t and
2520 scm_array_dim->scm_array_dim_t to enable build with
2521 --disable-deprecated.
2522
2523 2001-05-24 Michael Livshin <mlivshin@bigfoot.com>
2524
2525 The purpose of this set of changes is to regularize Guile's usage
2526 of ANSI C integral types, with the following ideas in mind:
2527
2528 - SCM does not nesessarily have to be long.
2529 - long is not nesessarily enough to store pointers.
2530 - long is not nesessarily the same size as int.
2531
2532 The changes are incomplete and possibly buggy. Please test on
2533 something exotic.
2534
2535 * validate.h
2536 (SCM_NUM2{SIZE,PTRDIFF,SHORT,USHORT,BITS,UBITS,INT,UINT}[_DEF]):
2537 new macros.
2538
2539 * unif.h: type renaming:
2540 scm_array -> scm_array_t
2541 scm_array_dim -> scm_array_dim_t
2542 the old names are deprecated, all in-Guile uses changed.
2543
2544 * tags.h (scm_ubits_t): new typedef, representing unsigned
2545 scm_bits_t.
2546
2547 * stacks.h: type renaming:
2548 scm_info_frame -> scm_info_frame_t
2549 scm_stack -> scm_stack_t
2550 the old names are deprecated, all in-Guile uses changed.
2551
2552 * srcprop.h: type renaming:
2553 scm_srcprops -> scm_srcprops_t
2554 scm_srcprops_chunk -> scm_srcprops_chunk_t
2555 the old names are deprecated, all in-Guile uses changed.
2556
2557 * gsubr.c, procs.c, print.c, ports.c, read.c, rdelim.c, ramap.c,
2558 rw.c, smob.c, sort.c, srcprop.c, stacks.c, strings.c, strop.c,
2559 strorder.c, strports.c, struct.c, symbols.c, unif.c, values.c,
2560 vectors.c, vports.c, weaks.c:
2561 various int/size_t -> size_t/scm_bits_t changes.
2562
2563 * random.h: type renaming:
2564 scm_rstate -> scm_rstate_t
2565 scm_rng -> scm_rng_t
2566 scm_i_rstate -> scm_i_rstate_t
2567 the old names are deprecated, all in-Guile uses changed.
2568
2569 * procs.h: type renaming:
2570 scm_subr_entry -> scm_subr_entry_t
2571 the old name is deprecated, all in-Guile uses changed.
2572
2573 * options.h (scm_option_t.val): unsigned long -> scm_bits_t.
2574 type renaming:
2575 scm_option -> scm_option_t
2576 the old name is deprecated, all in-Guile uses changed.
2577
2578 * objects.c: various long -> scm_bits_t changes.
2579 (scm_i_make_class_object): flags: unsigned long -> scm_ubits_t
2580
2581 * numbers.h (SCM_FIXNUM_BIT): deprecated, renamed to
2582 SCM_I_FIXNUM_BIT.
2583
2584 * num2integral.i.c: new file, multiply included by numbers.c, used
2585 to "templatize" the various integral <-> num conversion routines.
2586
2587 * numbers.c (scm_mkbig, scm_big2num, scm_adjbig, scm_normbig,
2588 scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl):
2589 deprecated.
2590 (scm_i_mkbig, scm_i_big2inum, scm_i_adjbig, scm_i_normbig,
2591 scm_i_copybig, scm_i_short2big, scm_i_ushort2big, scm_i_int2big,
2592 scm_i_uint2big, scm_i_long2big, scm_i_ulong2big, scm_i_bits2big,
2593 scm_i_ubits2big, scm_i_size2big, scm_i_ptrdiff2big,
2594 scm_i_long_long2big, scm_i_ulong_long2big, scm_i_dbl2big,
2595 scm_i_big2dbl, scm_short2num, scm_ushort2num, scm_int2num,
2596 scm_uint2num, scm_bits2num, scm_ubits2num, scm_size2num,
2597 scm_ptrdiff2num, scm_num2short, scm_num2ushort, scm_num2int,
2598 scm_num2uint, scm_num2bits, scm_num2ubits, scm_num2ptrdiff,
2599 scm_num2size): new functions.
2600
2601 * modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.
2602
2603 * load.c: change int -> size_t in various places (where the
2604 variable is used to store a string length).
2605 (search-path): call scm_done_free, not scm_done_malloc.
2606
2607 * list.c (scm_ilength): return a scm_bits_t, not long.
2608 some other {int,long} -> scm_bits_t changes.
2609
2610 * hashtab.c: various [u]int -> scm_bits_t changes.
2611 scm_ihashx_closure -> scm_ihashx_closure_t (and made a typedef).
2612 (scm_ihashx): n: uint -> scm_bits_t
2613 use scm_bits2num instead of scm_ulong2num.
2614
2615 * gsubr.c: various int -> scm_bits_t changes.
2616
2617 * goops.[hc]: various {int,long} -> scm_bits_t changes.
2618
2619 * gh_data.c (gh_num2int): no loss of precision any more.
2620
2621 * gh.h (gh_str2scm): len: int -> size_t
2622 (gh_{get,set}_substr): start: int -> scm_bits_t,
2623 len: int -> size_t
2624 (gh_<num>2scm): n: int -> scm_bits_t
2625 (gh_*vector_length): return scm_[u]size_t, not unsigned long.
2626 (gh_length): return scm_bits_t, not unsigned long.
2627
2628 * gc.[hc]: various small changes relating to many things stopping
2629 being long and starting being scm_[u]bits_t instead.
2630 scm_mallocated should no longer wrap around.
2631
2632 * fports.h: type renaming:
2633 scm_fport -> scm_fport_t
2634 the old name is deprecated, all in-Guile uses changed.
2635
2636 * fports.c (fport_fill_input): count: int -> scm_bits_t
2637 (fport_flush): init_size, remaining, count: int -> scm_bits_t
2638
2639 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr): removed
2640 those prototypes, as the functions they prototype don't exist.
2641
2642 * fports.c (default_buffer_size): int -> size_t
2643 (scm_fport_buffer_add): read_size, write_size: int -> scm_bits_t
2644 default_size: int -> size_t
2645 (scm_setvbuf): csize: int -> scm_bits_t
2646
2647 * fluids.c (n_fluids): int -> scm_bits_t
2648 (grow_fluids): old_length, i: int -> scm_bits_t
2649 (next_fluid_num, scm_fluid_ref, scm_fluid_set_x): n: int ->
2650 scm_bits_t
2651 (scm_c_with_fluids): flen, vlen: int -> scm_bits_t
2652
2653 * filesys.c (s_scm_open_fdes): changed calls to SCM_NUM2LONG to
2654 the new and shiny SCM_NUM2INT.
2655
2656 * extensions.c: extension -> extension_t (and made a typedef).
2657
2658 * eval.h (SCM_IFRAME): cast to scm_bits_t, not int. just so
2659 there are no nasty surprises if/when the various deeply magic tag
2660 bits move somewhere else.
2661
2662 * eval.c: changed the locals used to store results of SCM_IFRAME,
2663 scm_ilength and such to be of type scm_bits_t (and not int/long).
2664 (iqq): depth, edepth: int -> scm_bits_t
2665 (scm_eval_stack): int -> scm_bits_t
2666 (SCM_CEVAL): various vars are not scm_bits_t instead of int.
2667 (check_map_args, scm_map, scm_for_each): len: long -> scm_bits_t
2668 i: int -> scm_bits_t
2669
2670 * environments.c: changed the many calls to scm_ulong2num to
2671 scm_ubits2num.
2672 (import_environment_fold): proc_as_ul: ulong -> scm_ubits_t
2673
2674 * dynwind.c (scm_dowinds): delta: long -> scm_bits_t
2675
2676 * debug.h: type renaming:
2677 scm_debug_info -> scm_debug_info_t
2678 scm_debug_frame -> scm_debug_frame_t
2679 the old names are deprecated, all in-Guile uses changed.
2680 (scm_debug_eframe_size): int -> scm_bits_t
2681
2682 * debug.c (scm_init_debug): use scm_c_define instead of the
2683 deprecated scm_define.
2684
2685 * continuations.h: type renaming:
2686 scm_contregs -> scm_contregs_t
2687 the old name is deprecated, all in-Guile uses changed.
2688 (scm_contregs_t.num_stack_items): size_t -> scm_bits_t
2689 (scm_contregs_t.num_stack_items): ulong -> scm_ubits_t
2690
2691 * continuations.c (scm_make_continuation): change the type of
2692 stack_size from long to scm_bits_t.
2693
2694 * ports.h: type renaming:
2695 scm_port_rw_active -> scm_port_rw_active_t (and made a typedef)
2696 scm_port -> scm_port_t
2697 scm_ptob_descriptor -> scm_ptob_descriptor_t
2698 the old names are deprecated, all in-Guile uses changed.
2699 (scm_port_t.entry): int -> scm_bits_t.
2700 (scm_port_t.line_number): int -> long.
2701 (scm_port_t.putback_buf_size): int -> size_t.
2702
2703 * __scm.h (long_long, ulong_long): deprecated (they pollute the
2704 global namespace and have little value beside that).
2705 (SCM_BITS_LENGTH): new, is the bit size of scm_bits_t (i.e. of an
2706 SCM handle).
2707 (ifdef spaghetti): include sys/types.h and sys/stdtypes.h, if they
2708 exist (for size_t & ptrdiff_t).
2709 (scm_sizet): deprecated.
2710
2711 * Makefile.am (noinst_HEADERS): add num2integral.i.c
2712
2713 2001-05-23 Marius Vollmer <mvo@zagadka.ping.de>
2714
2715 * snarf.h (SCM_CONST_LONG): Use SCM_VCELL_INIT instead of
2716 SCM_VARIABLE_INIT since that it what it used to be.
2717
2718 * deprecation.c (scm_include_deprecated_features): Make docstring
2719 ANSIsh. Thanks to Matthias Köppe!
2720
2721 2001-05-21 Marius Vollmer <mvo@zagadka.ping.de>
2722
2723 * symbols.c (scm_mem2symbol): Re-introduce indirect cell. It is
2724 needed for weak-key hashtables.
2725
2726 * procs.c (scm_make_subr_with_generic): Add missing last argument
2727 in call to scm_c_define_gsubr_with_generic. Thanks to Ariel Rios.
2728
2729 * eval.c: Use SCM_EQ_P instead of `==' or `!=' in certain
2730 places. (scm_c_improper_memq): Return 1 instead of SCM_BOOL_T.
2731
2732 * eval.h (SCM_EVALIM2): Use SCM_EQ_P instead of `=='.
2733
2734 2001-05-20 Marius Vollmer <mvo@zagadka.ping.de>
2735
2736 * symbols.c (scm_mem2symbol): Call `scm_must_strndup' instead of
2737 `duplicate_string'. Do not use an indirect cell, store symbol
2738 directly in collision list of hash table.
2739 (duplicate_string): Removed.
2740
2741 * init.c (scm_init_guile_1): Call scm_init_extensions.
2742
2743 * Makefile.am: Add "extensions.c" and related files in all the
2744 right places.
2745
2746 * extensions.h, extension.c: New files.
2747
2748 * gc.h, gc.c (scm_must_strdup, scm_must_strndup): New.
2749
2750 * modules.h (scm_system_module_env_p): Move out of deprecated
2751 section.
2752
2753 * rw.h (scm_init_rw): Added prototype.
2754
2755 * gsubr.h, gsubr.c (scm_c_make_gsubr, scm_c_define_gsubr,
2756 scm_c_make_gsubr_with_generic, scm_c_define_gsubr_with_generic):
2757 New functions. They replace scm_make_gsubr and
2758 scm_make_gsubr_with_generic. The `make' variants only create the
2759 gsubr object, while the `define' variants also put it into the
2760 current module. Changed all callers.
2761 (scm_make_gsubr, scm_make_gsubr_with_generic): Deprecated.
2762
2763 * procs.h, procs.c (scm_c_make_subr, scm_c_define_subr,
2764 scm_c_make_subr_with_generic, scm_c_define_subr_with_generic): New
2765 functions. They replace scm_make_subr, scm_make_subr_opt and
2766 scm_make_subr_with_generic. The `make' variants only create the
2767 subr object, while the `define' variants also put it into the
2768 current module. Changed all callers.
2769 (scm_make_subr, scm_make_subr_opt, scm_make_subr_with_generic):
2770 Deprecated.
2771
2772 * eval.c, gc.c, gh_funcs.c, goops.c, macros.c, pairs.c, ramap.c,
2773 rdelim.c, rw.c, scmsigs.c, snarf.h, values.c: Changed according to
2774 the comments above.
2775
2776 2001-05-19 Neil Jerram <neil@ossau.uklinux.net>
2777
2778 * throw.c (scm_lazy_catch): Slight docstring clarification.
2779
2780 2001-05-19 Marius Vollmer <mvo@zagadka.ping.de>
2781
2782 * throw.c: Lazy-catch handlers are no longer allowed to return.
2783 Fixed comments throughout.
2784 (scm_ithrow): Signal an error when a lazy-catch handler returns.
2785 Moved actual jump to jmpbuf into if-branch where the jmpbuf is
2786 recognized as such.
2787
2788 * version.c (s_scm_micro_version): Fix typo in FUNC_NAME, it
2789 refered to s_scm_minor_version previously.
2790
2791 * modules.h, modules.c: Moved around a lot of code so that
2792 deprecated features appear at the bottom.
2793 (root_module_lookup_closure, scm_sym_app, scm_sym_modules,
2794 module_prefix, make_modules_in_var, beautify_user_module_x_var,
2795 scm_the_root_module, scm_make_module, scm_ensure_user_module,
2796 scm_load_scheme_module): Deprecated.
2797 (scm_system_module_env_p): Return SCM_BOOL_T directly for
2798 environments corresponding to the root module.
2799 (convert_module_name, scm_c_resolve_module,
2800 scm_c_call_with_current_module, scm_c_define_module,
2801 scm_c_use_module, scm_c_export): New.
2802 (the_root_module): New static variant of scm_the_root_module. Use
2803 it everywhere instead of scm_the_root_module.
2804
2805 * fluids.h, fluids.c (scm_internal_with_fluids): Deprecated.
2806 (scm_c_with_fluids): Renamed from scm_internal_with_fluids.
2807 (scm_c_with_fluid): New.
2808 (scm_with_fluids): Use scm_c_with_fluids instead of
2809 scm_internal_with_fluids.
2810
2811 * goops.h, goops.c (scm_init_goops_builtins): Renamed from
2812 `scm_init_goops'. Do not explicitly create/switch modules.
2813 Return SCM_UNSPECIFIED.
2814 (scm_init_goops): Only register `%init-goops-builtins' procedure.
2815 (scm_load_goops): Use scm_c_resolve_module instead of
2816 scm_resolve_module.
2817
2818 * init.c (scm_init_guile_1): Call `scm_init_goops' instead of
2819 `scm_init_oop_goops_goopscore_module'. Call `scm_init_rdelim' and
2820 `scm_init_rw' prior to loading the startup files.
2821
2822 * rdelim.h, rdelim.c: (scm_init_rdelim_builtins): Renamed from
2823 scm_init_rdelim. Do not explicitly create/switch modules.
2824 Return SCM_UNSPECIFIED.
2825 (scm_init_rdelim): Only register `%init-rdelim-builtins'
2826 procedure.
2827
2828 * rw.c (scm_init_rw_builtins): Renamed from scm_init_rw. Do not
2829 explicitly create/switch modules. Return SCM_UNSPECIFIED.
2830 (scm_init_rw): Only register `%init-rw-builtins' procedure.
2831
2832 * script.c (scm_shell): Evaluate the compiled switches in the
2833 current module, not in the root module.
2834
2835 2001-05-18 Marius Vollmer <mvo@zagadka.ping.de>
2836
2837 * fluids.c (scm_c_with_fluids): Rename from
2838 scm_internal_with_fluids.
2839 (scm_internal_with_fluids): Deprecated.
2840 (scm_c_with_fluid): New.
2841
2842 2001-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2843
2844 * print.h (PRINTH, SCM_PRINT_H): Renamed PRINTH to SCM_PRINT_H.
2845
2846 (SCM_PORT_WITH_PS_PORT, SCM_PORT_WITH_PS_PS): Only pairs may be
2847 accessed with SCM_C[AD]R.
2848
2849 (SCM_COERCE_OUTPORT): Removed redundant SCM_NIMP test.
2850
2851 2001-05-16 Rob Browning <rlb@cs.utexas.edu>
2852
2853 * version.c (s_scm_major_version): doc fixes.
2854 (s_scm_minor_version): doc fixes.
2855 (s_scm_minor_version): new function.
2856
2857 * version.h (scm_init_version): new function.
2858
2859 * versiondat.h.in: add GUILE_MICRO_VERSION.
2860
2861 2001-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2862
2863 * deprecation.c (scm_init_deprecation): Renamed
2864 GUILE_WARN_DEPRECATED_DEFAULT to SCM_WARN_DEPRECATED_DEFAULT.
2865
2866 2001-05-16 Marius Vollmer <mvo@zagadka.ping.de>
2867
2868 * Makefile.am (cpp_sig_symbols.c, cpp_err_symbols.c): Make
2869 dependent on cpp_cnvt.awk
2870
2871 2001-05-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2872
2873 * script.c (scm_compile_shell_switches): New command line option
2874 `--use-srfi' for loading a list of SRFIs on startup.
2875 (scm_shell_usage): Added `--use-srfi' to help message.
2876
2877 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
2878
2879 Merged from mvo-vcell-cleanup-1-branch.
2880
2881 The concept of vcells has been removed from Guile. With it,
2882 explicit obarrays and associated operations are gone. Use
2883 hashtables instead of obarrays.
2884
2885 Throughout: use scm_sym2var instead of scm_sym2vcell and treat
2886 result as variable instead of vcell. Glocs no longer point to a
2887 vcell but to a variable. Use scm_c_define instead of
2888 scm_sysintern and treat the result as a variable (which it is),
2889 not a vcell.
2890
2891 * variable.c, variable.h (SCM_VARVCELL, SCM_UDVARIABLEP,
2892 SCM_DEFVARIABLEP): Deprecated.
2893 (SCM_VARIABLE_REF, SCM_VARIABLE_SET, SCM_VARIABLE_LOC): New.
2894 (variable_print): Do not print name of variable.
2895 (variable_equalp): Compare values, not vcells.
2896 (anonymous_variable_sym): Removed.
2897 (make_vcell_variable): Removed.
2898 (make_variable): New, as replacement.
2899 (scm_make_variable, scm_make_undefined_variable): Do not take name
2900 hint parameter.
2901 (scm_variable_ref): Check for SCM_UNDEFINED and throw "unbound"
2902 error in that case.
2903 (scm_builtin_variable): Deprecated.
2904
2905 * symbols.c, symbols.h (scm_sym2vcell, scm_sym2ovcell_soft,
2906 scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
2907 scm_intern, scm_intern0, scm_sysintern0_no_module_lookup,
2908 scm_sysintern, scm_sysintern0, scm_symbol_value0,
2909 scm_string_to_obarray_symbol, scm_intern_symbol,
2910 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned,
2911 scm_symbol_bound_p, scm_symbol_set_x, scm_gentmp, gentmp_counter):
2912 Deprecated and moved to "symbols-deprecated.c".
2913 (copy_and_prune_obarray, scm_builtin_bindings): Removed.
2914 (scm_init_symbols): Call scm_init_symbols_deprecated.
2915 * symbols-deprecated.c: New file.
2916 * Makefile.am: Added symbols-deprecated.c and related files in all
2917 the right places.
2918
2919 * snarf.h (SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
2920 SCM_GLOBAL_VCELL_INIT): Deprecated.
2921 (SCM_VARIABLE, SCM_GLOBAL_VARIABLE, SCM_VARIABLE_INIT,
2922 SCM_GLOBAL_VARIABLE_INIT): New, as replacement. Changed all uses.
2923
2924 * print.c (scm_iprin1): Use scm_module_reverse_lookup instead of
2925 SCM_GLOC_SYM.
2926
2927 * evalext.c, filesys.c, fports.c, gdbint.c, gh_data.c, gsubr.c,
2928 hooks.c, load.c, numbers.c, objects.c, ports.c, posix.c, procs.c,
2929 ramap.c, random.c, read.c, regex-posix.c, scmsigs.c, script.c,
2930 socket.c, srcprop.c, stacks.c, stime.c, struct.c, tag.c, throw.c:
2931 Changed according to the `throughout' comments.
2932
2933 * modules.h, modules.c (scm_module_system_booted_p): Changed type
2934 to `int'.
2935 (scm_module_type): Removed.
2936 (the_root_module): Renamed to the_root_module_var. Now points to
2937 a variable instead of a vcell. Updated all uses.
2938 (scm_the_root_module): Return SCM_BOOL_F when module systems
2939 hasn't been booted yet.
2940 (SCM_VALIDATE_STRUCT_TYPE): Removed.
2941 (scm_post_boot_init_modules): Made static.
2942 (scm_set_current_module): Call scm_post_boot_init_modules on first
2943 call.
2944 (make_modules_in, beautify_user_module_x, resolve_module,
2945 try_module_autoload, module_make_local_var_x): Tacked on "_var"
2946 suffix. Now point to variables instead of vcells. Updated all
2947 uses.
2948 (scm_module_lookup_closure): Deal with the module being SCM_BOOL_F
2949 and return SCM_BOOL_F in that case.
2950 (scm_module_transformer): Likewise.
2951 (sym_module, scm_lookup_closure_module, scm_env_module): New.
2952 (SCM_F_EVAL_CLOSURE_INTERFACE, SCM_EVAL_CLOSURE_INTERFACE_P): New.
2953 (scm_eval_closure_lookup): Do not allow new definitions when
2954 `interface' flag is set.
2955 (scm_standard_interface_eval_closure): New.
2956 (scm_pre_modules_obarray, scm_sym2var, scm_module_lookup,
2957 scm_lookup, scm_module_define, scm_define, scm_c_module_lookup,
2958 scm_c_lookup, scm_c_module_define, scm_c_define,
2959 scm_module_reverse_lookup, scm_get_pre_modules_obarray,
2960 scm_modules_prehistory): New.
2961 (scm_post_boot_init_modules): Use scm_c_define and scm_c_lookup
2962 instead of scm_intern0.
2963
2964 * macros.c (scm_make_synt): Return SCM_UNSPECIFIED instead of the
2965 symbol.
2966
2967 * keywords.c (s_scm_make_keyword_from_dash_symbol): Use a regular
2968 hashtable operations to maintain the keywords, not obarray ones.
2969
2970 * init.c (scm_load_startup_files): Do not call
2971 scm_post_boot_init_modules. This is done by
2972 scm_set_current_module now.
2973 (scm_init_guile_1): Call scm_modules_prehistory. Call
2974 scm_init_variable early on.
2975
2976 * goops.c (s_scm_sys_goops_loaded): Get
2977 var_compute_applicable_methods from scm_sym2var, not from a direct
2978 invocation of scm_goops_lookup_closure.
2979
2980 * gh_funcs.c (gh_define): Return SCM_UNSPECIFIED instead of vcell.
2981
2982 * gc.c: Added simple debugging hack to mark phase of GC: When
2983 activated, do not tail-call scm_gc_mark. This gives nice
2984 backtraces.
2985 (scm_unhash_name): Removed.
2986
2987 * feature.c (features): Renamed to features_var. Now points to a
2988 variable instead of a vcell. Updated all uses.
2989
2990 * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): Use
2991 `scm_current_module_lookup_closure' which will do the right thing
2992 when the module system hasn't been booted yet.
2993 (SCM_GLOC_SYM): Removed.
2994 (SCM_GLOC_VAR, SCM_GLOC_SET_VAL): New.
2995 (SCM_GLOC_VAL, SCM_GLOC_LOC): Reimplemented in terms of variables.
2996
2997 * eval.c (scm_lookupcar, scm_lookupcar1): Deal with variables
2998 instead of with vcells. Do not overwrite `var' with the result of
2999 the lookup, use the new `real_var' instead. Remove `var2' in
3000 exchange (which was only used with threads).
3001 (sym_three_question_marks): New.
3002 (scm_unmemocar): Use `scm_module_reverse_lookup' instead of
3003 `SCM_GLOC_SYM'.
3004 (scm_lisp_nil, scm_lisp_t): Directly define as symbols.
3005 (scm_m_atfop): Expect the function definition to be a variable
3006 instead of a vcell.
3007 (scm_macroexp): Do not use `unmemocar', explicitely remember the
3008 symbol instead.
3009 (scm_unmemocopy): Removed thoughts about anti-macro interface.
3010 (scm_eval_args): Use more explicit code in the gloc branch of the
3011 atrocious struct ambiguity test. The optimizer will sort this
3012 out.
3013 (scm_deval_args): Likewise.
3014 (SCM_CEVAL): Likewise. Also, do not use unmemocar, explicitely
3015 remember the symbol instead. Added some comments where
3016 scm_tc3_cons_gloc really exclusively refers to structs.
3017 (scm_init_eval): Use scm_define to initialize "nil" and "t" to
3018 scm_lisp_nil and scm_lisp_t, respectively. Use scm_define instead
3019 of scm_sysintern in general.
3020
3021 * dynwind.c (scm_swap_bindings): Use SCM_GLOC_SET_VAL instead of
3022 explicit magic.
3023
3024 * debug.c (s_scm_make_gloc): Only allow proper variables, no
3025 pairs. Put the variable directly in the gloc.
3026 (s_scm_gloc_p): Use `scm_tc3_cons_gloc' instead of the magic `1'.
3027 (scm_init_debug): Use scm_c_define instead scm_sysintern.
3028
3029 * cpp_cnvt.awk: Emit "scm_c_define" instead of "scm_sysintern".
3030
3031 * backtrace.h, backtrace.c (scm_the_last_stack_fluid): Renamed to
3032 scm_the_last_stack_fluid_var. It now points to a variable instead
3033 of a vcell. Updated all uses.
3034 (scm_has_shown_backtrace_hint_p_var): Now points to a variable
3035 instead of a vcell. Updated all uses.
3036
3037 * _scm.h: Include "variables.h" and "modules.h" since almost
3038 everybody needs them now.
3039
3040 * root.h (scm_symhash, scm_symhash_vars): Removed.
3041 * gc.c (scm_init_storage): Do not initialize them.
3042
3043 2001-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
3044
3045 * eval.c (scm_init_eval): Initialize scm_undefineds and
3046 scm_listofnull.
3047
3048 * gc.c (scm_debug_newcell, scm_debug_newcell2): Fixed to behave
3049 like the SCM_NEWCELL macro counterparts.
3050
3051 (scm_init_storage, scm_init_gc): Moved initialization of
3052 scm_tc16_allocated from scm_init_gc to scm_init_storage.
3053
3054 (scm_init_storage): Moved initialization of scm_undefineds and
3055 scm_listofnull to eval.c, initializion of scm_nullstr to
3056 strings.c, initializion of scm_nullvect to vectors.c.
3057
3058 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Prefer SCM_NULLP over
3059 SCM_IMP, as in scm_debug_newcell and scm_debug_newcell2.
3060
3061 * init.c (scm_init_guile_1): Reordered some initializations and
3062 added dependcy information comments.
3063
3064 * load.c (scm_init_load): Use scm_nullstr.
3065
3066 * strings.c (scm_init_strings): Initialize scm_nullstr.
3067
3068 * vectors.c (scm_init_vectors): Initialize scm_nullvect.
3069
3070 2001-05-15 Marius Vollmer <mvo@zagadka.ping.de>
3071
3072 * values.c (print_values): Print as a unreadable object, not as
3073 multiple lines. Thanks to Matthias Köppe!
3074
3075 2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
3076
3077 * deprecation.c: Fixed copyright date.
3078
3079 * deprecation.h (DEPRECATION_H, SCM_DEPRECATION_H): Renamed
3080 DEPRECATION_H to SCM_DEPRECATION_H.
3081
3082 2001-05-10 Thien-Thi Nguyen <ttn@revel.glug.org>
3083
3084 * guile-doc-snarf.in: Update copyright.
3085 Fix relative path bug. Thanks to Sergey Poznyakoff.
3086
3087 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
3088
3089 * ports.c (scm_port_revealed, scm_set_port_revealed_x): Only
3090 accept open ports. Thanks to Quetzalcoatl Bradley!
3091
3092 2001-05-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3093
3094 * procs.c: Increased `scm_subr_table_room' to 800 because Guile now
3095 has 779 primitives on startup.
3096
3097 2001-05-09 Marius Vollmer <mvo@zagadka.ping.de>
3098
3099 * eval.c (scm_i_eval): Copy expression before passing it to
3100 SCM_XEVAL. The copy operation was removed unintendedly during my
3101 change on 2001-03-25.
3102
3103 2001-05-09 Michael Livshin <mlivshin@bigfoot.com>
3104
3105 from Matthias Köppe (thanks!):
3106
3107 * ports.c (scm_c_read): pointer arithmetic on void pointers isn't
3108 portable.
3109
3110 * deprecation.c (s_scm_include_deprecated_features): ANSI'fied the
3111 docstring.
3112
3113 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3114
3115 * gc.c (scm_init_gc): Added FIXME comment.
3116
3117 * hooks.c: Since hooks don't have a name any more, it is not
3118 necessary to include objprop.h.
3119
3120 (hook_print, scm_add_hook_x): Replace SCM_NFALSEP by !SCM_FALSEP.
3121
3122 (symbol_name, scm_make_hook_with_name): Removed.
3123
3124 (scm_create_hook): Don't set the hook's name property.
3125
3126 * hooks.h (HOOKSH, SCM_HOOKS_H): Renamed HOOKSH to SCM_HOOKS_H.
3127
3128 (SCM_HOOK_NAME, scm_make_hook_with_name): Removed.
3129
3130 * init.c (scm_init_guile_1): Hooks don't use objprops any more.
3131
3132 * numbers.c (SCM_FLOBUFLEN, FLOBUFLEN, scm_number_to_string,
3133 scm_print_real, scm_print_complex): Renamed SCM_FLOBUFLEN to
3134 FLOBUFLEN and define it unconditionally.
3135
3136 2001-05-07 Marius Vollmer <mvo@zagadka.ping.de>
3137
3138 * gh_data.c (gh_lookup): Call gh_module_lookup with
3139 `scm_current_module ()', not `#f'.
3140 (gh_module_lookup): Expect a module instead of an obarray as first
3141 argument and do lookup in that module.
3142
3143 * ramap.c (raeql_1): Do not call scm_uniform_vector_length on
3144 arrays. The length of array is already determined differently and
3145 scm_uniform_vector_length does not work on arrays.
3146
3147 2001-05-06 Marius Vollmer <mvo@zagadka.ping.de>
3148
3149 * snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
3150 as well. "SCM (*)(...)" does not work on RedHat 7.1.
3151
3152 * __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
3153 they are not used. Changed `wrong type' error into `wrong num
3154 args' error. Changed all callers.
3155
3156 * numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
3157 arguments are supplied.
3158
3159 2001-05-05 Thien-Thi Nguyen <ttn@revel.glug.org>
3160
3161 * regex-posix.c (scm_regexp_exec): Expand docstring to briefly
3162 describe `regexp/notbol' and `regexp/noteol' execution flags.
3163
3164 * strop.c (scm_substring_move_x): Doc fix; nfc.
3165
3166 2001-05-05 Marius Vollmer <mvo@zagadka.ping.de>
3167
3168 * objects.c, objects.h (scm_valid_object_procedure_p): New.
3169 (scm_set_object_procedure_x): Use it to check argument. Fix
3170 docstring.
3171
3172 * evalext.c (scm_definedp): Fix docstring.
3173
3174 2001-05-05 Gary Houston <ghouston@arglist.com>
3175
3176 * socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
3177 support.
3178
3179 2001-05-04 Neil Jerram <neil@ossau.uklinux.net>
3180
3181 * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
3182 symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
3183 Change R4RS references to R5RS.
3184
3185 * guile-snarf.awk.in: Fixes so that (i) blank lines in the
3186 docstring source are correctly reproduced in the output (ii)
3187 we don't anymore get occasional trailing quotes. Also reorganized
3188 and commented the code a little.
3189
3190 * scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
3191 fixes.
3192
3193 2001-05-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3194
3195 * strop.c (scm_string_split): New procedure.
3196
3197 * strop.h (scm_string_split): Added prototype.
3198
3199 2001-05-04 Gary Houston <ghouston@arglist.com>
3200
3201 * socket.c: define uint32_t if netdb.h doesn't. thanks to
3202 Dale P. Smith.
3203
3204 2001-05-02 Marius Vollmer <mvo@zagadka.ping.de>
3205
3206 * rw.c: Include "modules.h" and "strports.h".
3207
3208 * net_db.h (scm_gethost): Added prototype.
3209
3210 * deprecation.h, deprecation.c: New.
3211 * Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
3212 (DOT_X_FILES): Added "deprecation.x".
3213 (modinclude_HEADERS): Added "deprecation.h".
3214
3215 * init.c: Include "deprecation.h".
3216 (scm_init_guile_1): Call scm_init_deprecation.
3217
3218 2001-05-01 Marius Vollmer <mvo@zagadka.ping.de>
3219
3220 * gh.h (gh_init_guile, gh_make_string, gh_string_length,
3221 gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
3222 New.
3223
3224 2001-04-29 Gary Houston <ghouston@arglist.com>
3225
3226 * rw.c: new file, implementing C part of module (ice-9 rw).
3227 (scm_read_string_x_partial): moved from ioext.c
3228 (scm_init_rw): new proc.
3229 * rw.h: new file.
3230 init.c: include rw.h and call scm_init_rw.
3231 Makefile.am: include rw.c and rw.h.
3232
3233 2001-04-28 Rob Browning <rlb@cs.utexas.edu>
3234
3235 * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
3236 know what's supposed to happen to it.
3237
3238 * list.h (scm_list_star): deprecation expired - removed.
3239
3240 * numbers.h (scm_dblproc): deprecation expired - removed.
3241 (SCM_UNEGFIXABLE): deprecation expired - removed.
3242 (SCM_FLOBUFLEN): deprecation expired - removed.
3243 (SCM_INEXP): deprecation expired - removed.
3244 (SCM_CPLXP): deprecation expired - removed.
3245 (SCM_REAL): deprecation expired - removed.
3246 (SCM_IMAG): deprecation expired - removed.
3247 (SCM_REALPART): deprecation expired - removed.
3248 (scm_makdbl): deprecation expired - removed.
3249 (SCM_SINGP): deprecation expired - removed.
3250 (SCM_NUM2DBL): deprecation expired - removed.
3251 (SCM_NO_BIGDIG): deprecation expired - removed.
3252
3253 * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
3254 (scm_tc_dblr): deprecation expired - removed.
3255 (scm_tc_dblc): deprecation expired - removed.
3256 (scm_tc16_flo): deprecation expired - removed.
3257 (scm_tc_flo): deprecation expired - removed.
3258
3259 * tag.h (scm_tag): deprecation expired - removed.
3260
3261 * tag.c: (scm_tag): deprecation expired - removed.
3262
3263 * ioext.c: (scm_fseek): deprecation expired - removed.
3264
3265 * ioext.h (scm_fseek): deprecation expired - removed.
3266
3267 * gh_data.c (gh_int2scmb): deprecation expired - removed.
3268
3269 * gh.h (gh_int2scmb): deprecation expired - removed.
3270
3271 2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
3272
3273 * stacks.c (scm_make_stack): Fix typo in docstring.
3274
3275 2001-04-27 Rob Browning <rlb@cs.utexas.edu>
3276
3277 * error.c (scm_sysmissing): deprecation expired - removed.
3278
3279 * error.h (scm_sysmissing): deprecation expired - removed.
3280
3281 * gc.c
3282 (scm_init_gc): gc-thunk deprecation expired - removed.
3283 (scm_gc_vcell): deprecation expired - removed.
3284 (gc_async_thunk): scm_gc_vcell related code removed.
3285
3286 * vectors.h (SCM_NVECTORP): deprecation expired - removed.
3287
3288 * strings.h
3289 (SCM_NSTRINGP): deprecation expired - removed.
3290 (SCM_NRWSTRINGP): deprecation expired - removed.
3291
3292 * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
3293
3294 * chars.h
3295 (SCM_ICHRP): deprecation expired - removed.
3296 (SCM_ICHR): deprecation expired - removed.
3297 (SCM_MAKICHR): deprecation expired - removed.
3298
3299 * ports.h
3300 (SCM_INPORTP): deprecation expired - removed.
3301 (SCM_OUTPORTP): deprecation expired - removed.
3302
3303 2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
3304
3305 * modules.c (scm_module_type): New.
3306 (scm_post_boot_init_modules): Initialize from Scheme value.
3307 (the_module, scm_current_module, scm_init_modules): the_module is
3308 now a C only fluid.
3309 (scm_current_module): Export to Scheme.
3310 (scm_set_current_module): Do not call out to Scheme, do all the
3311 work in C. Export procedure to Scheme. Only accept modules, `#f'
3312 is no longer valid as the current module. Only set
3313 scm_top_level_lookup_closure_var and scm_system_transformer when
3314 they are not deprecated.
3315 (scm_module_transformer, scm_current_module_transformer): New.
3316
3317 * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
3318 scm_current_module_transformer, scm_module_transformer): New.
3319
3320 * gh_data.c: Removed FIXME comment about gh_lookup returning
3321 SCM_UNDEFINED. That's the right thing to do.
3322
3323 * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
3324 into the conditionally compiled sections.
3325 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
3326 scm_current_module_transformer instead of scm_system_transformer.
3327 * init.c (start_stack): Move initialization of
3328 scm_system_transformer to the deprecated section.
3329
3330 2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
3331
3332 * throw.c (scm_throw): Correct docstring.
3333
3334 2001-04-22 Gary Houston <ghouston@arglist.com>
3335
3336 * socket.c: attempted to improve the docstrings slightly.
3337
3338 * net_db.c: remove bogus "close" declaration.
3339 (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
3340 scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
3341 moved to socket.c.
3342 * net_db.h: declarations moved too.
3343
3344 * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
3345 long.
3346 (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
3347 (VALIDATE_INET6): new macro.
3348 (scm_inet_pton, scm_inet_ntop): new procedures, implementing
3349 inet-pton and inet-ntop.
3350 (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
3351 (scm_addr_vector): use ipv6_net_to_num.
3352
3353 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3354
3355 * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
3356 smob number explicitly. Use SCM_TC2SMOBNUM instead.
3357
3358 * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
3359 when compiled in debug mode.
3360
3361 (scm_gc_sweep): Only call smob's free function if it is defined.
3362
3363 * print.c (scm_iprin1): No need to check for validity of smob
3364 type or existence of print function.
3365
3366 * smob.[ch] (scm_smobs): Made into a fixed size global array.
3367 Resizing will not work well with preemptive threading.
3368
3369 * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
3370
3371 (scm_make_smob_type): Extracted initialization of smob
3372 descriptors to scm_smob_prehistory. Don't use scm_numsmob outside
3373 of the critical section.
3374
3375 (scm_smob_prehistory): Initialize all smob descriptors. By
3376 default, don't assign a smob free function: Most smob types don't
3377 need one.
3378
3379 * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
3380
3381 2001-04-21 Gary Houston <ghouston@arglist.com>
3382
3383 * socket.c (FLIP_NET_HOST_128): new macro.
3384 (scm_fill_sockaddr): use new macro.
3385 (scm_addr_vector): completed IPv6 address support. added const
3386 to the address parameter.
3387
3388 2001-04-20 Gary Houston <ghouston@arglist.com>
3389
3390 * socket.c (scm_fill_sockaddr): call htons for sin6_port.
3391 Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
3392 is defined.
3393 (scm_addr_vector): use a switch instead of multiple if statements.
3394 Add support for IPv6 (incomplete) .
3395 MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
3396
3397 2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
3398
3399 * struct.c (scm_free_structs): Only pairs may be accessed with
3400 SCM_C[AD]R.
3401
3402 2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3403
3404 * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
3405
3406 * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
3407 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
3408 parentheses in order to get the correct associativity.
3409
3410 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
3411
3412 * unif.c (scm_array_to_list): Added missing handling of arrays of
3413 bytes. Thanks to Masao Uebayashi for the bug report.
3414
3415 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
3416
3417 * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
3418 consistently.
3419
3420 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
3421
3422 * procs.h (SCM_CLOSURE_FORMALS): New macro.
3423
3424 * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
3425 SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
3426 procprop.c (scm_i_procedure_arity), sort.c (closureless): Use
3427 SCM_CLOSURE_FORMALS.
3428
3429 * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
3430 (scm_i_procedure_arity): Prefer stronger predicates like
3431 SCM_NULLP or SCM_FALSEP over SCM_IMP.
3432
3433 * macros.c (macro_print): Extracted macro printing code from
3434 print.c and simplified it.
3435
3436 (scm_macro_type): Use SCM_MACRO_TYPE;
3437
3438 (scm_init_macros): Use macro_print for printing macros.
3439
3440 * print.c (scm_print_opts): Improved option documentation.
3441
3442 (scm_iprin1): Extracted printing of macros to macros.c.
3443 Simplified printing of ordinary closures.
3444
3445 * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
3446 Martin Grabmueller for the bug report.
3447
3448 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
3449
3450 This patch eliminates some further applications of SCM_C[AD]R to
3451 non pair cells.
3452
3453 * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
3454 never been applied to real pairs.
3455
3456 * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
3457
3458 (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
3459
3460 * unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
3461 SCM_ARRAY_CONTP): Renamed SCM_ARRAY_CONTIGUOUS to
3462 SCM_ARRAY_FLAG_CONTIGUOUS and use it.
3463
3464 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
3465 Added.
3466
3467 * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
3468 SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
3469
3470 * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
3471 (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
3472 SCM_SET{AND,OR}_CAR.
3473
3474 2001-04-17 Gary Houston <ghouston@arglist.com>
3475
3476 * some initial support for IPv6:
3477
3478 * socket.c (scm_fill_sockaddr): improve the argument validation.
3479 don't allocate memory until all args are checked. instead of
3480 unconditional memset of soka, try setting sin_len to 0 if
3481 SIN_LEN is defined. add support for AF_INET6. define FUNC_NAME.
3482 (scm_socket, scm_connect): extend docstrings for IPv6.
3483 (scm_init_socket): intern AF_INET6 and PF_INET6.
3484
3485 2001-04-17 Niibe Yutaka <gniibe@m17n.org>
3486
3487 * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
3488 matches SCM_DEFER_INTS at the beginning of the function.
3489
3490 * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
3491
3492 * gc.c (scm_igc): Unconditionally call
3493 SCM_CRITICAL_SECTION_START/END.
3494
3495 * fluids.c (next_fluid_num): Unconditionally call
3496 SCM_CRITICAL_SECTION_START/END.
3497 (s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.
3498
3499 * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
3500 SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
3501 Removed.
3502
3503 * __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
3504 Defined as nothing for the case of !defined(USE_THREADS).
3505 (SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
3506 Removed.
3507 (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
3508 (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
3509 LINE.
3510 (SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
3511 SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
3512 SCM_THREAD_DEFER/SCM_THREAD_ALLOW. Instead, use
3513 SCM_CRITICAL_SECTION_START/END.
3514 (SCM_REALLOW_INTS: Bug fix. Don't call
3515 SCM_THREAD_SWITCHING_CODE.
3516 (SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS. Instead, use
3517 SCM_THREAD_SWITCHING_CODE directly.
3518 (SCM_ENTER_A_SECTION): Unconditionally use
3519 SCM_CRITICAL_SECTION_START/END. (was:
3520 SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).
3521
3522 2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3523
3524 * __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS): Replaced the
3525 macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
3526 allowed to explicitly set this macro via the CFLAGS variable
3527 during make.
3528
3529 * fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
3530 (SCM_THREAD_CRITICAL_SECTION_START,
3531 SCM_THREAD_CRITICAL_SECTION_END): Renamed
3532 SCM_THREAD_CRITICAL_SECTION_START/END to
3533 SCM_CRITICAL_SECTION_START/END.
3534
3535 2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
3536
3537 * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
3538 instead of bzero.
3539
3540 * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
3541 (MISSING_BZERO_DECL): Remove the declaration.
3542
3543 Thanks to NIIBE Yutaka.
3544
3545 2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3546
3547 * init.c, goops.c, goops.h: Reverted change of 2001-03-29. (The
3548 goops module should be registered in order to work for an
3549 application which uses libguile statically linked.)
3550
3551 2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
3552
3553 * numbers.[ch] (scm_num2long, scm_num2long_long,
3554 scm_num2ulong_long, scm_num2ulong): Argument position is an
3555 unsigned integer.
3556
3557 * environments.c (eval_environment_folder,
3558 import_environment_folder), gh_data.c (gh_scm2longs,
3559 gh_scm2floats, gh_scm2doubles): Distinguish between 0 and NULL
3560 for integers and pointers, respectively.
3561
3562 * gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
3563 (scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
3564 (SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
3565 SCM_NUM2LONG_LONG): Don't pass argument positions as pointers.
3566
3567 * filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
3568 scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
3569 (scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
3570 (scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
3571 stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
3572 validate.h (SCM_VALIDATE_LONG_COPY): Whitespace fixes.
3573
3574 2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
3575
3576 * strings.c (scm_read_only_string_p): Update docstring to reflect
3577 current (non-)usage of "read only" strings.
3578 (scm_make_shared_substring): Clarify docstring by changing
3579 "semantics" to "arguments".
3580
3581 2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3582
3583 * hooks.c (scm_make_hook, scm_make_hook_with_name),
3584 (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
3585 improvements.
3586
3587 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3588
3589 The following changes make the documentation more consistent.
3590
3591 * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
3592 (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
3593 (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
3594 (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
3595 ... @end lisp.
3596
3597 * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
3598 (scm_array_dimensions, scm_make_shared_array),
3599 (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
3600 throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
3601 (scm_string_rindex, scm_string_index, scm_substring_fill_x),
3602 (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
3603 (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
3604 posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
3605 macros.c (scm_makmmacro), list.c (scm_append), environments.c
3606 (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
3607 @example ... @end example to @lisp ... @end lisp.
3608
3609 * weaks.c (scm_weak_vector): Corrected docstring.
3610
3611 * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
3612 (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
3613 (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
3614 (scm_hashx_set_x, scm_hashx_get_handle),
3615 (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
3616 (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
3617 vectors.c (scm_vector_fill_x), strings.c
3618 (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
3619 objprop.c (scm_set_object_properties_x):
3620 (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
3621 strports.c (scm_call_with_input_string), ports.c
3622 (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
3623 list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
3624 (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
3625 (scm_make_weak_vector,scm_weak_vector_p),
3626 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
3627 (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
3628 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
3629 macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
3630 (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
3631 Made parameter names match documentation by renaming parameters
3632 and/or fixing docstrings.
3633
3634 * numbers.c (scm_ash): Corrected Texinfo markup.
3635
3636 * strop.c (scm_string_index, scm_string_rindex),
3637 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
3638
3639 * vports.c (scm_make_soft_port), unif.c
3640 (scm_uniform_vector_length, scm_array_p, scm_array_rank),
3641 (scm_dimensions_to_uniform_array, scm_transpose_array),
3642 (scm_array_in_bounds_p, scm_uniform_vector_ref),
3643 (scm_bit_count, scm_bit_position, scm_bit_count_star),
3644 (scm_array_to_list, scm_list_to_uniform_array),
3645 (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
3646 (scm_open_input_string, scm_open_output_string),
3647 (scm_get_output_string), strop.c (scm_string_copy),
3648 (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
3649 (scm_get_internal_real_time, scm_times),
3650 (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
3651 (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
3652 (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
3653 (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
3654 simpos.c (scm_system), random.c (scm_random_uniform),
3655 (scm_random_normal, scm_random_exp), ramap.c
3656 (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
3657 (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
3658 (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
3659 (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
3660 (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
3661 (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
3662 (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
3663 (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
3664 (scm_port_closed_p, scm_eof_object_p, scm_read_char),
3665 (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
3666 (scm_logand, scm_logior, scm_logxor, scm_lognot),
3667 (scm_integer_expt, scm_bit_extract, scm_logcount),
3668 (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
3669 net_db.c (scm_inet_netof, scm_lnaof), modules.c
3670 (scm_interaction_environment), macros.c (scm_makacro),
3671 (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
3672 (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
3673 (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
3674 (scm_fluid_ref), filesys.c (scm_open_fdes),
3675 (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
3676 Docstring correction: `Returns' -> `Return'
3677
3678 * gc.c (scm_set_debug_cell_accesses_x):
3679 (s_scm_gc_set_debug_check_freelist_x):
3680 * fluids.c (scm_fluid_p): Added texinfo markup.
3681
3682 * error.c (scm_strerror): Made docstring more precise.
3683
3684 * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
3685 (scm_vector_to_list, _scm_vector_fill_x), symbols.c
3686 (scm_symbol_p, scm_symbol_to_string), strorder.c
3687 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
3688 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
3689 (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
3690 (scm_string_ci_geq_p), strop.c (scm_string_copy),
3691 (scm_string_fill_x): Removed `(r5rs)' from docstrings.
3692
3693 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
3694
3695 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
3696 mode, as suggested by Michael Livshin.
3697
3698 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
3699
3700 * backtrace.c (display_backtrace_body): since the `print_state'
3701 variable is not used (instead its data field is used directly as
3702 `pstate'), protect it from the hungry compiler optimizations.
3703 thanks to Bill Schottstaedt for the report.
3704
3705 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
3706
3707 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
3708 It is only defined and used if guile is compiled with
3709 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
3710 let cells with a free_cell type tag be visible outside of the
3711 garbage collector when in debug mode.
3712
3713 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
3714
3715 (scm_assert_cell_valid): Use a local static variable to avoid
3716 recursion.
3717
3718 (MARK): Only check for rogue cell pointers in debug mode. Use
3719 scm_cellp for this purpose and place all checks for rogue pointers
3720 into that function. Further, since due to conservative scanning
3721 we may encounter free cells during marking, don't use the standard
3722 cell type accessor macro to determine the cell type.
3723
3724 (scm_cellp): Check if the cell pointer actually points into a
3725 card header.
3726
3727 (scm_init_gc): Initalize scm_tc16_allocated.
3728
3729 * gc.h (GCH): Renamed to SCM_GC_H.
3730
3731 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
3732 might be unnecessary, but I feel better this way :-)
3733
3734 (SCM_GC_CELL_TYPE): New macro.
3735
3736 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
3737 in guile, and it is unlikely that they will be applied to real
3738 pairs anyway.
3739
3740 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
3741
3742 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
3743 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
3744
3745 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
3746 make sure that in debug mode no free cell will ever be visible
3747 outside of the garbage collector.
3748
3749 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
3750
3751 * async.c (scm_asyncs_pending): Don't use != to compare SCM
3752 values.
3753
3754 * async.c (scm_system_async), variable.c (scm_make_variable,
3755 scm_make_undefined_variable): Use scm_cons to create a pair.
3756
3757 * debug.c (scm_reverse_lookup): Perform proper type checking.
3758 Remove suspicious use of SCM_SLOPPY_CONSP.
3759
3760 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
3761 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
3762 the corresponding optimization.
3763
3764 * eval.c (iqq): Use proper type check.
3765
3766 (scm_m_expand_body): Remove redundant type checks.
3767
3768 (promise_print): Don't access promise cells as pairs.
3769
3770 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
3771 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
3772 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
3773 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
3774 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
3775
3776 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
3777 (scm_iprin1): Use new macro predicate and accessors.
3778
3779 * eval.h (scm_tc16_macro): Removed declaration. It is declared
3780 in macros.h.
3781
3782 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
3783 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
3784 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
3785 SCM_VARIABLE_H. Even the macros that are used to inhibit
3786 including a header file twice should be in the SCM_ namespace.
3787
3788 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
3789 properties.c (scm_primitive_property_ref,
3790 scm_primitive_property_del_x): Prefer stronger predicates like
3791 SCM_NULLP or SCM_FALSEP over SCM_IMP.
3792
3793 * gc.c (MARK): Use proper macros to access procedure-with-setter
3794 cell elements and closure cell elements.
3795
3796 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
3797 access free cells as pairs.
3798
3799 (scm_unprotect_object): scm_hashq_get_handle returns #f if
3800 no hashtab entry is found.
3801
3802 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
3803 SCM_CLR_PORT_OPEN_FLAG.
3804
3805 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
3806 use SCM_SET_C[AD]R for uninitialized cells.
3807
3808 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
3809 If the hashtable has no slots, return #f instead of '(). This
3810 unifies the return value with most assoc-functions.
3811
3812 (scm_hash_fn_ref): Use proper type check.
3813
3814 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
3815 Removed references to non-existing functions from documentation.
3816
3817 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
3818 access keyword cell elements.
3819
3820 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
3821 macros.
3822
3823 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
3824
3825 * print.c (scm_iprlist): Added comment. Improved loop
3826 conditions.
3827
3828 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
3829 pairs.
3830
3831 * smob.c (scm_markcdr): Don't access smob cells as pairs.
3832
3833 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
3834
3835 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
3836 cells as pairs.
3837
3838 * variable.c (variable_print, variable_equalp, scm_variable_ref,
3839 scm_variable_set_x): Use proper macros to access variable cell
3840 elements.
3841
3842 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
3843
3844 * variable.h (SCM_VARVCELL): Don't access variable cells as
3845 pairs.
3846
3847 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
3848 added FIXME comment, removed register specifier.
3849
3850 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
3851
3852 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
3853 * init.c (scm_init_guile_1): Don't init goopscore module.
3854
3855 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
3856
3857 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
3858
3859 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3860
3861 * strop.c (scm_string_to_list): Fixed docstring markup.
3862 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
3863 (scm_string_downcase, scm_string_capitalize_x),
3864 (scm_string_capitalize): Rewrote and corrected docstrings.
3865 (scm_string_ci_to_symbol): Made docstring more explicit.
3866
3867 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
3868
3869 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
3870 eval.c can use it.
3871 (scm_call_with_values): Removed.
3872 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
3873 so that it can be exported.
3874 (scm_call_with_values): Removed.
3875
3876 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
3877 * eval.c: Include "libguile/values.h"
3878 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
3879 New.
3880 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
3881 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
3882 New delcarations to support above change.
3883
3884 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
3885 errors with last change.
3886
3887 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
3888
3889 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
3890 scm_i_eval): Moved the application of the system transformer from
3891 scm_i_eval to scm_primitive_eval.
3892
3893 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
3894
3895 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
3896
3897 * strop.c (scm_string_index): Fix docstring line break
3898 regression.
3899
3900 * list.c (scm_cons_star): Fix docstring typo.
3901
3902 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
3903
3904 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
3905 (big2str), ports.c (scm_drain_input), read.c (scm_read,
3906 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
3907 scm_make_string, scm_string_append), strports.c (st_resize_port,
3908 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
3909 scm_makstr with calls to scm_allocate_string.
3910
3911 * strings.[ch] (scm_allocate_string): New function.
3912
3913 * strings.[ch] (scm_makstr): Deprecated.
3914
3915 2001-03-18 Gary Houston <ghouston@arglist.com>
3916
3917 * posix.c (scm_tmpnam): check that return value from tmpnam is not
3918 NULL. rewrote the docstring.
3919 (scm_mkstemp): new procedure implementing "mkstemp!".
3920 * posix.h: declare scm_mkstemp.
3921
3922 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
3923 normally it would be found in netdb.h.
3924
3925 2001-03-17 Gary Houston <ghouston@arglist.com>
3926
3927 * sort.c (scm_sort): move sortvec variable to avoid a compiler
3928 warning when HAVE_ARRAYS is not defined. move len too.
3929
3930 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
3931 (EXTRA_DOT_X_FILES): let configure set the value.
3932 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
3933
3934 * gc.c (scm_must_malloc): changed the comment explaining when
3935 scm_must variants of malloc/free etc., should be used, based on
3936 explanation from Dirk Herrmann.
3937 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
3938 string with procedure name. use scm_must_malloc instead of malloc.
3939 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
3940 of malloc/free.
3941 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
3942 scm_ungetc): use scm_must variants of malloc/realloc/free.
3943 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
3944
3945 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3946
3947 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
3948 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
3949 scm_wrong_type_arg instead.
3950
3951 (SCM_WNA): Deprecated.
3952
3953 * error.[ch] (scm_wta): Deprecated.
3954
3955 * numbers.c (s_i_log): Minor comment fix.
3956
3957 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
3958 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
3959 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
3960 wrong-num-args or misc errors.
3961
3962 * unif.c (scm_make_shared_array, scm_transpose_array,
3963 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
3964 Validate the rest argument (note: this is only done when guile is
3965 built with SCM_DEBUG_REST_ARGUMENT=1)
3966
3967 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
3968 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
3969
3970 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
3971 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
3972
3973 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3974
3975 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
3976 instead of scm_wrong_num_args.
3977
3978 * coop-threads.c: Don't include libguile/strings.h. (Was only
3979 needed for former implementation of SCM_WRONG_NUM_ARGS.)
3980
3981 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
3982 wrong-num-args errors.
3983
3984 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3985
3986 * error.[ch] (scm_error_num_args_subr): New function.
3987
3988 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3989
3990 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
3991 (scm_length, scm_append, scm_reverse, scm_list_ref),
3992 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
3993 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
3994 (scm_delete1_x), gc.c (scm_map_free_list),
3995 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
3996 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
3997 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
3998 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
3999 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
4000 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
4001 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
4002
4003 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
4004 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
4005 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
4006 symbols.c (scm_symbol_interned_p), numbers.c
4007 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
4008 markup.
4009
4010 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
4011
4012 * snarf.h (SCM_CONST_LONG): Deprecated.
4013 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
4014
4015 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
4016
4017 * numbers.c (scm_num2ulong): Check that a bignum is positive
4018 before looking at the magnitude. Correctly check for overflow
4019 during conversion.
4020 (scm_num2long_long): Likewise.
4021 (scm_num2ulong_long): New.
4022 (ULONG_LONG_MAX): Define if not already defined.
4023 * numbers.h: (scm_num2ulong_long): New prototype.
4024
4025 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4026
4027 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
4028
4029 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
4030 (SCM_OPOUTSTRPORTP): New predicate macros.
4031 (scm_open_input_string, scm_open_output_string),
4032 (scm_get_output_string): New prototypes.
4033
4034 * strports.c (scm_open_input_string, scm_open_output_string),
4035 (scm_get_output_string): New procedures (SRFI-6 compliant).
4036 Made scm_tc16_strport non-static.
4037
4038 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
4039
4040 * macros.h (SCM_ASSYNT): Removed unused object argument from
4041 signature.
4042
4043 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
4044 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
4045 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
4046 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
4047 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
4048 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
4049 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
4050 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
4051 scm_m_atdispatch): Removed unused object argument from call to
4052 SCM_ASSYNT.
4053
4054 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
4055
4056 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
4057 const int* to reflect that the input array of integers remains
4058 unchanged. Thanks to Brett Viren for the hint.
4059
4060 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4061
4062 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
4063 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
4064 in various places.
4065 (gh_scm2newstr, gh_symbol2newstr): Change call to
4066 scm_must_malloc() to malloc(), because user-free()able memory is
4067 allocated.
4068
4069 * gc.c: Added declaration of `scm_debug_check_freelist'.
4070
4071 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4072
4073 * ports.c (scm_port_mode): Changed `mode' array size to 4.
4074
4075 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
4076
4077 * strports.c (scm_object_to_string): New procedure.
4078 (scm_strprint_obj): Deprecated.
4079 * strports.h: Reflect the changes.
4080
4081 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
4082
4083 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
4084
4085 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
4086 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
4087 SCM_ASSYNT to check for correct argument types. Either use some
4088 SCM_VALIDATE_* macro or an explicit test.
4089
4090 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
4091 misc-errors.
4092
4093 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
4094 instead of calling scm_wta.
4095
4096 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4097
4098 * load.c (scm_primitive_load, scm_primitive_load_path),
4099 (scm_sys_search_load_path): Corrected docstrings (file ->
4100 filename).
4101
4102 * eval.c (scm_force): Added texinfo markup to docstring.
4103 (scm_promise_p): Renamed parameter to `obj' to match docstring.
4104
4105 * debug-malloc.c: Reinserted #include <stdio.h>.
4106
4107 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
4108
4109 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
4110
4111 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
4112 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
4113 Use SCM_LISTn instead of scm_listify.
4114
4115 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4116
4117 * _scm.h: Removed #include <errno.h>.
4118
4119 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
4120 errno variable (can be a macro on some systems, for example when
4121 using linux libc with threads).
4122
4123 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
4124 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
4125 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
4126 #include <errno.h> in these 20 out of 100 files.
4127
4128 2001-03-10 Gary Houston <ghouston@arglist.com>
4129
4130 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
4131 not already defined.
4132
4133 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4134
4135 * coop.c: Inserted #include <stdio.h>.
4136
4137 * iselect.c: Reinserted #include <stdio.h>.
4138
4139 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
4140
4141 * posix.c: Replaced `#define' of __USE_XOPEN right before
4142 including unistd.h with a define of _GNU_SOURCE at the very top of
4143 the file.
4144
4145 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
4146
4147 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
4148 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
4149 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
4150 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
4151 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
4152 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
4153 print.c, procprop.c, procs.c, properties.c, ramap.c,
4154 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
4155 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
4156 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
4157 Remove #include <stdio.h>
4158 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
4159
4160 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
4161
4162 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4163
4164 * posix.c (scm_gethostname): Set initial name length to 256 for
4165 Solaris.
4166
4167 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4168
4169 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
4170 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
4171 (scm_sethostname, scm_gethostname): New prototypes.
4172
4173 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
4174 <sys/file.h>, if present.
4175 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
4176 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
4177 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
4178 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
4179 (scm_sethostname, scm_gethostname): New procedures.
4180
4181 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
4182
4183 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
4184 not optional (ii) "recommend" spelling correction.
4185
4186 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4187
4188 * ramap.c (racp): Removed optimization which caused array copying
4189 to fail if the two arrays shared storage. Re-inserted the IVDEP
4190 macros removed in the change of 2000-03-09. (Don't really have a
4191 complete grasp of what they are for, but they seem to be necessary
4192 on Crays. This needs testing!) Thanks to Miroslav Silovic.
4193
4194 * hash.c (scm_string_hash): Don't downcase characters.
4195
4196 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4197
4198 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
4199 size from 277 --> 1009.
4200
4201 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
4202 function.
4203
4204 * coop-threads.c: Fixed change of 2001-03-06.
4205
4206 * validate.h: Code formatting.
4207
4208 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
4209
4210 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
4211 (*.doc): Add dependency on guile-snarf.awk.in.
4212
4213 * guile-snarf.awk.in: Neglect spaces at the end of
4214 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
4215 middle of docstrings. (To avoid the problem with gcc-2.96.)
4216
4217 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
4218
4219 * coop-threads.c (scm_call_with_new_thread), load.c
4220 (scm_primitive_load, scm_sys_search_load_path), random.c
4221 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
4222 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
4223 (potentially) issue a scm-misc-error or wrong-num-args error
4224 message.
4225
4226 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
4227 about the expected type with the wrong-type-arg error message.
4228
4229 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
4230 a C level bug that can't be fixed from scheme anyway.
4231
4232 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4233
4234 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
4235 Duplicate bindings are OK in a let* since a let* is semantically
4236 equivalent to a nested set of let:s.
4237
4238 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4239
4240 * print.c (scm_print_options): Fixed texinfo in docstring.
4241
4242 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
4243 the underlying functions getservent, getprotoent or getnetent
4244 return NULL instead of signalling an error.
4245
4246 2001-03-04 Gary Houston <ghouston@arglist.com>
4247
4248 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
4249 taking an unexpectedly large filename for an AF_UNIX socket from
4250 bind/connect/sendto (thanks to Martin Grabmueller).
4251
4252 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
4253 former and adjusted the latter.
4254 (scm_socket, scm_socketpair): cosmetic changes.
4255 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
4256 size_t as socklen_t substitute. don't restrict args/return values
4257 to INUM: allow full range of int or size_t.
4258 (scm_fill_sockaddr): check arguments before allocating memory, to
4259 avoid leakage. use malloc, not scm_must_malloc.
4260 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
4261 substitute. free the sockaddr structure before throwing an error.
4262 (scm_init_add_buffer): procedure removed, together with its static
4263 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
4264 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
4265 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
4266 scm_sendto): use a local buffer instead of scm_addr_buffer.
4267 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
4268 not size_t.
4269 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
4270 call to detect whether recvfrom could be bothered to set the address.
4271 (scm_init_socket): don't call scm_init_addr_buffer.
4272
4273 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
4274
4275 * debug.c (scm_procedure_source, scm_procedure_environment),
4276 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
4277 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
4278 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
4279 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
4280 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
4281 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
4282 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
4283 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
4284 scm_array_to_list, scm_array_prototype), validate.h
4285 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
4286 scm_misc_error or scm_wrong_type_arg instead.
4287
4288 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
4289
4290 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4291
4292 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
4293 (scm_sys_tag_body): Added.
4294
4295 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
4296
4297 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
4298 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
4299 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
4300 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
4301 options.c (scm_options), ports.c (scm_remove_from_port_table),
4302 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
4303 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
4304 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
4305 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
4306 instead.
4307
4308 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4309
4310 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
4311
4312 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
4313
4314 * eval.c (scm_s_duplicate_bindings): New error message.
4315 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
4316
4317 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
4318
4319 * eval.h (SCM_EVALIM2): New macro. Use it when a
4320 immediate, literal constant should be evaluated.
4321 * eval.c (scm_s_duplicate_formals): New error message string.
4322 (scm_c_improper_memq): New function.
4323 (scm_m_lambda): Check for duplicate arguments.
4324 (scm_ceval, scm_deval): When executing a body: only cons a new
4325 toplevel environment frame when it is different from the
4326 existing one; use EVALCAR instead of SIDEVAL so that we can properly
4327 check for empty combinations; use SCM_EVALIM2 for the same reason
4328 in the non-toplevel loop.
4329 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
4330 New labels with the meaning of their non-"nontoplevel" partners,
4331 but they are used when it is known that the body is not evaluated at
4332 top-level.
4333 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
4334 reporting for empty combinations.
4335
4336 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
4337
4338 * Remove dump facilities.
4339 * dump.c, dump.h: Removed.
4340 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
4341 * init.c: Remove #include "libguile/dump.h".
4342 (scm_init_guile_1): Remove scm_init_dump.
4343 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
4344 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
4345 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
4346 (scm_set_smob_dump, scm_set_smob_undump): Removed.
4347
4348 * keywords.c: Remove #include "libguile/dump.h".
4349 (keyword_dump, keyword_undump): Removed.
4350 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
4351
4352 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4353
4354 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
4355 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
4356 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
4357 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
4358 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
4359 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
4360 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
4361 to @code{} as the texinfo manual recommends, converted the
4362 examples to use a @lisp{}-environment.
4363
4364 * strports.c (scm_eval_string): Cleaned up the docstring.
4365
4366 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
4367 markup.
4368
4369 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
4370 (scm_number_to_string, scm_string_to_number, scm_number_p)
4371 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
4372 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
4373 (scm_ash): Added texinfo markup and removed obsolete @refill.
4374 (scm_gr_p): Corrected comment.
4375 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
4376 docstring) comments.
4377 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
4378 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
4379 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
4380 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
4381 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
4382 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
4383 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
4384 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
4385
4386 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
4387
4388 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
4389 (Obviously nobody compiles with SCM_RECKLESS defined...)
4390
4391 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
4392
4393 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4394
4395 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
4396
4397 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
4398
4399 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
4400
4401 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
4402 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
4403 since use of `z' suggests that the arguments may be complex.
4404
4405 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
4406 typos.
4407
4408 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
4409
4410 * dump.c (scm_binary_write, scm_binary_read), eval.c
4411 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
4412 scm_guardian_greedy_p, scm_make_guardian), fports.c
4413 (scm_file_port_p): Minor docstring fixes.
4414
4415 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
4416
4417 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
4418
4419 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
4420 scm_i_eval.
4421 (make_class_from_template): Do not bother to set the current
4422 module around the call to DEFVAR, scm_eval takes care of that.
4423 (scm_init_goops): Make scm_module_goops and
4424 scm_goops_lookup_closure permanent objects.
4425
4426 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
4427 top level, create a fresh top-level environment for each
4428 expression instead of mutating the exisint frame. This is
4429 important when that frame is closed over.
4430
4431 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
4432 SCM_DIGSPERLONG instead of DIGSPERLONG.
4433
4434 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
4435
4436 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
4437 before applying arrow procedure in `cond' and before applying
4438 receiver procedure in call-with-current-continuation.
4439 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
4440 macro. The argument is expanded more than one time.
4441
4442 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
4443 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
4444
4445 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
4446
4447 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
4448 notice and license.
4449
4450 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4451
4452 * variable.c (scm_make_variable, scm_make_undefined_variable)
4453 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
4454 (scm_variable_bound_p), values.c (scm_values)
4455 (scm_call_with_values), unif.c (scm_bit_count)
4456 (scm_bit_set_star_x), symbols.c (scm_gentemp)
4457 (scm_gensym), strings.c (scm_string_p, scm_make_string)
4458 (scm_read_only_string_p, scm_string_length, scm_string_ref)
4459 (scm_string_set_x, scm_substring, scm_string_append), stime.c
4460 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
4461 (scm_copy_random_state, scm_random), print.c (scm_newline)
4462 (scm_write_char, scm_simple_format), debug-malloc.c
4463 (scm_malloc_stats), environments.c (scm_environment_p)
4464 (scm_environment_bound_p, scm_environment_ref)
4465 (scm_environment_fold, scm_environment_define)
4466 (scm_environment_undefine, scm_environment_set_x)
4467 (scm_environment_cell, scm_environment_observe)
4468 (scm_environment_observe_weak, scm_environment_unobserve)
4469 (scm_make_eval_environment, scm_eval_environment_p)
4470 (scm_eval_environment_set_local_x, scm_eval_environment_local)
4471 (scm_eval_environment_imported)
4472 (scm_eval_environment_set_imported_x, scm_make_import_environment)
4473 (scm_import_environment_p, scm_import_environment_imports)
4474 (scm_import_environment_set_imports_x, scm_make_export_environment)
4475 (scm_export_environment_p, scm_export_environment_private)
4476 (scm_export_environment_set_private_x)
4477 (scm_export_environment_signature)
4478 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
4479 Added texinfo markup.
4480
4481 * ports.c (scm_drain_input): Lowercased argument to @var.
4482 (scm_current_input_port, scm_current_output_port): Filled in
4483 missing explanation.
4484 (scm_current_load_port, scm_set_current_output_port)
4485 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
4486 Added texinfo markup.
4487
4488 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
4489 (scm_release_arbiter): Added texinfo markup to docstrings.
4490 Changed `Returns' to `Return'.
4491 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
4492
4493 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
4494
4495 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
4496 by doubling them to `@@'.
4497
4498 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4499
4500 * numbers.c (scm_lognot), random.c (scm_random,
4501 scm_random_normal, scm_random_solid_sphere_x,
4502 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
4503 scm_random_exp), dynwind.c
4504 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
4505
4506 * goops.c (scm_sys_initialize_object, scm_instance_p,
4507 scm_class_name, scm_class_precedence_list, scm_class_slots,
4508 scm_class_environment, scm_generic_function_name,
4509 scm_generic_function_methods, scm_method_generic_function,
4510 scm_method_specializers, scm_method_procedure, scm_make_unbound,
4511 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
4512 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
4513 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
4514 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
4515 scm_class_direct_supers, scm_class_direct_slots,
4516 scm_class_direct_subclasses, scm_class_direct_methods,
4517 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
4518 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
4519 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
4520 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
4521 scm_memoized_environment, scm_procedure_name,
4522 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
4523 objects.c
4524 (scm_class_of, scm_entity_p, scm_operator_p,
4525 scm_set_object_procedure_x, scm_object_procedure,
4526 scm_make_class_object), hooks.c (scm_make_hook_with_name,
4527 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
4528 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
4529 scm_hook_to_list), lang.c
4530 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
4531 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
4532 (scm_print_options, scm_port_with_print_state,
4533 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
4534 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
4535 scm_make_procedure_with_setter, scm_procedure), throw.c
4536 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
4537 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
4538 scm_stack_ref, scm_stack_length, scm_frame_p,
4539 scm_last_stack_frame, scm_frame_number, scm_frame_source,
4540 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
4541 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
4542 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
4543 (scm_dirname, scm_basename), dynwind.c
4544 (scm_wind_chain), read.c (scm_read_options, scm_read,
4545 scm_read_hash_extend), gc.c
4546 (scm_unhash_name), eval.c (scm_eval_options_interface,
4547 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
4548 (scm_display_error, scm_set_print_params_x,
4549 scm_display_application, scm_display_backtrace, scm_backtrace),
4550 async.c (scm_async, scm_system_async, scm_async_mark,
4551 scm_system_async_mark, scm_run_asyncs, scm_noop,
4552 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
4553 scm_mask_signals): Added docstrings.
4554
4555 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
4556
4557 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
4558 address of car/cdr. (Thanks to Dirk Herrmann)
4559 Use scm_sizet to obtain the length of strings.
4560 (Thanks to Matthias Koeppe)
4561
4562 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
4563
4564 * symbols.c (scm_mem2symbol): Put a empty statement after the
4565 next_symbol label. This is mandated by ANSI, appearantly.
4566
4567 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
4568
4569 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
4570 sense to compile for a specific kernel version. Do not include
4571 <asm/signal.h> while defining __KERNEL__. This hack should no
4572 longer be needed and caused problems.
4573
4574 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
4575
4576 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
4577 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
4578 can not deal with immediates.
4579
4580 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
4581
4582 * list.c (scm_list_copy): Validate the first argument.
4583
4584 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
4585
4586 Fix evaluator so that top-level expressions are correctly
4587 evaluated with respect to the module system.
4588
4589 * modules.h. modules.c (scm_current_module_lookup_closure): New
4590 function.
4591
4592 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
4593 prototypes.
4594 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
4595 names to better reflect their meaning.
4596
4597 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
4598 evaluated at top-level and synronize lookup closure before
4599 executing every subform.
4600 (scm_primitve_eval_x, scm_primitive_eval): New functions.
4601 (scm_eval_x, scm_eval): Reimplement in terms of
4602 scm_primitive_eval_x and scm_primitive_eval, respectively.
4603
4604 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
4605
4606 * macros.c (scm_macro_name, scm_macro_transformer): Use
4607 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
4608 Thanks!
4609
4610 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
4611
4612 * dump.c (scm_store_bytes): Store data size before data.
4613 (scm_restore_bytes): Restore data size. Takes a pointer to size.
4614 * dump.h (scm_restore_bytes): Updated.
4615
4616 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
4617
4618 * dump.c: Use double cells for update schedule.
4619
4620 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
4621
4622 * ports.c (scm_unread_char): Take an optional argument.
4623
4624 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
4625
4626 * modules.h (scm_selected_module, scm_current_module): Renamed
4627 scm_selected_module to scm_current_module to synchronize Scheme
4628 and C names.
4629 (scm_select_module, scm_set_current_module): Likewise. Changed
4630 all uses.
4631
4632 * ports.c (scm_port_for_each): Make a snapshot of the port table
4633 before iterating over it. The table might change while the user
4634 code is running. With the snapshot, the user can depend on the
4635 fact that each port that existed at the start of the iteration is
4636 encountered exactly once. (ice-9 popen) depends on this.
4637
4638 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
4639
4640 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
4641
4642 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
4643 range checking for the size parameter. Thanks to Martin
4644 Grabmueller for the hint.
4645
4646 (scm_makstr): Reordered string initialization to make interrupt
4647 deferring unnecessary.
4648
4649 * vectors.c (scm_make_vector): Fixed range checking.
4650
4651 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
4652
4653 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
4654
4655 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
4656 checking of the size parameter for type correctness and valid
4657 range. Thanks to Rob Browning for reporting the problem. Instead
4658 of deferring interrupts, scm_remember_upto_here_1 is used.
4659
4660 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
4661
4662 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
4663 (scm_dump_cell_update): Removed.
4664 (scm_dump_update): Renamed from scm_dump_object_update.
4665 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
4666 a pointer instead of returning a value.
4667 * keywords.c (keyword_undump): Updated.
4668
4669 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
4670
4671 * dump.c, dump.h: Modified a lot.
4672 (SCM_DUMP_COOKIE): Version 0.1
4673 (scm_dump_mark): Removed.
4674 (scm_restore_cell_object, scm_store_cell_object): New functions.
4675
4676 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
4677 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
4678 New slots: dump, undump.
4679 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
4680 Updated.
4681
4682 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
4683 (keyword_undump): Renamed from keyword_alloc.
4684 (scm_init_keywords): Set keyword_dump and keyword_undump.
4685
4686 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
4687
4688 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
4689 the deprecated SCM_DOUBLE_CELLP.
4690
4691 * tags.h (SCM_DOUBLE_CELLP): deprecated.
4692
4693 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
4694
4695 * dump.c, dump.h: New files.
4696 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
4697 * init.c: #include "libguile/dump.h".
4698 (scm_init_guile_1): Call scm_init_dump.
4699 * smob.h (scm_smob_descriptor): New slots: dump_mark,
4700 dump_dealloc, dump_store, undump_alloc, undump_restore,
4701 undump_init.
4702 * smob.c (scm_make_smob_type): Init the new slots.
4703 (scm_set_smob_dump, scm_set_smob_undump): New functions.
4704 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
4705
4706 * keywords.c: #include "libguile/dump.h".
4707 (keyword_dealloc, keyword_alloc): New functions.
4708 (scm_init_keywords): Set smob_dump and smob_undump.
4709
4710 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
4711
4712 * vectors.c (scm_c_make_vector): New function.
4713 * vectors.h (scm_c_make_vector): Declared.
4714 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
4715 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
4716 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
4717 (scm_make_method_cache, scm_i_vector2list,
4718 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
4719 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
4720 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
4721 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
4722 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
4723 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
4724 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
4725 (scm_vector, scm_make_vector): Use scm_c_make_vector.
4726
4727 * hashtab.c (scm_c_make_hash_table): New function.
4728 * hashtab.h (scm_c_make_hash_table): Declared.
4729 * environments.c (scm_make_leaf_environment,
4730 scm_make_eval_environment), gc.c (scm_init_storage),
4731 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
4732 Use scm_c_make_hash_table.
4733
4734 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4735
4736 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
4737
4738 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4739
4740 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
4741 end of docstring.
4742
4743 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
4744 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
4745 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
4746 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
4747 srcprop.c (scm_source_properties, scm_set_source_properties_x,
4748 scm_source_property, scm_set_source_property_x), sort.c
4749 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
4750 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
4751 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
4752 docstrings.
4753
4754 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4755
4756 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
4757 really get that arg.
4758
4759 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
4760
4761 * goops.c (s_scm_get_keyword): Bug fix.
4762
4763 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
4764
4765 The following patch was sent by Martin Grabmueller. It makes sure
4766 that in case of parameter errors the correct function name is
4767 shown, and that parameter types are only checked once.
4768
4769 * strop.c (string_copy, string_upcase_x, string_downcase_x,
4770 string_capitalize_x): New functions. Each one performs the core
4771 functionality of the corresponding scm_* function.
4772
4773 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
4774 scm_string_downcase_x, scm_string_downcase,
4775 scm_string_capitalize_x, scm_string_capitalize): Reduced to
4776 parameter checking wrappers of the above functions.
4777
4778 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
4779
4780 * continuations.c, dynl.c, keywords.c, load.c: Include
4781 strings.h. Thanks to Bill Schottstaedt for the bug report.
4782
4783 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
4784
4785 * backtrace.c (display_header): Make sure that line and column
4786 information is shown independent of whether the port the code was
4787 read from had an associated filename. Thanks to Martin
4788 Grabmueller for providing this patch.
4789
4790 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
4791
4792 * fports.[ch] (scm_file_port_p): New primitive.
4793
4794 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
4795
4796 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
4797 These are now defined in fports.c, strports.c and vports.c.
4798
4799 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
4800 vports.c (scm_tc16_sfport): Made variables (were macros defined in
4801 tags.h).
4802
4803 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
4804 (scm_make_sfptob): Made static. These return a type code now.
4805
4806 fports.c (scm_init_fports), strports.c (scm_init_strports),
4807 vports.c (scm_init_vports): Create the corresponding port types.
4808
4809 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
4810 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
4811
4812 * init.c (scm_init_guile_1): Make sure strports are initialized
4813 before gdbint.
4814
4815 * ports.[ch] (scm_make_port_type): Changed the return type to
4816 scm_bits_t.
4817
4818 * ports.c (scm_ports_prehistory): Don't create any port types
4819 here.
4820
4821 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
4822 against scm_tc16_fport directly.
4823
4824 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
4825
4826 * srcprop.c (scm_set_source_property_x): Fix to handle
4827 (set-source-property! <obj> 'copy <datum>) correctly.
4828
4829 2001-01-24 Gary Houston <ghouston@arglist.com>
4830
4831 * filesys.c (scm_link): docstring fix.
4832 * fports.h (scm_setfileno): obsolete declaration removed.
4833 * posix.c: bogus popen declaration removed.
4834
4835 * rdelim.c: new file, split from ioext.c.
4836 * rdelim.h: new file, split from ioext.h
4837 * Makefile.am: add rdelim.c and related files.
4838 * init.c: call scm_init_rdelim. include rdelim.h.
4839
4840 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
4841
4842 This patch was sent by Martin Grabmueller and makes sure that
4843 parameter errors are reported correctly by the lexicographic
4844 ordering predicates.
4845
4846 * strorder.c (string_less_p, string_ci_less_p): New functions.
4847
4848 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
4849 functionality into string_less_p, string_ci_less_p respectively.
4850 The remaining code is just a wrapper to do the parameter
4851 checking.
4852
4853 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
4854 parameters and call string_less_p instead of scm_string_less_p.
4855
4856 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
4857 Check the parameters and call string_less_ci_p instead of
4858 scm_string_ci_less_p.
4859
4860 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
4861
4862 This patch modifies scm_display_error to perform parameter
4863 checking. Thanks to Neil Jerram for the bug report.
4864
4865 * backtrace.[ch] (scm_i_display_error): New function.
4866
4867 * backtrace.c (scm_display_error): Added parameter check and
4868 extracted the core functionality into function
4869 scm_i_display_error.
4870
4871 * throw.c (handler_message): Call scm_i_display_error to display
4872 the error message.
4873
4874 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
4875
4876 * eval.c (SCM_APPLY): Added # args check for application of
4877 procedures with arity 3. (Thanks to Anders Holst.)
4878
4879 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
4880
4881 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
4882
4883 (SCM_OPDIRP): Deprecated.
4884
4885 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
4886 SCM_OPN.
4887
4888 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
4889 Instead, give an explicit error message in case the directory is
4890 closed.
4891
4892 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
4893 instead of SCM_OPENP and SCM_CLOSEDP.
4894
4895 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
4896
4897 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
4898
4899 * eval.c (inner_eval, scm_eval): Move all real functionality into
4900 inner_eval. Avoid to copy the expression twice by inlining some
4901 code from scm_i_eval.
4902
4903 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
4904
4905 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
4906 now has to be the last clause, as required by R5RS. Thanks to
4907 Martin Grabmueller for the patch.
4908
4909 2001-01-18 Gary Houston <ghouston@arglist.com>
4910
4911 * ioext.c: further simplify scm_read_string_x_partial by defining
4912 a macro SCM_EBLOCK.
4913
4914 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
4915
4916 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
4917
4918 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
4919
4920 * __scm.h: Added comment about architecture and compiler
4921 properties that are required by guile.
4922
4923 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
4924 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
4925
4926 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
4927
4928 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
4929
4930 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
4931 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
4932
4933 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
4934
4935 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
4936 to the names in limits.h.
4937
4938 * numbers.c (abs_most_negative_fixnum): Added.
4939
4940 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
4941 fixnum-min) special case.
4942
4943 (scm_big_and): Fix for negative first parameter.
4944
4945 (scm_bit_extract): Fix for fixnum paramters.
4946 Thanks to Rob Browning for the bug report.
4947
4948 (scm_init_numbers): Initialize abs_most_negative_fixnum.
4949
4950 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
4951
4952 * symbols.c (scm_symbol_bound_p): Fixed comment.
4953 Thanks to Chris Cramer.
4954
4955 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
4956
4957 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
4958 Thanks to Bill Schottstaedt.
4959
4960 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
4961
4962 from Matthias Köppe:
4963
4964 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
4965 casts its result, so doesn't yield an lvalue per ANSI C.
4966
4967 * goops.c (s_scm_sys_set_object_setter_x): use
4968 SCM_SET_ENTITY_SETTER.
4969 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
4970
4971 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
4972 its result, so doesn't yield an lvalue per ANSI C.
4973 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
4974 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
4975 SCM_GC_SET_CARD_FLAGS.
4976 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
4977
4978 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
4979
4980 2001-01-08 Gary Houston <ghouston@arglist.com>
4981
4982 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
4983 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
4984 socket.c (scm_recvfrom): use the new macro, plus minor docstring
4985 changes.
4986 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
4987 for fdes. if current input port is used, check that it's a file
4988 port.
4989
4990 2001-01-06 Gary Houston <ghouston@arglist.com>
4991
4992 * ioext.c (scm_read_string_x_partial): new procedure, implements
4993 read-string!/partial.
4994 * ports.c (scm_take_from_input_buffers): new procedure used by
4995 scm_read_string_x_partial.
4996 (scm_drain_input): use scm_take_from_input_buffers.
4997
4998 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
4999
5000 * validate.h (SCM_VALIDATE_NUMBER): New.
5001
5002 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
5003
5004 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
5005 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
5006 SET_DESTROYED): new defines/macros.
5007 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
5008 (add_to_live_list): takes a `guardian_t *' now, not SCM.
5009 (guardian_print): print more info.
5010 (guardian_apply): check if the guardian is destroyed, and throw an
5011 error if so. take one more optional argument `throw_p'.
5012 (scm_guard): depending on the value of `throw_p', return a boolean
5013 result.
5014 (scm_get_one_zombie): remove redundant property test.
5015 (guardian_t): represent the various (currently 3, I hope nothing
5016 more gets added) boolean fields as bit flags.
5017 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
5018 (scm_destroy_guardian_x): new procedure.
5019
5020 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
5021 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
5022
5023 2001-01-01 Gary Houston <ghouston@arglist.com>
5024
5025 * fports.c (fport_write): bugfix: handle short writes for
5026 unbuffered ports too. optimize the buffered case by minimizing
5027 the number of write/flush calls.
5028 (write_all): new helper procedure.
5029
5030 The ChangeLog continues in the file: "ChangeLog-2000"