*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
1 2003-12-03 Kevin Ryde <user42@zip.com.au>
2
3 * numbers.c (scm_less_p): Remove spurious xisnan from frac+big case.
4
5 * numbers.c (scm_make_ratio): Check for numerator equal to
6 SCM_MOST_NEGATIVE_FIXNUM and bignum denominator the negative of that,
7 giving integer -1.
8
9 * numbers.c (scm_real_part): Return fraction unchanged rather than
10 converting to flonum.
11
12 2003-11-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
13
14 * modules.c (module_variable): Fixed (and thus simplified) the
15 definition of SCM_BOUND_THING_P to reflect the fact that since
16 after the 1.4 series of guile, obarrays only hold variable
17 objects.
18
19 2003-11-30 Marius Vollmer <mvo@zagadka.de>
20
21 * numbers.c (scm_logand): It's "#b...", not "#\b...".
22
23 From Paul Jarc:
24
25 * read.c (scm_lreadr): Signal an error for invalid escape
26 sequences in strings. Code cleanups too.
27
28 * print.c (scm_iprin1): use \xNN hexadecimal sequences when
29 writing control characters in strings.
30
31 2003-11-21 Marius Vollmer <mvo@zagadka.de>
32
33 * ports.c (scm_drain_input): Bug fix: only access the port after
34 checking that it indeed is one.
35
36 2003-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
37
38 * eval.c (s_bad_define): New static identifier.
39
40 (m_body): Fixed comment.
41
42 (scm_m_define): Don't generate memoized code for definitions that
43 are not on the top level. As a consequence, no memoized code at
44 all is generated for definitions any more: Top level definitions
45 are executed immediately during memoization and internal
46 definitions are handled separately in m_expand_body.
47
48 (scm_unmemocopy, unmemocopy): Removed code for unmemoizing
49 definitions. Consequently, there is no unmemoizing code any more
50 that might modify the environment. Thus, the old scm_unmemocopy
51 is removed and the old unmemocopy is renamed to scm_unmemocopy.
52
53 (SCM_CEVAL): The SCM_IM_DEFINE keyword can no longer occur in
54 memoized code. Call EVALCAR for continuations. Prefer !SCM_NULLP
55 over SCM_NIMP in places, where the argument is known to be part of
56 a proper list.
57
58 2003-11-21 Kevin Ryde <user42@zip.com.au>
59
60 * numbers.c (scm_abs): Allocate a new real only for negatives, as done
61 for bignums.
62
63 * numbers.c (scm_bit_extract): Use mpz functions, rearrange inum case
64 to share some shifting.
65
66 * numbers.c (scm_integer_expt): Don't mpz_init after scm_i_clonebig or
67 scm_i_mkbig, since they do so already. Don't mpz_clear a bignum SCM,
68 since gc does this.
69
70 2003-11-19 Marius Vollmer <mvo@zagadka.de>
71
72 * numbers.c (scm_make_ratio): Rewritten to have a simpler
73 structure. Previously, not all cases with a negative denominator
74 were covered.
75
76 * numbers.c (mem2decimal_from_point): use scm_divide instead of
77 scm_divide2real when forming the fractional part. This allows
78 "#e1.2" to yield 6/5.
79
80 * numbers.c (scm_i_fraction_equalp): Do not treat the return value
81 of scm_equal_p as a C boolean, use SCM_FALSEP. Previously, all
82 fractions were equal to each other regardless of value. Ooops.
83
84 * numbers.c (scm_rationalize): Return an inexact result when given
85 inexact arguments.
86
87 * numbers.c (scm_exact_p, scm_inexact_p): Throw error for
88 non-numbers.
89
90 2003-11-18 Marius Vollmer <marius.vollmer@uni-dortmund.de>
91
92 Support for exact fractions from Bill Schottstaedt! Thanks!
93
94 * print.c (scm_iprin1): Handle fractions.
95
96 * objects.h (scm_class_fraction): New.
97 * objects.c (scm_class_fraction): New.
98 (scm_class_of): Handle fractions.
99
100 * hash.c (scm_hasher): Handle fractions.
101
102 * numbers.c: New code for handling fraction all over the place.
103 (scm_odd_p, scm_even_p): Handle inexact integers.
104 (scm_rational_p): New function, same as scm_real_p.
105 (scm_round_number, scm_truncate_number, scm_ceiling, scm_floor):
106 New exact functions that replace the inexact 'dsubr'
107 implementations.
108 (scm_numerator, scm_denominator): New.
109
110 * numbers.h (SCM_NUMP): Recognize fractions.
111 (SCM_FRACTIONP, SCM_SLOPPY_FRACTIONP, SCM_FRACTION_NUMERATOR,
112 SCM_FRACTION_DENOMINATOR, SCM_FRACTION_SET_NUMERATOR,
113 SCM_FRACTION_SET_DENOMINATOR, SCM_FRACTION_REDUCED_BIT,
114 SCM_FRACTION_REDUCED_SET, SCM_FRACTION_REDUCED_CLEAR,
115 SCM_FRACTION_REDUCED): New.
116 (scm_floor, scm_ceiling, scm_truncate_number, scm_round_number):
117 New prototypes.
118 (scm_make_ratio, scm_rationalize, scm_numerator, scm_denominator,
119 scm_rational_p): New prototypes.
120 (scm_i_dbl2num, scm_i_fraction2double, scm_i_fraction_equalp,
121 scm_i_print_fraction): New prototypes.
122
123 * goops.c (create_standard_classes): Create "<fraction>" class.
124
125 * gc-mark.c (scm_gc_mark_dependencies): Handle fractions.
126
127 * gc-card.c (scm_i_sweep_card): Include scm_tc16_fraction as a
128 case in the switch, but do nothing for now.
129
130 * eval.c (SCM_CEVAL, SCM_APPLY, call_dsubr_1): Convert fractions
131 to doubles when calling 'dsubr' functions.
132
133 * eq.c (scm_eqv_p, scm_equal_p): Handle fractions.
134
135 2003-11-18 Rob Browning <rlb@defaultvalue.org>
136
137 * gen-scmconfig.c (main): remove public definition of
138 SCM_SIZEOF___INT64 and SCM_SIZEOF_UNSIGNED___INT64 and add
139 direct typedef of long_long and ulong_long inside deprecated block
140 when appropriate.
141
142 * deprecated.h: move long_long and ulong_long definitions to
143 gen-scmconfig.c so that we don't need to add SCM_SIZEOF___INT64
144 and SCM_SIZEOF_UNSIGNED___INT64 to the public namespace.
145
146 2003-11-17 Marius Vollmer <mvo@zagadka.de>
147
148 * hash.c (scm_string_hash): New hashing algorithm that takes the
149 complete string into account.
150
151 * eval.c (scm_m_generalized_set_x): Macroexpand the target when it
152 is a list. This allows (@ ...) to work with set!.
153 (scm_m_generalized_set_x): Use ASSERT_SYNTAX_2 instead of
154 SCM_ASSYNT.
155
156 * script.c (scm_compile_shell_switches): Use scm_c_read_string for
157 the "-e" option instead of scm_str2symbol. This allows things
158 like (@ ...) to be specified for the entry point.
159
160 2003-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
161
162 * eval.c (scm_m_letstar): Create memoized code in place to
163 minimize consing.
164
165 2003-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
166
167 * eval.c (s_splicing): Commented and reformulated.
168
169 (lookup_global_symbol, lookup_symbol): New static functions.
170
171 (s_test, s_bindings, s_duplicate_bindings, s_variable): Removed.
172
173 (try_macro_lookup, literal_p): Use lookup_symbol instead of
174 creating a temporary pair for scm_lookupcar.
175
176 (scm_unmemocar, unmemocar): Renamed scm_unmemocar to unmemocar,
177 created deprecated wrapper function scm_unmemocar.
178
179 (SCM_VALIDATE_NON_EMPTY_COMBINATION, scm_sym_else,
180 scm_sym_unquote, scm_sym_uq_splicing, scm_sym_enter_frame,
181 scm_sym_apply_frame, scm_sym_exit_frame, scm_sym_trace, f_apply,
182 undefineds, sym_three_question_marks): Moved around without
183 modifications.
184
185 * eval.c, eval.h (scm_macroexp, scm_unmemocar): Deprecated.
186
187 2003-11-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
188
189 * eval.c (try_macro_lookup, expand_user_macros, is_system_macro_p,
190 m_expand_body, scm_m_expand_body): Grouped together with m_body.
191 No further modifications.
192
193 2003-11-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
194
195 * eval.c (s_mixed_body_forms): New static identifier.
196
197 (canonicalize_define, scm_m_define): The check for a bad
198 expression is performed in canonicalize_define now.
199
200 (try_macro_lookup, expand_user_macros, is_system_macro_p): New
201 static helper functions for m_expand_body.
202
203 (m_expand_body): Use ASSERT_SYNTAX to signal syntax errors. Only
204 expand user defined macros. Fixed handling of the definition/
205 expression boundary. Fixed handling of definitions grouped with
206 'begin. Use canonicalize_define to expand definitions.
207
208 2003-11-13 Marius Vollmer <mvo@zagadka.de>
209
210 * read.c (scm_lreadr): detect EOF after backslash, and interpret
211 \xNN hexadecimal sequences. From Paul Jarc, thanks!
212
213 * snarf.h (SCM_SMOB, SCM_GLOBAL_SMOB, SCM_SMOB_MARK,
214 SCM_GLOBAL_SMOB_MARK, SCM_SMOB_FREE, SCM_GLOBAL_SMOB_FREE,
215 SCM_SMOB_PRINT, SCM_GLOBAL_SMOB_PRINT, SCM_SMOB_EQUALP,
216 SCM_GLOBAL_SMOB_EQUALP, SCM_SMOB_APPLY, SCM_GLOBAL_SMOB_APPLY):
217 New macros from Paul Jarc. Thanks!
218
219 * gc_os_dep.c (scm_get_stack_base): Provide a definition that
220 return NULL when the machine type is unknown. Previously,
221 gc_os_dep.c would refuse to compile.
222
223 2003-11-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
224
225 * eval.c (scm_m_body, m_body, scm_m_lambda, memoize_named_let,
226 scm_m_let, scm_m_letrec, m_expand_body): Renamed static function
227 scm_m_body to m_body.
228
229 2003-11-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
230
231 * eval.c, eval.h (scm_m_expand_body, m_expand_body): Deprecated
232 public use of scm_m_expand_body in eval.h. In eval.c, renamed
233 scm_m_expand_body to m_expand_body and made it static. Added
234 deprecated wrapper scm_m_expand_body.
235
236 (scm_eval_body, SCM_CEVAL, SCM_APPLY): Use m_expand_body instead
237 of scm_m_expand_body.
238
239 2003-11-09 Kevin Ryde <user42@zip.com.au>
240
241 * dynl.c (scm_dynamic_unlink): Need scm_list_1 on error message
242 argument. Reported by Mike Gran.
243
244 2003-11-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
245
246 * eval.c (s_missing_body_expression): New static identifier.
247
248 (s_body): Removed.
249
250 (scm_m_expand_body): Fixed core dump when passing a body with
251 defines, but without expressions (see additions to syntax.test).
252 Use ASSERT_SYNTAX to signal syntax errors.
253
254 2003-11-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
255
256 * eval.c (canonicalize_define): New static helper function.
257
258 (memoize_define, canonicalize_define): Extract handling of
259 function currying to canonicalize_define.
260
261 2003-11-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
262
263 * eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
264 Make sure that error checking in debug mode is not worse than in
265 standard mode.
266
267 2003-11-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
268
269 * eval.c (scm_m_body, scm_m_lambda): Documentation strings are not
270 handled in scm_m_body any more, but rather in scm_m_lambda.
271
272 (scm_m_body, memoize_named_let, scm_m_let, scm_m_letstar,
273 scm_m_letrec, scm_m_expand_body): Check for validity is done by
274 calling functions of scm_m_body.
275
276 (scm_m_lambda): Avoid unnecessary consing when creating the
277 memoized code.
278
279 2003-11-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
280
281 * eval.c (s_expression): Added comment.
282
283 (s_empty_combination, error_unbound_variable): New static
284 identifiers.
285
286 (SCM_VALIDATE_NON_EMPTY_COMBINATION, SCM_EVALIM2, scm_lookupcar1):
287 Use ASSERT_SYNTAX, syntax_error or error_unbound_variable to
288 signal syntax errors.
289
290 (SCM_CEVAL): Separated handling of evaluator bytecodes and other
291 scheme objects.
292
293 2003-10-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
294
295 * eval.c (unmemocar, sym_three_question_marks, scm_unmemocar):
296 Grouped together with unmemocopy, without modifications.
297
298 (build_binding_list, unmemocopy): Renamed names of list arguments
299 and variables to reflect the actual order of the list elements.
300
301 2003-10-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
302
303 * eval.c (s_defun): New static identifier.
304
305 (scm_m_nil_cond, scm_m_atfop, scm_m_undefine): Add comments. Use
306 ASSERT_SYNTAX to signal syntax errors. Avoid unnecessary consing
307 when creating the memoized code.
308
309 2003-10-19 Kevin Ryde <user42@zip.com.au>
310
311 * numbers.c (scm_ash): Revise docstring as per recent update to manual.
312
313 * numbers.c (scm_i_big2dbl): Rewrite, carefully rounding to "closest"
314 in accordance with R5RS, which just mpz_get_d doesn't really give.
315
316 2003-10-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
317
318 * eval.c (s_bad_slot_number): New static identifier.
319
320 (scm_m_atslot_ref, scm_m_atslot_set_x): Use ASSERT_SYNTAX to
321 signal syntax errors. Avoid unnecessary consing when creating the
322 memoized code.
323
324 2003-10-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
325
326 * eval.c (scm_m_cont, scm_m_at_call_with_values,
327 scm_m_generalized_set_x): Use ASSERT_SYNTAX to signal syntax
328 errors. Avoid unnecessary consing when creating the memoized
329 code.
330
331 (scm_m_generalized_set_x): Let scm_m_set_x handle the R5RS
332 standard case. Make sure line and file information are copied to
333 every created expression.
334
335 2003-10-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
336
337 * eval.c (scm_m_set_x, scm_m_apply, scm_m_atbind): Use
338 ASSERT_SYNTAX to signal syntax errors. Avoid unnecessary consing
339 when creating the memoized code.
340
341 (scm_m_atbind): Reversed the order, in which the init expressions
342 are stored and executed. The order of execution is now equal to
343 the order in which the initializers of the let-forms are executed.
344 Use check_bindings and transform_bindings.
345
346 (SCM_CEVAL): Eliminated SCM_NIMP in favor of more appropriate
347 !SCM_NULLP. Added some comments.
348
349 2003-10-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
350
351 * eval.c: Sorted include files alphabetically.
352
353 (scm_m_begin): Added comment.
354
355 (scm_m_or): Use ASSERT_SYNTAX to signal syntax errors. Avoid
356 unnecessary consing when creating the memoized code.
357
358 (iqq, scm_m_quasiquote, scm_m_quote): Use ASSERT_SYNTAX to signal
359 syntax errors. Be more specific about the kind of error that was
360 detected.
361
362 (scm_m_quote, unmemocopy): As an optimization, vector constants
363 are now inserted unquoted into the memoized code. During
364 unmemoization the quotes are added again to provide syntactically
365 correct code.
366
367 2003-10-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
368
369 * eval.c (scm_m_let, scm_m_letstar, scm_m_letrec,
370 scm_m_expand_body, check_bindings): Extracted syntax checking of
371 bindings to new static function check_bindings.
372
373 (scm_m_let, memoize_named_let): Extracted handling of named let to
374 new static function memoize_named_let.
375
376 (transform_bindings, scm_m_let, scm_m_letstar, scm_m_letrec): Use
377 ASSERT_SYNTAX to signal syntax errors. Be more specific about the
378 kind of error that was detected. Avoid use of SCM_CDRLOC. Avoid
379 unnecessary consing when creating the memoized code.
380
381 2003-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
382
383 * eval.c (s_bad_formals, s_bad_formal, s_duplicate_formal): New
384 static identifiers.
385
386 (s_clauses, s_formals, s_duplicate_formals): Removed.
387
388 (scm_m_lambda): Use ASSERT_SYNTAX to signal syntax errors. Be more
389 specific about the kind of error that was detected. Prepare for
390 easier integration of changes for separated memoization.
391
392 2003-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
393
394 * eval.c (s_duplicate_binding): New static identifier.
395
396 (scm_m_case): Call scm_c_memq instead of implementing it inline.
397
398 (scm_m_define): Added comment about how we check for duplicate
399 formals.
400
401 (scm_m_do): Added check for duplicate bindings.
402
403 (scm_m_if): Use ASSERT_SYNTAX to signal syntax errors. Avoid
404 unnecessary consing when creating the memoized code.
405
406 (scm_c_improper_memq, c_improper_memq, scm_m_lambda): Renamed
407 scm_c_improper_memq to c_improper_memq, since it is not exported.
408
409 (transform_bindings): Call scm_c_memq rather than
410 scm_c_improper_memq.
411
412 (SCM_CEVAL): Simplified handling of SCM_IM_IF forms.
413
414 2003-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
415
416 * eval.c (s_bad_bindings, s_bad_binding, s_bad_exit_clause): New
417 static identifiers.
418
419 (scm_m_do): Use ASSERT_SYNTAX to signal syntax errors. Be more
420 specific about the kind of error that was detected. Avoid use of
421 SCM_CDRLOC. Avoid unnecessary consing when creating the memoized
422 code, this way also making sure that file name, line number
423 information etc. remain available.
424
425 2003-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
426
427 * eval.c (memoize_as_thunk_prototype): New static function.
428
429 (scm_m_delay, scm_m_future): Use memoize_as_thunk_prototype.
430 Avoid unnecessary consing when creating the memoized code.
431
432 2003-10-12 Kevin Ryde <user42@zip.com.au>
433
434 * list.c (scm_append): Track argument number and use in error.
435
436 2003-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
437
438 * eval.c (s_missing_expression, s_bad_variable): New static
439 identifiers.
440
441 (scm_m_define): Use ASSERT_SYNTAX to signal syntax errors. Prefer
442 R5RS terminology for the naming of variables. Be more specific
443 about the kind of error that was detected. Make sure file name,
444 line number etc. are added to all freshly created expressions.
445 Avoid unnecessary consing when creating the memoized code.
446
447 2003-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
448
449 * eval.c (s_extra_expression, s_misplaced_else_clause,
450 s_bad_cond_clause, s_missing_recipient): New static identifiers.
451
452 (s_extra_case_clause): Removed.
453
454 (scm_m_case, scm_m_cond): If a clause appears after an else
455 clause, report a misplaced else clause.
456
457 (scm_m_cond): Use ASSERT_SYNTAX to signal syntax errors. Be more
458 specific about the kind of error that was detected. Handle bound
459 'else and '=>. Avoid unnecessary consing when creating the
460 memoized code.
461
462 (scm_m_cond, unmemocopy, SCM_CEVAL): Use SCM_IM_ELSE to memoize
463 the syntactic keyword 'else and SCM_IM_ARROW to memoize the
464 syntactic keyword '=>.
465
466 2003-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
467
468 * eval.c (scm_m_case): Allow empty lists of case labels.
469
470 2003-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
471
472 * tags.h (SCM_IM_ELSE, SCM_IM_ARROW): New memoizer codes.
473
474 * print.c (scm_isymnames): Add names for the new memoizer codes.
475
476 * eval.c (s_missing_clauses, s_bad_case_clause,
477 s_extra_case_clause, s_bad_case_labels, s_duplicate_case_label,
478 literal_p): New static identifiers.
479
480 (scm_m_case): Use ASSERT_SYNTAX to signal syntax errors. Be more
481 specific about the kind of error that was detected. Check for
482 duplicate case labels. Handle bound 'else. Avoid unnecessary
483 consing when creating the memoized code.
484
485 (scm_m_case, unmemocopy, SCM_CEVAL): Use SCM_IM_ELSE to memoize
486 the syntactic keyword 'else.
487
488 2003-10-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
489
490 * eval.c (s_bad_expression, syntax_error_key, syntax_error,
491 ASSERT_SYNTAX, ASSERT_SYNTAX_2): New static identifiers.
492
493 (scm_m_and): Use ASSERT_SYNTAX to signal syntax errors. Avoid
494 unnecessary consing when creating the memoized code.
495
496 2003-10-09 Kevin Ryde <user42@zip.com.au>
497
498 * numbers.c (scm_inexact_to_exact): Don't depend on what double->long
499 cast gives for values bigger than a long, or for nan or inf.
500
501 2003-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
502
503 * smob.h (scm_make_smob_type): Made the declaration match the
504 definition.
505
506 2003-10-07 Marius Vollmer <mvo@zagadka.de>
507
508 * goops.c, objects.h, smob.c, smob.h: Make type names char
509 const * instead of char *. Thanks to Paul Jarc!
510
511 2003-10-02 Kevin Ryde <user42@zip.com.au>
512
513 * strports.c (scm_call_with_output_string): scm_get_output_string
514 rather than scm_strport_to_string, so as to guard against the port
515 having been closed by the called procedure. Reported by Nic Ferrier.
516
517 2003-09-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
518
519 * numbers.h (SCM_INEXACTP): Removed uses of SCM_TYP16S.
520
521 * tags.h, deprecated.h (SCM_TYP16S): Deprecated and moved from
522 tags.h to deprecated.h.
523
524 2003-09-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
525
526 This set of patches introduces a new tc7 code scm_tc7_number for
527 numbers. Bignums, reals and complex numbers are turned from smobs
528 into subtypes of scm_tc7_number.
529
530 * tags.h (scm_tc7_number): New.
531
532 * eq.c (scm_equal_p), eval.c (SCM_CEVAL), evalext.c
533 (scm_self_evaluating_p), gc-card.c (scm_i_sweep_card), gc-mark.c
534 (scm_gc_mark_dependencies), goops.c (create_smob_classes), hash.c
535 (scm_hasher), numbers.c, numbers.h (SCM_NUMP), objects.c
536 (scm_class_of), print.c (scm_iprin1), smob.c
537 (scm_smob_prehistory): Don't handle bignums, reals and complex
538 numbers as subtypes of scm_tc7_smob any more.
539
540 * numbers.h, tags.h (scm_tc16_big, scm_tc16_real,
541 scm_tc16_complex): Moved definitions from tags.h to numbers.h.
542
543 2003-09-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
544
545 * numbers.c (scm_make_complex), gc-card.c (scm_i_sweep_card): Use
546 sizeof (scm_t_complex) to determine the memory size of the
547 malloc'd area for complex numbers.
548
549 2003-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
550
551 * numbers.c (scm_bigequal): Fixed.
552
553 2003-09-16 Marius Vollmer <mvo@zagadka.de>
554
555 * stime.c (scm_current_time): 'time' does not set errno so don't
556 use SCM_SYSERROR for reporting errors.
557
558 2003-09-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
559
560 This set of patches eliminates the dependency between the
561 implementation of evaluator specific memoization codes and special
562 constants like #f, '() etc. ('flags'), which are not evaluator
563 specific. The goal is to remove definitions of evaluator
564 memoization codes completely from the public interface. This will
565 make it possible to experiment more freely with optimizations of
566 guile's internal representation of memoized code.
567
568 * objects.c (scm_class_of): Eliminate dependency on SCM_ISYMNUM.
569
570 * print.c (iflagnames): New array, holding the printed names of
571 guile's special constants ('flags').
572
573 (scm_isymnames): Now holds only the printed names of the
574 memoization codes.
575
576 (scm_iprin1): Separate the handling of memoization codes and
577 guile's special constants.
578
579 * tags.h (scm_tc9_flag, SCM_ITAG9, SCM_MAKE_ITAG9, SCM_ITAG9_DATA,
580 SCM_IFLAGNUM): new
581
582 (scm_tc8_char, scm_tc8_iloc, SCM_BOOL_F, SCM_BOOL_T,
583 SCM_UNDEFINED, SCM_EOF_VAL, SCM_EOL, SCM_UNSPECIFIED, SCM_UNBOUND,
584 SCM_ELISP_NIL, SCM_IM_DISPATCH, SCM_IM_SLOT_REF,
585 SCM_IM_SLOT_SET_X, SCM_IM_DELAY, SCM_IM_FUTURE,
586 SCM_IM_CALL_WITH_VALUES, SCM_IM_NIL_COND, SCM_IM_BIND): Changed
587 values.
588
589 (SCM_IFLAGP): SCM_IFLAGP now only tests for flags.
590
591 (SCM_IFLAGP, SCM_MAKIFLAG, SCM_IFLAGNUM): Generalized to use the
592 tc9 macros and scm_tc9_flag.
593
594 2003-09-15 Marius Vollmer <mvo@zagadka.de>
595
596 * posix.c (scm_setgroups): Check that the gid list is not too
597 long. Thanks to Paul Jarc!
598
599 2003-09-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
600
601 * tags.h: Reduced the number of short instructions from 14 to 13.
602 The typecode of the former 14th short instruction is now used to
603 represent long instructions. Changed some comments to reflect
604 this fact.
605
606 (SCM_MAKISYM): ISYMs get a new tc7 code, namely the one that was
607 previously used by SCM_IM_DEFINE.
608
609 (SCM_IM_DEFINE): Turned into a long instruction.
610
611 * eval.c (unmemocopy, SCM_CEVAL): Treat SCM_IM_DEFINE as a long
612 instruction.
613
614 * eval.c (SCM_CEVAL): Since characters and iflags have now a tc7
615 code that is separate from all instructions, one level of dispatch
616 for long instructions can be eliminated.
617
618 * print.c (scm_isymnames): Removed some commented code.
619
620 2003-09-12 Marius Vollmer <mvo@zagadka.de>
621
622 * __scm.h (SCM_FENCE): Use __memory_barrier with the Intel
623 compiler on IA64.
624
625 * hashtab.h (scm_tc16_hashtable): Added "extern" declaration.
626
627 * modules.c (scm_module_reverse_lookup): Check that the obarray
628 really is a hashtable and do nothing if not.
629
630 * inline.h: Use "extern inline" only with GCC. Use "static
631 inline" else.
632
633 2003-09-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
634
635 * numbers.h (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Removed uses
636 of SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.
637
638 * numbers.h, deprecated.h (SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP,
639 SCM_SLOPPY_COMPLEXP): Deprecated and moved from numbers.h to
640 deprecated.h.
641
642 2003-09-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
643
644 * eq.c (scm_eqv_p, scm_equal_p): Removed uses of
645 SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.
646
647 * eq.c (scm_eqv_p, scm_equal_p): Reordered comparisons from
648 0.0==some_expression to some_expression==0.0. The latter is
649 better readable. The former is preferred by some people, since it
650 leads to a compiler error when confusing == with =. However, when
651 using gcc, a warning will be issued if in an if-statement an
652 assigment appears. Since many Guile developers are using gcc,
653 such errors will not remain unnoticed anyway. We can therefore
654 focus on better readability.
655
656 2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
657
658 * tags.h: Added description of Guile's type system. Removed some
659 old and misleading comments.
660
661 2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
662
663 * unit.c (scm_cvref): Eliminate unnecessary uses of SCM_NIMP,
664 SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.
665
666 2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
667
668 * numbers.h (SCM_MAKINUM): Define in terms of scm_tc2_int.
669
670 (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Define in terms of the
671 respective SLOPPY macro.
672
673 2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
674
675 * eq.c (scm_equal_p): Use SCM_TYP7 to check if an object is of
676 type string, not SCM_TYP7S.
677
678 2003-09-03 Kevin Ryde <user42@zip.com.au>
679
680 * numbers.c (scm_lognot): Correction to docstring, ones-complement not
681 2s-complement.
682
683 * stime.c (scm_strptime): Add comment about glibc strptime %s and
684 current timezone requiring SCM_DEFER_INTS.
685
686 2003-08-30 Neil Jerram <neil@ossau.uklinux.net>
687
688 * script.c (scm_compile_shell_switches): Make -s switch optional
689 if file to be loaded does not begin with a `-'. (Thanks to Aaron
690 VanDevender for the patch!)
691
692 2003-08-30 Kevin Ryde <user42@zip.com.au>
693
694 * numbers.c (scm_lognot): Rewrite using ~ and mpz_com, for directness
695 and to have non-integer types rejected as per other logical funcs.
696
697 2003-08-28 Kevin Ryde <user42@zip.com.au>
698
699 * gc.h (scm_remember_upto_here_1): Revise comments on the asm form.
700
701 2003-08-23 Kevin Ryde <user42@zip.com.au>
702
703 * simpos.c (scm_system): Remove SCM_DEFER_INTS, system() should be
704 thread safe, and could take a long time too.
705
706 2003-08-22 Kevin Ryde <user42@zip.com.au>
707
708 * numbers.c (scm_difference): Correction to bignum - negative inum.
709
710 2003-08-14 Kevin Ryde <user42@zip.com.au>
711
712 * gc.h (scm_remember_upto_here_1, scm_remember_upto_here_2)
713 [__GNUC__]: Use volatile asm macros rather than a function call.
714 * gc.c (scm_remember_upto_here_1, scm_remember_upto_here_2): Undefine
715 macros while defining functions.
716
717 * simpos.c (getenv): Use <stdlib.h> for prototype.
718 (scm_system): In docstring, refer to status:exit-val rather than
719 "functions above".
720
721 2003-08-09 Kevin Ryde <user42@zip.com.au>
722
723 * srcprop.c (scm_source_properties): Return plist from hash if it's a
724 list set by source-properties! rather than an SRCPROPS object,
725
726 2003-07-29 Kevin Ryde <user42@zip.com.au>
727
728 * properties.c (scm_primitive_property_ref): In docstring, note
729 parameters to not-found-proc, use hyphens rather than underscores for
730 that parameter name.
731 (scm_primitive_property_set_x): In docstring, VAL is the value
732 parameter not CODE.
733
734 2003-07-27 Marius Vollmer <mvo@zagadka.de>
735
736 * print.c (scm_print_symbol_name): handle more weird characters by
737 escaping the symbol name properly. Thanks to Paul Jarc!
738
739 * posix.h (scm_setgroups): New prototype.
740 * posix.c (scm_setgroups): New. Thanks to Paul Jarc!
741 (scm_getgroups): Handle groups ids that don't fit into a fixnum.
742 Don't use SCM_WRITABLE_VELTS.
743
744 * gc.h (SCM_GC_SET_CELL_BVEC): New.
745 * gc-card.c (scm_i_init_card_freelist): Use it. Thanks to
746 Matthias Koeppe!
747
748 * __scm.h (SCM_C_INLINE_KEYWORD): New.
749 * numbers.c: Use it in place of SCM_C_INLINE so that the code
750 compiles when SCM_C_INLINE is undefined.
751
752 2003-07-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
753
754 * __scm.h: Reformulated the architecture and compiler properties
755 in terms of properties of scm_t_bits and SCM variables rather than
756 in terms of c standard types. This is since it is not known which
757 of the standard types scm_t_bits and SCM variables will be defined
758 to.
759
760 2003-07-24 Kevin Ryde <user42@zip.com.au>
761
762 * numbers.c (scm_angle): Use scm_flo0 for non-negative inum, bignum
763 and real.
764
765 2003-07-18 Kevin Ryde <user42@zip.com.au>
766
767 * numbers.c (scm_product): In complex * bignum, correction to
768 REAL/IMAG fetch, x is the complex, not y.
769
770 2003-07-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
771
772 * numbers.c (scm_odd_p, scm_even_p): Bugfix: Treat result of
773 scm_inf_p test as Scheme values.
774 (scm_sum): Bugfix: Normalize bignum created from a negative bignum
775 and a positive inum.
776 Use GNU indentation style.
777
778 2003-07-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
779
780 * values.c (scm_values): Build lists of length 1 by using
781 scm_list_1 instead of using scm_cons.
782
783 2003-07-10 Kevin Ryde <user42@zip.com.au>
784
785 * deprecation.c (scm_c_issue_deprecation_warning_fmt): Add va_end.
786 * list.c (scm_list_n): Ditto.
787
788 * gc-malloc.c (scm_gc_realloc): Define "ptr" at start of function.
789
790 2003-07-08 Matthias Koeppe <mkoeppe@merkur.math.uni-magdeburg.de>
791
792 * tags.h (scm_t_bits, scm_t_signed_bits, etc): Avoid solaris empty
793 defines of INTPTR_MAX and UINTPTR_MAX, combine conditionals for
794 scm_t_bits and scm_t_signed_bits to avoid any chance of one and not
795 the other using intptr_t.
796
797 2003-07-08 Kevin Ryde <user42@zip.com.au>
798
799 * numbers.c (scm_make_polar): Use sincos, when available.
800 (scm_magnitude): Use hypot.
801
802 * ports.c (scm_char_ready_p, scm_peek_char): In docstrings, don't use
803 @footnote since it doesn't go through to guile-procedures.txt.
804
805 * threads.c (scm_call_with_new_thread): In docstring, use "( )"
806 outside @var to quieten makeinfo, and use @code.
807
808 2003-07-06 Han-Wen Nienhuys <hanwen@cs.uu.nl>
809
810 * gc-malloc.c (decrease_mtrigger): new function
811 (increase_mtrigger): new function, separate debug registering and
812 mtrigger administration.
813 (scm_gc_realloc): bugfix: do mtrigger administration before the
814 actual realloc, for the realloc might invalidate a GC-d segment of
815 memory. Thanks to Sam Hocevar for pointing this out.
816 (scm_gc_realloc): use scm_malloc_reregister instead of
817 unregistering and registering in sequence.
818
819 2003-07-03 Han-Wen Nienhuys <hanwen@cs.uu.nl>
820
821 * __scm.h (SCM_ASSERT): change "else" expansion to "do { } while (0)"
822
823 2003-07-02 Han-Wen Nienhuys <hanwen@cs.uu.nl>
824
825 * __scm.h (SCM_ASRTGO): add "else" to macro expansions with if
826 clauses.
827
828 2003-06-29 Marius Vollmer <mvo@zagadka.de>
829
830 * deprecated.h (SCM_OPDIRP, scm_fport, scm_option, scm_srcprops,
831 scm_srcprops_chunk, scm_info_frame, scm_stack, scm_array,
832 scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_FUNC_NAME, SCM_WTA,
833 RETURN_SCM_WTA, SCM_VALIDATE_NUMBER_COPY,
834 SCM_VALIDATE_NUMBER_DEF_COPY, SCM_VALIDATE_OPDIR): Re-added from
835 the release_1_6 branch.
836
837 2003-06-25 Stefan Jahn <stefan@lkcc.org>
838
839 * continuations.c: Redeclaration of getcontext() via the
840 __asm__ ("getcontext") directive.
841
842 * continuations.h: Include <ucontext.h> instead of
843 <sys/ucontext.h>.
844
845 2003-06-21 Kevin Ryde <user42@zip.com.au>
846
847 * numbers.c (_GNU_SOURCE): #define, to get C99 things.
848 (scm_asinh, scm_acosh, scm_atanh, scm_truncate, $asinh, $acosh,
849 $atanh, truncate): Use C library asinh, acosh, atanh and trunc, when
850 available.
851 (scm_inexact_to_exact): Expand isfinite to its definition !xisinf.
852 (isfinite): Remove, conflicts with C99 isfinite().
853
854 2003-06-19 Marius Vollmer <mvo@zagadka.de>
855
856 * deprecated.h, deprecated.c (scm_strhash, scm_sym2ovcell_soft,
857 scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
858 scm_symbol_value0, scm_string_to_obarray_symbol scm_intern_symbol,
859 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
860 scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp): Re-added from
861 the release_1_6 branch.
862
863 2003-06-14 Stefan Jahn <stefan@lkcc.org>
864
865 * threads.h: Redefined scm_getspecific() and scm_setspecific()
866 to be functions instead of macros.
867
868 * threads.c: Conditionalized inclusion of <sys/time.h> and
869 <unistd.h>.
870 (scm_getspecific, scm_setspecific): Made these two function
871 real part of the API.
872
873 * posix.c (s_scm_putenv): Added some code to make a
874 (putenv "FOO="), i.e. setting an empty string, work also on
875 Win32 systems. Thanks to Kevin Ryde for the proposal.
876
877 2003-06-12 Kevin Ryde <user42@zip.com.au>
878
879 * posix.c (scm_putenv): Free temporary ptr in mingw unset. Add
880 freebsd to comment about need to use unsetenv.
881
882 2003-06-02 Marius Vollmer <mvo@zagadka.de>
883
884 * ports.c (scm_peek_char): Safe the column of the port around the
885 getc/ungetc calls. Thanks to Dr. Peter Ivanyi!
886
887 2003-06-07 Kevin Ryde <user42@zip.com.au>
888
889 * tags.h: Use inttypes.h and stdint.h when available, for INTPTR_MAX
890 and friends required by scm_t_bits setups.
891
892 2003-06-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
893
894 * tags.h (scm_tc2_int): Added.
895
896 * tags.h (scm_tc3_int_1, scm_tc3_int_2): Expressed in terms of
897 scm_tc2_int.
898
899 * tags.h (scm_tcs_cons_imcar, scm_tcs_cons_nimcar, scm_tcs_struct,
900 scm_tcs_closures): Hard coded values replaced by symbolic ones.
901
902 2003-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
903
904 * eval.c: Partially undid my patch from 2003-05-31. This patch
905 caused the segfault referenced in the previous changelog entry.
906
907 2003-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
908
909 * tags.h: Fixed comment about the immediate type code layout.
910
911 * eval.c: Fixed handling of non-special instructions. Without
912 this patch, guile will segfault on (#\0) and similar instructions.
913
914 2003-06-05 Kevin Ryde <user42@zip.com.au>
915
916 * numbers.c (scm_max, scm_min): For inum, bignum and real, if other
917 operand is NaN, then return NaN. Also avoid passing NaN to mpz_cmp_d.
918
919 * read.c (scm_input_error): Pass arg list parameter to scm_error_scm,
920 rather than SCM_EOL. Needed by "Unknown # object" case in scm_lreadr.
921
922 2003-06-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
923
924 * __scm.h, gc-card.c (SCM_DEBUG_DEBUGGER_SUPPORT,
925 SCM_DEBUG_DEBUGGING_SUPPORT): Renamed macro
926 SCM_DEBUG_DEBUGGER_SUPPORT to SCM_DEBUG_DEBUGGING_SUPPORT and
927 generalized it to apply not only to C level functions but also to
928 scheme level functions.
929
930 * debug.c, debug.h, eval.c (make-iloc, scm_make_iloc, iloc?,
931 scm_iloc_p, dbg-make-iloc, scm_dbg_make_iloc, dbg-iloc?,
932 scm_dbg_iloc_p): Moved functions scm_make_iloc, scm_iloc_p to
933 eval.c, made them available under SCM_DEBUG_DEBUGGING_SUPPORT == 1
934 only and renamed them to scm_dbg_make_iloc, scm_dbg_iloc_p,
935 respectively.
936
937 * deprecated.h, eval.c, eval.h (SCM_ILOC00, SCM_IDINC,
938 SCM_IDSTMSK): Deprecated. The macro definitions are moved from
939 eval.h into eval.c and a copy is placed into deprecated.h.
940
941 * eval.c, eval.h (SCM_MAKE_ILOC): Removed from eval.h and placed
942 into eval.c. This definition was not part of the API in any
943 officially released version of guile and thus does not need to go
944 through a phase of deprecation.
945
946 2003-06-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
947
948 * deprecated.c, deprecated.h, eval.c, eval.h (scm_s_expression,
949 scm_s_test, scm_s_body, scm_s_bindings, scm_s_variable,
950 scm_s_clauses, scm_s_formals): Deprecated. In eval.c the
951 definitions are make static and renamed from scm_s_xxx to s_xxx.
952 In deprecated.c the original definitions are copied.
953
954 * deprecated.h, eval.c, eval (SCM_EVALIM2, SCM_EVALIM, SCM_XEVAL,
955 SCM_XEVALCAR): Deprecated. The macro definitions are moved from
956 eval.h into eval.c and a copy (slightly modified to work in user
957 code) is placed into deprecated.h.
958
959 * eval.c: Use the local static s_xxx definitions instead of the
960 scm_s_xxx definitions throughout.
961
962 2003-06-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
963
964 This set of patches separates the representation of the cxr family
965 of functions (car, cdr etc.) from the dsubr family of functions
966 (i. e. functions that take a double precision floating point
967 argument). Further, the algorithm for handling the cxr function
968 is improved.
969
970 * eval.c (SCM_CEVAL, SCM_APPLY, scm_trampoline_1), numbers.c
971 (scm_asinh, scm_acosh, scm_atanh, scm_truncate, scm_round, floor,
972 ceil, sqrt, fabs, exp, log, sin, cos, tan, asin, acos, atan, sinh,
973 cosh, tanh), objects.c (scm_class_of), procprop.c
974 (scm_i_procedure_arity), ramap.c (scm_array_map_x), tags.h
975 (scm_tc7_dsubr, scm_tcs_subrs): Introduce scm_tc7_dsubr as new
976 typecode for the dsubr family of functions.
977
978 * ramap.c (ramap_cxr, ramap_dsubr): Renamed ramap_cxr to
979 ramap_dsubr.
980
981 * eval.c (SCM_CEVAL, SCM_APPLY, call_cxr_1), pairs.c
982 (scm_init_pairs): Make use of the (now usable) second cell element
983 of a scm_tc7_cxr function to implement the cxr family of functions
984 more efficiently.
985
986 2003-05-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
987
988 * eval.c (SCM_CEVAL, SCM_APPLY, scm_trampoline_0,
989 scm_trampoline_1, scm_trampoline_2): Postpone error cases to the
990 end of an if-else-if-sequence of checks.
991
992 2003-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
993
994 * eval.c (SCM_CEVAL): Improved readability of call-with-values
995 execution. Generalize apply_closure to apply_proc and use that
996 for call-with-values.
997
998 2003-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
999
1000 * eval.c (SCM_CEVAL): Avoid one level of indirection when applying
1001 a non closure.
1002
1003 2003-05-30 Stefan Jahn <stefan@lkcc.org>
1004
1005 * posix.c (s_scm_putenv): Use the new HAVE_UNSETENV
1006 appropriately for mingw32 hosts.
1007
1008 * numbers.h: Defining copysign(), isnan() and finite() to
1009 be prefixed by a single '_' for mingw32 hosts.
1010
1011 2003-05-30 Kevin Ryde <user42@zip.com.au>
1012
1013 * numbers.c (z_negative_one): New variable.
1014 (scm_init_numbers): Initialize it.
1015 (scm_logcount): Use it and mpz_hamdist to count zeros for negatives.
1016
1017 2003-05-29 Stefan Jahn <stefan@lkcc.org>
1018
1019 * win32-dirent.c: Use malloc() instead of scm_malloc().
1020
1021 * stime.c (s_scm_strftime): Add a type cast to avoid compiler
1022 warning.
1023
1024 * posix.c (s_scm_putenv): Disable use of unsetenv() for the
1025 mingw32 build.
1026
1027 * modules.c (s_scm_module_import_interface): Renamed local
1028 variable interface to _interface. Seems like 'interface'
1029 is a special compiler directive for the mingw32 compiler.
1030
1031 * mkstemp.c: Provide prototype to avoid compiler warning.
1032
1033 * load.c (s_scm_search_path): Fixed absolute and relative
1034 path detections for native Windows platforms.
1035
1036 * gc.h, threads.h: Export some more symbols using SCM_API (necessary
1037 to build on mingw32).
1038
1039 * gc-freelist.c ("s_scm_map_free_list",
1040 "s_scm_gc_set_debug_check_freelist_x"): Fixed use of FUNC_NAME.
1041
1042 * fports.c (fport_fill_input): Disable use of
1043 fport_wait_for_input() on Win32 platforms.
1044
1045 * filesys.c (s_scm_basename): Fixed __MINGW32__ code.
1046
1047 * Makefile.am: Modified some rules for cross compiling.
1048
1049 2003-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1050
1051 * eval.c (SCM_CEVAL): In case of an application, all checks for a
1052 proper function object and the correct number of arguments are now
1053 performed in the application part of SCM_CEVAL.
1054
1055 (scm_badformalsp): Removed.
1056
1057 2003-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1058
1059 * deprecated.c (scm_read_and_eval_x): Fixed C99-ism.
1060
1061 2003-05-22 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1062
1063 * num2integral.i.c (NUM2INTEGRAL): Avoid warning about conditional
1064 always being false by inserting preprocessor conditional. (Thanks
1065 to Bruce Korb.)
1066
1067 * __scm.h (SCM_STACK_PTR): New macro. (Cast argument through
1068 (void *) in order to avoid an aliasing warning; thanks to Bruce
1069 Korb.)
1070
1071 * stackchk.h (SCM_STACK_OVERFLOW_P): Use SCM_STACK_PTR.
1072
1073 * threads.c (suspend, launch_thread, scm_threads_mark_stacks): Use
1074 SCM_STACK_PTR.
1075
1076 * threads.c (scm_threads_mark_stacks): Bugfix: Changed
1077 thread->base --> t->base.
1078
1079 * eval.c (SCM_CEVAL): Don't cast argument of SCM_STACK_OVERFLOW_P.
1080
1081 2003-05-20 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1082
1083 * deprecated.h, deprecated.c (scm_makstr, scm_makfromstr,
1084 scm_variable_set_name_hint, scm_builtin_variable,
1085 scm_internal_with_fluids, scm_make_gsubr,
1086 scm_make_gsubr_with_generic, scm_create_hook, SCM_LIST0,
1087 SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5, SCM_LIST6,
1088 SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify, scm_sloppy_memq,
1089 scm_sloppy_memv, scm_sloppy_member, scm_read_and_eval_x,
1090 scm_subr_entry, SCM_SUBR_DOC, scm_make_subr,
1091 scm_make_subr_with_generic, scm_make_subr_opt,
1092 scm_call_catching_errors, scm_make_smob_type_mfpe,
1093 scm_set_smob_mfpe, scm_strprint_obj, scm_read_0str, scm_eval_0str,
1094 SCM_CHARS, SCM_UCHARS, SCM_LENGTH): Re-added from the release_1_6
1095 branch. Some have been slightly rewritten.
1096 (scm_i_object_chars, scm_i_object_length): New, to support
1097 SCM_CHARS, SCM_UCHARS, and SCM_LENTH.
1098
1099 2003-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1100
1101 * eval.c (scm_m_do, unmemocopy, SCM_CEVAL): Reversed order of
1102 names and inits in the memoized code of do.
1103
1104 2003-05-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1105
1106 * c-tokenize.lex (yyget_lineno, yyget_in, yyget_out, yyget_leng,
1107 yyget_text, yyset_lineno, yyset_in, yyset_out, yyget_debug,
1108 yyset_debug, yylex_destroy): Added prototypes (otherwise we'll get
1109 a compilation error if error-on-warning is enabled).
1110
1111 2003-05-17 Marius Vollmer <mvo@zagadka.de>
1112
1113 * c-tokenize.lex: Gobble up complete lines after a '#'. This
1114 removes preprocessor directives from the snarfage that might
1115 otherwise confuse us. These directives appear when compiling with
1116 "-g3", for example.
1117
1118 2003-05-16 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1119
1120 * ChangeLog: add my surname
1121
1122 * srcprop.c (scm_finish_srcprop): use
1123 scm_gc_register_collectable_memory()
1124 (scm_make_srcprops): idem.
1125
1126 2003-05-14 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1127
1128 * gc-malloc.c (scm_gc_register_collectable_memory): avoid
1129 wrap-around for scm_mtrigger
1130 (scm_gc_register_collectable_memory): abort on overflowing
1131 scm_mallocated().
1132
1133 2003-05-13 Kevin Ryde <user42@zip.com.au>
1134
1135 * numbers.c (xmpz_cmp_d): New macro, handling infs if gmp doesn't.
1136 (scm_num_eq_p, scm_less_p, scm_max, scm_min): Use it.
1137
1138 2003-05-12 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1139
1140 * backtrace.c (scm_display_error_message): Introduced fancy
1141 printing with max level 7 and length 10. (Purpose: avoid printing
1142 gigantic objects in error messages.)
1143
1144 * print.c, print.h (scm_i_port_with_print_state): New function.
1145
1146 * print.c (scm_iprin1, scm_printer_apply,
1147 scm_port_with_print_state): Use scm_i_port_with_print_state.
1148 (scm_simple_format): Modified not to destroy print states.
1149 (print_state_mutex): New mutex.
1150 (scm_make_print_state, scm_free_print_state, scm_prin1):
1151 Lock/unlock print_state_mutex.
1152
1153 * deprecated.h (SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK):
1154 Use current names in definitions.
1155
1156 2003-05-10 Kevin Ryde <user42@zip.com.au>
1157
1158 * numbers.c (scm_num_eq_p, scm_less_p): Don't pass NaN to mpz_cmp_d.
1159
1160 * numbers.c (scm_integer_length): On negative bignums, adjust
1161 mpz_sizeinbase to account for it looking at absolute value where we
1162 want ones-complement.
1163
1164 * numbers.c (scm_gcd): In bignum/inum, don't pass yy==0 to mpz_gcd_ui
1165 since we're only using the ulong return value, and x might not fit.
1166
1167 2003-05-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1168
1169 * eval.c, eval.h, read.c, read.h (scm_sym_dot): Moved from eval to
1170 read. This will allow to make the definition in read.c static.
1171
1172 2003-05-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1173
1174 * eval.c, eval.h, evalext.c, evalext.h (scm_m_undefine): Moved
1175 from evalext to eval. This will allow to make some of the
1176 definitions in eval.c static.
1177
1178 2003-05-06 Kevin Ryde <user42@zip.com.au>
1179
1180 * numbers.c (scm_difference): In inum - bignum, handle negative inum.
1181 (scm_logcount): Use mpz_com, not mpz_neg.
1182
1183 2003-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
1184
1185 The purpose of this patch is to make guile's internal memoizers
1186 distinguishable from memoizing macros created on the scheme level
1187 or from user provided primitive memoizing macros. The reason is,
1188 that the internal memoizers are the only ones that are allowed to
1189 transform their scheme input into memoizer byte code, while all
1190 other memoizing macros may only transform scheme code into new
1191 scheme code.
1192
1193 To achieve this, a new macro type 'builtin-macro!' is introduced.
1194 Currently, 'builtin-macro!'s are handled as memoizing macros, but
1195 this will change when the memoizer and executor are separated.
1196
1197 * macros.[ch] (scm_i_makbimacro): New.
1198
1199 * macros.h (SCM_BUILTIN_MACRO_P): New.
1200
1201 * macros.c (macro_print, scm_macro_type): Support builtin-macro!s.
1202
1203 * eval.c, goops.c: All of guile's primitive memoizing macros are
1204 primitive builtin-macros now.
1205
1206 * eval.c (scm_macroexp, SCM_CEVAL): Make sure the primitive
1207 builtin-macros are handled equally to memoizing macros.
1208
1209 2003-05-04 Marius Vollmer <mvo@zagadka.de>
1210
1211 * throw.c (scm_ithrow): Remove "asm volatile" hack. It used to
1212 work around a bug in GCC 2.95.2 but is now a bug in itself.
1213
1214 2003-05-02 Marius Vollmer <mvo@zagadka.de>
1215
1216 * deprecated.h (scm_rstate, scm_rng, SCM_SLOPPY_CONSP,
1217 SCM_SLOPPY_NCONSP, scm_tc7_ssymbol, scm_tc7_msymbol,
1218 scm_tcs_symbols): New.
1219
1220 2003-04-30 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1221
1222 * deprecated.h, deprecated.c (scm_protect_object,
1223 scm_unprotect_object, SCM_SETAND_CAR, SCM_SETOR_CAR,
1224 SCM_SET_AND_CDR, SCM_SET_OR_CDR, SCM_FREEP, SCM_NFREEP,
1225 SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
1226 SCM_GCCDR, scm_remember, scm_the_root_module, scm_make_module,
1227 scm_ensure_user_module, scm_load_scheme_module, scm_port,
1228 scm_ptob_descriptor, scm_port_rw_active,
1229 scm_close_all_ports_except): New.
1230
1231 * ports.c (scm_c_port_for_each): New function, mostly copied from
1232 scm_port_for_each.
1233 (scm_port_for_each): Reimplemented using scm_c_port_for_each.
1234 * ports.h (scm_c_port_for_each): New prototype.
1235
1236 2003-04-28 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1237
1238 * eval.c (scm_m_atdispatch): Removed until actually needed. (This
1239 macro was introduced in anticipation of GOOPS method compilation
1240 code.)
1241
1242 * goops.c: Removed binding of @dispatch.
1243
1244 2003-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1245
1246 * eval.c, goops.c (@dispatch, @slot-ref, @slot-set!): Move the
1247 instructions that bind the macros on the scheme level back to
1248 goops.c in order to make sure again that the bindings go into the
1249 (oop goops) module and are not visible from the outside.
1250
1251 2003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
1252
1253 * eval.c: Non functional change: Separated R5RS and non-R5RS
1254 macros into different sections of the file and ordered the
1255 memoizers alphabetically.
1256
1257 2003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
1258
1259 * eval.c (scm_ilookup): Rewritten to improve readability.
1260
1261 2003-04-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
1262
1263 * eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
1264 Partially reverted patch from 2003-04-23 in oder to find a better
1265 compromise between readability and debuggability.
1266
1267 2003-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1268
1269 * eval.c, eval.h, goops.c, goops.h (scm_m_atslot_ref,
1270 scm_m_atslot_set_x, scm_m_atdispatch): Move the declarations and
1271 definitions of the special goops memoizers from goops.[ch] to
1272 eval.[ch]. Hmm... it seems that scm_m_atdispatch is not used
1273 throughout guile.
1274
1275 2003-04-24 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1276
1277 * ports.c, ports.h (scm_i_port_table_mutex): New mutex.
1278
1279 * fports.c (scm_evict_ports): Lock/unlock scm_i_port_table_mutex.
1280
1281 * ports.c (scm_close_port, scm_flush_all_ports): Ditto.
1282
1283 * ioext.c (scm_fdes_to_ports): Ditto.
1284
1285 * vports.c (scm_make_soft_port): Changed SCM_DEFER/ALLOW_INTS into
1286 lock/unlock scm_i_port_table_mutex.
1287
1288 * strports.c (scm_mkstrport): Ditto.
1289
1290 * ports.c (scm_void_port, scm_port_for_each): Ditto.
1291
1292 * fports.c (scm_fdes_to_port): Ditto.
1293
1294 2003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
1295
1296 This set of patches contains no functional changes, only debatable
1297 minor stylistic ones. Still, in order to prepare a patch between
1298 my local copy and the CVS version, I decided to submit the changes
1299 below. Then, the patch will hopefully only contain relevant
1300 modifications :-)
1301
1302 * eval.c (iqq): Added const specifier.
1303
1304 * eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
1305 Use NULL instead of 0 to indicate that a pointer is returned.
1306 Removed some misleading 'fall through' comments.
1307
1308 * eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
1309 Split up long expressions into smaller ones to be more debugging
1310 friendly.
1311
1312 2003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
1313
1314 * eval.h (SCM_ENTER_FRAME_HDLR, SCM_APPLY_FRAME_HDLR,
1315 SCM_EXIT_FRAME_HDLR): Use SCM_PACK to convert data to a SCM value
1316 rather than casting to SCM.
1317
1318 2003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
1319
1320 * sort.c, pairs.h: Removed unnecessary includes.
1321
1322 2003-04-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
1323
1324 * sort.c: Replaced hand-made trampline code by the new official
1325 mechanism from eval.c. This fixes a segfault in the new test file
1326 sort.test.
1327
1328 (quicksort, compare_function, scm_restricted_vector_sort_x,
1329 scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
1330 scm_merge_list_step, scm_sort_x, scm_sort, scm_merge_vector_x,
1331 scm_merge_vector_step, scm_stable_sort_x, scm_stable_sort,
1332 scm_sort_list_x, scm_sort_list): Use trampoline mechanism from
1333 eval.c.
1334
1335 (subr2less, lsubrless, closureless, applyless, scm_cmp_function,
1336 cmp_fun_t): Removed.
1337
1338 (compare_function): Added.
1339
1340 * sort.c (quicksort, SWAP, stack_node): Replaced pointer
1341 arithmetics with index arithmetics. Changed quicksort to work on
1342 an array of SCM values instead of an array of characters. Avoid
1343 bytewise copying of SCM elements. Avoid allocating memory on the
1344 stack with alloca. Fixed some comments.
1345
1346 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1347
1348 * eval.c (EXTEND_ENV): Eliminated.
1349
1350 (unmemocopy, SCM_CEVAL, SCM_APPLY): Use SCM_EXTEND_ENV instead of
1351 EXTEND_ENV.
1352
1353 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1354
1355 * __scm.h (SCM_DEBUG_DEBUGGER_SUPPORT): New compile-time option.
1356
1357 * gc.card.c (scm_gc_marked_p): Fixed compiler warning when
1358 compiling with SCM_DEBUG==1 by moving definition behind prototype.
1359
1360 * gc.card.c (scm_dbg_t_list_cell, scm_dbg_t_double_cell,
1361 scm_dbg_gc_marked_p, scm_dbg_gc_get_card, scm_dbg_gc_get_bvec,
1362 scm_t_list_cell_struct, scm_t_list_cell, scm_t_double_cell,
1363 scm_gc_marked_p, scm_gc_get_card, scm_gc_get_bvec): Fixed
1364 functions such that they check if the object is a non-immediate.
1365 Further, renamed identifiers to use the scm_dbg_ prefix and made
1366 their inclusion into the lib dependent of the
1367 SCM_DEBUG_DEBUGGER_SUPPORT compile time option.
1368
1369 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1370
1371 * __scm.h: Fixed comment about the SCM_DEBUG_TYPING_STRICTNESS
1372 debug option.
1373
1374 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1375
1376 * list.c (scm_ilength, scm_last_pair), unif.c (l2ra): Prefer
1377 !SCM_CONSP over SCM_NCONSP. Now, guile itself does not include
1378 any calls to SCM_NCONSP any more.
1379
1380 * unif.c (l2ra): Eliminate redundant check.
1381
1382 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1383
1384 * list.c (scm_cons_star), ramap.c (scm_ra_sum, scm_ra_product,
1385 scm_array_map_x), unif.c (l2ra): Prefer !SCM_NULLP over
1386 SCM_NNULLP. Now, guile itself does not include any calls to
1387 SCM_NNULLP any more.
1388
1389 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1390
1391 * eval.c (unmemocopy, SCM_APPLY, scm_map, scm_for_each,
1392 scm_copy_tree): Place assignment expressions which are part of
1393 other expressions into an expression of their own.
1394
1395 2003-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1396
1397 * goops.c (TEST_CHANGE_CLASS, scm_sys_initialize_object): Don't
1398 compare SCM values with !=.
1399
1400 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1401
1402 * eval.c, eval.h, evalext.c, evalext.h (scm_sym_setter,
1403 scm_m_generalized_set_x, scm_init_evalext): Move the declaration
1404 and definition of the memoizer for the generalized set! macro from
1405 evalext.[ch] to eval.[ch]. Use the SCM_SYNTAX snarfer macro to
1406 define the macro object.
1407
1408 * eval.c, eval.h (s_set_x, scm_s_set_x, scm_m_set_x,
1409 scm_m_generalized_set_x): Since now scm_s_set_x is only used in
1410 eval.c, it is made static and renamed to s_set_x.
1411
1412 * evalext.c (scm_defined_p, scm_m_undefine): Prefer !SCM_<foo>
1413 over SCM_N<foo>.
1414
1415 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1416
1417 * eval.c, root.h (scm_undefineds, SCM_NUM_PROTECTS, undefineds,
1418 scm_init_eval): Made scm_undefineds static in eval.c, renamed it
1419 to undefineds and registered the object as a permanent object.
1420
1421 * eval.c, eval.h (scm_f_apply, scm_init_eval): Made scm_f_apply
1422 static in eval.c, renamed it to f_apply and registered the object
1423 as a permanent object.
1424
1425 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1426
1427 * eval.c (SCM_BIT7, SCM_BIT8, unmemocopy, SCM_CEVAL): Renamed
1428 file-local macro SCM_BIT8 to SCM_BIT7, which is more appropriate.
1429
1430 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1431
1432 * numbers.c (scm_logtest): Fixed argument bug in the call to
1433 mpz_and, which showed up when compiling with SCM_DEBUG defined.
1434
1435 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1436
1437 * gc-card.c (scm_i_sweep_card, scm_i_init_card_freelist): Fixed
1438 type errors that showed up when compiling with SCM_DEBUG defined.
1439
1440 2003-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1441
1442 * continuations.c, continuations.h, eval.c, eval.h, extensions.c,
1443 gsubr.c, guile.c, init.c, read.c, root.c, root.h, stackchk.h,
1444 throw.c: Removed uses of DEBUG_EXTENSIONS and DYNAMIC_LINKING to
1445 fix compile errors with --disable-deprecated.
1446
1447 2003-04-17 Rob Browning <rlb@defaultvalue.org>
1448
1449 * numbers.c (scm_integer_expt): fix case where we were declaring
1450 vars in the middle of a statement block. Thanks to Thamer
1451 Al-Harbash.
1452
1453 2003-04-17 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1454
1455 * goops.c (TEST_CHANGE_CLASS): Update variable class after class
1456 change.
1457
1458 * eq.c (scm_eqv_p): Turned into a primitive generic.
1459
1460 2003-04-16 Rob Browning <rlb@defaultvalue.org>
1461
1462 * gc_os_dep.c: Added patch for UnixWare and OpenUNIX support.
1463 Thanks to Boyd Gerber.
1464 Added check for __arm__ in addition to arm for LINUX and copied
1465 __s390__ defines from upstream libgc. Thanks to James Treacy for
1466 reporting the problems.
1467
1468 * numbers.c (PTRDIFF_MIN): use SCM_CHAR_BIT.
1469
1470 * socket.c: use SCM_CHAR_BIT.
1471
1472 * random.c (scm_c_random_bignum): use SCM_CHAR_BIT.
1473
1474 * num2integral.i.c (NUM2INTEGRAL): use SCM_CHAR_BIT.
1475
1476 2003-04-16 Mikael Djurfeldt <mdj@kvast.blakulla.net>
1477
1478 * feature.c (scm_init_feature): Always add threads feature.
1479
1480 2003-04-15 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1481
1482 * goops.c (scm_sys_fast_slot_ref): Use SCM_SLOT instead of
1483 scm_at_assert_bound_ref. (We don't want the unbound check. See
1484 oop/goops/active-slot.scm.)
1485
1486 2003-04-14 Rob Browning <rlb@defaultvalue.org>
1487
1488 * tags.h: scm_t_intptr should have been intptr_t.
1489
1490 2003-04-13 Rob Browning <rlb@defaultvalue.org>
1491
1492 * __scm.h (SCM_FLUSH_REGISTER_WINDOWS): don't just rely on "sparc"
1493 test. Instead use
1494 #if defined (sparc) || defined (__sparc__) || defined (__sparc)
1495 as gc_os_dep.c suggests is appropriate.
1496
1497 * goops.c (prep_hashsets): make static to match prototype.
1498 (scm_sym_args): SCM_SYMBOL -> SCM_GLOBAL_SYMBOL. Thanks to Albert
1499 Chin.
1500
1501 * c-tokenize.lex: remove trailing comma from enum. Thanks to
1502 Albert Chin.
1503
1504 * gc_os_dep.c: add NetBSD powerpc config info. Thanks to Thomas
1505 Klausner.
1506
1507 2003-04-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1508
1509 * goops.c (scm_sys_prep_layout_x): Instance allocation is now
1510 indicated through extra fields in getters-n-setters.
1511 (scm_add_slot): Adapted to new format of getters_n_setters slot.
1512 (Thanks to Andy Wingo.)
1513
1514 2003-02-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1515
1516 * gc-segment.c: add comment
1517
1518 2003-04-07 Rob Browning <rlb@defaultvalue.org>
1519
1520 * debug.h: change "id" arg name to "info_id" to avoid objective-c
1521 clash.
1522
1523 * num2integral.i.c (NUM2INTEGRAL): fix bug pointed out by Mikael
1524 and add regression test to standalone/.
1525
1526 2003-04-06 Rob Browning <rlb@defaultvalue.org>
1527
1528 * strings.c (scm_mem2string): use memcpy rather than by-hand loop.
1529 Thanks to Dale P. Smith.
1530
1531 * random.c: #include gmp.h.
1532 (scm_c_random_bignum): normalize result on return.
1533
1534 * init.c: #include gmp.h.
1535
1536 * numbers.h: remove the gmp.h #include (not needed now).
1537
1538 * posix.h: change occurences of "id" to something else so we don't
1539 cause trouble when included via objective-c (can't hurt, might
1540 help). Still have usage in debug.h, though.
1541
1542 2003-04-06 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1543
1544 * random.c (scm_c_random_bignum): Don't generate a random number
1545 equal to m (the second argument of scm_c_random_bignum); only
1546 generate numbers in the range 0 <= r < m.
1547 (scm_c_default_rstate): Use SCM_VARIABLE_REF to access
1548 scm_var_random_state.
1549
1550 * num2integral.i.c (INTEGRAL2BIG): Put negation of n inside then
1551 clause.
1552
1553 2003-04-05 Rob Browning <rlb@defaultvalue.org>
1554
1555 * modules.c (scm_module_import_interface): move declaration of
1556 uses before any code.
1557
1558 2003-04-05 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1559
1560 * Makefile.am (scmconfig.h): Look for config.h in top_builddir,
1561 not top_srcdir.
1562
1563 * hashtab.c (rehash_after_gc): Clear to_rehash list before
1564 processing it in order to avoid an infinite loop.
1565
1566 * print.c (scm_prin1): Remember old state of pstate->writingp.
1567
1568 2003-04-05 Marius Vollmer <mvo@zagadka.de>
1569
1570 * Changed license terms to the plain LGPL thru-out.
1571
1572 2003-04-04 Rob Browning <rlb@defaultvalue.org>
1573
1574 * socket.c (FLIPCPY_NET_HOST_128): new macro.
1575 (ipv6_net_to_num, ipv6_num_to_net, bignum_in_ipv6_range_p):
1576 rewrite to handle GMP bignums.
1577
1578
1579 * random.c (scm_c_random_bignum): rewrite to handle GMP bignums.
1580
1581 * ports.c (scm_getc): minor tweak.
1582
1583 * numbers.h: remove SCM_BIGDIG conditionals, reorganize, and
1584 rewrite to handle GMP bignums.
1585
1586 * numbers.c: rewrite *many* functions to handle GMP bignums.
1587
1588 * num2integral.i.c (NUM2INTEGRAL, INTEGRAL2NUM, INTEGRAL2BIG):
1589 handle GMP bignums.
1590
1591 * num2float.i.c (NUM2FLOAT): handle GMP bignums.
1592
1593 * init.c (check_config): remove SCM_BIGDIG conditionals.
1594 (scm_init_guile_1): test to make sure mpz_t fits in a double_cell.
1595
1596 * gc-card.c ("sweep_card"): handle new mpz_t bignums.
1597
1598 * eval.c: remove SCM_BIGDIG conditionals.
1599
1600 * eq.c (s_scm_eqv_p): scm_i_bigcomp -> scm_i_bigcmp.
1601
1602 2003-03-31 Rob Browning <rlb@defaultvalue.org>
1603
1604 * Makefile.am (scmconfig.h): change srcdir to builddir. (Thanks
1605 to Kevin Ryde.)
1606
1607 2003-03-27 Rob Browning <rlb@defaultvalue.org>
1608
1609 * threads.h: fix various preprocessor usages of new public
1610 symbols to expect 0 or 1 values rather than 1 or undefined.
1611 i.e. change #ifdef to #if, etc.
1612
1613 * threads.c: fix various preprocessor usages of new public
1614 symbols to expect 0 or 1 values rather than 1 or undefined.
1615 i.e. change #ifdef to #if, etc.
1616
1617 * tags.h: fix various preprocessor usages of new public
1618 symbols to expect 0 or 1 values rather than 1 or undefined.
1619 i.e. change #ifdef to #if, etc.
1620
1621 * stacks.c: fix various preprocessor usages of new public
1622 symbols to expect 0 or 1 values rather than 1 or undefined.
1623 i.e. change #ifdef to #if, etc.
1624
1625 * stackchk.h: fix various preprocessor usages of new public
1626 symbols to expect 0 or 1 values rather than 1 or undefined.
1627 i.e. change #ifdef to #if, etc.
1628
1629 * stackchk.c: fix various preprocessor usages of new public
1630 symbols to expect 0 or 1 values rather than 1 or undefined.
1631 i.e. change #ifdef to #if, etc.
1632
1633 * sort.c: fix various preprocessor usages of new public
1634 symbols to expect 0 or 1 values rather than 1 or undefined.
1635 i.e. change #ifdef to #if, etc.
1636
1637 * read.c: fix various preprocessor usages of new public
1638 symbols to expect 0 or 1 values rather than 1 or undefined.
1639 i.e. change #ifdef to #if, etc.
1640
1641 * random.c: fix various preprocessor usages of new public
1642 symbols to expect 0 or 1 values rather than 1 or undefined.
1643 i.e. change #ifdef to #if, etc.
1644
1645 * print.c: fix various preprocessor usages of new public
1646 symbols to expect 0 or 1 values rather than 1 or undefined.
1647 i.e. change #ifdef to #if, etc.
1648
1649 * objects.c: fix various preprocessor usages of new public
1650 symbols to expect 0 or 1 values rather than 1 or undefined.
1651 i.e. change #ifdef to #if, etc.
1652
1653 * numbers.h: fix various preprocessor usages of new public
1654 symbols to expect 0 or 1 values rather than 1 or undefined.
1655 i.e. change #ifdef to #if, etc.
1656
1657 * null-threads.c: fix various preprocessor usages of new public
1658 symbols to expect 0 or 1 values rather than 1 or undefined.
1659 i.e. change #ifdef to #if, etc.
1660
1661 * lang.c: fix various preprocessor usages of new public
1662 symbols to expect 0 or 1 values rather than 1 or undefined.
1663 i.e. change #ifdef to #if, etc.
1664
1665 * lang.h: fix various preprocessor usages of new public
1666 symbols to expect 0 or 1 values rather than 1 or undefined.
1667 i.e. change #ifdef to #if, etc.
1668
1669 * iselect.h: fix various preprocessor usages of new public
1670 symbols to expect 0 or 1 values rather than 1 or undefined.
1671 i.e. change #ifdef to #if, etc.
1672
1673 * init.c: fix various preprocessor usages of new public
1674 symbols to expect 0 or 1 values rather than 1 or undefined.
1675 i.e. change #ifdef to #if, etc.
1676
1677 * gh_data.c: fix various preprocessor usages of new public
1678 symbols to expect 0 or 1 values rather than 1 or undefined.
1679 i.e. change #ifdef to #if, etc.
1680
1681 * gh.h: fix various preprocessor usages of new public
1682 symbols to expect 0 or 1 values rather than 1 or undefined.
1683 i.e. change #ifdef to #if, etc.
1684
1685 * gen-scmconfig.c: change most new public symbols to be defined to
1686 0 or 1 rather than being either 1 or undefined.
1687
1688 * gc_os_dep.c: fix various preprocessor usages of new public
1689 symbols to expect 0 or 1 values rather than 1 or undefined.
1690 i.e. change #ifdef to #if, etc.
1691 (STACK_GROWS_DOWN): define to 0 or 1 rather than 1 or undef.
1692
1693 * gc.h: fix various preprocessor usages of new public
1694 symbols to expect 0 or 1 values rather than 1 or undefined.
1695 i.e. change #ifdef to #if, etc.
1696
1697 * gc-card.c: fix various preprocessor usages of new public
1698 symbols to expect 0 or 1 values rather than 1 or undefined.
1699 i.e. change #ifdef to #if, etc.
1700
1701 * gc-mark.c: fix various preprocessor usages of new public
1702 symbols to expect 0 or 1 values rather than 1 or undefined.
1703 i.e. change #ifdef to #if, etc.
1704
1705 * feature.c: fix various preprocessor usages of new public
1706 symbols to expect 0 or 1 values rather than 1 or undefined.
1707 i.e. change #ifdef to #if, etc.
1708
1709 * evalext.c: fix various preprocessor usages of new public
1710 symbols to expect 0 or 1 values rather than 1 or undefined.
1711 i.e. change #ifdef to #if, etc.
1712
1713 * eval.h: fix various preprocessor usages of new public
1714 symbols to expect 0 or 1 values rather than 1 or undefined.
1715 i.e. change #ifdef to #if, etc.
1716
1717 * eval.c: fix various preprocessor usages of new public
1718 symbols to expect 0 or 1 values rather than 1 or undefined.
1719 i.e. change #ifdef to #if, etc.
1720
1721 * eq.c: fix various preprocessor usages of new public
1722 symbols to expect 0 or 1 values rather than 1 or undefined.
1723 i.e. change #ifdef to #if, etc.
1724
1725 * coop.c: fix various preprocessor usages of new public
1726 symbols to expect 0 or 1 values rather than 1 or undefined.
1727 i.e. change #ifdef to #if, etc.
1728
1729 * coop-threads.c: fix various preprocessor usages of new public
1730 symbols to expect 0 or 1 values rather than 1 or undefined.
1731 i.e. change #ifdef to #if, etc.
1732
1733 * coop-pthreads.c: fix various preprocessor usages of new public
1734 symbols to expect 0 or 1 values rather than 1 or undefined.
1735 i.e. change #ifdef to #if, etc.
1736
1737 * coop-defs.h: fix various preprocessor usages of new public
1738 symbols to expect 0 or 1 values rather than 1 or undefined.
1739 i.e. change #ifdef to #if, etc.
1740
1741 * convert.i.c: fix various preprocessor usages of new public
1742 symbols to expect 0 or 1 values rather than 1 or undefined.
1743 i.e. change #ifdef to #if, etc.
1744
1745 * continuations.c: fix various preprocessor usages of new public
1746 symbols to expect 0 or 1 values rather than 1 or undefined.
1747 i.e. change #ifdef to #if, etc.
1748
1749 * _scm.h: fix various preprocessor usages of new public symbols to
1750 expect 0 or 1 values rather than 1 or undefined. i.e. change
1751 #ifdef to #if, etc.
1752
1753 2003-03-26 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1754
1755 * init.c (scm_init_guile_1): Call scm_i_init_deprecated.
1756
1757 * deprecated.c, deprecated.h: New files, to collect deprecated
1758 things in one place.
1759 * Makefile.am: Added them in all the right places.
1760
1761 * Makefile.am (EXTRA_DIST): Added "scmconfig.h.top".
1762 (scmconfig.h): Get "scmconfig.h.top" from $(srcdir) so that VPATH
1763 builds work.
1764 (DOT_X_FILES): Removed "iselect.x".
1765 (DOT_DOC_FILES): Removed "iselect.doc".
1766
1767 2003-03-25 Rob Browning <rlb@defaultvalue.org>
1768
1769 * win32-socket.h: #include "libguile/__scm.h". Replace usage of
1770 HAVE_WINSOCK2_H with SCM_HAVE_WINSOCK2_H.
1771
1772 * win32-socket.c: #include <config.h> if HAVE_CONFIG_H.
1773
1774 * vports.c: #include <config.h> if HAVE_CONFIG_H.
1775
1776 * unif.c: #include <config.h> if HAVE_CONFIG_H. Replace usage of
1777 HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1778
1779 * threads.h: replace usage of struct timespect with
1780 scm_t_timespec. Replace usage of USE_PTHREAD_THREADS with
1781 SCM_USE_PTHREAD_THREADS. Remove typedef for struct timespec in
1782 favor of scm_t_timespec from scmconfig.h.
1783
1784 * threads.c: move libguile/_scm.h include to the top so we pick up
1785 any critical defines like _GNU_SOURCE early. Replace usage of
1786 struct timespect with scm_t_timespec. Replace usage of
1787 STACK_GROWS_UP with SCM_STACK_GROWS_UP. Replace usage of
1788 USE_PTHREAD_THREADS with SCM_USE_PTHREAD_THREADS.
1789
1790 * threads-plugin.h: replace usage of struct timespect with
1791 scm_t_timespec.
1792
1793 * threads-plugin.c: #include <config.h> if HAVE_CONFIG_H. Replace
1794 usage of struct timespect with scm_t_timespec.
1795
1796 * tags.h: move HAVE_STDINT_H handling to scmconfig.h. Move
1797 HAVE_INTTYPES_H handling to scmconfig.h. #include
1798 "libguile/__scm.h". Rework handling for scm_t_bits,
1799 scm_t_signed_bits, SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
1800 SCM_T_SIGNED_BITS_MIN, and SIZEOF_SCM_T_BITS to use scm_t_intptr,
1801 scm_t_uintptr, SCM_SIZEOF_INTPTR_T, and SCM_SIZEOF_UINTPTR_T, and
1802 SCM_SIZEOF_UNSIGNED_LONG. Rename usage of HAVE_ARRAYS to
1803 SCM_HAVE_ARRAYS.
1804
1805 * symbols.c: #include <config.h> if HAVE_CONFIG_H.
1806
1807 * struct.c: #include <config.h> if HAVE_CONFIG_H.
1808
1809 * strports.c: #include <config.h> if HAVE_CONFIG_H.
1810
1811 * strop.c: #include <config.h> if HAVE_CONFIG_H.
1812
1813 * stime.h: move handling of time related headers to scmconfig.h.
1814
1815 * stime.c: #include <config.h> if HAVE_CONFIG_H.
1816
1817 * stacks.c: replace usage of STACK_GROWS_UP with
1818 SCM_STACK_GROWS_UP.
1819
1820 * sort.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
1821 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1822
1823 * socket.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
1824 of uint32 and HAVE_UINT_32 with scm_t_int32.
1825
1826 * smob.c: #include <config.h> if HAVE_CONFIG_H.
1827
1828 * simpos.c: #include <config.h> if HAVE_CONFIG_H.
1829
1830 * script.c: #include <config.h> if HAVE_CONFIG_H.
1831
1832 * scmsigs.c: #include <config.h> if HAVE_CONFIG_H.
1833
1834 * scmconfig.h.top: new file -- preamble for scmconfig.h.
1835
1836 * rw.c: #include <config.h> if HAVE_CONFIG_H.
1837
1838 * regex-posix.c: #include <config.h> if HAVE_CONFIG_H.
1839
1840 * read.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1841
1842 * rdelim.c: #include <config.h> if HAVE_CONFIG_H.
1843
1844 * random.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
1845 of LONG32, LONG64, SIZEOF_LONG, and HAVE_LONG_LONGS with
1846 scm_t_int32, scm_t_int64, and SCM_HAVE_T_INT64. Rename usage of
1847 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1848
1849 * ramap.c: replace usage of HAVE_LONG_LONGS with
1850 "SCM_SIZEOF_LONG_LONG != 0".
1851
1852 * putenv.c: #include <config.h> if HAVE_CONFIG_H. #include
1853 "libguile/scmconfig.h".
1854
1855 * pthread-threads.c: #include <config.h> if HAVE_CONFIG_H.
1856
1857 * print.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1858 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1859
1860 * posix.c: #include <config.h> if HAVE_CONFIG_H.
1861
1862 * ports.c: #include <config.h> if HAVE_CONFIG_H.
1863
1864 * objects.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1865
1866 * numbers.h: replace usage of HAVE_FLOATINGPOINT_H with
1867 SCM_HAVE_FLOATINGPOINT_H. Replace usage of HAVE_IEEEFP_H with
1868 SCM_HAVE_IEEEFP_H. Replace usage of HAVE_NAN_H with
1869 SCM_HAVE_NAN_H. Replace usage of STDC_HEADERS with
1870 SCM_HAVE_STDC_HEADERS. Replace usage of ptrdiff_t with
1871 scm_t_ptrdiff. Replace usage of HAVE_LONG_LONGS with
1872 "SCM_SIZEOF_LONG_LONG != 0".
1873
1874 * numbers.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
1875 of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0". Replace
1876 usage of ptrdiff_t with scm_t_ptrdiff. Replace usage of
1877 SIZEOF_PTRDIFF_T with SCM_SIZEOF_SCM_T_PTRDIFF.
1878
1879 * num2integral.i.c: #include <config.h> if HAVE_CONFIG_H.
1880
1881 * null-threads.h: replace usage of struct timespect with
1882 scm_t_timespec.
1883
1884 * net_db.c: #include <config.h> if HAVE_CONFIG_H.
1885
1886 * mkstemp.c: #include <config.h> if HAVE_CONFIG_H. #include
1887 "libguile/__scm.h". Remove definition of gcc_uint64_t in favor of
1888 scm_t_uint64 and rename usages.
1889
1890 * mallocs.c: #include <config.h> if HAVE_CONFIG_H.
1891
1892 * load.c: #include <config.h> if HAVE_CONFIG_H.
1893
1894 * iselect.h: move handling of time related headers to scmconfig.h.
1895 Rename usage of HAVE_SYS_SELECT_H to SCM_HAVE_SYS_SELECT_H.
1896 Rename usage of HAVE_WINSOCK2_H to SCM_HAVE_WINSOCK2_H. Rename
1897 usage of USE_COOP_THREADS to SCM_USE_COOP_THREADS.
1898
1899 * iselect.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1900 of USE_COOP_THREADS to SCM_USE_COOP_THREADS. Rename usage of
1901 USE_NULL_THREADS to SCM_USE_NULL_THREADS.
1902
1903 * ioext.c: #include <config.h> if HAVE_CONFIG_H.
1904
1905 * inline.h: #include "libguile/__scm.h" at the top. Change code
1906 to use SCM_C_INLINE and SCM_INLINE_C_INCLUDINT_INLINE_H to decide
1907 what to do instead of creating a new public #define. Rename usage
1908 of USE_COOP_THREADS to SCM_USE_COOP_THREADS. Rename usage of
1909 USE_NULL_THREADS to SCM_USE_NULL_THREADS. Rename usage of
1910 USE_COPT_THREADS to SCM_USE_COPT_THREADS.
1911
1912 * inline.c: rearrange handling -- now we just #define
1913 SCM_INLINE_C_INCLUDING_INLINE_H to 1 and #include
1914 "libguile/inline.h". scmconfig.h will define SCM_C_INLINE as
1915 appropriate, and we use that in inline.h along with the above
1916 define to determine how to respond.
1917
1918 * init.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
1919 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1920
1921 * guile.c: #include <config.h> if HAVE_CONFIG_H.
1922
1923 * gh_data.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1924 of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1925
1926 * gh.h: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1927
1928 * gen-scmconfig.h.in: new file -- see gen-scmconfig.c for details.
1929
1930 * gen-scmconfig.c: new file -- see comments in file for details.
1931
1932 * gdbinit.c: #include <config.h> if HAVE_CONFIG_H.
1933
1934 * gc_os_dep.c: #include <config.h> if HAVE_CONFIG_H. Replace
1935 usage of STACK_GROWS_UP with SCM_STACK_GROWS_UP.
1936
1937 * gc.h: replace usage of SIZEOF_LONG with
1938 SCM_SIZEOF_UNSIGNED_LONG. Replace usage of USE_PTHREAD_THREADS
1939 with SCM_USE_PTHREAD_THREADS. Remove SCM_SIZEOF_LONG definition
1940 since we handle that in scmconfig.h now.
1941
1942 * gc.c: #include <config.h> if HAVE_CONFIG_H.
1943
1944 * gc-mark.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1945 of HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of
1946 HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1947
1948 * gc-malloc.c: #include <config.h> if HAVE_CONFIG_H.
1949
1950 * gc-card.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1951 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1952
1953 * fports.c: #include <config.h> if HAVE_CONFIG_H.
1954
1955 * filesys.c: #include <config.h> if HAVE_CONFIG_H.
1956
1957 * feature.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1958 of USE_NULL_THREADS to SCM_USE_NULL_THREADS.
1959
1960 * extensions.c: #include <config.h> if HAVE_CONFIG_H.
1961
1962 * evalext.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1963 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
1964
1965 * eval.c: #include <config.h> if HAVE_CONFIG_H. #include
1966 "libguile/__scm.h" rather than scmconfig.h. Rename usage of
1967 HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of HAVE_LONG_LONGS
1968 with "SCM_SIZEOF_LONG_LONG != 0".
1969
1970 * error.c: #include <config.h> if HAVE_CONFIG_H.
1971
1972 * eq.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
1973 HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of HAVE_LONG_LONGS
1974 with "SCM_SIZEOF_LONG_LONG != 0".
1975
1976 * deprecation.c: #include <config.h> if HAVE_CONFIG_H.
1977
1978 * coop.c: replace usage of struct timespect with scm_t_timespec.
1979 #include <config.h> if HAVE_CONFIG_H.
1980
1981 * coop-threads.c: #include "libguile/_scm.h" early. Replace
1982 usage of struct timespect with scm_t_timespec. Replace usage of
1983 STACK_GROWS_UP with SCM_STACK_GROWS_UP.
1984
1985 * coop-pthreads.c: #include "libguile/_scm.h" early. Replace
1986 usage of struct timespect with scm_t_timespec. Replace usage of
1987 STACK_GROWS_UP with SCM_STACK_GROWS_UP.
1988
1989 * coop-defs.h: move handling of time related headers to
1990 scmconfig.h. Add #include "libguile/__scm.h". Rename usage of
1991 HAVE_WINSOCK2_H to SCM_HAVE_WINSOCK2_H. Replace usage of struct
1992 timespect with scm_t_timespec.
1993
1994 * convert.i.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1995
1996 * convert.h: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
1997
1998 * convert.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
1999 of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
2000
2001 * continuations.c: move libguile/_scm.h include to the top so we
2002 pick up any critical defines like _GNU_SOURCE early.
2003
2004 * backtrace.c: #include <config.h> if HAVE_CONFIG_H.
2005
2006 * async.c: #include <config.h> if HAVE_CONFIG_H.
2007
2008 * alloca.c: #include <config.h> if HAVE_CONFIG_H.
2009
2010 * _scm.h: #include <config.h> if HAVE_CONFIG_H.
2011 Rename usage of USE_PTHREAD_THREADS to SCM_USE_PTHREAD_THREADS.
2012
2013 * __scm.h: move libguile/scmconfig.h include up to the top, so
2014 we're sure to pick up any critical defines like _GNU_SOURCE early.
2015 #include <limits.h> removed in favor of scmconfig.h inclusion when
2016 appropriate. STDC_HEADERS based inclusion of stdlib.h,
2017 sys/types.h, stddef.h, and sys/stdtypes.h removed in favor of
2018 scmconfig.h inclusion when appropriate. Various Win32 related
2019 definitions removed in favor of scmconfig.h inclusion when
2020 appropriate.
2021 (HAVE_UINTPTR_T): definition removed (see NEWS).
2022 (SIZEOF_PTRDIFF_T): definition removed (see NEWS).
2023 (HAVE_LONG_LONGS): definition removed (see NEWS).
2024 (HAVE_LONG_LONG): definition removed (see NEWS).
2025 (HAVE_PTRDIFF_T): definition removed (see NEWS).
2026
2027 * Makefile.am: scmconfig.h is now generated by building and
2028 running gen-scmconfig.h and capturing its output. gen-scmconfig
2029 uses config.h and the configure.in generated gen-scmconfig.h to
2030 decide what to output. See gen-scmconfig.c for details.
2031 (noinst_PROGRAMS): add gen-scmconfig.
2032 (gen_scmconfig_SOURCES): new variable.
2033 (gen-scmconfig.$(OBJEXT)): new target - be careful to handle
2034 cross-compiling right.
2035 (scmconfig.h): build scmconfig.h from gen-scmconfig's output.
2036 (BUILT_SOURCES): add scmconfig.h.
2037
2038 2003-03-19 Marius Vollmer <mvo@zagadka.de>
2039
2040 * gc_os_dep.c: Added defines for sparc-unknown-netbsdelf1.5 from
2041 Adrian Bunk. Thanks!
2042
2043 2003-03-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2044
2045 * goops.c (make_class_from_template): New fourth arg:
2046 applicablep.
2047 (scm_class_extended_generic_with_setter, scm_class_self): Fixed
2048 cpls.
2049
2050 * smob.c (scm_set_smob_apply): Call scm_i_inherit_applicable.
2051
2052 * goops.c, objects.c, objects.h (scm_make_extended_class): New
2053 second arg: applicablep.
2054 (scm_i_inherit_applicable): New function.
2055
2056 * goops.c, goops.h (scm_class_applicable,
2057 scm_class_extended_accessor): New classes.
2058
2059 2003-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
2060
2061 * procs.c (scm_procedure_documentation): Removed redundant
2062 SCM_NIMP test and replaced other calls to SCM_IMP by more explicit
2063 predicates.
2064
2065 2003-03-11 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2066
2067 * list.c, list.h (scm_filter, scm_filter_x): New functions.
2068
2069 * modules.c (scm_module_import_interface): New function.
2070
2071 * goops.c, goops.h (scm_class_accessor_method): Renamed from
2072 scm_class_accessor.
2073 (scm_class_accessor): New class.
2074
2075 2003-03-06 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2076
2077 * goops.c (scm_primitive_generic_generic): Enable primitive
2078 generic if not enabled.
2079 (scm_sys_goops_loaded): Setup unextended primitive generics.
2080
2081 * goops.c, goops.h (scm_c_extend_primitive_generic): New function.
2082
2083 * snarf.h (SCM_PRIMITIVE_GENERIC, SCM_PRIMITIVE_GENERIC_1): New
2084 snarf macros.
2085
2086 * numbers.c (scm_abs): Use SCM_PRIMITIVE_GENERIC. (This is only a
2087 testing example. All uses of SCM_GPROC should be converted.)
2088
2089 * procprop.c (scm_stand_in_scm_proc): Use scm_assq instead of
2090 scm_assoc.
2091
2092 * eq.c (scm_equal_p): Turned into a primitive generic.
2093
2094 2003-02-27 Rob Browning <rlb@defaultvalue.org>
2095
2096 * Makefile.am (scmconfig.h): new target -- generate file from
2097 ../config.h.
2098 (modinclude_HEADERS): remove version.h.
2099 (nodist_modinclude_HEADERS): add version.h.
2100
2101 2003-02-24 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2102
2103 This fixes a serious GC bug, introduced during the latest
2104 reorganization of the GC, which disabled freeing of structs and
2105 GOOPS objects:
2106
2107 * struct.c (scm_struct_prehistory): Init scm_i_structs_to_free to
2108 SCM_EOL.
2109 (scm_struct_prehistory): Move scm_free_structs to
2110 scm_before_mark_c_hook.
2111
2112 * gc-card.c (sweep_card): Check that we haven't swept structs on
2113 this card before. That can happen if scm_i_sweep_all_segments has
2114 been called from some other place than scm_igc.
2115
2116 2003-02-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2117
2118 * environments.c (DEFAULT_OBARRAY_SIZE): Changed from 137 to 31
2119 (since hash tables now adapt their size).
2120
2121 * modules.c (scm_modules_prehistory): Changed from 2001 to 1533
2122 (current number of prehistory bindings; hashtable code will select
2123 a prime which is greater than this value).
2124
2125 * symbols.c (scm_symbols_prehistory): Changed from 1009 to 2139
2126 (current number of initial symbols).
2127
2128 * properties.c (scm_init_properties): Don't specify size of
2129 scm_properties_whash.
2130
2131 * objprop.c (scm_init_objprop): Don't specify size of
2132 scm_object_whash.
2133
2134 * keywords.c (scm_init_keywords): Don't specify a hash table size.
2135
2136 * hooks.c (scm_c_hook_add): Fixed bug in append mode.
2137
2138 The following changes introduce the use of resizable hash tables
2139 throughout Guile. It also renames the old *-hash-table* functions
2140 to *-alist-vector* and places them, together with the rest of the
2141 weak vector support, in the module (ice-9 weak-vector). We should
2142 probably introduce a new, better, API for weak references, for
2143 example "weak pairs" a la MIT-Scheme. (In Chez scheme, they even
2144 look like and are used like ordinary pairs.)
2145
2146 * environments.c (obarray_enter, obarray_retrieve, obarray_remove,
2147 leaf_environment_fold, obarray_remove_all): Use hashtable
2148 accessors.
2149
2150 * gc.c (scm_init_storage): Moved hook initialization to
2151 scm_storage_prehistory.
2152 (scm_storage_prehistory): New function.
2153 (scm_igc): Added commentary about placement of
2154 scm_after_sweep_c_hook.
2155
2156 * gc-mark.c (scm_mark_all): Use hashtable accessors.
2157 (scm_gc_mark_dependencies): Use SCM_WVECT_WEAK_KEY_P and
2158 SCM_WVECT_WEAK_VALUE_P.
2159
2160 * hashtab.c, hashtab.h (scm_hash_for_each, scm_hash_map): New
2161 functions.
2162 (scm_vector_to_hash_table, scm_c_make_resizing_hash_table):
2163 Removed.
2164 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table,
2165 scm_make_doubly_weak_hash_table): Moved here from weaks.c.
2166
2167 * init.c (scm_init_guile_1): Removed call to scm_init_weaks; Added
2168 calls to scm_storage_prehistory and scm_hashtab_prehistory.
2169
2170 * modules.c (module-reverse-lookup): Use hashtable accessors.
2171
2172 * symbols.c, symbols.h (scm_i_hash_symbol): New function.
2173
2174 * weaks.c, weaks.h (scm_make_weak_key_alist_vector,
2175 scm_make_weak_value_alist_vector,
2176 scm_make_doubly_weak_alist_vector): New functions.
2177
2178 * weaks.c (scm_init_weaks_builtins): New function.
2179
2180 * weaks.h (SCM_WVECTF_WEAK_KEY, SCM_WVECTF_WEAK_VALUE,
2181 SCM_WVECTF_NOSCAN, SCM_WVECT_WEAK_KEY_P, SCM_WVECT_WEAK_VALUE_P,
2182 SCM_WVECT_NOSCAN_P): New macros.
2183
2184 * weaks.c (scm_scan_weak_vectors): Use SCM_WVECT_WEAK_KEY_P
2185 and SCM_WVECT_WEAK_VALUE_P.
2186
2187 * weaks.c, weaks.h (scm_i_allocate_weak_vector): Renamed from
2188 allocate_weak_vector and exported.
2189
2190 2003-02-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2191
2192 * hashtab.c: Undid thread safety. (We decided that it's better to
2193 let the user explicitly protect the tables (or not) according what
2194 is suitable for the application.)
2195
2196 2003-02-12 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2197
2198 * hashtab.c (scm_hash_fn_remove_x, scm_internal_hash_fold): Made
2199 thread safe and handle resizing tables.
2200 (scm_ihashx, scm_sloppy_assx, scm_delx_x): Removed
2201 SCM_DEFER/ALLOW_INTS.
2202
2203 2003-02-11 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2204
2205 * hashtab.c (scm_vector_to_hash_table,
2206 scm_c_make_resizing_hash_table, scm_make_hash_table): New
2207 functions.
2208 (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x): Made thread
2209 safe and handle resizing tables.
2210
2211 * weaks.c (scm_make_weak_key_hash_table,
2212 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
2213 Size argument made optional. Return resizable table if not
2214 specified.
2215
2216 2003-02-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2217
2218 * eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
2219 Fixed formals tests for closures. (Thanks to Kevin Ryde.)
2220
2221 2003-02-05 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2222
2223 * debug.c (scm_procedure_source): Handle all objects for which
2224 procedure? is #t. (Thanks to Bill Schottstaedt.)
2225
2226 2003-01-23 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2227
2228 * futures.c (mark_futures): Don't need to mark data of recycled
2229 futures.
2230 (scan_futures, cleanup_undead): Be smarter about marking
2231 futures---avoid unnecessary passes through future lists.
2232
2233 * futures.h, futures.c: New files; Introduced recycling of
2234 futures. For fine-grained threading this lifts performance to
2235 another level. We can now use parallelization in inner loops of
2236 Guile programs without impossible overhead.
2237
2238 * threads.h, threads.c: Moved futures to their own file.
2239
2240 * Makefile.am (libguile_la_SOURCES): Added futures.c.
2241 (DOT_X_FILES): Added futures.x.
2242 (DOT_DOC_FILES): Added futures.doc.
2243 (modinclude_HEADERS): Added futures.h.
2244
2245 * threads.c, threads.h (scm_i_create_thread): Renamed from
2246 create_thread and made global.
2247
2248 * futures.c (scm_make_future): New procedure.
2249
2250 * eval.c: #include "libguile/futures.h".
2251
2252 * init.c: #include "futures.h"
2253 (scm_init_guile_1): Call scm_init_futures.
2254
2255 * stime.c (SCM_TIME_UNITS_PER_SECOND): Renamed from CLKTCK.
2256
2257 * stime.h (SCM_TIME_UNITS_PER_SECOND): Definition moved here.
2258
2259 * eval.c, eval.h (scm_trampoline_0, scm_i_call_closure_0): New
2260 functions.
2261
2262 * eval.c (scm_trampoline_1): Fixed arguments test for closures.
2263
2264 2003-01-22 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2265
2266 * threads.c (create_thread): Don't unwind dynwind chain of parent
2267 thread before creation. Just start the new thread with an empty
2268 dynwind chain.
2269
2270 2003-01-20 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2271
2272 * evalext.c, evalext.h (scm_self_evaluating_p): New function.
2273
2274 2003-01-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2275
2276 * threads.c (scm_timed_wait_condition_variable): Support timed
2277 waiting also for simple condition variables.
2278
2279 * goops.c (TEST_CHANGE_CLASS): Use scm_change_object_class instead
2280 of calling the procedure change-object-class.
2281
2282 2003-01-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2283
2284 * ramap.c (scm_ramapc): Typo in error message.
2285
2286 2003-01-08 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2287
2288 * goops.c (scm_sys_prep_layout_x): Bugfix: Only create layout for
2289 slots with instance allocation.
2290
2291 * goops.c, goops.h (scm_class_extended_generic_with_setter): New
2292 class.
2293 (scm_compute_applicable_methods): Use scm_generic_function_methods.
2294
2295 * goops.c (scm_generic_function_methods): Support extended
2296 generic functions.
2297
2298 2002-12-29 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2299
2300 * eval.c (unmemocopy): Bugfix: scm_sym_delay --> scm_sym_future.
2301 Thanks to Neil for pointing this out!
2302
2303 2002-12-29 Neil Jerram <neil@ossau.uklinux.net>
2304
2305 * lang.h: Remove declarations matching definitions removed from
2306 lang.c (just below).
2307
2308 2002-12-28 Neil Jerram <neil@ossau.uklinux.net>
2309
2310 * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
2311 scm_m_while, scm_nil_eq): Remove definitions that were superfluous
2312 and already commented out.
2313
2314 * read.h (scm_lreadparen), read.c (scm_lreadr, scm_read_token,
2315 scm_lreadparen): Support reading vectors with Elisp syntax if
2316 SCM_ELISP_READ_EXTENSIONS is defined. (SCM_ELISP_READ_EXTENSIONS
2317 is not currently defined, and there isn't even a configure switch
2318 to enable it yet.)
2319
2320 2002-12-26 Marius Vollmer <mvo@zagadka.ping.de>
2321
2322 * Makefile.am (c-tokenize.o): Refer to source via $< so that vpath
2323 builds work.
2324 (EXTRA_DIST): Added version.h.in.
2325
2326 2002-12-21 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2327
2328 This change makes it possible for one thread to do lazy sweeping
2329 while other threads are running. Now only the mark phase need to
2330 have all threads asleep. We should look further into this issue.
2331 Presently, I've put the locking of scm_i_sweep_mutex at
2332 "conservative" places due to my current lack of knowledge about
2333 the garbage collector. Please feel free to restrict these regions
2334 further to allow for maximal parallelism!
2335
2336 * gc.c, gc.h (scm_i_sweep_mutex): New mutex.
2337
2338 * gc.c (scm_gc_for_newcell), gc-malloc.c (scm_realloc,
2339 scm_gc_register_collectable_memory): Substitute locking of
2340 scm_i_sweep_mutex for calls to scm_i_thread_put_to_sleep.
2341 (scm_igc): Lock sweep mutex here instead of in callers; Calls to
2342 scm_i_thread_put_to_sleep/scm_i_thread_wake_up used to demarkate
2343 the single-thread section (which now only contains the mark
2344 phase).
2345 (scm_gc): Don't lock sweeo mutex here since scm_igc locks it;
2346 Removed SCM_DEFER/ALLOW_INTS. Simply call scm_igc directly.
2347
2348 * threads.c (gc_section_mutex): Removed.
2349
2350 2002-12-19 Mikael Djurfeldt <mdj@kvast.blakulla.net>
2351
2352 * threads.c (create_thread): Clear parent field in root state in
2353 order not to unnecessarily remember dead threads.
2354
2355 * eval.c (call_subr2o_1, call_lsubr2_2): New functions.
2356 (scm_trampoline_1, scm_trampoline_2): Use them.
2357
2358 2002-12-18 Mikael Djurfeldt <mdj@kvast.blakulla.net>
2359
2360 Partial introduction of real plugin interface.
2361
2362 * Makefile.am (modinclude_HEADERS): Added threads-plugin.h.
2363 (EXTRA_DIST): Added threads-plugin.c.
2364
2365 * threads-plugin.h, threads-plugin.c: New files.
2366
2367 * threads.h: #include "libguile/threads-plugin.h".
2368
2369 * threads.c: #include "libguile/threads-plugin.c".
2370
2371 * pthread-threads.c: Temporarily remove debugging functions.
2372
2373 * threads.c, threads.h (scm_yield): Added back.
2374
2375 2002-12-18 Mikael Djurfeldt <mdj@kvast.blakulla.net>
2376
2377 * threads.c (really_launch): Detach before unlocking
2378 thread_admin_mutex in order not to risk being joined.
2379 (scm_i_thread_put_to_sleep, scm_i_thread_wake_up): Keep
2380 thread_admin_mutex locked during GC.
2381
2382 * pthread-threads.c, pthread-threads.h: Improvements to debugging
2383 functions.
2384
2385 2002-12-16 Mikael Djurfeldt <mdj@kvast.blakulla.net>
2386
2387 * pthread-threads.c, pthread-threads.h (SCM_DEBUG_THREADS): Added
2388 support for debugging mutex operations.
2389
2390 * threads.c (scm_thread): Removed filed joining_threads.
2391 (thread_print): Print thread number as well as address of thread
2392 structure.
2393 (scm_join_thread): Bugfix.
2394 (scm_lock_mutex, scm_try_mutex, scm_unlock_mutex,
2395 scm_timed_wait_condition_variable, scm_signal_condition_variable,
2396 scm_broadcast_condition_variable): Use the low-level API.
2397 (scm_all_threads): Return copy of thread list (to prevent
2398 unintended destruction).
2399 (scm_threads_prehistory): Initialize heap_mutex of fake thread.
2400
2401 * pthread-threads.c, pthread-threads.h, threads.c: Fixes to
2402 pthread "native" recursive mutex support.
2403
2404 2002-12-15 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2405
2406 * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): New definitions.
2407 Simply lock a thread C API recursive mutex.
2408 (SCM_NONREC_CRITICAL_SECTION_START,
2409 SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
2410 SCM_REC_CRITICAL_SECTION_END): Removed.
2411
2412 * eval.c: Replaced SOURCE_SECTION_START / SOURCE_SECTION_END with
2413 direct calls to scm_rec_mutex_lock / unlock around the three calls
2414 to scm_m_expand_body.
2415
2416 * eval.c, eval.h (promise_free): New function.
2417 (scm_force): Rewritten; Now thread-safe; Removed
2418 SCM_DEFER/ALLOW_INTS.
2419
2420 * pthread-threads.h: Added partially implemented plugin interface
2421 for recursive mutexes. These are, for now, only intended to be
2422 used internally within the Guile implementation.
2423
2424 * pthread-threads.c: New file.
2425
2426 * threads.c: Conditionally #include "pthread-threads.c".
2427
2428 * eval.c, eval.h (scm_makprom, scm_force): Rewritten to be
2429 thread-safe;
2430
2431 * snarf.h (SCM_MUTEX, SCM_GLOBAL_MUTEX, SCM_REC_MUTEX,
2432 SCM_GLOBAL_REC_MUTEX): New macros.
2433
2434 * eval.c, threads.c, threads.h, snarf.h: Rewrote critical section
2435 macros---use mutexes instead.
2436
2437 * tags.h (SCM_IM_FUTURE): New tag.
2438
2439 * eval.c (scm_m_future): New primitive macro.
2440 (SCM_CEVAL): Support futures.
2441 (unmemocopy): Support unmemoization of futures.
2442
2443 * print.c (scm_isymnames): Name of future isym.
2444
2445 * version.c: Unmade some changes to my private copy that got
2446 committed by mistake.
2447
2448 2002-12-11 Mikael Djurfeldt <mdj@kvast.blakulla.net>
2449
2450 * gc-malloc.c, gc.h, init.c: Reverted gc-malloc change of
2451 2002-12-10.
2452
2453 * gc.c (scm_igc): Don't call scm_i_thread_invalidate_freelists.
2454
2455 * gc.c (scm_gc_sweep): Call it here instead, which is a more
2456 logical place.
2457
2458 * threads.c (create_thread): Remember root object until the handle
2459 of the new thread is on all_threads list.
2460
2461 * root.c (scm_make_root): Moved copying of fluids until after
2462 creation of root handle so that the fluids are GC protected. Also
2463 removed the critical section.
2464
2465 2002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
2466
2467 * gc-malloc.c, gc.h (scm_gc_malloc_prehistory): New function.
2468
2469 * gc-malloc.c (malloc_mutex): New mutex.
2470 (scm_gc_malloc_prehistory): Initialize it.
2471 (scm_realloc): Serialize call to realloc
2472 (scm_calloc): Same for calloc.
2473 Thanks to Wolfgang Jaehrling!
2474 (Now we have to make sure all calls to malloc/realloc are made
2475 through scm_malloc.)
2476
2477 * init.c (scm_init_guile_1): Call scm_gc_malloc_prehistory.
2478
2479 * threads.c (really_launch): Release heap (to prevent deadlock).
2480 (create_thread): Release heap before locking thread admin mutex.
2481
2482 2002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
2483
2484 * threads.c (scm_i_thread_invalidate_freelists): New
2485 function.
2486
2487 * gc.c (scm_igc): Call scm_i_thread_invalidate_freelists.
2488
2489 * modules.c (scm_export): Inserted a return statement.
2490
2491 2002-12-10 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2492
2493 * modules.c (scm_export): new function
2494
2495 * gc-card.c: add a note about malloc()/free() overhead.
2496
2497 2002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
2498
2499 * Makefile.am (c-tokenize.$(OBJEXT)): Don't look for c-tokenize.c
2500 in srcdir.
2501
2502 2002-12-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2503
2504 These changes remove scm_ints_disabled (which hasn't has any
2505 effect in Guile for quite some time).
2506
2507 * async.c, error.h (scm_ints_disabled): Removed.
2508
2509 * gc.c (scm_gc_for_newcell), init.c (scm_init_guile_1),
2510 root.c (scm_internal_cwdr), gdbint.c (SCM_BEGIN_FOREIGN_BLOCK,
2511 SCM_END_FOREIGN_BLOCK): Don't touch scm_ints_disabled.
2512 (old_ints): Removed.
2513
2514 * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): Define as a recursive
2515 critical section.
2516 (SCM_REDEFER_INTS, SCM_ALLOW_INTS): Define as SCM_DEFER_INTS and
2517 SCM_ALLOW_INTS.
2518
2519 2002-12-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2520
2521 * threads.c (scm_mutex_lock, scm_cond_wait, scm_cond_timedwait):
2522 Removed accidental #if 0 around these functions.
2523
2524 These changes are the start of support for preemptive
2525 multithreading. Marius and I have agreed that I commit this code
2526 into the repository although it isn't thoroughly tested and surely
2527 introduces many bugs. The bugs should only be exposed when using
2528 threads, though. Signalling and error handling for threads is
2529 very likely broken. Work on making the implementation cleaner and
2530 more efficient is needed.
2531
2532 * __scm.h (SCM_ALLOW_INTS_ONLY): Removed.
2533 (SCM_NONREC_CRITICAL_SECTION_START,
2534 SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
2535 SCM_REC_CRITICAL_SECTION_END): New macros.
2536 (SCM_CRITICAL_SECTION_START/END): Defined here.
2537
2538 * eval.c: Insert SOURCE_SECTION_START / SOURCE_SECTION_END around
2539 the three calls to scm_m_expand_body.
2540
2541 * gc.h: #include "libguile/pthread-threads.h";
2542 (SCM_FREELIST_CREATE, SCM_FREELIST_LOC): New macros.
2543
2544 * gc.c (scm_i_freelist, scm_i_freelist2): Defined to be of type
2545 scm_t_key;
2546
2547 * gc.c, gc-freelist.c, inline.h: Use SCM_FREELIST_LOC for freelist
2548 access.
2549
2550 * gc-freelist.c (scm_gc_init_freelist): Create freelist keys.
2551
2552 * gc-freelist.c, threads.c (really_launch): Use
2553 SCM_FREELIST_CREATE.
2554
2555 * gc-malloc.c (scm_realloc, scm_gc_register_collectable_memory):
2556
2557 * gc.c (scm_i_expensive_validation_check, scm_gc,
2558 scm_gc_for_newcell): Put threads to sleep before doing GC-related
2559 heap administration so that those pieces of code are executed
2560 single-threaded. We might consider rewriting these code sections
2561 in terms of a "call_gc_code_singly_threaded" construct instead of
2562 calling the pair of scm_i_thread_put_to_sleep () and
2563 scm_i_thread_wake_up (). Also, we would want to have as many of
2564 these sections eleminated.
2565
2566 * init.c (scm_init_guile_1): Call scm_threads_prehistory.
2567
2568 * inline.h: #include "libguile/threads.h"
2569
2570 * pthread-threads.h: Macros now conform more closely to the
2571 pthreads interface. Some of them now take a second argument.
2572
2573 * threads.c, threads.h: Many changes.
2574
2575 2002-12-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2576
2577 * Makefile.am (version.h): Changed $^ --> $< in rule for
2578 version.h.
2579
2580 2002-12-08 Rob Browning <rlb@defaultvalue.org>
2581
2582 * version.h.in (SCM_MICRO_VERSION): use @--@ substitution now.
2583 (SCM_MINOR_VERSION): use @--@ substitution now.
2584 (SCM_MICRO_VERSION): use @--@ substitution now.
2585 (scm_effective_version): new function prototype.
2586
2587 * version.c (scm_effective_version): new function, also add
2588 effective-version.
2589
2590 * Makefile.am (schemelibdir): VERSION -> GUILE_EFFECTIVE_VERSION.
2591 (libpath.h): use GUILE_EFFECTIVE_VERSION to compute
2592 SCM_LIBRARY_DIR.
2593 (version.h): generate this here rather than configure.in. This
2594 approach tracks source edits better (i.e. more immediately).
2595 Might be worth considering for other .in files too.
2596
2597 2002-12-02 Marius Vollmer <mvo@zagadka.ping.de>
2598
2599 Reorganized thread package selection. A thread package now only
2600 implements a small set of pthread like functions and Guile
2601 implements the rest on top of that. Guile's implementation is
2602 what the "coop-pthreads" package has been previously. Support for
2603 "coop" threads has been removed until I get time to add it again.
2604
2605 * Makefile.am (libguile_la_SOURCES): Removed iselect.c.
2606 (noinst_HEADERS): Removed coop-threads.c, coop-threads.h, coop.c,
2607 null-threads.c, coop-pthreads.c.
2608 (modinclude_HEADERS): Removed coop-defs.h, coop-pthreads.h. Added
2609 pthread-threads.h.
2610
2611 * validate.h (SCM_VALIDATE_THREAD): Moved to threads.h.
2612
2613 * threads.h: Do not include "libguile/coop-defs.h". Include
2614 "libguile/pthread-threads.h" for USE_COPT_THREADS. Removed
2615 (previously deprecated) C level thread API prototypes. They are
2616 now in the thread package specific headers, "null-threads.h" and
2617 "pthread-threads.h".
2618 (SCM_VALIDATE_THREAD, SCM_VALIDATE_MUTEX, SCM_VALIDATE_CONDVAR):
2619 New.
2620 (scm_threads_init): Removed.
2621 (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END,
2622 SCM_THREAD_SWITCHING_CODE, scm_i_switch_counter,
2623 SCM_I_THREAD_SWITCH_COUNT): Define here.
2624 (scm_single_thread_p): Removed.
2625 (scm_call_with_new_thread): Take two args directly instead of list
2626 of two args.
2627 (scm_i_thread_data, scm_i_set_thread_data, SCM_THREAD_LOCAL_DATA,
2628 SCM_SET_THREAD_LOCAL_DATA): Define here.
2629
2630 * threads.c: Merged with "coop-pthreads.c".
2631
2632 * null-threads.h: Implement pthread-like API as a set of macros.
2633
2634 * pthread-threads.h: New, implement pthread-like API by deferring
2635 to pthread itself.
2636
2637 * init.c (scm_init_guile_1): Do not call scm_init_iselect, which
2638 has been lost in the reorganization.
2639
2640 2002-12-01 Mikael Djurfeldt <mdj@linnaeus>
2641
2642 The following change makes it possible to move procedure
2643 application dispatch outside inner loops. The motivation was
2644 clean implementation of efficient replacements of R5RS primitives
2645 in SRFI-1.
2646
2647 The semantics is clear: scm_trampoline_N returns an optimized
2648 version of scm_call_N (or NULL if the procedure isn't applicable
2649 on N args).
2650
2651 Applying the optimization to map and for-each increases efficiency
2652 noticeably. For example, (map abs ls) is 8 times faster than
2653 before.
2654
2655 * eval.h (scm_t_trampoline_1, scm_t_trampoline_2): New types.
2656
2657 * eval.c, eval.h (scm_trampoline_1, scm_trampoline_2): New functions.
2658
2659 * eval.c (call_subr2_2, call_lsubr_2, call_closure_2): New functions;
2660 (map, for-each): Handle also application on two args as a special
2661 case; Use trampolines.
2662
2663 Other changes:
2664
2665 * sort.c (scm_cmp_function): Choose subr2less for scm_tc7_subr_2o;
2666 (subr2oless): Removed.
2667 (scm_restricted_vector_sort_x): Use scm_return_first to keep the
2668 vector GC protected.
2669
2670 * eval.c (check_map_args): Use scm_out_of_range_pos instead of
2671 scm_out_of_range.
2672
2673 2002-11-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2674
2675 * evalext.[ch] (scm_m_undefine, undefine): Deprecated.
2676
2677 2002-11-17 Mikael Djurfeldt <mdj@linnaeus>
2678
2679 * debug.c (scm_make_iloc): Added missing "return".
2680
2681 2002-11-17 Marius Vollmer <mvo@zagadka.ping.de>
2682
2683 * strports.c (scm_eval_string_in_module): Validate second arg to
2684 be a module. Thanks to Arno Peters!
2685
2686 2002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2687
2688 * .cvsignore: remove goops.c
2689
2690 2002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2691
2692 * modules.c (scm_env_top_level, scm_lookup_closure_module,
2693 module_variable, scm_module_lookup_closure,
2694 scm_module_transformer, scm_sym2var, scm_module_reverse_lookup,
2695 scm_system_module_env_p): Don't compare SCM values with C
2696 operators == or !=. Avoid SCM_IMP predicates. Prefer !SCM_FALSEP
2697 over SCM_NFALSEP.
2698
2699 2002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
2700
2701 * eval.h (SCM_MAKE_ILOC): New macro.
2702
2703 * debug.c (scm_make_iloc): Use SCM_MAKE_ILOC instead of computing
2704 the iloc bitpattern here.
2705
2706 2002-11-14 Mikael Djurfeldt <mdj@linnaeus>
2707
2708 * coop-pthreads.c, coop-pthreads.h: scm_internal_select should be
2709 part of the API, otherwise it's difficult to write Guile
2710 extensions using non-blocking I/O => moved #include
2711 "libguile/iselect.h" from coop-pthreads.c --> coop-pthreads.h.
2712
2713 * coop-pthreads.c (scm_unlock_mutex): Changed s_lock_mutex -->
2714 s_unlock_mutex.
2715
2716 2002-11-10 Marius Vollmer <mvo@zagadka.ping.de>
2717
2718 * __scm.h (USE_THREADS, GUILE_ISELECT): Do not define here. They
2719 are defined in configure.in.
2720
2721 * threads.c: Removed SCM_API from function definitions. SCM_API
2722 is only for declarations.
2723
2724 2002-11-07 Mikael Djurfeldt <mdj@linnaeus>
2725
2726 * coop-pthreads.h: Added support for thread specific data to the
2727 generic C API for the coop-pthreads case.
2728
2729 * threads.c, threads.h (scm_cond_init): Undo unintentional API
2730 change.
2731 (scm_cond_broadcast): Added missing function.
2732
2733 2002-11-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2734
2735 * coop.c (coop_next_runnable_thread): Removed, wich should have
2736 happened when GUILE_ISELECT was hard-wired.
2737
2738 2002-11-03 Marius Vollmer <mvo@zagadka.ping.de>
2739
2740 * Makefile.am (libguile_la_SOURCES): Added threads.c
2741 (DOT_DOC_FILES): Added threads.doc.
2742 (DOT_X_FILES): Added threads.x.
2743 (EXTRA_libguile_la_SOURCES): Removed threads.c.
2744 (noinst_HEADERS): Added coop-pthreads.c.
2745 (modinclude_HEADERS): Added coop-pthreads.h.
2746
2747 * __scm.h (USE_THREADS, GUILE_ISELECT): Define when
2748 SCM_DEBUG_DEPRECATED. Removed their use thru-out Guile.
2749
2750 * iselect.c: Include "_scm.h" before testing HAVE_UNISTD_H.
2751 Thanks to Bill Schottstaedt!
2752
2753 * numbers.c (scm_integer_expt): Make 0^z == 0 for z != 0.
2754
2755 * _scm.h (HAVE_RESTARTABLE_SYSCALLS): Do define even when
2756 SCM_COPT_THREADS is defined.
2757 (SCM_SYSCALL): Use EINTR-expection version when SCM_COPT_THREADS
2758 is defined.
2759
2760 * coop-pthreads.c: Some harmless renamings of internal stuff.
2761 (create_thread): New, generalized version of
2762 scm_call_with_new_thread.
2763 (scm_call_with_new_thread): Use it.
2764 (scm_spawn_thread): New, use create_thread.
2765
2766 2002-11-02 Marius Vollmer <mvo@zagadka.ping.de>
2767
2768 * coop-pthreads.c, coop-pthreads.h: Redone completely, you might
2769 start testing it now.
2770
2771 * _scm.h: Include <errno.h< so that SCM_SYSCALL is correctly
2772 defined when HAVE_RESTARTABLE_SYSCALLS is not defined.
2773 (HAVE_RESTARTABLE_SYSCALLS): Do not define when USE_COPT_THREADS
2774 is defined.
2775
2776 2002-10-27 Marius Vollmer <mvo@zagadka.ping.de>
2777
2778 * scmsigs.c (signal_cell_handlers, install_handler_data,
2779 scm_delq_spine_x, really_install_handler, install_handler): New
2780 scheme for triggering signal handlers, to simplify take_signal.
2781 (take_signal): Simplified, to avoid race conditions.
2782 (scm_sigaction_for_thread): Use new Scheme. Validate that thread
2783 hasn't exited yet.
2784
2785 * async.c (scm_async_click): Reset pending_asyncs, handle
2786 signal_asyncs. Don't set cdr of a non-signal async to #f.
2787 (scm_i_queue_async_cell): Do not check cdr of cell for #f, queue
2788 always. Set pending_asyncs.
2789 (scm_system_async_mark_for_thread): Check that thread has not
2790 exited.
2791 (scm_unmask_signals, decrease_block): Call scm_async_click after
2792 block_asyncs becomes zero.
2793
2794 * __scm.h (SCM_ASYNC_CLICK): Check pending_asyncs instead of
2795 active_asyncs.
2796
2797 * root.h (scm_root_state): Added pending_asyncs and signal_asyncs
2798 fields.
2799 * root.c (root_mark): Mark them.
2800 (make_root): Initialize them.
2801
2802 * iselect.c, iselect.h: Replaced GUILE_ISELECT with
2803 USE_COOP_THREADS.
2804 (scm_internal_select): Define one version for USE_COOP_THREADS and
2805 one for USE_NULL_THREADS.
2806 (scm_init_iselect): Likewise.
2807
2808 * inline.h (scm_cell, scm_double_cell): Also allow
2809 USE_COPT_THREADS to not protect the slot initializers.
2810
2811 * init.c (scm_init_guile_1): Call scm_init_thread_procs. This is
2812 because threads need to be initialized before the stack, but
2813 gsubrs such as scm_timed_condition_variable_wait can only be
2814 created later.
2815
2816 * threads.h: Include "coop-pthreads.h" when requested.
2817 (scm_threads_make_mutex, scm_threads_lock_mutex,
2818 scm_threads_unlock_mutex, scm_threads_monitor): Removed, they were
2819 not implemented anyway.
2820 (scm_init_thread_procs, scm_try_mutex,
2821 scm_timed_condition_variable_wait,
2822 scm_broadcast_condition_variable, scm_c_thread_exited_p,
2823 scm_thread_exited_p): New prototypes.
2824 (struct timespec): Define if not already defined.
2825 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
2826 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
2827 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
2828 scm_cond_broadcast, scm_cond_destroy): Declarations moved here and
2829 deprecated.
2830
2831 * threads.c: Include <errno.h>. Include "coop-pthreads.c" when
2832 requested.
2833 (scm_thread_exited_p): New.
2834 (scm_try_mutex, scm_broadcast_condition_variable): Newly
2835 registered procedures.
2836 (scm_wait_condition_variable, scm_timed_wait_condition_variable):
2837 Use the latter as the procedure for "wait-condition-variable",
2838 thus offering a optional timeout parameter to Scheme.
2839 (scm_wait_condition_variable): Implement in terms of
2840 scm_timed_wait_condition_variable.
2841 (scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
2842 scm_mutex_unlock, scm_mutex_destroy, scm_cond_init,
2843 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
2844 scm_cond_broadcast, scm_cond_destroy): Implement in terms of
2845 scm_make_mutex, etc, and deprecate.
2846 (scm_init_threads): Do not create smobs, leave this to
2847 scm_threads_init. Do not include "threads.x" file.
2848 (scm_init_thread_procs): New, include "threads.x" here.
2849
2850 * null-threads.h (scm_null_mutex, scm_null_mutex_init,
2851 scm_null_mutex_lock, scm_null_mutex_unlock,
2852 scm_null_mutex_destroy, scm_null_condvar, scm_null_condvar_init,
2853 scm_null_condvar_wait, scm_null_condvar_signal,
2854 scm_null_condvar_destroy): Removed.
2855 (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock, scm_cond_init,
2856 scm_cond_wait, scm_cond_signal, scm_cond_broadcast,
2857 scm_cond_destory): Do not define, they are now deprecated and
2858 handled by threads.{h,c}.
2859
2860 * null-threads.c (scm_null_mutex, scm_null_cond): Define here.
2861 (scm_threads_init): Create smobs here, using the appropriate
2862 sizes.
2863 (block): Removed, now unused.
2864 (scm_c_thread_exited_p): New.
2865 (scm_null_mutex_init, scm_null_mutex_lock, scm_null_mutex_unlock,
2866 scm_null_mutex_destroy, scm_null_condvar_init,
2867 scm_null_condvar_wait, scm_null_condvar_signal,
2868 scm_null_condvar_destroy): Removed and updated users to do their
2869 task directly.
2870 (scm_try_mutex, timeval_subtract,
2871 scm_timed_wait_condition_variable,
2872 scm_broadcast_condition_variable): New.
2873 (scm_wait_condition_variable): Removed.
2874
2875 * coop-defs.h (coop_m): Added 'level' field.
2876 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
2877 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
2878 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
2879 scm_cond_broadcast, scm_cond_destroy, struct timespec): Do not
2880 define.
2881 (coop_condition_variable_broadcast): New.
2882
2883 * coop-threads.c (scm_threads_init): Create smobs here, using the
2884 appropriate sizes.
2885 (scm_c_thread_exited_p, scm_try_mutex,
2886 scm_timed_wait_condition_variable,
2887 scm_broadcast_condition_variable): New.
2888 (scm_wait_condition_variable): Removed.
2889
2890 * coop.c (coop_new_mutex_init): Initialize level.
2891 (coop_mutex_trylock, coop_mutex_lock, coop_mutex_unlock): maintain
2892 level.
2893 (coop_condition_variable_signal): Renamed to
2894 coop_condition_variable_broadcast and reimplemented in terms of
2895 that. Thus...
2896 (coop_condition_variable_broadcast): New.
2897
2898 * goops.c (hell_mutex): Reimplemented using scm_make_mutex, etc.
2899
2900 * coop-pthreads.h, coop-pthreads.c: New, but unfinished.
2901
2902 2002-10-21 Marius Vollmer <mvo@zagadka.ping.de>
2903
2904 * null-threads.c: Include <time.h>. Also, use <...> for inclusion
2905 of system headers.
2906
2907 * async.c, goops.h, modules.h, validate.h (SCM_MAKE_VALIDATE_MSG):
2908 New. Use it instead of SCM_MAKE_VALIDATE in lots of places to
2909 give better error messages. Thanks to Bill Schottstaedt!
2910
2911 2002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2912
2913 * evalext.h, evalext.c (scm_definedp, scm_defined_p): Renamed
2914 scm_definedp to scm_defined_p and deprecated scm_definedp.
2915
2916 2002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2917
2918 * async.h, async.c (scm_system_async): Fixed deprecation to work
2919 correctly when deprecated features are excluded.
2920
2921 2002-10-16 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2922
2923 * async.c (scm_system_async_mark_for_thread): Validate thread
2924 argument.
2925
2926 * coop-threads.c (scm_i_thread_root): Do not validate argument.
2927
2928 * feature.c (scm_init_feature): Don't add 'threads' for
2929 USE_NULL_THREADS.
2930
2931 * inline.h (scm_cell, scm_double_cell): Also allow
2932 USE_NULL_THREADS to not protect the slot initializers.
2933
2934 * scmsigs.c (scm_sigaction_for_thread): It's "USE_THREADS" not
2935 "USE_THREAD".
2936
2937 * Makefile.am (noinst_HEADERS): Added null-threads.c.
2938 (modinclude_HEADERS): Added null-threads.h.
2939
2940 * threads.h: Include null-threads.h when !USE_COOP_THREADS.
2941 * threads.c: Include null-threads.c when !USE_COOP_THREADS.
2942 (scm_init_threads): Use generic type names scm_t_mutex and
2943 scm_t_cond instead of coop_m and coop_c.
2944
2945 * null-threads.c, null-threads.h: New files.
2946
2947 2002-10-15 Marius Vollmer <mvo@zagadka.ping.de>
2948
2949 * Makefile.am: Replaced "$<" in non-pattern rules with its value.
2950 This is to support makes that know about "$<" only in pattern
2951 rules, like Sun's make.
2952
2953 2002-10-13 Marius Vollmer <mvo@zagadka.ping.de>
2954
2955 * Makefile.am (libpath.h): Fixed typo in top_srcdir_absolute
2956 substitution. Thanks to David Allouche!
2957
2958 2002-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
2959
2960 * evalext.h: Replaced SCM_DEBUG_DEPRECATED with
2961 !SCM_ENABLE_DEPRECATED.
2962
2963 2002-10-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2964
2965 * async.c (scm_system_async_mark_for_thread): Only call
2966 scm_i_thread_root when USE_THREADS is defined. Use scm_root
2967 otherwise.
2968
2969 * scmsigs.c (take_signal): Only call scm_i_thread_root when
2970 USE_THREADS is defined. Use scm_root otherwise.
2971 (scm_sigaction_for_thread): Ignore THREAD argument when
2972 USE_THREADS is not defined. Also, move THREAD argument defaulting
2973 out of HAVE_SIGACTION section, which was a bug.
2974
2975 2002-10-10 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2976
2977 * scmsigs.c (scm_sigaction_for_thread): Store original handler in
2978 signal_handlers, not the closure that is used as the async.
2979 The closure is stored in signal_handler_cells, as previously.
2980
2981 2002-10-10 Marius Vollmer <mvo@zagadka.ping.de>
2982
2983 * root.h (scm_root_state): Added 'block_async' slot.
2984 (scm_active_asyncs): Removed abbrev.
2985 * root.c (scm_make_root): Initialize 'block_asyncs' slot.
2986
2987 * __scm.h (SCM_ASYNC_TICK): Do without the scm_active_asyncs
2988 abbrev.
2989
2990 * async.h (scm_call_with_blocked_asyncs,
2991 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
2992 scm_c_call_with_unblocked_asyncs): New prototypes.
2993 (scm_mask_signals, scm_unmask_signals): Deprecated.
2994 (scm_mask_ints): Turned into a macro.
2995 * async.c (scm_mask_ints): Removed.
2996 (scm_run_asyncs): Do not set scm_mask_ints while running an async.
2997 this should not be necessary.
2998 (scm_async_click): Test block_asyncs instead of scm_mask_ints.
2999 (scm_mask_signals, scm_unmask_signals): Deprecated. Emit
3000 deprecation warning and check for errornous use. Set block_asyncs
3001 instead of scm_mask_ints.
3002 (increase_block, decrease_block, scm_call_with_blocked_asyncs,
3003 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
3004 scm_c_call_with_unblocked_asyncs): New.
3005
3006 * script.c (scm_compile_shell_switches): Do not set scm_mask_ints.
3007 Asyncs are enabled by default.
3008
3009 2002-10-09 Neil Jerram <neil@ossau.uklinux.net>
3010
3011 * vports.c (scm_make_soft_port): Allow vector argument to carry a
3012 6th element: an input waiting thunk.
3013 (sf_input_waiting): New.
3014
3015 2002-10-05 Marius Vollmer <mvo@zagadka.ping.de>
3016
3017 * root.c (root_mark): Mark active_asyncs slot.
3018
3019 * async.c (scm_async_click): Set the cdr of a executed handler
3020 cell to SCM_BOOL_F, not SCM_EOL.
3021 (scm_i_queue_async_cell): Queue the cell at the end of the list,
3022 and only if the handler procedure is not already present.
3023 (scm_system_async_mark_for_thread): Initialize cdr of handler cell
3024 with SCM_BOOL_F.
3025 * scmsigs.c (scm_sigaction_for_thread): Likewise.
3026
3027 2002-10-04 Rob Browning <rlb@defaultvalue.org>
3028
3029 * guile.c (main): switch to scm_lt_dlset_preloaded_symbols;
3030
3031 * dynl.c (sysdep_dynl_link): switch to scm_lt_dlhandle,
3032 scm_lt_dlopenext, and scm_lt_dlerror.
3033 (sysdep_dynl_unlink): switch to scm_lt_dlhandle, scm_lt_dlclose,
3034 and scm_lt_dlerror.
3035 (sysdep_dynl_func): switch to scm_lt_dlhandle, scm_lt_dlsym,
3036 and scm_lt_dlerror.
3037 (sysdep_dynl_init): switch to scm_lt_dlinit();
3038
3039 * Makefile.am (libguile_la_LIBADD): switch to use
3040 libguile-ltdl.la.
3041
3042 * numbers.c (scm_integer_expt): (expt 0 1) should be 1.
3043
3044 2002-10-04 Marius Vollmer <mvo@zagadka.ping.de>
3045
3046 * scmsigs.h (scm_sigaction_for_thread): New prototype.
3047 * scmsigs.c (got_signal): Removed.
3048 (signal_handler_cells, signal_handler_threads): New.
3049 (take_signal): Queue the cell of the signal for the specified
3050 thread. Reset the signal handler on systems that don't have
3051 sigaction.
3052 (sys_deliver_signals): Removed.
3053 (close_1): New.
3054 (scm_sigaction_for_thread): Renamed from scm_sigaction and
3055 extended to also set the thread of a signal and allocate a cell
3056 for it. Keep the Scheme name "sigaction". Check that signum is
3057 within range. Also, use SCM_VECTOR_REF instead of SCM_VELTS.
3058 (scm_sigaction): Implement in terms of scm_sigaction_for_thread.
3059 (scm_init_scmsigs): Allocate signal_handler_cells and
3060 signal_handler_threads vectors.
3061
3062 * async.c: Removed GUILE_OLD_ASYNC_CLICK code. Reorganized so
3063 that system asnycs and user asyncs are separated. Reimplemented
3064 system asyncs to work per-thread.
3065
3066 * gc.c (scm_init_gc): Do not use scm_system_async.
3067
3068 * async.h (scm_asyncs_pending, scm_set_tick_rate,
3069 scm_set_switch_rate, scm_system_async_mark_from_signal_handler):
3070 Removed prototypes.
3071 (scm_i_queue_async_cell): New.
3072
3073 * __scm.h (scm_asyncs_pending_p): Removed.
3074 (SCM_ASYNC_CLICK): Check scm_active_asyncs instead of
3075 scm_asyncs_pending_p.
3076
3077 * async.h (scm_system_async_mark_for_thread): New prototype.
3078
3079 * __scm.h: Removed GUILE_OLD_ASYNC_CLICK code.
3080
3081 * root.h (scm_root_state): Added new "active_asyncs" slot.
3082 * root.c (scm_make_root): Initialize it to SCM_EOL.
3083
3084 * coop-defs.h (coop_t): Added new "handle" slot.
3085 * coop-threads.c (all_threads, scm_current_thread,
3086 scm_all_threads, scm_i_thread_root): New.
3087 (scm_threads_init): Add main thread to all_threads.
3088 (scheme_launch_thread): Remove thread from all_threads when it
3089 terminates.
3090 (scm_call_with_new_thread): Initialize handle slot of coop_t
3091 structure and add new thread to all_threads.
3092 (scm_spawn_thread): Likewise.
3093
3094 * threads.h (scm_current_thread, scm_all_threads): New prototypes.
3095 * threads.c (scm_current_thread, scm_all_threads): Register as
3096 primitives.
3097
3098 * dynl.c: Use scm_lt_ prefix for libltdl functions.
3099
3100 2002-09-29 Neil Jerram <neil@ossau.uklinux.net>
3101
3102 * script.c (scm_compile_shell_switches): Fix bad spelling of
3103 `explicitly' in comment.
3104
3105 2002-09-28 Neil Jerram <neil@ossau.uklinux.net>
3106
3107 * posix.c (scm_geteuid, scm_getegid, scm_seteuid, scm_setegid):
3108 Refer to provided? in doc string rather than deprecated feature?.
3109
3110 2002-09-24 Gary Houston <ghouston@arglist.com>
3111
3112 * inline.h (scm_double_cell): prevent reordering of statements
3113 with any following code (for GCC 3 strict-aliasing).
3114 * numbers.c (scm_make_real), num2float.i.c (FLOAT2NUM): removed
3115 the earlier version of the reordering prevention.
3116
3117 2002-09-19 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3118
3119 * inline.h (scm_double_cell): move SET_GCMARK set out of if body.
3120
3121 2002-09-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3122
3123 * gc-malloc.c (scm_gc_register_collectable_memory): more overflow
3124 protection.
3125
3126 2002-09-08 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3127
3128 * inline.h: include stdio.h
3129
3130 * smob.c (free_print): abort if scm_debug_cell_accesses_p is set
3131
3132 2002-09-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3133
3134 * gc-segment.c (scm_i_make_initial_segment): check user settings
3135 for sanity.
3136
3137 * gc-malloc.c (scm_gc_init_malloc): check user settings for
3138 sanity.
3139
3140 * gc-freelist.c (scm_init_freelist): check user settings for sanity.
3141
3142 * struct.h: change scm_structs_to_free to scm_i_structs_to_free
3143
3144 * gc-malloc.c (scm_gc_register_collectable_memory): use floats;
3145 these won't ever wrap around with high memory usage. Thanks to
3146 Sven Hartrumpf for finding this.
3147
3148 * gc-freelist.c: include <stdio.h>
3149
3150 * gc-malloc.c: add DEBUGINFO for mtrigger GCs.
3151
3152 2002-09-01 Marius Vollmer <mvo@zagadka.ping.de>
3153
3154 * vectors.h (SCM_VECTOR_REF): New.
3155
3156 * snarf.h (SCM_DEFINE_PUBLIC): New.
3157
3158 2002-08-30 Marius Vollmer <mvo@zagadka.ping.de>
3159
3160 * socket.c (scm_addr_vector): Added size of address to arguments.
3161 Use it to avoid accessing a non-existent path in a sockaddr_un.
3162 Changed all callers.
3163
3164 2002-08-29 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3165
3166 * gc.h: remove DOUBLECELL card flags.
3167
3168 * gc-malloc.c (scm_calloc): try to use calloc() before calling
3169 scm_realloc().
3170
3171 * gc-segment.c (scm_i_initialize_heap_segment_data): remove card
3172 init loop; handle this from scm_init_card_freelist()
3173
3174 * gc-card.c (scm_init_card_freelist): init bit vector here.
3175
3176 * numbers.c (scm_make_real): prevent reordering of statements
3177 num2float.i.c (FLOAT2NUM): idem
3178
3179 2002-08-27 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3180
3181 * eval.h: prepend libguile/ to include path
3182
3183 2002-08-26 Marius Vollmer <mvo@zagadka.ping.de>
3184
3185 * script.c (scm_compile_shell_switches): Added "2002" to Copyright
3186 years. Thanks to Martin Grabmüller!
3187
3188 2002-08-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3189
3190 * gc-segment.c (scm_i_get_new_heap_segment): use float in stead of
3191 unsigned numbers for computing minimum heap increment. This
3192 prevents weird results when a a negative minimum increment is
3193 computed.
3194
3195 2002-08-24 Marius Vollmer <mvo@zagadka.ping.de>
3196
3197 * gc_os_dep.c: When we have __libc_stack_end, use that directly
3198 instead of the old tricks.
3199
3200 * guile-snarf.in: Do not expect the input file to be the first
3201 argument after the optional "-o" option, just pass everything to
3202 the pre-processor without extracting the input file name.
3203
3204 2002-08-23 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3205
3206 * gc-segment.c (scm_i_get_new_heap_segment): Oops. We want segment
3207 length *at* least SCM_MIN_HEAP_SEG_SIZE, not at most.
3208
3209 2002-08-22 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3210
3211 * gc.h, gc.c: make scm_cells_allocated unsigned again. Thanks to
3212 Bill Schottstaedt for the bug report
3213
3214 2002-08-20 Marius Vollmer <mvo@zagadka.ping.de>
3215
3216 * print.c (scm_iprin1): Print primitives generics always as
3217 "primitive-generic" even when they have no primitive methods yet.
3218
3219 2002-08-17 Gary Houston <ghouston@arglist.com>
3220
3221 * coop.c (coop_create): removed bogus 2nd argument in scm_malloc
3222 call.
3223
3224 2002-08-17 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3225
3226 * ports.c (scm_add_to_port_table): small bugfix.
3227
3228 * mallocs.c (scm_malloc_obj): use scm_gc_malloc in stead of
3229 malloc.
3230
3231 * gc-segment.c (scm_i_get_new_heap_segment): remove cluster cruft:
3232 only use SCM_MIN_HEAP_SEG_SIZE.
3233
3234 * ports.c (scm_add_to_port_table): add backwards compatibility
3235 function
3236
3237 * ports.h: use scm_i_ prefix for port table and port table size.
3238
3239 2002-08-15 Mikael Djurfeldt <mdj@linnaeus>
3240
3241 * vports.c (scm_make_soft_port): Initialize pt variable.
3242
3243 2002-08-13 Marius Vollmer <mvo@zagadka.ping.de>
3244
3245 * strports.h (scm_c_eval_string_in_module,
3246 scm_eval_string_in_module): New prototypes.
3247 * strports.c (scm_eval_string_in_module): New, but use
3248 "eval-string" as the Scheme name and make second parameter
3249 optional.
3250 (scm_eval_string): Implement using scm_eval_string_in_module.
3251 (scm_c_eval_string_in_module): New.
3252 Thanks to Ralf Mattes for the suggestion!
3253
3254 2002-08-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3255
3256 * gc-card.c ("sweep_card"): remove SCM_MISC_ERROR messages: print
3257 message and abort.
3258
3259 * gc-mark.c ("scm_gc_mark_dependencies"): idem.
3260
3261 * ports.c ("scm_new_port_table_entry"): return a boxed SCM in
3262 stead of scm_t_port*. The function now takes a tag argument.
3263
3264 2002-08-08 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3265
3266 * gc.h: add scm_debug_cells_gc_interval to public interface
3267
3268 * gc-card.c ("sweep_card"): set scm_gc_running while sweeping.
3269
3270 * gc.c (scm_i_expensive_validation_check): separate expensive
3271 validation checks from cheap ones.
3272
3273 2002-08-06 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3274
3275 * read.c (scm_input_error): new function: give meaningful error
3276 messages, and throw read-error
3277
3278 * gc-malloc.c (scm_calloc): add scm_calloc.
3279
3280 2002-08-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3281
3282 * tags.h: remove GC bits documentation from the tags table.
3283
3284 * read.c (INPUT_ERROR): Prepare for file:line:column error
3285 messages for errors in scm_lreadr() and friends.
3286
3287 2002-08-04 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3288
3289 * gc-malloc.c (scm_malloc): use scm_realloc() (simplifies
3290 implementation).
3291 (scm_gc_calloc): new function
3292
3293 2002-08-04 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3294
3295 * ports.c (scm_new_port_table_entry): init port entry to 0
3296 completely.
3297
3298 * ports.c (scm_new_port_table_entry): change function from
3299 scm_add_to_port_table. This prevents cells with null-pointers from
3300 being exposed to GC.
3301
3302 * vports.c (scm_make_soft_port) strports.c (scm_mkstrport),
3303 fports.c (scm_fdes_to_port): Use scm_new_port_table_entry().
3304
3305 * gc.c (scm_gc_stats): add cell-yield and malloc-yield statistic
3306 to gc-stats.
3307
3308 * numbers.c (big2str): return "0" for 0 iso. ""
3309
3310 * gc-segment.c, gc-malloc.c gc-mark.c, gc-freelist.c, gc-card.c,
3311 private-gc.h: new file
3312
3313 * gc.c: completely revised and cleaned up the GC. It now uses lazy
3314 sweeping. More documentation in workbook/newgc.text
3315
3316 2002-07-25 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3317
3318 * random.c (rstate_free): Return zero.
3319
3320 2002-07-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
3321
3322 * environments.c (remove_key_from_alist): Removed.
3323
3324 (obarray_remove): Simplified.
3325
3326 2002-07-24 Stefan Jahn <stefan@lkcc.org>
3327
3328 * continuations.h: ia64: Include <signal.h> before
3329 <sys/ucontext.h>.
3330
3331 2002-07-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3332
3333 * modules.c (scm_sym2var): Don't compare SCM values with ==.
3334
3335 2002-07-21 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3336
3337 * goops.c (scm_compute_applicable_methods): use
3338 scm_remember_upto_here_1 iso scm_remember_upto_here
3339
3340 * macros.c: include deprecation.h
3341
3342 * vectors.c (scm_vector_move_right_x): remove side effect in
3343 macro arg.
3344 (scm_vector_move_left_x): idem.
3345
3346 * net_db.c, posix.c, socket.c: variable naming: change ans to
3347 result.
3348
3349 * sort.c (scm_merge_vector_x): accept vector as argument
3350 iso. SCM*. This is needed for full GC correctness.
3351
3352 * gc.h: undo previous undocumented changes related to #ifdef
3353 GENGC.
3354
3355 2002-07-20 Han-Wen Nienhuys <hanwen@cs.uu.nl>
3356
3357 * *.c: add space after commas everywhere.
3358
3359 * *.c: use SCM_VECTOR_SET everywhere, where a vector is written.
3360 Document cases where SCM_WRITABLE_VELTS() is used.
3361
3362 * vectors.h (SCM_VELTS): prepare for write barrier, and let
3363 SCM_VELTS() return a const pointer
3364 (SCM_VECTOR_SET): add macro.
3365
3366 2002-07-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
3367
3368 * eval.c (SCM_CEVAL), macros.c (macro_print, scm_makmacro,
3369 scm_sym_macro, scm_macro_type), macros.h (scm_makmacro):
3370 Deprecated the special kind of built-in dynamic syntax transformer
3371 that was inaccurately named "macro". Note: The built-in syntax
3372 transformers that are named "mmacro" or "memoizing-macro" still
3373 exist, and it is these which come much closer to what one would
3374 call a macro.
3375
3376 2002-07-13 Neil Jerram <neil@ossau.uklinux.net>
3377
3378 * eval.c (unmemocopy): Fix for
3379 1001-local-eval-error-backtrace-segfaults (unmemoization crash
3380 with internal definitions and local-eval).
3381
3382 2002-07-12 Gary Houston <ghouston@arglist.com>
3383
3384 * dynl.c: Don't define stub procedures if DYNAMIC_LINKING is not
3385 defined. They don't do anything useful, especially since the
3386 only case where DYNAMIC_LINKING is undefined seems to be
3387 when --with-modules=no is given to configure, which is basically
3388 requesting that the "dynamic linking module" be omitted.
3389
3390 * Makefile.am (libguile_la_SOURCES): move dynl.c from
3391 libguile_la_SOURCES to EXTRA_libguile_la_SOURCES.
3392
3393 * extensions.c (load_extension): check DYNAMIC_LINKING for
3394 scm_dynamic_call.
3395 * init.c (scm_init_guile_1): check DYNAMIC_LINKING for
3396 scm_init_dynamic_linking.
3397
3398 2002-07-10 Marius Vollmer <mvo@zagadka.ping.de>
3399
3400 * guile.c, iselect.h, net_db.c, posix.c, socket.c: No need to
3401 check for Cygwin when including <winsock2.h>, this is already
3402 check for by configure. Thus, revert change from 2002-07-07.
3403
3404 2002-07-10 Gary Houston <ghouston@arglist.com>
3405
3406 * eq.c: include <string.h>
3407 * dynl.c: docstring editing.
3408
3409 2002-07-09 Gary Houston <ghouston@arglist.com>
3410
3411 * dynl.c (scm_dynamic_call): docstring editing.
3412
3413 2002-07-08 Rob Browning <rlb@defaultvalue.org>
3414
3415 * gc_os_dep.c: HURD fixes.
3416
3417 2002-07-07 Marius Vollmer <mvo@zagadka.ping.de>
3418
3419 Crosscompiling and Cygwin fixes by Jan Nieuwenhuizen. Thanks!
3420
3421 * Makefile.am: Override default rule for c-tokenize.$(OBJECT);
3422 this should be compiled for BUILD host.
3423 Override default rule for
3424 guile_filter_doc_snarfage$(EEXECT); this should run on BUILD host.
3425 Add missing $(EXEEXT) to guile_filter_doc_snarfage invocation.
3426 (snarf2checkedtexi): Use GUILE_FOR_BUILD instead of preinstguile.
3427
3428 * guile.c, iselect.h, net_db.c, posix.c, socket.c: Do not include
3429 <winsock2.h> on Cygwin even when we have it.
3430
3431 2002-07-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
3432
3433 * __scm.h (SCM_CAUTIOUS), eval.c (scm_eval_args, deval_args,
3434 SCM_CEVAL): Removed compile time option SCM_CAUTIOUS to clean up
3435 the code. Full number of arguments checking of closures is
3436 mandatory now. However, the option to disable the checking has
3437 most probably not been used anyway.
3438
3439 2002-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
3440
3441 * __scm.h (SCM_RECKLESS), backtrace.c (SCM_ASSERT), debug.c
3442 (scm_debug_options), eval.c (scm_lookupcar, scm_lookupcar1,
3443 scm_badargsp, SCM_CEVAL, SCM_APPLY, scm_map, scm_for_each),
3444 feature.c (scm_init_feature), gsubr.c (scm_gsubr_apply), numbers.c
3445 (scm_logand, scm_logior, scm_logxor, scm_i_dbl2big), srcprop.c
3446 (scm_source_properties, scm_set_source_properties_x,
3447 scm_source_property): Removed compile time option SCM_RECKLESS to
3448 clean up the code. Full number of arguments checking of closures
3449 is mandatory now. However, the option to disable the checking has
3450 most probably not been used anyway.
3451
3452 * srcprop.c (scm_source_properties, scm_set_source_properties_x,
3453 scm_source_property): Use !SCM_CONSP instead of SCM_NCONSP.
3454
3455 2002-06-30 Gary Houston <ghouston@arglist.com>
3456
3457 * dynl.c: Removed all SCM_DEFER_INTS/SCM_ALLOW_INTS, which won't
3458 do anything useful. Added a comment about need for a mutex if
3459 pre-emptive threading is supported.
3460
3461 * posix.c (scm_convert_exec_args), dynl.c
3462 (scm_make_argv_from_stringlist): static procs: 1) renamed both to
3463 allocate_string_pointers. 2) simplified: don't reallocate the
3464 strings, just make an array of pointers 3) avoid memory leaks on
3465 error 4) let the procedure report errors in its own name.
3466 Consequences: 1) the procedures now assume that SCM strings are
3467 nul-terminated, which should always be the case. 2) Since strings
3468 are not reallocated, it's now possible for strings passed to
3469 dynamic-args-call to be mutated.
3470
3471 2002-06-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
3472
3473 * __scm.h, eval.c, eval.h: Removed compile time option
3474 MEMOIZE_LOCALS to clean up the code. Now, caching of local
3475 variable positions during memoization is mandatory. However, the
3476 option to disable the caching has most probably not been used
3477 anyway.
3478
3479 2002-06-18 Marius Vollmer <mvo@zagadka.ping.de>
3480
3481 * print.c (scm_simple_format): Print missing part of format before
3482 ~% control. Thanks to Daniel Skarda!
3483
3484 2002-06-01 Marius Vollmer <mvo@zagadka.ping.de>
3485
3486 * mkstemp.c: Added exception notice to license statement.
3487
3488 2002-05-22 Marius Vollmer <mvo@zagadka.ping.de>
3489
3490 * numbers.c (mem2ureal): When returning an inexact zero, make sure
3491 it is represented as a floating point value so that we can change
3492 its sign.
3493
3494 From John W. Eaton <jwe@bevo.che.wisc.edu>
3495
3496 * numbers.c (idbl2str): Don't omit sign when printing negative zero.
3497
3498 2002-05-14 Thien-Thi Nguyen <ttn@giblet.glug.org>
3499
3500 * gc_os_dep.c: For I386/OPENBSD, allow for `__i386__'
3501 in addition to `i386'. Thanks to Dale P. Smith.
3502
3503 2002-05-08 Marius Vollmer <mvo@zagadka.ping.de>
3504
3505 * eq.c (real_eqv): New.
3506 (scm_eqv_p): Use it when comparing reals and complexes.
3507
3508 * numbers.c: Include <string.h>, for strncmp.
3509 (mem2complex): Do not create negative NaNs.
3510 (scm_leq_p, scm_geq_p): Explicitely return #f when comparing a
3511 NaN.
3512 (scm_inexact_to_exact): Signal error when converting a NaN.
3513
3514 2002-05-06 Marius Vollmer <mvo@zagadka.ping.de>
3515
3516 * posix.c (scm_putenv): Handle removing variables explicitely by
3517 calling unsetenv.
3518
3519 From John W. Eaton.
3520
3521 * numbers.h: Conditionally include floatingpoint.h, ieeefp.h, and
3522 nan.h. Provide declarations for scm_inf_p, scm_nan_p, scn_inf,
3523 and scm_nan.
3524 * numbers.c: [SCO && ! HAVE_ISNAN] (isnan): New function.
3525 [SCO && ! HAVE_ISINF] (isinf): New function.
3526 (xisinf, xisnan): New functions.
3527 (IS_INF): Delete.
3528 (isfinite): Define in terms of xisinf.
3529 (scm_inf_p, scm_nan_p): New functions.
3530 (guile_Inf, guile_NaN): New file-scope vars.
3531 (guile_ieee_init): New function.
3532 (scm_inf, scm_nan): New functions.
3533 (idbl2str): Handle Inf and NaN. Remove funny label and
3534 corresponding gotos.
3535 (ALLOW_DIVIDE_BY_ZERO): New macro.
3536 (scm_divide): Allow division by zero to occur if
3537 ALLOW_DIVIDE_BY_ZERO is defined.
3538 Handle bignums and ints as special cases.
3539
3540 Additional stuff by me:
3541
3542 numbers.c (mem2ureal): Recognize "inf.0" and "nan.xxx".
3543 (scm_even_p, scm_odd_p): Treat infinity as even and odd.
3544 (iflo2str): Don't output a '+' for negative numbers or for Inf and
3545 NaN. They will provide their own sign.
3546 (scm_divide): Only allow divides by inexact zeros. Dividing by
3547 exact zeros still signals an errors.
3548
3549 2002-04-22 Thien-Thi Nguyen <ttn@giblet.glug.org>
3550
3551 * goops.h (scm_slot_exists_p): Rename from scm_slots_exists_p.
3552 * goops.c (scm_slot_exists_p): Rename from scm_slots_exists_p.
3553 (scm_slot_exists_p): Rename from scm_slots_exists_p.
3554 Thanks to Andreas Rottmann.
3555
3556 2002-04-20 Gary Houston <ghouston@arglist.com>
3557
3558 * removal of unused fields in root state (thanks to Christopher
3559 Cramer for pointing out the disuse.)
3560 * root.h (scm_root_state): removed def_inp, def_outp, def_errp.
3561 (scm_def_inp, scm_def_outp, scm_def_errp): removed.
3562
3563 * root.c (root_mark): don't mark them.
3564 (scm_make_root): don't set them to #f.
3565 * init.c (scm_init_standard_ports): don't initialise with the
3566 default ports.
3567
3568 2002-04-17 Marius Vollmer <mvo@zagadka.ping.de>
3569
3570 * Makefile.am (EXTRA_DIST): Added cpp_err_symbols.c and
3571 cpp_sig_symbols.c.
3572
3573 2002-04-16 Marius Vollmer <mvo@zagadka.ping.de>
3574
3575 * guile-snarf.in: Do not clean input file. This would write to
3576 the $(srcdir) during a VPATH build, which is not allowed. It also
3577 isn't needed since it only works when an output filename has been
3578 specified and in that case we don't need to clean the input file
3579 because the output file will already exist.
3580
3581 2002-03-31 Marius Vollmer <mvo@zagadka.ping.de>
3582
3583 * guile-snarf: Install the trap for removing $cleanfile only when
3584 the value of $cleanfile is actually known.
3585
3586 2002-04-10 Rob Browning <rlb@defaultvalue.org>
3587
3588 * .cvsignore: add versiondat.h and *.c.clean.c.
3589
3590 2002-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
3591
3592 * srcprop.[ch] (scm_c_source_property_breakpoint_p): New
3593 function, replaces macro SRCBRKP.
3594
3595 (SRCBRKP): Deprecated.
3596
3597 * eval.c (SCM_CEVAL): Replaced use of SRCBRKP by call to
3598 scm_c_source_property_breakpoint_p. Removed some use of arg1 as
3599 temporary variable.
3600
3601 2002-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3602
3603 * debug.h, eval.c: Deprecated CHECK_ENTRY, CHECK_APPLY and
3604 CHECK_EXIT and removed all references to them.
3605
3606 2002-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
3607
3608 * debug.h (scm_ready_p, debug_print): Removed declarations.
3609
3610 * eval.c (EVALCELLCAR): Removed.
3611
3612 (SCM_CEVAL): Eliminated label loopnoap. Removed side-effecting
3613 operation from condition.
3614
3615 2002-03-24 Marius Vollmer <mvo@zagadka.ping.de>
3616
3617 * guile-snarf.in: When the output filename is "-", write to
3618 stdout. When no "-o" option is given, use "-" as the output
3619 filename (i.e., stdout). Only 'clean' the inputfile or remove the
3620 output file on error when the output file name is not "-". Define
3621 the preprocessor macro SCM_MAGIC_SNARFER while snarfing.
3622
3623 * Makefile.am (.c.x): Pass "-o $@" to guile-snarf.
3624
3625 2002-03-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
3626
3627 * eval.c (SCM_CEVAL, SCM_APPLY): Eliminated labels wrongnumargs
3628 and the corresponding goto statements. Removed redundant code.
3629
3630 2002-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
3631
3632 * eval.c (SCM_CEVAL): Minimized scope of variable arg2.
3633 Eliminated redundant SCM_IMP check. Exlined call to EVALCAR.
3634 Re-enabled handing of rpsubrs and asubrs.
3635
3636 2002-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
3637
3638 * eval.c (SIDEVAL): Removed.
3639
3640 (SCM_CEVAL): Minimized scope of variable orig_sym. Eliminated
3641 goto-labels cdrxnoap, cdrxbegin and nontoplevel_cdrxnoap. Changed
3642 argument checking order for set! to locals, variables and symbols.
3643 Improvements to control structure. Removed some uses of arg1 and
3644 arg2 as temporary variables.
3645
3646 2002-03-15 Thien-Thi Nguyen <ttn@giblet.glug.org>
3647
3648 * guile-snarf.in: Remove "--compat=1.4" support.
3649 Add "-d" and "-D" support.
3650
3651 (deprecated_list): New var.
3652 (compat_mode_clean_xxx): Delete.
3653 (grep_deprecated): New func.
3654 ("main"): If "-d" or "-D", call `grep_deprecated'.
3655
3656 2002-03-15 Neil Jerram <neil@ossau.uklinux.net>
3657
3658 * hooks.h: Change scm_t_c_hookype_t everywhere to
3659 scm_t_c_hook_type.
3660
3661 Docstring fixes:
3662
3663 * strings.c (scm_string_p): Change unnecessary `iff' to `if'.
3664
3665 * ports.c (scm_sys_make_void_port): Use `@file'.
3666
3667 * numbers.c (scm_number_p, scm_real_p): Use `otherwise' rather
3668 than `else'.
3669
3670 * macros.c (scm_makmacro): Don't say that the form replaces its
3671 source, because it doesn't.
3672 (scm_makmmacro): Clarify difference between this and scm_makmacro.
3673
3674 * backtrace.c (scm_display_error), filesys.c (scm_umask,
3675 scm_select, scm_basename), goops.c (scm_method_generic_function),
3676 numbers.c (scm_integer_length), posix.c (scm_getgroups, scm_execl,
3677 scm_setlocale, scm_flock), socket.c (scm_shutdown): Correct
3678 spelling mistakes.
3679
3680 * debug.c (scm_debug_options), eval.c
3681 (scm_eval_options_interface), read.c (scm_read_options): Change
3682 incorrect @var in docstring to @code.
3683
3684 2002-03-14 Marius Vollmer <mvo@zagadka.ping.de>
3685
3686 * unif.c (singp): Use SCM_REALP instead of SCM_SLOPPY_REALP.
3687
3688 * snarf.h (SCM_SNARF_INIT): Add "^:^" after code so that
3689 guile-snarf can remove trailing non-init code.
3690
3691 * guile-snarf.in (modern_snarf): Remove everything following and
3692 including "^:^" from the output.
3693
3694 2002-03-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
3695
3696 * eval.c (SCM_CEVAL), srcprop.h (SRCBRKP): Eliminated union 't'.
3697
3698 * eval.c (SCM_CEVAL): Exlined call to EVALCAR.
3699
3700 2002-03-13 Thien-Thi Nguyen <ttn@giblet.glug.org>
3701
3702 * guile-snarf.in: Update copyright.
3703 Rewrite to internalize error handling.
3704 Add "--compat=1.4" handling.
3705 Add commentary.
3706
3707 * Makefile.am (libpath.h): Use @top_srcdir_absolute@.
3708 (snarfcppopts): New var.
3709 (.c.x): Use $(snarfcppopts). Rework guile-snarf usage.
3710 (.c.doc): Use $(snarfcppopts).
3711
3712 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
3713 continuations.c, debug-malloc.c, debug.c, deprecation.c, dynl.c,
3714 dynwind.c, environments.c, eq.c, error.c, eval.c, evalext.c,
3715 extensions.c, feature.c, filesys.c, fluids.c, fports.c, gc.c,
3716 goops.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
3717 ioext.c, iselect.c, keywords.c, lang.c, list.c, load.c, macros.c,
3718 modules.c, net_db.c, numbers.c, objects.c, objprop.c, options.c,
3719 pairs.c, ports.c, posix.c, print.c, procprop.c, procs.c,
3720 properties.c, ramap.c, random.c, rdelim.c, read.c, regex-posix.c,
3721 root.c, rw.c, scmsigs.c, script.c, simpos.c, socket.c, sort.c,
3722 srcprop.c, stackchk.c, stacks.c, stime.c, strings.c, strop.c,
3723 strorder.c, strports.c, struct.c, symbols.c, threads.c, throw.c,
3724 unif.c, values.c, variable.c, vectors.c, version.c, vports.c,
3725 weaks.c: Retire inclusion guard macro SCM_MAGIC_SNARFER.
3726
3727 2002-03-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
3728
3729 * eval.c (SCM_CEVAL): Got rid of the last reference to t.lloc.
3730 The next step will be to remove the union 't' and simplify the
3731 code of SCM_CEVAL that way.
3732
3733 2002-03-12 Neil Jerram <neil@ossau.uklinux.net>
3734
3735 * iselect.c (collisionp, gnfds, greadfds, gwritefds, gexceptfds,
3736 rreadfds, rwritefds, rexceptfds): Made static.
3737
3738 * gc.c (terminating), fports.c (terminating): Renamed
3739 scm_i_terminating.
3740
3741 2002-03-11 Marius Vollmer <mvo@zagadka.ping.de>
3742
3743 * numbers.c (scm_divide): Adapt code from libstdc++/f2c to void
3744 potential overflow problems. Thanks to John W Eaton!
3745
3746 * strop.c (string_capitalize_x): Treat characters as unsigned so
3747 that 8-bit chars work. Thanks to David Pirotte!
3748
3749 2002-03-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
3750
3751 * eval.c (SCM_CEVAL): Cleaned up the handling of 'slot-ref',
3752 'slot-set!' and 'nil-cond'. Removed some uses of t.arg1, arg2 and
3753 proc as temporary variables. Introduced temporary variables with
3754 hopefully descriptive names for clarification. Replaced SCM_N?IMP
3755 by a more explicit predicate in some places.
3756
3757 2002-03-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
3758
3759 * eval.c (SCM_CEVAL): Cleaned up the handling of #@dispatch.
3760 Added lots of comments regarding the implementation of #@dispatch.
3761 Changed intra-procedure communication to use t.arg1 instead of
3762 arg2. Removed some uses of t.arg1, t.lloc and proc as temporary
3763 variables. Introduced temporary variables with hopefully
3764 descriptive names for clarification. Replaced SCM_N?IMP by a more
3765 explicit predicate in some places. Use SCM_INSTANCE_HASH instead
3766 of computing the expression explicitly. Eliminate now unused
3767 label nontoplevel_cdrxbegin.
3768
3769 * goops.h (SCM_INSTANCE_HASH): New macro.
3770
3771 * objects.h (SCM_CMETHOD_FORMALS, SCM_CMETHOD_BODY): New macros.
3772
3773 2002-03-08 Thien-Thi Nguyen <ttn@giblet.glug.org>
3774
3775 * Makefile.am (bin_SCRIPTS): Revive this decl, w/ initial element
3776 "guile-snarf" moved back from `noinst_SCRIPTS'.
3777
3778 2002-03-08 Neil Jerram <neil@ossau.uklinux.net>
3779
3780 * srcprop.c (scm_set_source_property_x): If SRCPROPS obj already
3781 exists when adding a source property other than those that are
3782 handled explicitly, add the new property to the SRCPROPS obj's
3783 plist.
3784
3785 * debug.h (SCM_MAX_FRAME_SIZE): Remove incorrect comment about use
3786 of SCM_MAX_FRAME_SIZE as a bit mask; it isn't used like this.
3787
3788 * eval.c (SCM_CEVAL): Don't store scm_debug_eframe_size in
3789 debug.status. It isn't needed, and it can overflow the bits
3790 reserved for it (which may lead to a segv or a GC abort).
3791
3792 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
3793
3794 * eval.c (SCM_CEVAL): Cleaned up the handling of 'apply'. Removed
3795 side-effecting operations from conditions and macro calls.
3796 Replaced SCM_N?IMP by a more explicit predicate in some places.
3797 Minimized the scope of some variables.
3798
3799 2002-03-02 Stefan Jahn <stefan@lkcc.org>
3800
3801 * convert.i.c: Fixed int <-> long conversions which would have
3802 failed if their sizes were different.
3803
3804 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
3805
3806 * eval.c (SCM_CEVAL): Cleaned up the handling of 'if', 'let',
3807 'letrec' and 'set*': Removed some uses of t.arg1, t.lloc and proc
3808 as temporary variables. Removed side-effecting operations from
3809 conditions and macro calls. Introduced temporary variables with
3810 hopefully descriptive names for clarification. Replaced SCM_N?IMP
3811 by a more explicit predicate in some places. Removed code that
3812 was conditionally compiled if SICP was defined - which it never
3813 is.
3814
3815 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
3816
3817 * eval.c (SCM_CEVAL): Cleaned up the handling of 'cons' and 'do':
3818 Removed some uses of t.arg1 and proc as temporary variables.
3819 Removed side-effecting operations from conditions and macro calls.
3820 Introduced temporary variables with hopefully descriptive names
3821 for clarification. Replaced SCM_N?IMP by a more explicit
3822 predicate in some places.
3823
3824 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
3825
3826 * eval.c (scm_badargsp, SCM_CEVAL): Replaced SCM_N?IMP by a more
3827 explicit predicate in some places.
3828
3829 (CHECK_EQVISH): Removed.
3830
3831 (SCM_CEVAL): Removed some uses of t.arg1 and proc as temporary
3832 variables. Removed side-effecting operations from conditions and
3833 macro calls. Introduced temporary variables for clarification.
3834 Sorted if-else-if check for the type of the last form in a list by
3835 frequency. Avoided some unnecessary tail-recursion calls.
3836
3837 2002-03-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
3838
3839 * gc.c (SCM_HEAP_SEG_SIZE, CELL_UP, CELL_DN, NEXT_DATA_CELL,
3840 init_heap_seg, alloc_some_heap), gc.h (struct scm_cell, struct
3841 scm_t_cell, SCM_CELLPTR, SCM_GC_CARD_SIZE,
3842 SCM_GC_IN_CARD_HEADERP), tags.h (SCM_CELLP): Renamed the struct
3843 scm_cell and all its uses to scm_t_cell in accordance to Guile's
3844 naming scheme for types.
3845
3846 * alist.c (scm_acons), convert.i.c (CTYPES2UVECT,
3847 CTYPES2UVECT_OPTIONAL), coop-threads.c (scm_call_with_new_thread,
3848 scm_spawn_thread), debug.c (scm_make_debugobj), environments.c
3849 (scm_make_environment), eval.c (scm_closure), fports.c
3850 (scm_fdes_to_port), gc.c (scm_deprecated_newcell,
3851 scm_deprecated_newcell2), inline.h (scm_alloc_cell, scm_cell),
3852 list.c (SCM_I_CONS), numbers.c (scm_i_mkbig), pairs.c (scm_cons),
3853 ports.c (scm_void_port), procs.c (scm_c_make_subr, scm_makcclo),
3854 smob.c (scm_make_smob), smob.h (SCM_NEWSMOB), strings.c
3855 (scm_take_str, scm_allocate_string), strports.c (scm_mkstrport),
3856 unif.c (scm_make_uve), variable.c (make_variable), vectors.c
3857 (scm_c_make_vector), vports.c (scm_make_soft_port): Renamed
3858 scm_alloc_cell to scm_cell.
3859
3860 * environments.c (core_environments_observe), gc.c
3861 (scm_deprecated_newcell2), goops.c (wrap_init, scm_wrap_object),
3862 inline.h (scm_alloc_double_cell, scm_double_cell), num2float.i.c
3863 (FLOAT2NUM), numbers.c (scm_make_real), procs.c
3864 (scm_make_procedure_with_setter), smob.h (SCM_NEWSMOB2,
3865 SCM_NEWSMOB3), struct.c (scm_make_struct, scm_make_vtable_vtable),
3866 symbols.c (scm_mem2symbol, scm_mem2uninterned_symbol), weaks.c
3867 (allocate_weak_vector): Renamed scm_alloc_double_cell to
3868 scm_double_cell.
3869
3870 2002-02-27 Stefan Jahn <stefan@lkcc.org>
3871
3872 * convert.i.c, convert.c: Better range checking.
3873
3874 * inet_aton.c, fports.c: Commented the inclusion of <winsock2.h>.
3875
3876 * deprecation.c (vsnprintf): Define to `_vsnprintf' for
3877 Windows (MinGW).
3878
3879 2002-02-26 Thien-Thi Nguyen <ttn@giblet.glug.org>
3880
3881 * Makefile.am: Update path to pre-inst-guile automake frag.
3882
3883 2002-02-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3884
3885 * gc.c (scm_gc_sweep): Make it compile even when deprecated
3886 features are excluded.
3887
3888 2002-02-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3889
3890 * num2integral.i.c (NUM2INTEGRAL): Fixed signedness problem.
3891
3892 2002-02-25 Gary Houston <ghouston@arglist.com>
3893
3894 * convert.c: include <string.h> for convert_i.c.
3895
3896 2002-02-24 Rob Browning <rlb@defaultvalue.org>
3897
3898 * .cvsignore: add stamp-h1.
3899
3900 2002-02-21 Neil Jerram <neil@ossau.uklinux.net>
3901
3902 * unif.c (scm_array_to_list): Correct name, which had been
3903 accidentally changed to scm_t_arrayo_list!
3904
3905 2002-02-20 Mikael Djurfeldt <mdj@linnaeus>
3906
3907 * gc.c (scm_gc_sweep): Print an error message when aborting due to
3908 underflowing scm_mallocated.
3909
3910 2002-02-14 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3911
3912 * gc.h, gc.c (scm_must_malloc, scm_must_realloc, scm_must_strdup,
3913 scm_must_strndup, scm_done_malloc, scm_done_free, scm_must_free):
3914 Reimplemented using the new scm_gc_malloc, etc., functions and
3915 deprecated.
3916
3917 2002-02-11 Thien-Thi Nguyen <ttn@giblet.glug.org>
3918
3919 * Makefile.am (bin_PROGRAMS): Move `guile_filter_doc_snarfage'
3920 to `noinst_PROGRAMS'.
3921 (bin_SCRIPTS): Move all values to `noinst_SCRIPTS'; delete.
3922 (noinst_PROGRAMS, noinst_SCRIPTS): New.
3923
3924 2002-02-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3925
3926 * gc.h, gc.c (scm_gc_sweep): Issue deprecation warning when
3927 non-zero is returned from a port or smob free function.
3928 (scm_malloc, scm_realloc, scm_strndup, scm_strdup,
3929 scm_gc_register_collectable_memory,
3930 scm_gc_unregister_collectable_memory, scm_gc_malloc,
3931 scm_gc_realloc, scm_gc_free, scm_gc_strndup, scm_gc_strdup): New.
3932
3933 * backtrace.c, continuations.c, convert.i.c, coop-threads.c,
3934 debug-malloc.c, dynl.c, environments.c, environments.h,
3935 extensions.c, filesys.c, fports.c, gc.c, gc.h, gh_data.c, goops.c,
3936 guardians.c, hooks.c, init.c, keywords.c, load.c, numbers.c,
3937 ports.c, posix.c, procs.c, rdelim.c, regex-posix.c, root.c,
3938 smob.c, stime.c, strings.c, struct.c, struct.h, symbols.c, unif.c,
3939 vectors.c, weaks.c: Use scm_gc_malloc/scm_malloc and
3940 scm_gc_free/free instead of scm_must_malloc and scm_must_free, as
3941 appropriate. Return zero from smob and port free functions.
3942
3943 * debug-malloc.c (scm_malloc_reregister): Handle "old == NULL".
3944
3945 * deprecation.h, deprecation.c: Reimplemented to allow deprecation
3946 messages while the GC is running.
3947 (scm_c_issue_deprecation_warning_fmt): New.
3948
3949 * fports.c (scm_setvbuf): Reset read buffer to saved values when
3950 it is pointing to the putback buffer.
3951
3952 2002-02-08 Thien-Thi Nguyen <ttn@giblet.glug.org>
3953
3954 * gsubr.c (create_gsubr): On "too many args" error,
3955 also display arg count and name. Thanks to Bill Schottstaedt.
3956
3957 2002-02-05 Thien-Thi Nguyen <ttn@giblet.glug.org>
3958
3959 * Makefile.am: Include $(top_srcdir)/pre-inst-guile.am.
3960
3961 (bin_SCRIPTS): Remove guile-snarf-docs-texi.
3962 (alldotdocfiles, snarf2checkedtexi, dotdoc2texi): New vars.
3963 (guile.texi, guile-procedures.texi): Use $(dotdoc2texi).
3964
3965 * guile-snarf-docs-texi.in: Bye bye.
3966
3967 2002-02-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3968
3969 * symbols.c (scm_make_symbol): Fix typo in docstring.
3970
3971 * symbols.h (scm_mem2uninterned_symbol, scm_symbol_interned_p,
3972 scm_make_symbol): New prototypes.
3973
3974 2002-02-03 Marius Vollmer <mvo@zagadka.ping.de>
3975
3976 * symbols.h (SCM_SET_SYMBOL_HASH): Removed.
3977 (SCM_SYMBOL_INTERNED_P): New.
3978 * symbols.c (scm_symbol_hash): Use scm_ulong2num instead of
3979 SCM_MAKINUM since hash values can well be bignums.
3980 (scm_mem2symbol): Only use hash values below SCM_T_BITS_MAX/2.
3981 This signals a interned symbol.
3982 (scm_mem2uninterned_symbol, scm_symbol_interned_p,
3983 scm_make_symbol): New.
3984
3985 * print.c (scm_iprin1): Print uninterned symbols unreadably.
3986
3987 2002-02-02 Thien-Thi Nguyen <ttn@giblet.glug.org>
3988
3989 * __scm.h (HAVE_UINTPTR_T): Only define if UINTPTR_T attributes
3990 are defined: UINTPTR_MAX, INTPTR_MAX, INTPTR_MIN.
3991 Thanks to Dave Love.
3992
3993 2002-01-31 Marius Vollmer <mvo@zagadka.ping.de>
3994
3995 * symbols.c (scm_gensym): Use " g" as default prefix, not "g".
3996 This might help to make unintended clashes less likely.
3997 (scm_string_to_symbol): Protect the string until the symbols is
3998 created.
3999
4000 2002-01-31 Stefan Jahn <stefan@lkcc.org>
4001
4002 * convert.c, convert.h, convert.i.c: New files containing C
4003 array to Scheme conversion helpers meant to be replacement
4004 functions for the deprecated gh interface.
4005
4006 * Makefile.am: Setup rules for new `convert.*' files.
4007
4008 2002-01-28 Stefan Jahn <stefan@lkcc.org>
4009
4010 * symbols.c (scm_c_symbol2str): New function, replacement for
4011 `gh_scm2newsymbol()'.
4012
4013 * strings.c (scm_c_substring2str): New function. Proper
4014 replacement for `gh_get_substr()'.
4015
4016 * socket.c: Include `stdint.h' if available for the `uint32_t'
4017 declaration.
4018
4019 * scmsigs.c (scm_sigaction): Initialize `chandler' (inhibits
4020 compiler warning).
4021
4022 * backtrace.c: Include `lang.h' for GUILE_DEBUG conditional.
4023
4024 2002-01-22 Neil Jerram <neil@ossau.uklinux.net>
4025
4026 Other changes unrelated to Elisp...
4027
4028 * eval.c (scm_m_if): Use s_if rather than repeating string literal
4029 "if".
4030 (comments): Fix a few typos.
4031 (scm_for_each): Add parentheses around oddly unparenthesized
4032 if/while conditions.
4033
4034 * read.c (scm_read_opts): Add full stop at end of doc for
4035 `keywords' option.
4036
4037 * script.c (scm_compile_shell_switches): Use scm_str2symbol
4038 instead of gh_symbol2scm.
4039
4040 * srcprop.h (SRCPROPBRK): Return C type rather than SCM.
4041 (SRCBRKP): Use SRCPROPBRK rather than duplicating its logic.
4042
4043 * srcprop.c (scm_srcprops_to_plist, scm_source_property): Change
4044 SRCPROPBRK (x) to SCM_BOOL (SRCPROPBRK (x)).
4045
4046 First batch of changes for Elisp support...
4047
4048 * alist.c, async.c, boolean.c, dynl.c, eval.c, filesys.c,
4049 fluids.c, list.c, load.c, options.c, posix.c, print.c, sort.c,
4050 throw.c, vectors.c, weaks.c: Add #include for lang.h.
4051
4052 * eval.c, eval.h, init.c, lang.c, lang.h: Use SCM_ENABLE_ELISP to
4053 conditionalize compilation and initialization of Elisp support
4054 function.
4055
4056 * alist.c (scm_assq, scm_assv, scm_assoc), async.c
4057 (scm_asyncs_pending, scm_run_asyncs, noop), backtrace.c
4058 (scm_set_print_params_x), dynl.c (scm_make_argv_from_stringlist),
4059 filesys.c (fill_select_type, retrieve_select_type), fluids.c
4060 (scm_swap_fluids, scm_swap_fluids_reverse), list.c (scm_null_p,
4061 scm_ilength, scm_append_x, scm_last_pair, scm_reverse,
4062 scm_reverse_x, scm_list_ref, scm_list_set_x, scm_list_cdr_set_x,
4063 scm_c_memq, scm_memv, scm_member), load.c (scm_search_path),
4064 options.c (change_option_setting, scm_options), posix.c
4065 (environ_list_to_c), print.c (scm_iprlist), throw.c
4066 (scm_exit_status), vectors.c (scm_vector), weaks.c
4067 (scm_weak_vector): Use SCM_NULL_OR_NIL_P instead of SCM_NULLP.
4068
4069 * boolean.c (scm_not): Use `SCM_FALSEP || SCM_NILP' instead of
4070 just SCM_FALSEP.
4071
4072 * boolean.c (scm_boolean_p): Use `SCM_BOOLP || SCM_NILP' instead
4073 of just SCM_BOOLP.
4074
4075 * eval.c (scm_lisp_nil, scm_lisp_t, s_nil_ify, scm_m_nil_ify,
4076 s_t_ify, scm_m_t_ify, s_0_cond, scm_m_0_cond, s_0_ify,
4077 scm_m_0_ify, s_1_ify, scm_m_1_ify): Removed.
4078 (scm_m_atfop): Support function aliasing. Support both function
4079 args, which need transformation, and macro args, which do not.
4080 Add explanatory comments.
4081 (SCM_CEVAL): In switch cases for SCM_IM_AND, SCM_IM_COND,
4082 SCM_IM_DO, SCM_IM_IF and SCM_IM_OR, add `|| SCM_NILP' to existing
4083 checks for SCM_FALSEP. In switch case for SCM_IM_NIL_COND, use
4084 SCM_NULLP || SCM_NILP instead of checks against (removed)
4085 scm_lisp_nil. Removed switch cases for SCM_IM_NIL_IFY,
4086 SCM_IM_T_IFY, SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY.
4087
4088 * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
4089 scm_m_while, scm_nil_eq): Commented out; I don't think we need
4090 these, but I don't want to remove them yet, just in case.
4091 (scm_init_lang): Define `%nil' variable on Scheme level to hold
4092 Elisp nil value.
4093
4094 * lang.h (SCM_NILP): Test against Elisp nil value instead of
4095 against (removed) scm_lisp_nil.
4096 (SCM_NILNULLP, SCM_NIL2EOL, SCM_EOL2NIL): Commented out.
4097 (SCM_NULL_OR_NIL_P): New.
4098
4099 * list.c (scm_append): Use SCM_VALIDATE_NULL_OR_NIL instead of
4100 SCM_VALIDATE_NULL.
4101
4102 * print.c (scm_isymnames): Fix comment. Remove #@nil-ify,
4103 #@t-ify, #@0-cond, #@0-ify, #@1-ify. Add #nil (for SCM_ELISP_NIL
4104 value).
4105
4106 * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
4107 scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort): Use
4108 SCM_NULL_OR_NIL_P instead of SCM_NULLP. In constructions like `if
4109 (SCM_NULLP (x)) return SCM_EOL;', return x rather than SCM_EOL.
4110
4111 * tags.h (SCM_IM_NIL_IFY, SCM_IM_T_IFY, SCM_IM_0_COND,
4112 SCM_IM_0_IFY, SCM_IM_1_IFY): Removed.
4113 (SCM_IM_BIND, SCM_IM_DELAY, SCM_IM_CALL_WITH_VALUES, SCM_UNBOUND):
4114 Numbering shifted down accordingly.
4115 (SCM_ELISP_NIL): New IFLAG.
4116
4117 * validate.h (SCM_VALIDATE_NULL_OR_NIL): New.
4118
4119 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
4120
4121 * eval.c: Removed outdated references to "everr". Improved some
4122 comments.
4123
4124 (scm_deval_args, deval_args): Renamed scm_deval_args to
4125 deval_args, since it is not part of the interface.
4126
4127 (SCM_CEVAL): Added (maybe somewhat verbose) comment. Avoid to
4128 use references to debug.vect[0] before it exists. Add parentheses
4129 to switch statement.
4130
4131 * goops.h: Added local emacs variables.
4132
4133 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
4134
4135 * eval.[ch] (scm_deval_args): Made static.
4136
4137 * srcprop.c (scm_source_property): Remove redundant SCM_IMP
4138 test.
4139
4140 * strings.c (scm_c_string2str): Clarified comment. Replaced
4141 THINKME by FIXME for uniformness. Removed question about whether
4142 arguments need to be protected from garbage collection: Arguments
4143 must be protected as any other variable.
4144
4145 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
4146
4147 * procs.h (SCM_CLOSURE_BODY): New Macro.
4148
4149 * debug.c (scm_procedure_name, scm_procedure_source), eval.c
4150 (SCM_CEVAL, SCM_APPLY), goops.c (scm_sys_initialize_object,
4151 get_slot_value, set_slot_value), procs.c
4152 (scm_procedure_documentation), sort.c (closureless), stacks.c
4153 (get_applybody): Replace SCM_CDR (SCM_CODE (...)) by
4154 SCM_CLOSURE_BODY.
4155
4156 * sort.c (closureless): Prefer !SCM_FOOP over SCM_NFOOP.
4157
4158 2001-12-26 Marius Vollmer <mvo@zagadka.ping.de>
4159
4160 * Makefile.am (guile-procedures.txt): When we don't have makeinfo,
4161 use "cp" instead.
4162
4163 2001-12-16 Marius Vollmer <mvo@zagadka.ping.de>
4164
4165 * stacks.c, stacks.h (scm_t_stackype): Renamed to scm_stack_type
4166 everywhere.
4167
4168 * continuations.c (scm_make_continuation): Do not retain the
4169 throw_value when the continuation is invoked.
4170
4171 2001-12-08 Stefan Jahn <stefan@lkcc.org>
4172
4173 * strings.c (scm_c_string2str): New function. Converts a
4174 given Scheme string into a C string. Also put in two
4175 THINKME's regarding the malloc policy for the missing converter
4176 routines.
4177
4178 2001-12-01 Neil Jerram <neil@ossau.uklinux.net>
4179
4180 * gh_data.c (gh_module_lookup): Use scm_str2symbol rather than
4181 gh_symbol2scm.
4182
4183 2001-11-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
4184
4185 * gc.h (SCM_GC_CELL_WORD, SCM_GC_CELL_OBJECT,
4186 SCM_GC_SET_CELL_WORD, SCM_GC_SET_CELL_OBJECT): New macros.
4187
4188 (SCM_GC_CELL_TYPE, SCM_CELL_WORD, SCM_CELL_OBJECT,
4189 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT, SCM_FREE_CELL_CDR,
4190 SCM_GC_SET_CELL_OBJECT): Express in terms of SCM_GC_CELL_*
4191 macros.
4192
4193 (SCM_FREE_CELL_P): Express in terms of SCM_GC_CELL_TYPE.
4194
4195 * inline.h (scm_alloc_cell, scm_alloc_double_cell): Use
4196 SCM_GC_CELL_* macros when accessing free cells.
4197
4198 2001-11-25 Marius Vollmer <mvo@zagadka.ping.de>
4199
4200 * vectors.h (SCM_MAKE_VECTOR_TAG): New.
4201 * unif.h (SCM_MAKE_BITVECTOR_TAG, SCM_MAKE_UVECTOR_TAG): New.
4202 * symbols.h (SCM_MAKE_SYMBOL_TAG): New.
4203 * strings.h (SCM_MAKE_STRING_TAG): New.
4204 * procs.h (SCM_MAKE_CCLO_TAG): New.
4205 * numbers.h (SCM_MAKE_BIGNUM_TAG): New.
4206
4207 * goops.h: Replaced SCM_DEBUG_DEPRECATED with
4208 !SCM_ENABLE_DEPRECATED.
4209
4210 * async.c, async.h (scm_system_async_mark_from_signal_handler):
4211 New.
4212
4213 * scmsigs.c (scm_take_signal): Removed all code that assumes that
4214 signal handlers are allowed to divert the flow of control. Call
4215 scm_system_async_mark_from_signal_handler instead of
4216 scm_system_async_mark.
4217
4218
4219 Deprecated SCM_NEWCELL and SCM_NEWCELL2. Added scm_alloc_cell and
4220 scm_alloc_double_cell in their place.
4221
4222 * gc.h (SCM_GC_SET_ALLOCATED, scm_debug_newcell,
4223 scm_debug_newcell2, scm_tc16_allocated): Removed from header.
4224 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
4225 (SCM_NEWCELL, SCM_NEWCELL2): Implement in terms of
4226 scm_deprecated_newcell and scm_deprecated_newcell2.
4227
4228 gc.c (scm_tc16_allocated): Only define when including deprecated
4229 features.
4230 (scm_debug_newcell, scm_debug_newcell2): Removed.
4231 (scm_init_storage): Do not initialize scm_tc16_allocated.
4232 (scm_init_gc): Do it here.
4233 (allocated_mark): New, from old code.
4234 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
4235
4236 * inline.c, inline.h: New files.
4237 * Makefile.am: Added them in all the right places.
4238
4239 * _scm.h: Include "libguile/inline.h".
4240
4241 * alist.c, coop-threads.c, debug.c, environments.c, eval.c,
4242 fports.c, gh_data.c, goops.c, guardians.c, lang.c, list.c,
4243 num2float.i.c, numbers.c, pairs.c, ports.c, print.c, procs.c,
4244 smob.c, smob.h, strings.c, strports.c, struct.c, symbols.c,
4245 unif.c, variable.c, vectors.c, vports.c, weaks.c: Replaced
4246 SCM_NEWCELL and SCM_NEWCELL2 with scm_alloc_cell and
4247 scm_alloc_double_cell, respectively.
4248
4249 2001-11-23 Marius Vollmer <mvo@zagadka.ping.de>
4250
4251 * modules.c (scm_c_use_module): Adapt to changes to
4252 `process-use-modules'.
4253
4254 2001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
4255
4256 * numbers.c (scm_divide): Fix more division by zero errors.
4257
4258 2001-11-21 Gary Houston <ghouston@arglist.com>
4259
4260 * Makefile.am (OMIT_DEPENDENCIES): removed, since it seems to be
4261 obsolete. autogen.sh says:
4262 invalid unused variable name: `OMIT_DEPENDENCIES'
4263
4264 2001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
4265
4266 * numbers.c (scm_divide): Fix (/ 0). Thanks to Keith Wright for
4267 reporting the bug.
4268
4269 2001-11-21 Marius Vollmer <mvo@zagadka.ping.de>
4270
4271 * Makefile.am (install-exec-hook): Prepend $(DESTDIR) to filename.
4272 Thanks to Eric Gillespie, Jr!
4273
4274 2001-11-21 Stefan Jahn <stefan@lkcc.org>
4275
4276 * win32-socket.c (getservent, setservent, endservent,
4277 getprotoent, setprotoent, endprotoent): New functions.
4278 Appropriate replacements for M$-Windows.
4279
4280 * numbers.c (SIZE_MAX, PTRDIFF_MAX, PTRDIFF_MIN): Reintroduced
4281 these definitions for GUILE_DEBUG.
4282
4283 * net_db.c: Include "win32-socket.h" if compiling with a native
4284 M$-Windows compiler. Include some pieces of code (protoent and
4285 servent interface) protected by HAVE_* macros when using a
4286 native M$-Windows compiler.
4287
4288 2001-11-20 Marius Vollmer <mvo@zagadka.ping.de>
4289
4290 * modules.c (scm_c_export): Do nothing when the first argument is
4291 already the terminating NULL. Thanks to Han-Wen Nienhuys!
4292
4293 2001-11-20 Thien-Thi Nguyen <ttn@glug.org>
4294
4295 * Makefile.am (libpath.h): In SCM_BUILD_INFO,
4296 also include `buildstamp'.
4297
4298 2001-11-18 Rob Browning <rlb@defaultvalue.org>
4299
4300 * version.c
4301 (s_scm_major_version): use SCM_MAJOR_VERSION.
4302 (s_scm_minor_version): use SCM_MINOR_VERSION.
4303 (s_scm_micro_version): use SCM_MICRO_VERSION.
4304 (s_scm_version): use SCM_MAJOR_VERSION, SCM_MINOR_VERSION, and
4305 SCM_MICRO_VERSION.
4306
4307 * version.h.in
4308 (SCM_MAJOR_VERSION): renamed from SCM_GUILE_MAJOR_VERSION.
4309 (SCM_MINOR_VERSION): renamed from SCM_GUILE_MINOR_VERSION.
4310 (SCM_MICRO_VERSION): renamed from SCM_GUILE_MICRO_VERSION.
4311
4312 2001-11-18 Neil Jerram <neil@ossau.uklinux.net>
4313
4314 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
4315 Rewrite docstrings without reference to substring-move-left/right,
4316 since the latter no longer exist.
4317
4318 2001-11-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
4319
4320 * eval.c: Removed bogus comment about acros.
4321
4322 (scm_unmemocar): Use !SCM_CONSP instead of SCM_IMP.
4323 Minimize scope of local variable. Eliminate dependency on
4324 macro DEBUG_EXTENSIONS.
4325
4326 (s_splicing): New error message string.
4327
4328 (scm_m_body): Issue 'bad body' message rather than 'missing
4329 expression' message.
4330
4331 (scm_m_quote): Eliminate unnecessary copying.
4332
4333 (scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let): Leave the
4334 checking of the body to scm_m_body.
4335
4336 (scm_m_do): Move comment to function header. Rename arg1 to
4337 binding. Made the code a bit easier to read.
4338
4339 (evalcar): Removed.
4340
4341 (iqq): Added a comment. Changed the depth parameter to
4342 unsigned. Use size_t for vector lengths. Make sure vector object
4343 is gc protected as long as its contents are read. Add some syntax
4344 checks. Get rid of unnecessary SCM_IMP test. Clean up the
4345 control structure a bit.
4346
4347 (scm_m_delay): Added comment about the implementation of
4348 scm_m_delay.
4349
4350 (scm_m_define): Add comment about guile's currying define
4351 syntax. Renamed 'proc' to 'name'. Eliminate dependency on macro
4352 DEBUG_EXTENSIONS. Simplified code a bit. Eliminate SICP code.
4353
4354 (scm_m_letrec1): Removed. Part of the functionality is taken
4355 over by the new function 'transform_bindings'.
4356
4357 (transform_bindings): New function. Takes over some of the
4358 functionality of removed function 'scm_m_letrec1', namely to split
4359 a list of bindings into a reversed list of variables and a list of
4360 initializers.
4361
4362 (scm_m_letrec): Call 'transform_bindings'.
4363
4364 (scm_m_let): Minimized scope of local variables. Renamed 'proc'
4365 to 'temp' and 'arg1' to 'binding'. Eliminated redundant SCM_NIMP
4366 test. Use 'transform_bindings'. Fixed scoping error with named
4367 let (Thanks to Aubrey Jaffer for reporting the bug and to Neil
4368 Jerram for suggesting the fix). Cleaned up the control structure
4369 a bit.
4370
4371 (scm_m_expand_body): Use 'transform_bindings'. Eliminated
4372 unnecessary consing. Eliminated unnecessary
4373 SCM_DEFER/ALLOW_INTS.
4374
4375 (SCM_CEVAL): Un-obfuscated some loops.
4376
4377 2001-11-16 Neil Jerram <neil@ossau.uklinux.net>
4378
4379 * gc.h (scm_unhash_name): Old declaration removed.
4380
4381 * eval.c (s_scm_eval): Change @var{primitive-eval} to
4382 @code{primitive-eval}.
4383
4384 * feature.c, vectors.c, net_db.c, unif.c, weaks.c, struct.c,
4385 version.c, alist.c, ports.c, ramap.c, unif.c, strings.c, list.c:
4386 Change @deffnx lines in docstrings to say {Scheme Procedure}
4387 rather than primitive or procedure.
4388
4389 * posix.c (scm_execl), filesys.c (scm_close), unif.c
4390 (scm_array_set_x, scm_array_contents, scm_uniform_array_read_x,
4391 scm_bit_set_star_x, scm_bit_invert_x), ramap.c (scm_array_fill_x,
4392 scm_array_for_each, scm_array_index_map_x), vectors.c (scm_vector,
4393 scm_make_vector, scm_vector_to_list, scm_vector_fill_x), strop.c
4394 (scm_string_split, scm_string_ci_to_symbol), strings.c
4395 (scm_string_p), sort.c (scm_merge), print.c (scm_newline),
4396 macros.c (scm_macro_type), alist.c (scm_acons, scm_assq):
4397 Docstring fixes and improvements reflecting edits that have been
4398 made in the reference manual source.
4399
4400 * objprop.c (scm_object_properties, scm_set_object_properties_x,
4401 scm_object_property, scm_set_object_property_x): Remove invalid
4402 @deffnx lines for corresponding procedure property primitives.
4403
4404 These changes add a @deffnx C function declaration and function
4405 index entries for each Guile primitive to the copy of the doc
4406 snarf output that is used for reference manual synchronization.
4407 Online help is unchanged.
4408
4409 * snarf.h (SCM_SNARF_DOCS): Output primitive's C function name.
4410 (SCM_DEFINE, SCM_DEFINE1, SCM_REGISTER_PROC): Supply to C function
4411 name to SCM_SNARF_DOCS.
4412
4413 * guile-snarf-docs-texi.in: Pass the shell script's arguments into
4414 snarf-check-and-output-texi.
4415
4416 * Makefile.am (guile-procedures.texi): New rule.
4417 (BUILT_SOURCES, guile.texi, guile-procedures.txt, CLEANFILES):
4418 Changed so that the last stage of doc snarfing is now performed
4419 twice, once to produce guile-procedures.txt for online help, and
4420 once to produce guile.texi for reference manual synchronization.
4421
4422 2001-11-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
4423
4424 * eval.c (RETURN): Wrap in do{}while(0) in order to make it
4425 safely usable as a single statement followed by a ';', for example
4426 in an if statement.
4427
4428 (SCM_CEVAL, SCM_APPLY): Clean up code using 'RETURN'.
4429
4430 2001-11-13 Neil Jerram <neil@ossau.uklinux.net>
4431
4432 * random.c (scm_random_solid_sphere_x,
4433 scm_random_hollow_sphere_x): Correct "shere" typos.
4434
4435 * hashtab.c (scm_hash_fold): Add missing apostrophe to docstring.
4436
4437 * version.c (scm_version): Update docstring to include
4438 `micro-version'.
4439
4440 2001-11-13 Marius Vollmer <mvo@zagadka.ping.de>
4441
4442 * modules.c (scm_c_export): Call va_end after collecting the
4443 symbols.
4444
4445 * strop.h, strop.c (scm_substring_move_left_x,
4446 scm_substring_move_right_x): Removed.
4447
4448 * __scm.h (HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG,
4449 HAVE_LONG_LONGS): Define to "1" when defining them, to mirror what
4450 configure does.
4451
4452 2001-11-12 Marius Vollmer <mvo@zagadka.ping.de>
4453
4454 * numbers.c: Document macros to define when including
4455 num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we
4456 now rely on SIZEOF_ macros that have been figured out at
4457 configure time.
4458
4459 * num2integral.i.c: Adapt to new interface.
4460 (NUM2INTEGRAL): Test whether a fixnum can be represented in the
4461 target type by casting it and checking whether it is still the
4462 same. Do not try to handle bignums for integral types that are
4463 smaller than fixnums. When handling bignums, collect the
4464 magnituse first into a unsigned type, and correctly check for
4465 overflow.
4466 (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that
4467 only -MIN_VALUE can still be negative of all negative numbers (in
4468 twos-complement).
4469
4470 * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately.
4471
4472 * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and
4473 HAVE_LONG_LONG depending on whether their size is non-zero.
4474
4475 2001-11-11 Thien-Thi Nguyen <ttn@glug.org>
4476
4477 * strop.c (scm_string_null_p): Docfix; nfc.
4478 Thanks to Scott Lenser.
4479
4480 2001-11-07 Neil Jerram <neil@ossau.uklinux.net>
4481
4482 * extensions.c (scm_load_extension): Canonicalize docstring
4483 whitespace.
4484
4485 * unif.c (scm_uniform_array_write), ports.c
4486 (scm_current_output_port, scm_force_output), dynwind.c
4487 (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer),
4488 filesys.c (scm_open, scm_lstat), struct.c
4489 (scm_make_struct_layout), random.c (scm_random,
4490 scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c
4491 (scm_i_index): Remove superfluous whitespace from end of docstring
4492 lines.
4493
4494 * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p),
4495 strings.c (scm_make_string), variable.c (scm_make_variable,
4496 scm_make_undefined_variable, scm_variable_p, scm_variable_set_x,
4497 scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer),
4498 posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c
4499 (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous
4500 newline at end of docstrings.
4501
4502 * modules.c (scm_set_current_module): Add missing newline to
4503 docstring.
4504
4505 2001-11-07 Stefan Jahn <stefan@lkcc.org>
4506
4507 * win32-socket.[ch]: New files. Defines Winsock-API error codes
4508 and makes them available through Guile. That is because the
4509 Winsock-API does not store its errors in `errno' and thus cannot
4510 return error messages via `strerror (errno)'.
4511
4512 * socket.c (scm_init_socket): Initialize `win32-socket' part
4513 here under M$-Windows.
4514
4515 * numbers.h: Added missing declaration of
4516 `scm_sys_check_number_conversions()'.
4517
4518 * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
4519 and use in `(strerror)' and `(system-error)'.
4520
4521 * Makefile.am (EXTRA_libguile_la_SOURCES): Added
4522 `win32-socket.[ch]' to extra source and header files.
4523
4524 2001-11-06 Marius Vollmer <mvo@zagadka.ping.de>
4525
4526 * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend
4527 a call to turn-on-debugging when --debug has been given instead of
4528 turning it on directly. Also, handle new `--no-debug' option,
4529 which might suppress the call to turn-on-debugging.
4530
4531 2001-11-05 Stefan Jahn <stefan@lkcc.org>
4532
4533 * struct.c (s_scm_struct_vtable_p): Corrected docstring.
4534
4535 2001-11-04 Stefan Jahn <stefan@lkcc.org>
4536
4537 * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
4538 here (was at guile_LDADD) which describes the dependency
4539 correctly and allows a clean build on Win32.
4540
4541 * __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros
4542 into FOO.
4543
4544 * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
4545 import macros for external libraries (libcrypt, libqthreads,
4546 libreadline and libregex).
4547
4548 * coop-defs.h: Include <winsock2.h> for `struct timeval'.
4549
4550 * posix.c (flock): Added support for flock() in M$-Windows.
4551
4552 * guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead
4553 of __SCM_IMPORT__.
4554
4555 * fports.c (getflags): Differentiate reading and writing pipes
4556 descriptors.
4557
4558 * filesys.c (S_IS*): Redefine all of the S_IS*() macros for
4559 M$-Windows.
4560
4561 * coop.c (coop_condition_variable_timed_wait_mutex): Use
4562 conditionalized error code if `ETIMEDOUT' is not available.
4563 (scm_thread_usleep): Remove bogus declaration of `struct timeval
4564 timeout'.
4565
4566 * numbers.c (PTRDIFF_MIN): Moved this definition where it actually
4567 belongs. That is because NO_PREPRO_MAGIC gets undefined after
4568 each inclusion of `num2integral.i.c'.
4569 (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.
4570
4571 2001-11-03 Marius Vollmer <mvo@zagadka.ping.de>
4572
4573 * eval.c (scm_m_begin): Allow `(begin)`, with no subforms.
4574 (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED.
4575
4576 2001-11-02 Mikael Djurfeldt <mdj@linnaeus>
4577
4578 * print.c (scm_iprin1): Mark print state as revealed when
4579 dispatching to generic write or display.
4580
4581 * unif.c (scm_ra2contig): Fixed memory overwrite bug.
4582
4583 2001-11-02 Marius Vollmer <mvo@zagadka.ping.de>
4584
4585 Support for native Win32. Thanks to Stefan Jahn!
4586
4587 * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c
4588 and win32-dirent.h to extra source and header files. These
4589 include the uname() and the POSIX dirent interface implementation
4590 for M$-Windows. Put `-no-undefined' into LDFLAGS to support
4591 linkers which do not allow unresolved symbols inside shared
4592 libraries. Corrected `guile_filter_doc_snarfage$(EXEEXT)'
4593 dependency.
4594
4595 * __scm.h: Defined SCM_API. This macro gets prepended to all
4596 function and data definitions which should be exported or imported
4597 in the resulting dynamic link library in the Win32 port.
4598
4599 * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h,
4600 chars.h, continuations.h, coop-defs.h, coop-threads.h,
4601 debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h,
4602 environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h,
4603 feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h,
4604 gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h,
4605 hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h,
4606 load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h,
4607 objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h,
4608 procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h,
4609 read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h,
4610 smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h,
4611 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
4612 tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h,
4613 vports.h, weaks.h:
4614 Prefixed each each exported symbol with SCM_API.
4615
4616 * continuations.c: Added comment about the use of the extern
4617 declarations of {get,set}context() functions used in the ia64 port.
4618
4619 * continuations.h, gc.c: `__libc_ia64_register_backing_store_base'
4620 is meant to be a `unsigned long *'.
4621
4622 * filesys.c: Include `direct.h' if possible. Use local
4623 `win32-dirent.h' for the native M$-Windows port. Define S_IS*()
4624 macros for M$-Windows. Implementation of `fstat_Win32()' which is
4625 able to differentiate between sockets and other file descriptors.
4626 Use this function as wrapper in `scm_fstat()'. Fixed typo in
4627 `scm_dirname()'.
4628
4629 * fports.c: Include `io.h' is possible. Put `*fp' into referring
4630 statement block in `scm_fport_buffer_add()'.
4631 Some corrections in `getflags()'.
4632
4633 * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__.
4634
4635 * guile.c: Make sure to define __SCM_IMPORT__ for shared library
4636 build on Win32. Disable preloaded symbols on Win2 platforms.
4637
4638 * ioext.c, ports.c: Include `io.h' is possible.
4639
4640 * mkstemp.c: Include `process.h' is possible.
4641
4642 * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__,
4643 too.
4644 Put `scm_return_entry()' into HAVE_GETSERVENT conditional.
4645
4646 * posix.c: Remove unnecessary dirent includes and defines. Include
4647 local `win32-uname.h' for MinGW. Extern declaration of
4648 `mkstemp()' for systems where it does not exists. Make
4649 `getlogin()' available on M$-Windows.
4650
4651 * scmsigs.c: Made `usleep()' avalable on MinGW.
4652
4653 * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'.
4654
4655 * win32-dirent.c: Include "win32-dirent.h", not "dirent.h".
4656
4657 * win32-uname.c: Include "win32-uname.h", not "uname.h".
4658
4659 2001-10-28 Mikael Djurfeldt <mdj@linnaeus>
4660
4661 * unif.c (scm_uniform_array_read_x, scm_uniform_array_write):
4662 Don't apply scm_uniform_vector_length on arrays.
4663
4664 2001-10-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
4665
4666 * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
4667 scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
4668 scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
4669 SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer
4670 scm_list_<n> over scm_cons[2]?.
4671
4672 (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
4673 scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use
4674 SCM_C[AD][AD]R instead of explicit form.
4675
4676 (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered
4677 comparison parameters.
4678
4679 (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use
4680 !SCM_NULLP instead of SCM_NIMP.
4681
4682 (scm_m_case): Don't copy the form. Renamed proc to clause and
4683 minimized its scope. Renamed x to clauses. Removed side
4684 effecting operation from macro call.
4685
4686 (scm_m_cond): Don't copy the form. Renamed arg1 to clause and
4687 minimized its scope. Renamed x to clauses. Minimized the scope
4688 of variable 'len'. Make sure the else clause is treated specially
4689 even in case of '=>' occurences. Don't change the else to #t in
4690 order to be able to distinguish this case in the evaluator. Leave
4691 type checking of the recipient to the evaluator.
4692
4693 (scm_c_improper_memq): Made the comment somewhat clearer.
4694
4695 (scm_m_lambda): Renamed proc to formals. Removed unnecessary
4696 test for SCM_IM_LET at the place of the formal parameters.
4697 Simplified the formal parameter checking.
4698
4699 (scm_m_letstar): Added Comment. Renamed proc to bindings.
4700 Renamed arg1 to binding and minimized its scope. Eliminated
4701 unnecessary consing.
4702
4703 (scm_m_do): Renamed proc to bindings. Minimized the scope of
4704 variable 'len'.
4705
4706 (build_binding_list): New static function.
4707
4708 (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean).
4709 Further, split up the 'letrec' unmemoizing code to the
4710 corresponding parts for 'do', 'let' and 'letrec', adding comments
4711 to each form. Cleanup the handling of the do form (This removes
4712 some *real* code :-).
4713
4714 (SCM_CEVAL): Removed side effecting operation from macro call.
4715 Handle the 'else clause of the 'cond form specially - the symbol
4716 'else is not replaced with #t any more.
4717
4718 2001-10-14 Gary Houston <ghouston@arglist.com>
4719
4720 * version.c (scm_version): use sprintf instead of snprintf,
4721 for portability. thanks to Bill Schottstaedt.
4722
4723 2001-10-14 Mikael Djurfeldt <mdj@linnaeus>
4724
4725 * read.c (scm_lreadr): When user-defined hash procedure returns
4726 SCM_UNSPECIFIED: Fall back to standard handling instead of raising
4727 an exception. (This prevents parsing of uniform vectors from
4728 interfering with parsing of numbers.)
4729
4730 2001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
4731
4732 * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
4733 PTRDIFF_MIN. Thanks to Ken Raeburn.
4734
4735 2001-10-07 Marius Vollmer <mvo@zagadka.ping.de>
4736
4737 * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
4738
4739 * eval.c (scm_m_atbind): First try to find the variable without
4740 defining it locally; when it has not been found, define it
4741 locally.
4742
4743 * modules.c (module_variable): Pass over variables that exist but
4744 are unbound.
4745
4746 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
4747
4748 * backtrace.c (display_backtrace_file_and_line): Only use
4749 scm_basename when POSIX support is compiled in. Thanks to Chris
4750 Cramer.
4751
4752 2001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
4753
4754 * numbers.c (mem2uinteger): Return number read so far when coming
4755 across a hexdigit after having read a # or if not reading a hex
4756 value. This will enable the calling code to correctly handle
4757 forms like 1e2. (The background is, that the exponent markers d,
4758 e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
4759 providing this patch.
4760
4761 (mem2complex): Fix erroneous double-negation. Now, numbers like
4762 1-i will be read correctly.
4763
4764 2001-10-12 Mikael Djurfeldt <mdj@linnaeus>
4765
4766 * debug.c (scm_mem_to_proc): Fixed typo in previous change.
4767
4768 * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro.
4769
4770 2001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
4771
4772 * print.c (scm_print_state_vtable, print_state_pool):
4773 Initialize. These variables are now registered as gc roots.
4774
4775 (scm_current_pstate): Update documentation.
4776
4777 (scm_current_pstate, scm_make_print_state, scm_free_print_state,
4778 scm_prin1, scm_init_print): print_state_pool is registered as a
4779 gc root and thus does not need to be protected by a surrounding
4780 pair any more.
4781
4782 (make_print_state): The car of print_state_pool no longer holds
4783 the scm_print_state_vtable.
4784
4785 (scm_current_pstate, scm_make_print_state, print_circref,
4786 scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
4787 SCM_N<foo>.
4788
4789 (scm_prin1): When building lists, prefer scm_list_<n> over
4790 scm_cons[2]?.
4791
4792 (scm_iprlist): Removed a redundant SCM_IMP test.
4793
4794 (scm_simple_format): Use SCM_EQ_P to compare SCM values.
4795
4796 2001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
4797
4798 * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>.
4799
4800 (scm_memcons, scm_mem_to_proc): When building lists, prefer
4801 scm_list_<n> over scm_cons[2]?.
4802
4803 (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
4804
4805 (scm_procedure_name): Use SCM_CADR instead of explicit form.
4806
4807 (debugobj_print): Coerce scm_intprint arg 1 to long, not int.
4808 Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
4809 for some reason his patch didn't make it into the cvs.
4810
4811 2001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
4812
4813 * numbers.c (mem2decimal_from_point): Cleaned up the parsing a
4814 little bit - should even be somewhat more accurate now.
4815
4816 2001-10-08 Rob Browning <rlb@defaultvalue.org>
4817
4818 * gc.c: support ia64 register backing store.
4819 (SCM_MARK_BACKING_STORE): new macro.
4820
4821 * continuations.h: support ia64 register backing store.
4822 (struct scm_t_contregs): add ia64 register backing store.
4823
4824 * continuations.c: support ia64 register backing store.
4825 (continuation_mark): mark ia64 register backing store.
4826 (continuation_free): free ia64 register backing store.
4827 (scm_make_continuation): capture ia64 register backing store.
4828 (copy_stack_and_call): copy ia64 register backing store.
4829
4830 2001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
4831
4832 * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
4833 is known to be #f if no entry is found. Thus, use !SCM_FALSEP
4834 instead of SCM_NIMP to test for that case.
4835
4836 * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
4837 scm_t_bits instead of long.
4838
4839 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
4840
4841 * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
4842 SCM_T_SIGNED_BITS_MIN): New.
4843 * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
4844 Use them to make these macros computable by the preprocessor.
4845
4846 * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
4847 whether the integral type fits in a fixnum, not the compiler.
4848 This removes a spurious compiler warning. Also, honor the
4849 NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
4850 needed for `long long's.
4851
4852 * numbers.c: Define NO_PREPRO_MAGOC when including
4853 num2integral.c.i for `long long' and `signed long long'.
4854
4855 2001-10-06 Mikael Djurfeldt <mdj@linnaeus>
4856
4857 These changes fixes a race condition in the Guile coop - pthread
4858 compatibility code.
4859
4860 * coop.c (mother_awake_p): New variable.
4861 (coop_create): Set mother_awake_p before creating or signalling
4862 mother; wait until mother is going to sleep before returning.
4863 (mother): Reset mother_awake_p before going to sleep.
4864
4865 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
4866
4867 * options.c (protected_objects, scm_init_options): The content of
4868 protected_objects is now protected from garbage collection using
4869 scm_gc_register_root instead of scm_permanent_object.
4870
4871 (get_option_setting): New static function that computes an option
4872 setting as it was formerly done in the function scm_options.
4873
4874 (get_documented_option_setting): New static function that
4875 returns option documentation as it was formerly done in the
4876 function scm_options. Note that documentation C strings are no
4877 longer precomputed into SCM objects. Instead, they are converted
4878 into SCM strings every time get_documented_option_setting is
4879 called.
4880
4881 (change_option_setting): New static functions that modifies the
4882 option setting as it was formerly done in the function
4883 scm_options. The function is now exception safe, i. e. won't
4884 cause a memory leak when interrupted. Further, only non-immediate
4885 option values are added to the protection list.
4886
4887 (scm_options): This function now has only the purpose to dispatch
4888 to to get_option_setting, get_documented_option_setting or
4889 change_option_setting, depending on the arguments given to
4890 scm_options.
4891
4892 (scm_init_opts): Don't convert documentation C strings into SCM
4893 strings. Further, don't protect any object values: They _must_
4894 be immediate values, otherwise there is no guarantee that they
4895 have not been collected before anyway.
4896
4897 * options.[ch] (scm_t_option): Made type unsigned, name into a
4898 constant char* and val into a scm_t_bits type.
4899
4900 (scm_options, scm_init_opts): The number of options is guaranteed
4901 to be larger or equal to zero. Thus, the type is changed to
4902 unsigned.
4903
4904 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
4905
4906 * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
4907 testing an unsigned value for being >= 0.
4908
4909 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
4910
4911 * numbers.h: Removed old comment about using SCM_CAR to access
4912 non-pair cells.
4913
4914 (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
4915 the return value is signed. Thanks to Brian Crowder for the bug
4916 report.
4917
4918 (SCM_SRS): Avoid unnecessary casting and don't unpack input
4919 values. With this patch, SCM_SRS can be safely used for other
4920 types than scm_t_signed_bits. However, it should still better be
4921 an internal macro and thus be renamed to SCM_I_SRS.
4922
4923 (SCM_MAKINUM, SCM_INUM): Use proper casting.
4924
4925 2001-10-03 Gary Houston <ghouston@arglist.com>
4926
4927 * continuations.h, unif.h: in the descriptions of the bit patterns
4928 of the heap cells, make bit 0 the least significant.
4929
4930 2001-09-25 Thien-Thi Nguyen <ttn@glug.org>
4931
4932 * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
4933 Thanks to Golubev I. N.
4934
4935 2001-09-25 Gary Houston <ghouston@arglist.com>
4936
4937 * ports.c (scm_drain_input): extended the docstring. thanks to
4938 Alex Schroeder and Thien-Thi Nguyen.
4939
4940 2001-09-23 Mikael Djurfeldt <mdj@linnaeus>
4941
4942 * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
4943 SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
4944 macros. (The NUM names might soon change.)
4945
4946 * numbers.h: Added missing declarations.
4947
4948 2001-09-22 Mikael Djurfeldt <mdj@linnaeus>
4949
4950 * Makefile.am: Distribute num2float.i.c.
4951
4952 * num2float.i.c: New file, multiply included by numbers.c, used
4953 to "templatize" the float <-> num conversion routines.
4954
4955 * numbers.c: New functions: scm_num2float, scm_float2num,
4956 scm_num2double, scm_double2num.
4957
4958 2001-09-21 Rob Browning <rlb@defaultvalue.org>
4959
4960 * .cvsignore: really add version.h
4961
4962 * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
4963 Otherwise it fails on the alpha. However, we might rather choose
4964 this size conditionally.
4965
4966 * numbers.c (scm_gcd): change "k" to a long from an int.
4967 Otherwise it fails on the alpha. However, we might rather choose
4968 this size conditionally.
4969
4970 * error.c (scm_wta): coerce char* to intptr_t before int
4971 assignment.
4972
4973 * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
4974 int.
4975
4976 * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
4977
4978 2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
4979
4980 * numbers.c (scm_integer_expt): Accept inexact integer in second
4981 argument. (Thanks to Bill Schottstaedt.)
4982
4983 2001-09-20 Rob Browning <rlb@defaultvalue.org>
4984
4985 * .cvsignore: add version.h
4986
4987 * versiondat.h.in: removed (obsolete).
4988
4989 * version.h.in: renamed from version.h.
4990 (SCM_GUILE_MAJOR_VERSION): new public macro.
4991 (SCM_GUILE_MINOR_VERSION): new public macro.
4992 (SCM_GUILE_MICRO_VERSION): new public macro.
4993
4994 * version.h: renamed to version.h.in.
4995
4996 * version.c
4997 (scm_major_version): support integer *_VERSION macros.
4998 (scm_minor_version): support integer *_VERSION macros.
4999 (scm_micro_version): support integer *_VERSION macros.
5000 (scm_version): support integer *_VERSION macros.
5001
5002 2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
5003
5004 * error.c, error.h: Made error keys globally accessible.
5005 Applications might want to test for these or use them in a direct
5006 call to scm_error.
5007
5008 * num2integral.i.c (NUM2INTEGRAL): Report an error when these
5009 routines are passed an inexact. This change in behavior is
5010 motivated by concordance with R5RS: It is more common that a
5011 primitive doesn't want to accept an inexact for an exact.
5012
5013 2001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
5014
5015 The following patch partially undoes my patch from 2001-06-30,
5016 where I added the function scm_gc_mark_cell_conservatively. The
5017 function is buggy, since it breaks guile during conservative
5018 marking if a pointer on the stack points directly into the list of
5019 free cells on the heap: With conservative cell marking this will
5020 cause the whole free list to be scanned and marked - boom!
5021
5022 * gc.c (allocated_mark, MARK, heap_segment,
5023 scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
5024 (scm_gc_mark_cell_conservatively): Remove function
5025 scm_gc_mark_cell_conservatively and update the corresponding
5026 comments and uses accordingly. Thanks to Christopher Cramer for
5027 the patch. (Minor corrections by me.)
5028
5029 2001-09-15 Gary Houston <ghouston@arglist.com>
5030
5031 * root.h (scm_root_state): removed the continuation_stack and
5032 continuation_stack_ptr members, which have no apparent purpose.
5033 (scm_continuation_stack, scm_continuation_stack_ptr): #defines
5034 removed.
5035
5036 * root.c (root_mark), init.c (restart_stack, start_stack), gc
5037 (scm_igc): remove all references to contination_stack and
5038 continuation_stack_ptr, avoiding allocation of a vector and
5039 useless processing during gc.
5040
5041 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
5042
5043 * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
5044
5045 (TCONC_IN): Make sure that the cell word 0 is initialized last.
5046
5047 (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
5048
5049 (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
5050
5051 (guardian_apply, scm_get_one_zombie, scm_make_guardian,
5052 mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
5053
5054 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
5055
5056 * guardians.c (mark_dependencies_in_tconc,
5057 whine_about_self_centered_zombies, scm_init_guardians): Register
5058 the static global variable `self_centered_zombies' via
5059 scm_gc_register_root, to make some cdr-ing unnecessary.
5060
5061 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
5062
5063 * backtrace.c (display_backtrace_file,
5064 display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
5065 values, use SCM_FALSEP when comparing SCM values against #f.
5066 Thanks to Rob Browning for the bug report.
5067
5068 2001-09-12 Martin Baulig <martin@home-of-linux.org>
5069
5070 * strings.[ch] (scm_str2string): New function.
5071
5072 2001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
5073
5074 * gc.c (scm_done_free): Always subtract size from scm_mallocated
5075 when computing nm, even if it's negative.
5076 (scm_must_malloc): Abort on overflow of scm_mtrigger.
5077 (scm_must_realloc): Likewise.
5078
5079 2001-09-01 Michael Livshin <mlivshin@bigfoot.com>
5080
5081 * numbers.c (scm_sys_check_number_conversions): new function,
5082 defined if Guile is compiled in debugging mode. currently checks
5083 `scm_num2ulong', should check much much more.
5084
5085 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
5086 unsigned, ensure that it's positive. thanks to Martin Baulig!
5087
5088 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
5089
5090 * __scm.h: Added new section about compile time selectable
5091 features.
5092
5093 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
5094 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
5095 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
5096 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
5097 Removed.
5098
5099 * deprecation.c (scm_include_deprecated_features): Simplified.
5100
5101 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
5102 `SCM_IMP´ instead of `!SCM_CELLP´.
5103
5104 * eval.c (unmemocopy): Eliminate redundant SCM_CELLP tests.
5105 Extract side-effecting operations from macros.
5106
5107 (scm_init_eval): Don't initialize *top-level-lookup-closure*,
5108 scm_top_level_lookup_closure_var and scm_system_transformer.
5109
5110 * gc.c (CELL_P): New local definition to replace SCM_CELLP.
5111
5112 (heap_segment): Use CELL_P instead of SCM_CELLP.
5113
5114 * init.c (start_stack): Don't initialize
5115 scm_top_level_lookup_closure_var and scm_system_transformer.
5116
5117 * modules.c (scm_set_current_module): Don't access
5118 scm_top_level_lookup_closure_var and scm_system_transformer.
5119
5120 (scm_sym2var): Don't call scm_variable_set_name_hint.
5121
5122 (scm_post_boot_init_modules): Removed deprecated initializations.
5123
5124 * print.c (scm_ipruk): Don't access cell contents of non cells.
5125
5126 * strings.c (scm_string_set_x): All strings are writable.
5127
5128 * strings.h (SCM_STRINGP): Use SCM_TYP7 to determine the string
5129 type. There is only one string type now.
5130
5131 (SCM_STRING_COERCE_0TERMINATION_X): Deprecated.
5132
5133 * tags.h: Remove comments about two different string types.
5134
5135 (SCM_CELLP, SCM_NCELLP): Deprecated.
5136
5137 * variable.c (make_variable): Remove code variant for vcells.
5138
5139 * variable.h (SCM_VARIABLE_REF, SCM_VARIABLE_SET,
5140 SCM_VARIABLE_LOC): Remove code variant for vcells.
5141
5142 * __scm.h, deprecation.[ch]: Renamed SCM_DEBUG_DEPRECATED to
5143 SCM_ENABLE_DEPRECATED with the logic reversed.
5144
5145 * dynl.c (moddata, registered_mods), dynl.[ch]
5146 (scm_register_module_xxx, scm_registered_modules,
5147 scm_clear_registered_modules), error.[ch] (scm_wta), eval.c
5148 (*top-level-lookup-closure*), eval.[ch]
5149 (scm_top_level_lookup_closure_var, scm_system_transformer,
5150 scm_eval_3, scm_eval2), gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR,
5151 SCM_SETAND_CDR, SCM_SETOR_CDR, SCM_FREEP, SCM_NFREEP,
5152 SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
5153 SCM_GCCDR), gc.[ch] (scm_remember, scm_protect_object,
5154 scm_unprotect_object), modules.c (root_module_lookup_closure,
5155 scm_sym_app, scm_sym_modules, module_prefix, make_modules_in_var,
5156 beautify_user_module_x_var, try_module_autoload_var,
5157 scm_module_full_name), modules.[ch] (scm_the_root_module,
5158 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
5159 ports.h (scm_port, scm_ptob_descriptor, scm_port_rw_active),
5160 ports.[ch] (scm_close_all_ports_except), random.h (scm_rstate,
5161 scm_rng, scm_i_rstate), strings.h (SCM_SLOPPY_STRINGP,
5162 SCM_RWSTRINGP, SCM_STRING_UCHARS, SCM_STRING_CHARS), strings.[ch]
5163 (scm_read_only_string_p, scm_makstr, scm_makfromstr,
5164 scm_make_shared_substring), tags.h (scm_tc7_substring,
5165 SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP, scm_tc7_ssymbol,
5166 scm_tc7_msymbol, scm_tcs_symbols), variable.c (sym_huh),
5167 variable.[ch] (scm_variable_set_name_hint, scm_builtin_variable),
5168 variable.h (SCM_VARVCELL, SCM_UDVARIABLEP, SCM_DEFVARIABLEP):
5169 Removed.
5170
5171 * dynl.c (scm_dynamic_link, scm_dynamic_func), error.c
5172 (scm_error_scm), filesys.c (scm_chown, scm_chmod, scm_open_fdes,
5173 scm_stat, scm_link, scm_rename, scm_delete_file, scm_mkdir,
5174 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
5175 scm_lstat, scm_copy_file), fports.c (scm_open_file), ioext.c
5176 (scm_fdopen), net_db.c (scm_gethost, scm_getnet, scm_getproto,
5177 scm_getserv), ports.c (scm_truncate_file, scm_sys_make_void_port),
5178 posix.c (scm_getpwuid, scm_getgrgid, scm_execl, scm_execlp,
5179 scm_execle, scm_mkstemp, scm_utime, scm_access, scm_setlocale,
5180 scm_mknod, scm_crypt, scm_chroot, scm_getpass, scm_sethostname),
5181 regex-posix.c (scm_make_regexp, scm_regexp_exec), simpos.c
5182 (scm_system, scm_getenv), socket.c (scm_inet_aton), stime.c
5183 (setzone, scm_strftime, scm_strptime), vports.c
5184 (scm_make_soft_port): Remove calls to
5185 SCM_STRING_COERCE_0TERMINATION_X. Since the substring type is
5186 gone, all strings are 0-terminated anyway.
5187
5188 * dynl.h (LIBGUILE_DYNL_H, SCM_DYNL_H), random.h (RANDOMH,
5189 SCM_RANDOM_H): Renamed the macros that are defined to inhibit
5190 double inclusion of the same headers to the SCM_<filename>_H
5191 format.
5192
5193 * eval.c (SCM_CEVAL), gc.c (MARK, scm_gc_sweep), gh_data.c
5194 (gh_scm2chars), hash.c (scm_hasher), objects.c (scm_class_of),
5195 print.c (scm_iprin1): The type scm_tc7_substring does not exist
5196 any more.
5197
5198 * ports.h (SCM_PORTP, SCM_OPPORTP, SCM_OPINPORTP, SCM_OPOUTPORTP,
5199 SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP), tags.h
5200 (SCM_TYP16_PREDICATE), variable.h (SCM_VARIABLEP): Prefer
5201 !SCM_<foo> over SCM_N<foo>.
5202
5203 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
5204
5205 * Makefile.am: Remove references to symbols-deprecated.c.
5206
5207 * symbols.c (scm_init_symbols): Don't initialize deprecated
5208 symbol functions.
5209
5210 * symbols-deprecated.c: Removed.
5211
5212 * fluids.[ch] (scm_internal_with_fluids), gsubr.[ch]
5213 (scm_make_gsubr, scm_make_gsubr_with_generic), hooks.[ch]
5214 (scm_create_hook), list.c (list*), list.h (SCM_LIST[0-9],
5215 scm_listify), list.[ch] (scm_sloppy_memq, scm_sloppy_memv,
5216 scm_sloppy_member), load.c (scm_end_of_file_key), load.[ch]
5217 (scm_read_and_eval_x), numbers.[ch] (scm_mkbig, scm_big2inum,
5218 scm_adjbig, scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big,
5219 scm_big2dbl), numbers.h (SCM_FIXNUM_BIT), procs.h
5220 (scm_subr_entry, SCM_SUBR_DOC), procs.[ch] (scm_make_subr_opt,
5221 scm_make_subr, scm_make_subr_with_generic), root.c (setjmp_type,
5222 setjmp_type), root.[ch] (scm_call_catching_errors), smob.[ch]
5223 (scm_make_smob_type_mfpe, scm_set_smob_mfpe), strports.[ch]
5224 (scm_strprint_obj, scm_read_0str, scm_eval_0str), symbols.h
5225 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS, SCM_SLOPPY_SUBSTRP,
5226 SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_LENGTH_MAX, SCM_LENGTH,
5227 SCM_SETLENGTH, SCM_ROSTRINGP, SCM_ROLENGTH, SCM_ROCHARS,
5228 SCM_ROUCHARS, SCM_SUBSTRP, SCM_COERCE_SUBSTR, scm_strhash,
5229 scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
5230 scm_intern_obarray_soft, scm_intern_obarray, scm_intern,
5231 scm_intern0, scm_sysintern, scm_sysintern0,
5232 scm_sysintern0_no_module_lookup, scm_symbol_value0,
5233 scm_string_to_obarray_symbol, scm_intern_symbol,
5234 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
5235 scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp,
5236 scm_init_symbols_deprecated), vectors.c (s_vector_set_length_x),
5237 vectors.[ch] (scm_vector_set_length_x): Removed.
5238
5239 * fluids.h (FLUIDSH, SCM_FLUIDS_H), gsubr.c (GSUBRH, SCM_GSUBR_H),
5240 list.h (LISTH, SCM_LIST_H), load.h (LOADH, SCM_LOAD_H), root.h
5241 (ROOTH, SCM_ROOT_H), strports.h (STRPORTSH, SCM_STRPORTS_H):
5242 Renamed the macros that are defined to inhibit double inclusion of
5243 the same headers to the SCM_<filename>_H format.
5244
5245 * procs.h (SCM_CLOSUREP, SCM_PROCEDURE_WITH_SETTER_P), symbols.h
5246 (SCM_SYMBOLP), vectors.h (SCM_VECTORP): Prefer !SCM_<foo> over
5247 SCM_N<foo>.
5248
5249 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
5250
5251 * continuations.h (scm_contregs), debug.h (scm_debug_info,
5252 scm_debug_frame, SCM_DSIDEVAL), filesys.h (SCM_OPDIRP), fports.h
5253 (scm_fport), options.h (scm_option), snarf.h (SCM_CONST_LONG,
5254 SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
5255 SCM_GLOBAL_VCELL_INIT), srcprop.h (scm_srcprops,
5256 scm_srcprops_chunk), stacks.h (scm_info_frame, scm_stack), unif.h
5257 (scm_array, scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_HUGE_LENGTH),
5258 validate.h (SCM_FUNC_NAME, SCM_WTA, RETURN_SCM_WTA,
5259 SCM_VALIDATE_NUMBER_COPY, SCM_VALIDATE_NUMBER_DEF_COPY,
5260 SCM_VALIDATE_STRINGORSUBSTR, SCM_VALIDATE_ROSTRING,
5261 SCM_VALIDATE_ROSTRING_COPY, SCM_VALIDATE_NULLORROSTRING_COPY,
5262 SCM_VALIDATE_RWSTRING, SCM_VALIDATE_OPDIR): Removed.
5263
5264 * continuations.h (CONTINUATIONSH, SCM_CONTINUATIONS_H), filesys.h
5265 (FILESYSH, SCM_FILESYS_H), fports.h (FPORTSH, SCM_FPORTS_H),
5266 options.h (OPTIONSH, SCM_OPTIONS_H), regex-posix.h (REGEXPOSIXH,
5267 SCM_REGEX_POSIX_H), snarf.h (LIBGUILE_SNARF_H, SCM_SNARF_H),
5268 srcprop.h (SCM_SOURCE_PROPERTIES_H, SCM_SRCPROP_H), unif.h
5269 (SCM_UNIFORM_VECTORS_H, SCM_UNIF_H), validate.h (SCM_VALIDATE_H__,
5270 SCM_VALIDATE_H): Renamed the macros that are defined to inhibit
5271 double inclusion of the same headers to the SCM_<filename>_H
5272 format.
5273
5274 * debug.h (SCM_RESET_DEBUG_MODE), regex-posix.h (SCM_RGXP),
5275 srcprop.h (SRCBRKP, PROCTRACEP), struct.h (SCM_STRUCTP),
5276 validate.h (SCM_VALIDATE_THUNK, SCM_VALIDATE_ARRAY,
5277 SCM_VALIDATE_VECTOR_OR_DVECTOR, SCM_VALIDATE_VTABLE): Prefer
5278 !SCM_<foo> over SCM_N<foo>.
5279
5280 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
5281
5282 * _scm.h (_SCMH, SCM__SCM_H), alist.h (ALISTH, SCM_ALIST_H),
5283 arbiters.h (ARBITERSH, SCM_ARBITERS_H), backtrace.h (BACKTRACEH,
5284 SCM_BACKTRACE_H), boolean.h (BOOLEANH, SCM_BOOLEAN_H), chars.h
5285 (SCM_CHARSH, SCM_CHARS_H), coop-defs.h (COOP_DEFSH,
5286 SCM_COOP_DEFS_H), coop-threads.h (COOP_THREADSH,
5287 SCM_COOP_THREADS_H), debug-malloc.h (DEBUGMALLOCH,
5288 SCM_DEBUG_MALLOC_H), dynwind.h (DYNWINDH, SCM_DYNWIND_H),
5289 environments.h (ENVIRONMENTS_H, SCM_ENVIRONMENTS_H), eq.h (EQH,
5290 SCM_EQ_H), evalext.h (EVALEXTH, SCM_EVALEXT_H), extensions.h
5291 (LIBGUILE_EXTENSIONS_H, SCM_EXTENSIONS_H), feature.h (FEATUREH,
5292 SCM_FEATURE_H), gdbint.h (GDBINTH, SCM_GDBINT_H), guardians.h
5293 (SCM_GUARDIANH, SCM_GUARDIANS_H), hash.h (HASHH, SCM_HASH_H),
5294 hashtab.h (HASHTABH, SCM_HASHTAB_H), init.h (INITH, SCM_INIT_H),
5295 ioext.h (IOEXTH, SCM_IOEXT_H), iselect.h (ISELECTH,
5296 SCM_ISELECT_H), keywords.h (KEYWORDSH, SCM_KEYWORDS_H), lang.h
5297 (LANGH, SCM_LANG_H), mallocs.h (MALLOCSH, SCM_MALLOCS_H), net_db.h
5298 (SCM_NETDBH, SCM_NET_DB_H), objprop.h (OBJPROPH, SCM_OBJPROP_H),
5299 posix.h (POSIXH, SCM_POSIX_H), procprop.h (PROCPROPH,
5300 SCM_PROCPROP_H), properties.h (PROPERTIES_H, SCM_PROPERTIES_H),
5301 ramap.h (RAMAPH, SCM_RAMAP_H), rdelim.h (SCM_RDELIM,
5302 SCM_RDELIM_H), read.h (READH, SCM_READ_H), rw.h (SCM_RW,
5303 SCM_RW_H), scmsigs.h (SCMSIGSH, SCM_SCMSIGS_H), script.h (SCRIPTH,
5304 SCM_SCRIPT_H), simpos.h (SIMPOSH, SCM_SIMPOS_H), socket.h
5305 (SCM_SOCKETH, SCM_SOCKET_H), sort.h (SORTH, SCM_SORT_H),
5306 stackchk.h (STACKCHKH, SCM_STACKCHK_H), stime.h (STIMEH,
5307 SCM_STIME_H), strop.h (STROPH, SCM_STROP_H), strorder.h
5308 (STRORDERH, SCM_STRORDER_H), threads.h (THREADSH, SCM_THREADS_H),
5309 throw.h (THROWH, SCM_THROW_H), version.h (VERSIONH,
5310 SCM_VERSION_H), vports.h (VPORTSH, SCM_VPORTS_H): Renamed
5311 the macros that are defined to inhibit double inclusion of the
5312 same headers to the SCM_<filename>_H format.
5313
5314 2001-08-27 Marius Vollmer <mvo@zagadka.ping.de>
5315
5316 * ports.c, ports.h, fprots.c, gc.c, ioext.c: Replaced
5317 "scm_t_portable" with "scm_port_table" which was an artifact from
5318 the great "scm_*_t -> scm_t_" renaming.
5319
5320 2001-08-25 Thien-Thi Nguyen <ttn@revel.glug.org>
5321
5322 * gc_os_dep.c (GC_noop1): Move before `GC_find_limit' where it is
5323 used; nfc. Thanks to Bill Schottstaedt.
5324
5325 * validate.h (SCM_VALIDATE_USHORT_COPY, SCM_VALIDATE_SHORT_COPY,
5326 SCM_VALIDATE_UINT_COPY, SCM_VALIDATE_INT_COPY): New macros.
5327 Thanks to Chris Cramer.
5328
5329 2001-08-25 Marius Vollmer <mvo@zagadka.ping.de>
5330
5331 * Makefile.am (AUTOMAKE_OPTIONS): Change "foreign" to "gnu".
5332
5333 * eval.c (scm_m_atbind): Redesigned to behvae like `let', but with
5334 dynamic scope.
5335 * dynwind.h (scm_swap_bindings): Declare.
5336 * dynwind.c (scm_swap_bindings): Make non-static.
5337
5338 2001-08-25 Michael Livshin <mlivshin@bigfoot.com>
5339
5340 * gc.c (scm_gc_sweep): now can sweep unreachable variables (by
5341 doing exactly nothing about them). thanks Neil!
5342
5343 2001-08-18 Neil Jerram <neil@ossau.uklinux.net>
5344
5345 * __scm.h (SCM_ENABLE_VCELLS): Fix spelling mistake in comment.
5346
5347 2001-08-17 Thien-Thi Nguyen <ttn@revel.glug.org>
5348
5349 * gc.c: Fix omission bug: Add `heap_segment' forward decl
5350 (proto) in the case when either `GUILE_DEBUG' or
5351 `GUILE_DEBUG_FREELIST' preprocessor symbols are defined.
5352
5353 (map_free_list): Fix typo: Ref `f' correctly.
5354
5355 Thanks to Chris Cramer.
5356
5357 2001-08-15 Rob Browning <rlb@defaultvalue.org>
5358
5359 * Makefile.am (libguile_la_LDFLAGS): use libtool interface version
5360 variables.
5361 (libpath.h): change libguileversion to libguileinterface.
5362
5363 2001-08-07 Marius Vollmer <mvo@zagadka.ping.de>
5364
5365 * Makefile.am (EXTRA_DIST): Distribute ChangeLog-1996-1999 and
5366 ChangeLog-2000. Thanks to Daniel Skarda!
5367
5368 2001-08-07 Michael Livshin <mlivshin@bigfoot.com>
5369
5370 * guile-snarf-docs-texi.in: don't call the tokenizer here, we now
5371 do it from the Makefile.
5372
5373 * Makefile.am: rearrange the snarfing slightly, so that .doc files
5374 are of a reasonable size.
5375
5376 2001-08-02 Neil Jerram <neil@ossau.uklinux.net>
5377
5378 * stacks.c (scm_make_stack): Improve docstring by explaining use
5379 of cutting args.
5380
5381 2001-08-01 Marius Vollmer <mvo@zagadka.ping.de>
5382
5383 * chars.c (scm_char_alphabetic_p, scm_char_numeric_p,
5384 scm_char_whitespace_p, scm_char_upper_case_p,
5385 scm_char_lower_case_p, scm_char_is_both_p): Do not require
5386 characters to fulfill isascii in addition to the primary
5387 predicate.
5388
5389 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
5390
5391 * numbers.c (DIGITS, scm_small_istr2int, scm_istr2int,
5392 scm_istr2flo, scm_istring2number): Removed.
5393
5394 (iflo2str, scm_real_p, scm_integer_p): Use SCM_<foo> instead of
5395 SCM_SLOPPY_<foo>.
5396
5397 (t_exactness, t_radix, DIGIT2UINT, XDIGIT2UINT, mem2uinteger,
5398 mem2decimal_from_point, mem2ureal, mem2complex, scm_i_mem2number):
5399 Added.
5400
5401 (scm_string_to_number): Use new number parser.
5402
5403 (scm_exact_to_inexact): Replace dummy by a GPROC, which also
5404 handles complex numbers.
5405
5406 * numbers.h (NUMBERSH, SCM_NUMBERS_H): Rename <foo>H to
5407 SCM_<foo>_H.
5408
5409 (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Prefer !SCM_<pred> over
5410 SCM_N<pred>.
5411
5412 (scm_istr2int, scm_istr2flo, scm_istring2number): Removed.
5413
5414 (scm_i_mem2number): Added.
5415
5416 (scm_exact_to_inexact): Changed signature.
5417
5418 * read.c (scm_lreadr): Perform the shortcut test for '+ and '-
5419 here instead of within scm_i_mem2number. Call scm_i_mem2number
5420 instead of scm_istr2int and scm_istring2number.
5421
5422 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
5423
5424 * eval.c (scm_lookupcar, scm_m_body, scm_m_lambda, unmemocopy,
5425 scm_unmemocopy, scm_badargsp, scm_eval_body, CHECK_EQVISH,
5426 SCM_CEVAL, scm_nconc2last, SCM_APPLY, scm_copy_tree): Prefer
5427 !SCM_<pred> over SCM_N<pred>.
5428
5429 (scm_eval_body): Remove side effecting code from macro call.
5430
5431 (SCM_CEVAL, SCM_APPLY): Remove goto statement and redundant
5432 SCM_NIMP test.
5433
5434 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
5435
5436 * pairs.h (SCM_VALIDATE_PAIR): Use SCM_CONSP, not SCM_ECONSP.
5437
5438 2001-07-29 Marius Vollmer <mvo@zagadka.ping.de>
5439
5440 Removed vcell slot from structs.
5441
5442 * struct.h (scm_vtable_index_vcell): Removed. Renumbered
5443 subsequent indices.
5444
5445 * struct.c (scm_struct_vtable_p): Do not check vcell slot for
5446 zero. Use scm_vtable_index_layout instead of "0" when accessing
5447 said slot.
5448 (scm_init_struct): Remove vcell slot layout code from
5449 required_vtable_fields.
5450
5451 * objects.h (scm_si_redefined, scm_si_hashsets): Renumbered.
5452
5453 * goops.c (build_class_class_slots): Removed vcell slot
5454 definition.
5455
5456 * goops.h: Renumbered slot indices. (SCM_CLASS_CLASS_LAYOUT):
5457 Removed vcell slot layout code.
5458 (scm_si_vcell): Removed.
5459
5460 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
5461
5462 "Glocs" have been removed.
5463
5464 * tags.h: Update tag system docs.
5465 (scm_tc3_cons_gloc): Renamed to scm_tc3_struct. Changed all uses.
5466 (scm_tcs_cons_gloc): Renamed to scm_tcs_struct. Changed all uses.
5467 (SCM_ECONSP, SCM_NECONSP): Removed. Changed all uses to SCM_CONSP
5468 or SCM_NCONSP, respectively.
5469
5470 * struct.c, struct.h, srcprop.c, procs.c, procprop.c, print.c,
5471 objects.c. modules.c, goops.c, eval.c, debug.c: Changed all uses
5472 of scm_tc3_cond_gloc and scm_tcs_cons_gloc. See above.
5473
5474 * print.c (scm_iprin1): Remove printing of glocs. Do not try to
5475 tell glocs from structs.
5476
5477 * gc.c (scm_gc_mark, scm_gc_sweep): Remove handling of glocs.
5478
5479 * eval.c (scm_m_atbind): Make a list of variables, not glocs.
5480 (scm_ceval, scm_deval): For SCM_IM_BIND, fiddle with variables
5481 instead of with glocs.
5482 (EVALCAR): Do not test for glocs.
5483 (scm_lookupcar, scm_lookupcar1): Do not handle glocs in race
5484 condition.
5485 (scm_unmemocar): Do not handle glocs.
5486 (scm_m_atfop): Memoize as a variable, not as a gloc.
5487 (scm_eval_args, scm_deval_args): Do not handle glocs.
5488 (scm_ceval, scm_deval): Likewise.
5489
5490 * eval.h (SCM_XEVALCAR): Do not test for glocs.
5491 (SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL, SCM_GLOC_VAL_LOC):
5492 Removed.
5493
5494 * debug.h, debug.c (scm_make_gloc, scm_gloc_p): Removed.
5495
5496 * dynwind.c (scm_swap_bindings): Likewise.
5497 (scm_dowinds): Updated to recognize lists of variables instead of
5498 lists of glocs.
5499
5500 * __scm.h (SCM_CAUTIOS, SCM_RECKLESS): Update comments.
5501
5502
5503 * gc_os_dep.c (GC_noop1): Moved into the same #if/#endif context
5504 where it is needed.
5505
5506 2001-07-25 Gary Houston <ghouston@arglist.com>
5507
5508 * numbers.c (scm_logand, scm_logior, scm_logxor): adjusted the
5509 docstrings to reflect the n-ary implementation.
5510
5511 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
5512
5513 * eval.c (scm_ceval, scm_deval): Use "RETURN" macro when returning
5514 value of a variable, not the plain "return" statement.
5515
5516 2001-07-25 Marius Vollmer <mvo@zagadka.ping.de>
5517
5518 * eval.c: Allow variables in memoized code (in addition to glocs).
5519 (scm_lookupcar): Handle variables in lost races. Replace symbol
5520 with variable directly, do not make a gloc.
5521 (scm_unmemocar): Rewrite variables using a reverse lookup, just
5522 like glocs.
5523 (scm_ceval, scm_deval): Deal with variables in SCM_IM_SET and in
5524 the main switch.
5525
5526 2001-07-25 Marius Vollmer <marius.vollmer@uni-dortmund.de>
5527
5528 * variable.c (scm_i_variable_print): Use "value" instead of
5529 "binding" since a binding is the mapping between symbols and
5530 variables, not between variables and their values.
5531
5532 * tags.h (scm_tc7_variable): New.
5533 * gc.c (scm_gc_mark): Handle scm_tc7_variable objects.
5534 * print.c (scm_iprin1): Likewise.
5535
5536 * variable.h (scm_tc16_variable): Removed.
5537 (SCM_VARIABLEP): Test for new tc7 code.
5538 (scm_i_variable_print): New.
5539 * variable.c (scm_tc16_variable): Removed.
5540 (variable_print): Renamed to scm_i_variable_print and made
5541 non-static.
5542 (variable_equal_p): Removed.
5543 (make_variable): Construct a tc7 object instead of a smob.
5544 (scm_init_variable): Do not register smob.
5545
5546 2001-07-22 Marius Vollmer <mvo@zagadka.ping.de>
5547
5548 * tags.h: Include inttypes.h when we have it.
5549
5550 2001-07-13 Marius Vollmer <mvo@zagadka.ping.de>
5551
5552 * tags.h (SCM_UNBOUND): Make it the 34th isym/iflag, the 33th slot
5553 is taken by the new SCM_IM_CALL_WITH_VALUES.
5554 * print.c (scm_isymnames): Update table accordingly.
5555
5556 2001-07-22 Gary Houston <ghouston@arglist.com>
5557
5558 * regex-posix.c (s_scm_regexp_exec): use scm_long2num not
5559 SCM_MAKINUM to convert regoff_t value to SCM.
5560
5561 2001-07-21 Gary Houston <ghouston@arglist.com>
5562
5563 * scmsigs.c: include sys/time.h for itimer stuff.
5564
5565 2001-07-19 Rob Browning <rlb@defaultvalue.org>
5566
5567 * gc_os_dep.c (GC_noop1): ifdef out (unused) to quiet warning.
5568
5569 * c-tokenize.lex: add option %nounput to quiet warning.
5570 Add prototype for yylex to quiet warning.
5571
5572 * scmconfig.h.in: add flags for setitimer and getitimer.
5573
5574 * scmsigs.h (scm_init_scmsigs): new prototype.
5575 (scm_init_scmsigs): new prototype.
5576
5577 * scmsigs.c (s_scm_setitimer): new function.
5578 (s_scm_setitimer): new function.
5579
5580 2001-07-18 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5581
5582 * alist.c, arbiters.c, async.h, backtrace.h, boolean.c, chars.c,
5583 chars.h, continuations.h, debug-malloc.h, dynl.c, feature.c,
5584 feature.h, filesys.h, fluids.h, fports.h, gc_os_dep.c,
5585 gdb_interface.h, gh_eval.c, gh_funcs.c, gh_io.c, gh_list.c,
5586 gh_predicates.c, gsubr.c, gsubr.h, guardians.h,
5587 guile-func-name-check.in, guile-snarf-docs-texi.in,
5588 guile-snarf-docs.in, guile-snarf.awk.in, guile-snarf.in,
5589 hashtab.h, iselect.h, keywords.h, lang.c, list.h, load.h,
5590 objprop.c, objprop.h, options.c, options.h, random.h,
5591 regex-posix.h, root.c, root.h, script.c, snarf.h, stackchk.c,
5592 strerror.c, strop.h, strports.h, threads.h, values.c, values.h,
5593 version.c, version.h: Updated copyright notice.
5594
5595 2001-07-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
5596
5597 * goops.c (sym_layout, sym_vcell, sym_vtable, sym_print,
5598 sym_procedure, sym_setter, sym_redefined, sym_h0, sym_h1, sym_h2,
5599 sym_h3, sym_h4, sym_h5, sym_h6, sym_h7, sym_name,
5600 sym_direct_supers, sym_direct_slots, sym_direct_subclasses,
5601 sym_direct_methods, sym_cpl, sym_default_slot_definition_class,
5602 sym_slots, sym_getters_n_setters, sym_keyword_access, sym_nfields,
5603 sym_environment, scm_sym_change_class): New static variables to
5604 hold predefined symbols.
5605
5606 (build_class_class_slots): Build the list using scm_list_n
5607 instead of cons. Also, slots are already created as lists, thus
5608 making a call to maplist unnecessary.
5609
5610 (scm_class_name, scm_class_direct_supers, scm_class_direct_slots,
5611 scm_class_direct_subclasses, scm_class_direct_methods,
5612 scm_class_precedence_list, scm_class_slots, scm_class_environment,
5613 scm_method_procedure, create_standard_classes, purgatory): Use
5614 predefined symbols.
5615
5616 (build_slots_list, compute_getters_n_setters,
5617 scm_sys_initialize_object, scm_sys_inherit_magic_x,
5618 get_slot_value_using_name, set_slot_value_using_name,
5619 scm_sys_invalidate_method_cache_x, scm_generic_capability_p,
5620 scm_compute_applicable_methods, scm_sys_method_more_specific_p,
5621 make_struct_class): Prefer !SCM_<pred> over SCM_N<pred>.
5622
5623 (scm_sys_prep_layout_x): Minimize variable scopes.
5624
5625 (scm_sys_prep_layout_x, scm_sys_fast_slot_ref,
5626 scm_sys_fast_slot_set_x): Fix signedness.
5627
5628 (go_to_hell, go_to_heaven, purgatory, scm_change_object_class,
5629 lock_cache_mutex, unlock_cache_mutex, call_memoize_method,
5630 scm_memoize_method, scm_wrap_object): Use packing and unpacking
5631 when converting to and from SCM values.
5632
5633 (scm_enable_primitive_generic_x): Add rest argument checking.
5634
5635 (map, filter_cpl, maplist, scm_sys_initialize_object,
5636 scm_sys_prep_layout_x, slot_definition_using_name,
5637 scm_enable_primitive_generic_x, scm_compute_applicable_methods,
5638 call_memoize_method, scm_make, scm_make_class): Prefer explicit
5639 predicates over SCM_N?IMP tests.
5640
5641 (scm_sys_prep_layout_x): Fix typo in error message. Fix type
5642 checking.
5643
5644 (burnin, go_to_hell): Use SCM_STRUCT_DATA instead of the SCM_INST
5645 alias.
5646
5647 2001-07-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
5648
5649 * fports.c (fport_print): Don't use SCM_C[AD]R for non pairs.
5650
5651 * num2integral.i.c (INTEGRAL2NUM, INTEGRAL2BIG): Fix signedness.
5652
5653 * symbols-deprecated.c (scm_gentemp): Simplify vector test.
5654
5655 * vectors.c (scm_vector_p): Eliminate redundant IMP test.
5656
5657 2001-07-12 Michael Livshin <mlivshin@bigfoot.com>
5658
5659 * strings.c (s_scm_string): fix arg position in assert.
5660
5661 2001-07-11 Gary Houston <ghouston@arglist.com>
5662
5663 * strports.c (st_write): use memcpy, not strncpy. thanks to
5664 Dale P. Smith.
5665
5666 2001-07-09 Thien-Thi Nguyen <ttn@revel.glug.org>
5667
5668 * alist.c, alloca.c, arbiters.c, async.c, async.h, backtrace.c,
5669 boolean.c, chars.c, continuations.c, coop-defs.h, coop-threads.c,
5670 debug-malloc.h, debug.c, debug.h, dynl.c, dynwind.c, eq.c,
5671 error.c, eval.c, evalext.c, feature.c, feature.h, filesys.c,
5672 filesys.h, fluids.c, fluids.h, fports.c, fports.h, gc.c, gc.h,
5673 gdbint.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
5674 hooks.h, inet_aton.c, init.c, ioext.c, keywords.c, keywords.h,
5675 lang.c, list.c, load.c, macros.c, mallocs.c, memmove.c, modules.c,
5676 net_db.c, numbers.c, numbers.h, objects.c, objprop.c, options.c,
5677 pairs.c, pairs.h, ports.c, ports.h, posix.c, print.c, print.h,
5678 procprop.c, procs.c, procs.h, properties.c, putenv.c, ramap.c,
5679 random.c, random.h, read.c, regex-posix.c, regex-posix.h, root.c,
5680 root.h, scmsigs.c, script.c, simpos.c, smob.c, snarf.h, socket.c,
5681 sort.c, srcprop.c, srcprop.h, stackchk.c, stacks.c, stacks.h,
5682 stime.c, strerror.c, strings.c, strings.h, strop.c, strorder.c,
5683 strports.c, struct.c, struct.h, symbols-deprecated.c, symbols.c,
5684 symbols.h, tags.h, threads.c, threads.h, throw.c, unif.c, unif.h,
5685 variable.c, variable.h, vectors.c, vectors.h, version.c, vports.c,
5686 weaks.c, weaks.h: Remove "face-lift" comment.
5687
5688 2001-07-08 Rob Browning <rlb@defaultvalue.org>
5689
5690 * .cvsignore: add stamp-h.in.
5691
5692 2001-07-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5693
5694 * hooks.c (scm_make_hook, scm_add_hook_x),
5695 (scm_remove_hook_x, scm_reset_hook_x, scm_run_hook): Added return
5696 value info to the docstrings.
5697
5698 2001-07-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5699
5700 Some more compatibility patches for Windows.
5701
5702 * posix.c (getlogin): getlogin() implementation for Windows.
5703
5704 * backtrace.c, ioext.c: Include <stdio.h>.
5705
5706 * unif.c, script.c, rw.c, error.c: Include <io.h>, if it does
5707 exist.
5708
5709 * cpp_sig_symbols.in: Added SIGBREAK.
5710
5711 2001-07-01 Marius Vollmer <mvo@zagadka.ping.de>
5712
5713 * strports.c (scm_read_0str, scm_eval_0str): Call
5714 scm_c_read_string and scm_c_eval_string respectively, not
5715 themselves. Thanks to Dale P. Smith!
5716
5717 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
5718
5719 * unif.c (scm_array_set_x): The variable args does not
5720 necessarily have to be a list. Further, got rid of a redundant
5721 SCM_NIMP test.
5722
5723 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
5724
5725 * list.c (SCM_I_CONS): Make sure the cell type is initialized
5726 last.
5727
5728 * gc.c (s_scm_map_free_list, scm_igc, scm_gc_sweep,
5729 init_heap_seg): Fixed signedness.
5730
5731 (init_heap_seg): Replaced strange for-loop with a while loop.
5732
5733 * weaks.h (WEAKSH, SCM_WEAKS_H): Rename <foo>H to SCM_<foo>_H.
5734
5735 (SCM_WVECTP): Prefer !SCM_<pred> over SCM_N<pred>.
5736
5737 The following patch adds conservative marking for the elements of
5738 free or allocated cells.
5739
5740 * gc.c (allocated_mark, heap_segment): New static functions.
5741
5742 (which_seg): Deleted, since the functionality is now provided by
5743 function heap_segment.
5744
5745 (map_free_list): Use heap_segment instead of which_seg.
5746
5747 (MARK): If cell debugging is disabled, mark free cells
5748 conservatively.
5749
5750 (scm_mark_locations, scm_cellp): Extracted the search for the
5751 heap segment of a SCM value into function heap_segment.
5752
5753 (scm_init_storage): Allocated cells must be marked
5754 conservatively.
5755
5756 * gc.[ch] (scm_gc_mark_cell_conservatively): New function.
5757
5758 The following patch changes the representation of weak vectors to
5759 double cells instead of using an extension of the vector's
5760 allocated memory.
5761
5762 * gc.c (MARK): Use SCM_SET_WVECT_GC_CHAIN instead of assigning to
5763 the result of SCM_WVECT_GC_CHAIN.
5764
5765 (scm_gc_sweep): Weak vectors don't have extra fields any more.
5766
5767 * weaks.c (allocate_weak_vector): New static function. It does
5768 not patch any previously created vector object during the
5769 construction of a weak vector, and thus doesn't need to switch
5770 off interrupts during vector creation.
5771
5772 (scm_make_weak_vector, scm_make_weak_key_hash_table,
5773 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
5774 Use allocate_weak_vector to provide the new weak vector object.
5775
5776 * weaks.h (SCM_WVECT_TYPE, SCM_SET_WVECT_TYPE,
5777 SCM_SET_WVECT_GC_CHAIN): New macros. The weak vector subtype is
5778 now stored in the double cell.
5779
5780 (SCM_IS_WHVEC, SCM_IS_WHVEC_V, SCM_IS_WHVEC_B, SCM_IS_WHVEC_ANY):
5781 Use SCM_WVECT_TYPE.
5782
5783 (SCM_WVECT_GC_CHAIN): The weak objects are now chained together
5784 using an entry of the double cell.
5785
5786 2001-06-30 Thien-Thi Nguyen <ttn@revel.glug.org>
5787
5788 * stamp-h.in: bye bye
5789
5790 2001-06-30 Marius Vollmer <mvo@zagadka.ping.de>
5791
5792 * gh_eval.c (gh_eval_str): Use scm_c_eval_string instead of
5793 scm_eval_0str.
5794
5795 * load.c, load.h (scm_c_primitive_load,
5796 scm_c_primitive_load_path): New.
5797
5798 * strports.c, strports.h (scm_c_read_string): Renamed from
5799 scm_read_0str. Also, added "const" qualifier to argument.
5800 (scm_c_eval_string): Renamed from scm_eval_0str.
5801 (scm_read_0str, scm_eval_0str): Deprecated.
5802
5803 2001-06-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5804
5805 * fluids.c (scm_c_with_fluid): Use scm_list_1() instead of
5806 SCM_LIST1.
5807
5808 2001-06-28 Keisuke Nishida <kxn30@po.cwru.edu>
5809
5810 * list.h (scm_list_1, scm_list_2, scm_list_3, scm_list_4, scm_list_5,
5811 scm_list_n): New functions.
5812 (SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
5813 SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify): Deprecated.
5814 (lots of files): Use the new functions.
5815
5816 * goops.c (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4): Use scm_call_N.
5817
5818 * strings.c: #include "libguile/deprecation.h".
5819
5820 2001-06-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5821
5822 * read.c (scm_lreadr): When reading a hash token, check for a
5823 user-defined hash procedure first, so that overriding the builtin
5824 hash characters is possible (this was needed for implementing
5825 SRFI-4's read synax `f32(...)').
5826
5827 * num2integral.i.c: Use scm_t_signed_bits instead of scm_t_bits,
5828 because the latter is unsigned now and breaks comparisons like
5829 (n < (scm_t_signed_bits)MIN_VALUE).
5830
5831 2001-06-26 Neil Jerram <neil@ossau.uklinux.net>
5832
5833 * eval.h, eval.c (scm_call_4): New function.
5834
5835 * eval.c (SCM_APPLY, SCM_CEVAL, ENTER_APPLY): Call trap handlers
5836 directly rather than dispatching to them via scm_ithrow and a lazy
5837 catch.
5838
5839 * eval.c (scm_evaluator_trap_table), eval.h (SCM_ENTER_FRAME_HDLR,
5840 SCM_APPLY_FRAME_HDLR, SCM_EXIT_FRAME_HDLR): Add three new options
5841 for trap handler procedures.
5842
5843 * debug.h (SCM_RESET_DEBUG_MODE): Add checks for trap handler
5844 procedures not being #f.
5845
5846 2001-06-27 Michael Livshin <mlivshin@bigfoot.com>
5847
5848 * Makefile.am (c-tokenize.c): add rule to generate it.
5849 (EXTRA_DIST): add c-tokenize.lex, so it gets distributed.
5850
5851 filter-doc-snarfage.c: remove.
5852
5853 2001-06-26 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5854
5855 * ports.c (scm_output_port_p): Use result of SCM_COERCE_OUTPORT.
5856
5857 The following set of changes makes compiling Guile under various
5858 Windows compilers easier. Compilation under GNU systems should
5859 not be affected at all.
5860
5861 Thanks to Stefan Jahn for all necessary information, patches and
5862 testing.
5863
5864 * posix.c: Conditialize getpwent, getgrent, kill, getppid, getuid,
5865 getpgrp, ttyname, primitive-fork and some header inclusion for
5866 Windows.
5867
5868 * random.c: Define M_PI, if not predefined and use __int64 for
5869 LONG64 under Windows.
5870
5871 * scmsigs.c: Emulate some functions (alarm, sleep, kill) under
5872 Windows and conditionalize some signal names.
5873
5874 * socket.c (scm_getsockopt): Added missing comma.
5875 Include socket library header under Windows.
5876
5877 * stime.c (CLKTCK): Add cast to int, to make it compile under
5878 Windows.
5879
5880 * ports.c (truncate): New function, compiled only under Windows.
5881
5882 * net_db.c: Do not declare errno under Windows.
5883
5884 * iselect.h, inet_aton.c: Include socket library headers under
5885 Windows.
5886
5887 * guile.c (inner_main): Under Windows, initialize socket library
5888 and initialize gdb_interface data structures.
5889
5890 * gdb_interface.h: Under Windows, gdb_interface cannot be
5891 initialized statically. Initialize at runtime instead.
5892
5893 * fports.c (write_all): ssize_t -> size_t.
5894 (fport_print): Conditionalize call to ttyname().
5895 (getflags): New function, compiled only under Windows.
5896
5897 * filesys.c: Conditionalize inclusion of <pwd.h>. Conditionalize
5898 primitives chown, link, fcntl.
5899 (scm_basename, scm_dirname): Under Windows, handle \ as well as /
5900 as path seperator.
5901
5902 * backtrace.c: Include <io.h> under Windows.
5903
5904 * async.h (ASYNCH, SCM_ASYNC_H): Rename <foo>H to SCM_<foo>_H.
5905
5906 * _scm.h: Added preprocessor conditional for __MINGW32__ for errno
5907 declaration.
5908
5909 2001-06-27 Keisuke Nishida <kxn30@po.cwru.edu>
5910
5911 * eval.c (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
5912 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): New functions.
5913 * eval.h (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
5914 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): Declared.
5915 * async.c (scm_run_asyncs), coop-threads.c (scheme_body_bootstrip,
5916 scheme_handler_bootstrip), debug.c (with_traps_inner), dynwind.c
5917 (scm_dynamic_wind, scm_dowinds), environments.c
5918 (import_environment_conflict), eval.c (scm_macroexp, scm_force,
5919 scm_primitive_eval_x, scm_primitive_eval), fluids.c (apply_thunk),
5920 goops.c (GETVAR, purgatory, make_class_from_template,
5921 scm_ensure_accessor), hashtab.c (scm_ihashx, scm_sloppy_assx,
5922 scm_delx_x, fold_proc), hooks.c (scm_c_run_hook), load.c
5923 (scm_primitive_load), modules.c (scm_resolve_module,
5924 scm_c_define_module, scm_c_use_module, scm_c_export,
5925 module_variable, scm_eval_closure_lookup, scm_sym2var,
5926 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
5927 ports.c (scm_port_for_each), print.c (scm_printer_apply),
5928 properties.c (scm_primitive_property_ref), ramap.c (ramap,
5929 ramap_cxr, rafe, scm_array_index_map_x, read.c (scm_lreadr),
5930 scmsigs.c (sys_deliver_signals), sort.c (applyless), strports.c
5931 (scm_object_to_string, scm_call_with_output_string,
5932 scm_call_with_input_string), throw.c (scm_body_thunk,
5933 scm_handle_by_proc, hbpca_body), unif.c (scm_make_shared_array,
5934 scm_make_shared_array), vports.c (sf_flush, sf_write,
5935 sf_fill_input, sf_close): Use one of the above functions.
5936 * goops.c, hashtab.c, scmsigs.c, sort.c: #include "libguile/root.h".
5937
5938 2001-06-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
5939
5940 * filesys.c (scm_close), ports.c (scm_close_port,
5941 scm_port_closed_p), strop.c (scm_string_null_p): Use SCM_BOOL
5942 instead of SCM_NEGATE_BOOL.
5943
5944 * filesys.c (scm_stat): Clean up type dispatch.
5945
5946 * filesys.c (scm_stat), ports.c (scm_input_port_p,
5947 scm_output_port_p): Get rid of redundant IM type check.
5948
5949 * filesys.c (scm_readdir, scm_getcwd, scm_readlink), gh_data.c
5950 (gh_str2scm), load.c (scm_primitive_load, scm_internal_parse_path,
5951 scm_search_path), net_db.c (scm_gethost, scm_getnet, scm_getproto,
5952 scm_return_entry), numbers.c (scm_number_to_string), objects.c
5953 (scm_make_subclass_object), ports.c (scm_port_mode), read.c
5954 (scm_lreadr), simpos.c (scm_getenv), socket.c (scm_inet_ntoa,
5955 scm_addr_vector), stime.c (scm_strftime), strings.c
5956 (scm_makfromstrs, scm_makfrom0str, scm_substring), strings.h
5957 (SCM_STRING_COERCE_0TERMINATION_X), strop.c (string_copy,
5958 scm_string_split), strports.c (scm_strport_to_string), symbols.c
5959 (scm_symbol_to_string), vports.c (sf_write): Use scm_mem2string
5960 instead of scm_makfromstr.
5961
5962 * net_db.c (scm_sethost, scm_setnet, scm_setproto, scm_setserv),
5963 ports.c (scm_close_all_ports_except), read.c (scm_lreadr,
5964 scm_read_hash_extend), stime.c (scm_strftime), strings.c
5965 (scm_string_append, scm_string), strings.h (SCM_STRINGP,
5966 SCM_STRING_COERCE_0TERMINATION_X, SCM_RWSTRINGP), strop.c
5967 (string_capitalize_x): Prefer explicit type check over SCM_N?IMP,
5968 !SCM_<pred> over SCM_N<pred>.
5969
5970 * strings.[ch] (scm_makfromstr): Deprecated.
5971
5972 (scm_mem2string): New function, replaces scm_makfromstr.
5973
5974 * strings.c (scm_substring), strop.c (string_copy,
5975 scm_string_split), strports.c (scm_strport_to_string), symbols.c
5976 (scm_symbol_to_string): Fix gc problem.
5977
5978 * strings.h (STRINGSH, SCM_STRINGS_H): Rename <foo>H to
5979 SCM_<foo>_H.
5980
5981 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): Eliminate
5982 warning about comparing signed and unsigned values. This fix is
5983 not optimal, since it won't work reliably if sizeof (c_start) >
5984 sizeof (size_t) or sizeof (c_end) > sizeof (size_t). A better
5985 solution is to define this macro as an inline function, thus
5986 allowing to specifiy the types of c_start and c_end.
5987
5988 2001-06-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
5989
5990 * debug.h (SCM_DEBUGOBJ_FRAME): Deliver result as a
5991 scm_t_debug_frame*.
5992
5993 * debug.h (DEBUGH, SCM_DEBUG_H), stacks.h (STACKSH, SCM_STACKSH):
5994 Rename <foo>H to SCM_<foo>_H.
5995
5996 * stacks.c (NEXT_FRAME, narrow_stack): Prefer explicit type check
5997 over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
5998
5999 (narrow_stack): Make i unsigned. Don't use side-effecting
6000 operations in conditions.
6001
6002 (narrow_stack, scm_make_stack, scm_stack_id,
6003 scm_last_stack_frame): Get rid of redundant SCM_N?IMP checks.
6004
6005 (scm_make_stack, scm_stack_id, scm_last_stack_frame): Clean up
6006 type dispatch. No need to cast result of SCM_DEBUGOBJ_FRAME any
6007 more.
6008
6009 (scm_stack_ref, scm_frame_previous, scm_frame_next): Fix
6010 signedness.
6011
6012 (scm_last_stack_frame): Remove bogus `;´.
6013
6014 * stacks.h (SCM_FRAMEP): Fix type check.
6015
6016 2001-06-25 Michael Livshin <mlivshin@bigfoot.com>
6017
6018 * Makefile.am (MAINTAINERCLEANFILES): be sure to remove
6019 c-tokenize.c when doing maintainer-clean.
6020
6021 * snarf.h (SCM_SNARF_DOCS): change the "grammar" slightly.
6022
6023 * guile-snarf-docs.in, guile-snarf-docs-texi.in: rewrite &
6024 simplify.
6025
6026 * eval.c: all hash signs are in column 0.
6027
6028 * Makefile.am (guile_filter_doc_snarfage): build using
6029 c-tokenize.c, not filter-doc-snarfage.c.
6030 rearrange snarfing dependencies a bit.
6031
6032 * c-tokenize.lex: new file.
6033
6034 2001-06-25 Marius Vollmer <mvo@zagadka.ping.de>
6035
6036 * srcprop.h, srcprop.c (scm_srcprops_to_plist): Renamed from
6037 scm_t_srcpropso_plist. See the big type renaming.
6038 * coop-defs.h (scm_mutex_trylock, scm_cond_timedwait): Likewise.
6039 Thanks to Seth Alves!
6040
6041 * numbers.c (SIZE_MAX, PTRDIFF_MIN, PTRDIFF_MAX): Only define when
6042 they aren't defined already.
6043
6044 2001-06-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
6045
6046 * backtrace.c (display_backtrace_body): Use SCM_VALIDATE_STACK
6047 and SCM_VALIDATE_OPOUTPORT instead of SCM_ASSERT. Fix signedness
6048 problem.
6049
6050 * backtrace.c (display_expression, scm_set_print_params_x,
6051 display_application, display_frame, scm_backtrace), numbers.c
6052 (scm_istring2number), objects.c (scm_class_of,
6053 scm_mcache_lookup_cmethod, scm_mcache_compute_cmethod): Prefer
6054 explicit type check over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
6055
6056 * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fluid numbers are
6057 always positive.
6058
6059 * numbers.c (scm_i_mkbig): Remove unnecessary casts, remove
6060 unnecessary SCM_DEFER_INTS, SCM_ALLOW_INTS.
6061
6062 * objects.c (scm_class_of): Type fix.
6063
6064 (scm_mcache_lookup_cmethod): Improved comment, simplified,
6065 eliminated goto.
6066
6067 * pairs.h (scm_error_pair_access): The function can return if
6068 called recursively.
6069
6070 2001-06-20 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6071
6072 * init.c (scm_init_guile_1): Removed initialization of tag.c.
6073
6074 * gdbint.c, init.c: Removed inclusion of tag.h.
6075
6076 * tag.h, tag.c: Removed files.
6077
6078 * Makefile.am: Removed tag.{h,c,doc,x} in various places.
6079
6080 2001-06-20 Gary Houston <ghouston@arglist.com>
6081
6082 * deprecation.c, extensions.c, rw.c: include string.h.
6083
6084 2001-06-19 Gary Houston <ghouston@arglist.com>
6085
6086 * filter-doc-snarfage.c (process): added ungetc in
6087 MULTILINE_COOKIE case since otherwise it fails when there's no
6088 space between the '(' and the quote of the following string
6089 (gcc 3.0).
6090
6091 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
6092
6093 Throughout: replace "scm_*_t" with "scm_t_*", except "scm_lisp_t".
6094
6095 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
6096
6097 * unif.h (SCM_ARRAY_NDIM): Shift then cast so that no sign
6098 extension takes place.
6099 * strings.h (SCM_STRING_LENGTH): Likewise.
6100 (SCM_STRING_MAX_LENGTH): Use unsigned numbers.
6101
6102 * __scm.h (ptrdiff_t): Typedef to long when configure didn't find
6103 it.
6104
6105 * tags.h: Include <stdint.h> when we have it.
6106 (scm_bits_t): Changed to be a unsigned type. Use uintptr_t when
6107 available. Else use "unsigned long".
6108 (scm_signed_bits_t): New.
6109
6110 * numbers.h (SCM_SRS): Cast shiftee to scm_signed_bits_t.
6111 (SCM_INUM): Cast result to scm_signed_bits_t.
6112
6113 2001-06-13 Thien-Thi Nguyen <ttn@revel.glug.org>
6114
6115 * mkstemp.c: Update path to #include file scmconfig.h.
6116 Thanks to Golubev I. N.
6117
6118 2001-06-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
6119
6120 * struct.h (SCM_STRUCT_VTABLE_FLAGS): New macro.
6121
6122 * goops.h (SCM_NUMBER_OF_SLOTS): Removed bogus `\´ at the end of
6123 the macro definition.
6124
6125 (SCM_CLASSP, SCM_INSTANCEP, SCM_PUREGENERICP, SCM_ACCESSORP,
6126 SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Use SCM_STRUCT_VTABLE_FLAGS
6127 instead of SCM_INST_TYPE.
6128
6129 (SCM_ACCESSORP, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Make sure
6130 the object is a struct before accessing its struct flags.
6131
6132 (SCM_INST_TYPE, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Deprecated.
6133
6134 2001-06-10 Gary Houston <ghouston@arglist.com>
6135
6136 * rdelim.c (scm_init_rdelim_builtins): don't try to activate the
6137 (ice-9 rdelim) module in (guile) and (guile-user). it didn't
6138 work reliably anymore. try it from boot-9.scm instead.
6139
6140 2001-06-09 Marius Vollmer <mvo@zagadka.ping.de>
6141
6142 * ports.c (scm_lfwrite): Maintain columnd and row count in port.
6143 Thanks to Matthias Köppe!
6144
6145 2001-06-08 Michael Livshin <mlivshin@bigfoot.com>
6146
6147 * snarf.h, filter-doc-snarfage.c: more changes to cope with
6148 space-happy C preprocessors.
6149
6150 * filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
6151 inside cookies. thanks to Matthias Köppe!
6152
6153 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
6154
6155 * keywords.c (keyword_print): Don't use SCM_C[AD]R to access
6156 keywords. Fix gc protection.
6157
6158 * objects.c (scm_mcache_lookup_cmethod): Don't use side effecting
6159 operations in macro calls.
6160
6161 * pairs.c (scm_error_pair_access): Avoid recursion.
6162
6163 Thanks to Matthias Koeppe for reporting the bugs that correspond
6164 to the following set of patches.
6165
6166 * unif.c (scm_bit_set_star_x, scm_bit_invert_x), vectors.h
6167 (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR): Obtain the
6168 bitvector base address using SCM_BITVECTOR_BASE.
6169
6170 * unif.h (SCM_BITVECTOR_BASE): Return the base address as an
6171 unsigned long*.
6172
6173 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
6174
6175 * goops.c (SCM_CLASS_REDEF): Removed.
6176
6177 * vectors.h (VECTORSH, SCM_VECTORS_H): Renamed <foo>H to
6178 SCM_<foo>_H.
6179
6180 Thanks to Matthias Koeppe for reporting the bugs that correspond
6181 to the following set of patches.
6182
6183 * goops.c (scm_sys_prep_layout_x, scm_basic_basic_make_class,
6184 create_basic_classes, scm_sys_fast_slot_set_x, set_slot_value,
6185 scm_sys_allocate_instance, clear_method_cache,
6186 scm_sys_invalidate_method_cache_x, scm_make,
6187 create_standard_classes, scm_make_port_classes, scm_make_class,
6188 scm_add_slot): Use SCM_SET_SLOT to set slot values.
6189
6190 (prep_hashsets): Use SCM_SET_HASHSET to set class hash values.
6191
6192 * goops.h (SCM_SET_SLOT, SCM_SET_HASHSET): New macros.
6193
6194 * ramap.c (BINARY_ELTS_CODE, BINARY_PAIR_ELTS_CODE,
6195 UNARY_ELTS_CODE): Remove bogus break statement.
6196
6197 * vectors.h (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR):
6198 Don't access bit vectors elements as SCM objects.
6199
6200 * weaks.c (scm_make_weak_vector, scm_make_weak_key_hash_table,
6201 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
6202 Don't assign to an unpacked value.
6203
6204 2001-06-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
6205
6206 * __scm.h (SCM_NORETURN): Moved here from error.h.
6207
6208 (SCM_UNUSED): New macro.
6209
6210 (SCM_DEBUG_PAIR_ACCESSES): New macro.
6211
6212 * backtrace.c (display_error_handler), continuations.c
6213 (continuation_print), debug.c (debugobj_print), dynwind.c
6214 (guards_print), environments.c (observer_print,
6215 core_environments_finalize, leaf_environment_cell,
6216 leaf_environment_print, eval_environment_print,
6217 eval_environment_observer, import_environment_define,
6218 import_environment_undefine, import_environment_print,
6219 import_environment_observer, export_environment_define,
6220 export_environment_undefine, export_environment_print,
6221 export_environment_observer), eval.c (scm_m_quote, scm_m_begin,
6222 scm_m_if, scm_m_set_x, scm_m_and, scm_m_or, scm_m_case,
6223 scm_m_cond, scm_m_lambda, scm_m_letstar, scm_m_do, scm_m_delay,
6224 scm_m_letrec1, scm_m_apply, scm_m_cont, scm_m_nil_cond,
6225 scm_m_nil_ify, scm_m_t_ify, scm_m_0_cond, scm_m_0_ify,
6226 scm_m_1_ify, scm_m_atfop, scm_m_at_call_with_values), evalext.c
6227 (scm_m_generalized_set_x), fluids.c (fluid_print), fports.c
6228 (fport_print), gc.c (gc_start_stats, scm_remember_upto_here_1,
6229 scm_remember_upto_here_2, scm_remember_upto_here, mark_gc_async),
6230 gh_init.c (gh_standard_handler), goops.c (get_slot_value,
6231 set_slot_value, test_slot_existence, scm_change_object_class,
6232 scm_m_atslot_ref, scm_m_atslot_set_x, make_struct_class,
6233 default_setter), guardians.c (guardian_print, guardian_gc_init,
6234 guardian_zombify, whine_about_self_centered_zombies), guile.c
6235 (inner_main), init.c (stream_handler), keywords.c (keyword_print),
6236 mallocs.c (malloc_print), numbers.c (scm_print_real,
6237 scm_print_complex, scm_bigprint), ports.c (flush_port_default,
6238 end_input_default, scm_port_print, fill_input_void_port,
6239 write_void_port), root.c (root_print), smob.c (scm_mark0,
6240 scm_free0, scm_smob_print, scm_smob_apply_1_error,
6241 scm_smob_apply_2_error, scm_smob_apply_3_error, free_print),
6242 stime.c (restorezone), strings.c (scm_makfromstr), struct.c
6243 (scm_struct_free_0, scm_struct_free_standard,
6244 scm_struct_free_entity, scm_struct_gc_init, scm_free_structs),
6245 throw.c (jmpbuffer_print, lazy_catch_print, ss_handler,
6246 scm_handle_by_throw, scm_ithrow), weaks.c
6247 (scm_weak_vector_gc_init, scm_mark_weak_vector_spines,
6248 scm_scan_weak_vectors), ramap.c (scm_array_fill_int), filesys.c
6249 (scm_dir_print): Mark unused parameters with SCM_UNUSED.
6250
6251 * error.h (SCM_NORETURN): Moved to __scm.h.
6252
6253 * error.h (ERRORH, SCM_ERROR_H), pairs.h (PAIRSH, SCM_PAIRS_H):
6254 Renamed <foo>H to SCM_<foo>_H.
6255
6256 * gc.c (debug_cells_gc_interval): New static variable.
6257
6258 (scm_assert_cell_valid): If selected by the user, perform
6259 additional garbage collections.
6260
6261 (scm_set_debug_cell_accesses_x): Extended to let the user specify
6262 if additional garbage collections are desired.
6263
6264 (mark_gc_async): If additional garbage collections are selected
6265 by the user, don't call the after-gc-hook. Instead require the
6266 user to run the hook manually.
6267
6268 * pairs.c (scm_error_pair_access): New function. Only compiled
6269 if SCM_DEBUG_PAIR_ACCESSES is set to 1.
6270
6271 * pairs.h (SCM_VALIDATE_PAIR): New macro.
6272
6273 (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): If
6274 SCM_DEBUG_PAIR_ACCESSES is set to 1, make sure that the argument
6275 is a real pair object. (Glocs are also accepted, but that may
6276 change.) If not, abort with an error message.
6277
6278 2001-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
6279
6280 * eval.c (SCM_VALIDATE_NON_EMPTY_COMBINATION): New macro.
6281
6282 (SCM_CEVAL, SCM_APPLY): Replace calls to SCM_EVALIM2 with calls
6283 to SCM_VALIDATE_NON_EMPTY_COMBINATION.
6284
6285 2001-06-05 Marius Vollmer <mvo@zagadka.ping.de>
6286
6287 * extensions.c (scm_c_register_extension): Allow NULL as library
6288 name.
6289 (load_extension): Ignore NULL library names when comparing.
6290
6291 * hash.c (scm_hasher): Use SCM_UNPACK in the case labels so that
6292 non-pointers are being compared. Thanks to Alexander Klimov!
6293
6294 2001-06-04 Gary Houston <ghouston@arglist.com>
6295
6296 * rw.c (scm_write_string_partial): new procedure implementing
6297 write-string/partial in (ice-9 rw).
6298 * rw.h: declare scm_write_string_partial.
6299
6300 2001-06-04 Marius Vollmer <mvo@zagadka.ping.de>
6301
6302 * keywords.c (keyword_print): Substract 1 from length of symbol
6303 name, accounting for the silly dash.
6304
6305 * dynl.c (scm_registered_modules, scm_clear_registered_modules):
6306 Do not emit deprecation warning.
6307
6308 Added exception notice to all files.
6309
6310 * dynl.c: Include "deprecation.h".
6311
6312 2001-06-03 Marius Vollmer <mvo@zagadka.ping.de>
6313
6314 * dynl.c (scm_register_module_xxx, scm_registered_modules,
6315 scm_clear_registered_modules): Deprecated.
6316
6317 2001-06-02 Rob Browning <rlb@cs.utexas.edu>
6318
6319 * .cvsignore: add guile_filter_doc_snarfage guile-snarf-docs
6320 guile-snarf-docs-texi.
6321
6322 * fports.c: HAVE_ST_BLKSIZE changed to
6323 HAVE_STRUCT_STAT_ST_BLKSIZE.
6324 (scm_fport_buffer_add): HAVE_ST_BLKSIZE changed to
6325 HAVE_STRUCT_STAT_ST_BLKSIZE.
6326
6327 * filesys.c (scm_stat2scm): HAVE_ST_RDEV changed to
6328 HAVE_STRUCT_STAT_ST_RDEV.
6329 (scm_stat2scm): HAVE_ST_BLKSIZE changed to
6330 HAVE_STRUCT_STAT_ST_BLKSIZE.
6331 (scm_stat2scm): HAVE_ST_BLOCKS changed to
6332 HAVE_STRUCT_STAT_ST_BLOCKS.
6333
6334 2001-06-02 Marius Vollmer <mvo@zagadka.ping.de>
6335
6336 * strports.c (scm_eval_string): Use scm_primitive_eval_x instead
6337 of scm_eval_x to allow module changes between the forms in the
6338 string. Set/restore module using scm_c_call_with_current_module.
6339
6340 * mkstemp.c: New file, slightly modified from libiberties
6341 mkstemps.c.
6342
6343 2001-05-31 Michael Livshin <mlivshin@bigfoot.com>
6344
6345 * guile-snarf-docs.in, guile-snarf-docs-texi.in,
6346 filter-doc-snarfage.c: new files.
6347
6348 * Makefile.am: add stuff to [build,] use and distribute
6349 guile-snarf-docs, guile-snarf-docs-texi, guile_filter_doc_snarfage.
6350
6351 * guile-snarf.in: grok the new snarf output.
6352
6353 * snarf.h: make the output both texttools- and `read'-friendly.
6354
6355 * guile-doc-snarf.in: reimplement in terms of guile-snarf and
6356 guile-snarf-docs. (should also deprecate, I guess. maybe not).
6357
6358 2001-05-31 Marius Vollmer <mvo@zagadka.ping.de>
6359
6360 * print.c (scm_simple_format): Support "~~" and "~%". Signal
6361 error for unsupported format controls and for superflous
6362 arguments. Thanks to Daniel Skarda!
6363
6364 * print.h, print.c (scm_print_symbol_name): Factored out of
6365 scm_iprin1.
6366 (scm_iprin1): Call it.
6367
6368 * keywords.c (keyword_print): Use scm_print_symbol_name so that
6369 weird names are printed correctly.
6370
6371 * print.c (scm_print_symbol_name): Symbols whose name starts with
6372 `#' or `:' or ends with `:' are considered weird.
6373
6374 2001-05-30 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6375
6376 * numbers.c (scm_difference, scm_divide): Clarified comments for -
6377 and /.
6378
6379 2001-05-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6380
6381 * debug.h: Removed prototype for scm_eval_string.
6382
6383 2001-05-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6384
6385 * symbols.c (scm_gensym): Fix buffer overrun (try `(gensym
6386 (make-string 2000 #\!))' in an older version).
6387
6388 Change strncpy to memcpy to allow embedded NUL characters in
6389 symbol prefix.
6390
6391 2001-05-28 Michael Livshin <mlivshin@bigfoot.com>
6392
6393 * hooks.c (scm_create_hook): deprecated.
6394 (make_hook): deleted.
6395 (scm_make_hook): all the hook creation code is now here.
6396
6397 * gc.c (scm_init_gc): don't call `scm_create_hook'. instead make
6398 a hook, make it permanent, and do a `scm_c_define' on it.
6399
6400 * strop.c (s_scm_string_capitalize_x): fix docstring quoting.
6401
6402 * socket.c (s_scm_inet_pton): fix docstring quoting.
6403 (s_scm_inet_ntop): ditto.
6404
6405 * num2integral.i.c (INTEGRAL2NUM): cast to fix a warning.
6406
6407 * hashtab.c (scm_internal_hash_fold): fix argument position in
6408 SCM_ASSERT.
6409
6410 * environments.c (s_scm_import_environment_set_imports_x): fix
6411 argument position in SCM_ASSERT.
6412
6413 * debug.c (s_scm_make_gloc): fix SCM packing/unpacking.
6414 (s_scm_make_iloc): ditto.
6415
6416 2001-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
6417
6418 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS): Make 1 the default.
6419
6420 * eval.c (promise_print): Read the promise's value as an object.
6421
6422 (SCM_CEVAL): Don't perform side-effecting operations in macro
6423 parameters.
6424
6425 * eval.h (SCM_EVALIM2): Fix the typing strictness of the
6426 conditional expression.
6427
6428 * gc.c (scm_master_freelist, scm_master_freelist2): Added missing
6429 initializer.
6430
6431 * gh_data.c (gh_set_substr): Removed redundant unsigned >= 0
6432 text, removed redundant computation of effective_length and fixed
6433 the overflow check.
6434
6435 * goops.c (test_slot_existence): Use SCM_EQ_P to compare SCM
6436 values.
6437
6438 (wrap_init): Don't use SCM_C[AD]R for non pairs.
6439
6440 (hell): Make it a scm_bits_t pointer rather than a SCM pointer.
6441
6442 * goops.c (scm_sys_modify_class), strports.c (st_resize_port),
6443 struct.h (SCM_SET_STRUCT_PRINTER): Store unpacked values.
6444
6445 * goops.h (SCM_ACCESSORS_OF, SCM_SLOT): Return a SCM value.
6446
6447 * goops.h (GOOPSH, SCM_GOOPS_H), modules.h (MODULESH,
6448 SCM_MODULES_H), objects.h (OBJECTSH, SCM_OBJECTS_H), struct.h
6449 (STRUCTH, SCM_STRUCT_H), symbols.h (SYMBOLSH, SCM_SYMBOLS_H),
6450 __scm.h (__SCMH, SCM___SCM_H): Change <foo>H to SCM_<foo>_H.
6451
6452 * modules.[ch] (scm_module_tag): Make it a scm_bits_t value.
6453
6454 * objects.h (SCM_SET_CLASS_INSTANCE_SIZE): Fixed typing.
6455
6456 * ramap.c (ramap_rp): Removed bogus `;´.
6457
6458 * sort.c (scm_restricted_vector_sort_x): Fixed signedness
6459 problem.
6460
6461 * symbols.h (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS, SCM_SYMBOL_FUNC,
6462 SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS, SCM_SET_SYMBOL_PROPS):
6463 Read SCM objects rather than scm_bits_t values.
6464
6465 * tags.h (SCM_VOIDP_TEST): Removed.
6466
6467 (SCM_DEBUG_TYPING_STRICTNESS): Now takes values 0, 1, 2. The
6468 value of 2 now corresponds to the former 1, the current 1
6469 corresponds to the former situation that SCM_VOIDP_TEST was
6470 defined.
6471
6472 (SCM): Now defined as typedef struct scm_unused_struct * SCM;
6473 If this appears to be not ANSI compliant, we will change it to
6474 typedef struct scm_unused_struct { } * SCM;
6475 Thanks to Han-Wen Nienhuys for the suggestion.
6476
6477 * unif.c (scm_array_set_x): Fix typing problem, and use
6478 SCM_UVECTOR_BASE instead of SCM_VELTS or SCM_CELL_WORD_1 when
6479 dealing with uniform vectors.
6480
6481 2001-05-27 Michael Livshin <mlivshin@bigfoot.com>
6482
6483 * gc.c (scm_init_storage): init `scm_gc_registered_roots'.
6484 (scm_igc): mark from them, too (precisely, not conservatively!).
6485
6486 * root.h (scm_gc_registered_roots): new object in
6487 scm_sys_protects.
6488
6489 * hooks.c (scm_create_hook): call `scm_gc_protect_object' instead
6490 `scm_protect_object'. shouldn't call it at all, though, it seems.
6491
6492 * gc.c (scm_[un]protect_object): deprecated.
6493 (scm_gc_[un]protect_object): new names for scm_[un]protect_object.
6494 (scm_gc_[un]register_root[s]): new.
6495
6496 * gc.h: add prototypes for scm_gc_[un]protect_object,
6497 scm_gc_[un]register_root[s].
6498
6499 2001-05-26 Michael Livshin <mlivshin@bigfoot.com>
6500
6501 revert the controversial part of the 2001-05-24 changes.
6502
6503 2001-05-25 Marius Vollmer <mvo@zagadka.ping.de>
6504
6505 * modules.c (scm_env_module): Exported to Scheme.
6506
6507 * eval.c (scm_debug_opts): New option `show-file-name'.
6508
6509 * debug.h (SCM_SHOW_FILE_NAME): New.
6510
6511 * backtrace.c: Include "libguile/filesys.h".
6512 (sym_base, display_backtrace_get_file_line,
6513 display_backtrace_file, display_backtrace_file_and_line): New.
6514 (display_frame): Call display_backtrace_file_and_line if that is
6515 requested.
6516 (display_backtrace_body): Call scm_display_backtrace_file if
6517 requested.
6518
6519 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr):
6520 Prototypes removed since there's no definition for these
6521 functions.
6522
6523 2001-05-24 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6524
6525 * unif.c (scm_make_ra, array_free), unif.h (SCM_ARRAY_DIMS):
6526 Changed use of scm_array->scm_array_t and
6527 scm_array_dim->scm_array_dim_t to enable build with
6528 --disable-deprecated.
6529
6530 2001-05-24 Michael Livshin <mlivshin@bigfoot.com>
6531
6532 The purpose of this set of changes is to regularize Guile's usage
6533 of ANSI C integral types, with the following ideas in mind:
6534
6535 - SCM does not nesessarily have to be long.
6536 - long is not nesessarily enough to store pointers.
6537 - long is not nesessarily the same size as int.
6538
6539 The changes are incomplete and possibly buggy. Please test on
6540 something exotic.
6541
6542 * validate.h
6543 (SCM_NUM2{SIZE,PTRDIFF,SHORT,USHORT,BITS,UBITS,INT,UINT}[_DEF]):
6544 new macros.
6545
6546 * unif.h: type renaming:
6547 scm_array -> scm_array_t
6548 scm_array_dim -> scm_array_dim_t
6549 the old names are deprecated, all in-Guile uses changed.
6550
6551 * tags.h (scm_ubits_t): new typedef, representing unsigned
6552 scm_bits_t.
6553
6554 * stacks.h: type renaming:
6555 scm_info_frame -> scm_info_frame_t
6556 scm_stack -> scm_stack_t
6557 the old names are deprecated, all in-Guile uses changed.
6558
6559 * srcprop.h: type renaming:
6560 scm_srcprops -> scm_srcprops_t
6561 scm_srcprops_chunk -> scm_srcprops_chunk_t
6562 the old names are deprecated, all in-Guile uses changed.
6563
6564 * gsubr.c, procs.c, print.c, ports.c, read.c, rdelim.c, ramap.c,
6565 rw.c, smob.c, sort.c, srcprop.c, stacks.c, strings.c, strop.c,
6566 strorder.c, strports.c, struct.c, symbols.c, unif.c, values.c,
6567 vectors.c, vports.c, weaks.c:
6568 various int/size_t -> size_t/scm_bits_t changes.
6569
6570 * random.h: type renaming:
6571 scm_rstate -> scm_rstate_t
6572 scm_rng -> scm_rng_t
6573 scm_i_rstate -> scm_i_rstate_t
6574 the old names are deprecated, all in-Guile uses changed.
6575
6576 * procs.h: type renaming:
6577 scm_subr_entry -> scm_subr_entry_t
6578 the old name is deprecated, all in-Guile uses changed.
6579
6580 * options.h (scm_option_t.val): unsigned long -> scm_bits_t.
6581 type renaming:
6582 scm_option -> scm_option_t
6583 the old name is deprecated, all in-Guile uses changed.
6584
6585 * objects.c: various long -> scm_bits_t changes.
6586 (scm_i_make_class_object): flags: unsigned long -> scm_ubits_t
6587
6588 * numbers.h (SCM_FIXNUM_BIT): deprecated, renamed to
6589 SCM_I_FIXNUM_BIT.
6590
6591 * num2integral.i.c: new file, multiply included by numbers.c, used
6592 to "templatize" the various integral <-> num conversion routines.
6593
6594 * numbers.c (scm_mkbig, scm_big2num, scm_adjbig, scm_normbig,
6595 scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl):
6596 deprecated.
6597 (scm_i_mkbig, scm_i_big2inum, scm_i_adjbig, scm_i_normbig,
6598 scm_i_copybig, scm_i_short2big, scm_i_ushort2big, scm_i_int2big,
6599 scm_i_uint2big, scm_i_long2big, scm_i_ulong2big, scm_i_bits2big,
6600 scm_i_ubits2big, scm_i_size2big, scm_i_ptrdiff2big,
6601 scm_i_long_long2big, scm_i_ulong_long2big, scm_i_dbl2big,
6602 scm_i_big2dbl, scm_short2num, scm_ushort2num, scm_int2num,
6603 scm_uint2num, scm_bits2num, scm_ubits2num, scm_size2num,
6604 scm_ptrdiff2num, scm_num2short, scm_num2ushort, scm_num2int,
6605 scm_num2uint, scm_num2bits, scm_num2ubits, scm_num2ptrdiff,
6606 scm_num2size): new functions.
6607
6608 * modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.
6609
6610 * load.c: change int -> size_t in various places (where the
6611 variable is used to store a string length).
6612 (search-path): call scm_done_free, not scm_done_malloc.
6613
6614 * list.c (scm_ilength): return a scm_bits_t, not long.
6615 some other {int,long} -> scm_bits_t changes.
6616
6617 * hashtab.c: various [u]int -> scm_bits_t changes.
6618 scm_ihashx_closure -> scm_ihashx_closure_t (and made a typedef).
6619 (scm_ihashx): n: uint -> scm_bits_t
6620 use scm_bits2num instead of scm_ulong2num.
6621
6622 * gsubr.c: various int -> scm_bits_t changes.
6623
6624 * goops.[hc]: various {int,long} -> scm_bits_t changes.
6625
6626 * gh_data.c (gh_num2int): no loss of precision any more.
6627
6628 * gh.h (gh_str2scm): len: int -> size_t
6629 (gh_{get,set}_substr): start: int -> scm_bits_t,
6630 len: int -> size_t
6631 (gh_<num>2scm): n: int -> scm_bits_t
6632 (gh_*vector_length): return scm_[u]size_t, not unsigned long.
6633 (gh_length): return scm_bits_t, not unsigned long.
6634
6635 * gc.[hc]: various small changes relating to many things stopping
6636 being long and starting being scm_[u]bits_t instead.
6637 scm_mallocated should no longer wrap around.
6638
6639 * fports.h: type renaming:
6640 scm_fport -> scm_fport_t
6641 the old name is deprecated, all in-Guile uses changed.
6642
6643 * fports.c (fport_fill_input): count: int -> scm_bits_t
6644 (fport_flush): init_size, remaining, count: int -> scm_bits_t
6645
6646 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr): removed
6647 those prototypes, as the functions they prototype don't exist.
6648
6649 * fports.c (default_buffer_size): int -> size_t
6650 (scm_fport_buffer_add): read_size, write_size: int -> scm_bits_t
6651 default_size: int -> size_t
6652 (scm_setvbuf): csize: int -> scm_bits_t
6653
6654 * fluids.c (n_fluids): int -> scm_bits_t
6655 (grow_fluids): old_length, i: int -> scm_bits_t
6656 (next_fluid_num, scm_fluid_ref, scm_fluid_set_x): n: int ->
6657 scm_bits_t
6658 (scm_c_with_fluids): flen, vlen: int -> scm_bits_t
6659
6660 * filesys.c (s_scm_open_fdes): changed calls to SCM_NUM2LONG to
6661 the new and shiny SCM_NUM2INT.
6662
6663 * extensions.c: extension -> extension_t (and made a typedef).
6664
6665 * eval.h (SCM_IFRAME): cast to scm_bits_t, not int. just so
6666 there are no nasty surprises if/when the various deeply magic tag
6667 bits move somewhere else.
6668
6669 * eval.c: changed the locals used to store results of SCM_IFRAME,
6670 scm_ilength and such to be of type scm_bits_t (and not int/long).
6671 (iqq): depth, edepth: int -> scm_bits_t
6672 (scm_eval_stack): int -> scm_bits_t
6673 (SCM_CEVAL): various vars are not scm_bits_t instead of int.
6674 (check_map_args, scm_map, scm_for_each): len: long -> scm_bits_t
6675 i: int -> scm_bits_t
6676
6677 * environments.c: changed the many calls to scm_ulong2num to
6678 scm_ubits2num.
6679 (import_environment_fold): proc_as_ul: ulong -> scm_ubits_t
6680
6681 * dynwind.c (scm_dowinds): delta: long -> scm_bits_t
6682
6683 * debug.h: type renaming:
6684 scm_debug_info -> scm_debug_info_t
6685 scm_debug_frame -> scm_debug_frame_t
6686 the old names are deprecated, all in-Guile uses changed.
6687 (scm_debug_eframe_size): int -> scm_bits_t
6688
6689 * debug.c (scm_init_debug): use scm_c_define instead of the
6690 deprecated scm_define.
6691
6692 * continuations.h: type renaming:
6693 scm_contregs -> scm_contregs_t
6694 the old name is deprecated, all in-Guile uses changed.
6695 (scm_contregs_t.num_stack_items): size_t -> scm_bits_t
6696 (scm_contregs_t.num_stack_items): ulong -> scm_ubits_t
6697
6698 * continuations.c (scm_make_continuation): change the type of
6699 stack_size from long to scm_bits_t.
6700
6701 * ports.h: type renaming:
6702 scm_port_rw_active -> scm_port_rw_active_t (and made a typedef)
6703 scm_port -> scm_port_t
6704 scm_ptob_descriptor -> scm_ptob_descriptor_t
6705 the old names are deprecated, all in-Guile uses changed.
6706 (scm_port_t.entry): int -> scm_bits_t.
6707 (scm_port_t.line_number): int -> long.
6708 (scm_port_t.putback_buf_size): int -> size_t.
6709
6710 * __scm.h (long_long, ulong_long): deprecated (they pollute the
6711 global namespace and have little value beside that).
6712 (SCM_BITS_LENGTH): new, is the bit size of scm_bits_t (i.e. of an
6713 SCM handle).
6714 (ifdef spaghetti): include sys/types.h and sys/stdtypes.h, if they
6715 exist (for size_t & ptrdiff_t).
6716 (scm_sizet): deprecated.
6717
6718 * Makefile.am (noinst_HEADERS): add num2integral.i.c
6719
6720 2001-05-23 Marius Vollmer <mvo@zagadka.ping.de>
6721
6722 * snarf.h (SCM_CONST_LONG): Use SCM_VCELL_INIT instead of
6723 SCM_VARIABLE_INIT since that it what it used to be.
6724
6725 * deprecation.c (scm_include_deprecated_features): Make docstring
6726 ANSIsh. Thanks to Matthias Köppe!
6727
6728 2001-05-21 Marius Vollmer <mvo@zagadka.ping.de>
6729
6730 * symbols.c (scm_mem2symbol): Re-introduce indirect cell. It is
6731 needed for weak-key hashtables.
6732
6733 * procs.c (scm_make_subr_with_generic): Add missing last argument
6734 in call to scm_c_define_gsubr_with_generic. Thanks to Ariel Rios.
6735
6736 * eval.c: Use SCM_EQ_P instead of `==' or `!=' in certain
6737 places. (scm_c_improper_memq): Return 1 instead of SCM_BOOL_T.
6738
6739 * eval.h (SCM_EVALIM2): Use SCM_EQ_P instead of `=='.
6740
6741 2001-05-20 Marius Vollmer <mvo@zagadka.ping.de>
6742
6743 * symbols.c (scm_mem2symbol): Call `scm_must_strndup' instead of
6744 `duplicate_string'. Do not use an indirect cell, store symbol
6745 directly in collision list of hash table.
6746 (duplicate_string): Removed.
6747
6748 * init.c (scm_init_guile_1): Call scm_init_extensions.
6749
6750 * Makefile.am: Add "extensions.c" and related files in all the
6751 right places.
6752
6753 * extensions.h, extension.c: New files.
6754
6755 * gc.h, gc.c (scm_must_strdup, scm_must_strndup): New.
6756
6757 * modules.h (scm_system_module_env_p): Move out of deprecated
6758 section.
6759
6760 * rw.h (scm_init_rw): Added prototype.
6761
6762 * gsubr.h, gsubr.c (scm_c_make_gsubr, scm_c_define_gsubr,
6763 scm_c_make_gsubr_with_generic, scm_c_define_gsubr_with_generic):
6764 New functions. They replace scm_make_gsubr and
6765 scm_make_gsubr_with_generic. The `make' variants only create the
6766 gsubr object, while the `define' variants also put it into the
6767 current module. Changed all callers.
6768 (scm_make_gsubr, scm_make_gsubr_with_generic): Deprecated.
6769
6770 * procs.h, procs.c (scm_c_make_subr, scm_c_define_subr,
6771 scm_c_make_subr_with_generic, scm_c_define_subr_with_generic): New
6772 functions. They replace scm_make_subr, scm_make_subr_opt and
6773 scm_make_subr_with_generic. The `make' variants only create the
6774 subr object, while the `define' variants also put it into the
6775 current module. Changed all callers.
6776 (scm_make_subr, scm_make_subr_opt, scm_make_subr_with_generic):
6777 Deprecated.
6778
6779 * eval.c, gc.c, gh_funcs.c, goops.c, macros.c, pairs.c, ramap.c,
6780 rdelim.c, rw.c, scmsigs.c, snarf.h, values.c: Changed according to
6781 the comments above.
6782
6783 2001-05-19 Neil Jerram <neil@ossau.uklinux.net>
6784
6785 * throw.c (scm_lazy_catch): Slight docstring clarification.
6786
6787 2001-05-19 Marius Vollmer <mvo@zagadka.ping.de>
6788
6789 * throw.c: Lazy-catch handlers are no longer allowed to return.
6790 Fixed comments throughout.
6791 (scm_ithrow): Signal an error when a lazy-catch handler returns.
6792 Moved actual jump to jmpbuf into if-branch where the jmpbuf is
6793 recognized as such.
6794
6795 * version.c (s_scm_micro_version): Fix typo in FUNC_NAME, it
6796 refered to s_scm_minor_version previously.
6797
6798 * modules.h, modules.c: Moved around a lot of code so that
6799 deprecated features appear at the bottom.
6800 (root_module_lookup_closure, scm_sym_app, scm_sym_modules,
6801 module_prefix, make_modules_in_var, beautify_user_module_x_var,
6802 scm_the_root_module, scm_make_module, scm_ensure_user_module,
6803 scm_load_scheme_module): Deprecated.
6804 (scm_system_module_env_p): Return SCM_BOOL_T directly for
6805 environments corresponding to the root module.
6806 (convert_module_name, scm_c_resolve_module,
6807 scm_c_call_with_current_module, scm_c_define_module,
6808 scm_c_use_module, scm_c_export): New.
6809 (the_root_module): New static variant of scm_the_root_module. Use
6810 it everywhere instead of scm_the_root_module.
6811
6812 * fluids.h, fluids.c (scm_internal_with_fluids): Deprecated.
6813 (scm_c_with_fluids): Renamed from scm_internal_with_fluids.
6814 (scm_c_with_fluid): New.
6815 (scm_with_fluids): Use scm_c_with_fluids instead of
6816 scm_internal_with_fluids.
6817
6818 * goops.h, goops.c (scm_init_goops_builtins): Renamed from
6819 `scm_init_goops'. Do not explicitly create/switch modules.
6820 Return SCM_UNSPECIFIED.
6821 (scm_init_goops): Only register `%init-goops-builtins' procedure.
6822 (scm_load_goops): Use scm_c_resolve_module instead of
6823 scm_resolve_module.
6824
6825 * init.c (scm_init_guile_1): Call `scm_init_goops' instead of
6826 `scm_init_oop_goops_goopscore_module'. Call `scm_init_rdelim' and
6827 `scm_init_rw' prior to loading the startup files.
6828
6829 * rdelim.h, rdelim.c: (scm_init_rdelim_builtins): Renamed from
6830 scm_init_rdelim. Do not explicitly create/switch modules.
6831 Return SCM_UNSPECIFIED.
6832 (scm_init_rdelim): Only register `%init-rdelim-builtins'
6833 procedure.
6834
6835 * rw.c (scm_init_rw_builtins): Renamed from scm_init_rw. Do not
6836 explicitly create/switch modules. Return SCM_UNSPECIFIED.
6837 (scm_init_rw): Only register `%init-rw-builtins' procedure.
6838
6839 * script.c (scm_shell): Evaluate the compiled switches in the
6840 current module, not in the root module.
6841
6842 2001-05-18 Marius Vollmer <mvo@zagadka.ping.de>
6843
6844 * fluids.c (scm_c_with_fluids): Rename from
6845 scm_internal_with_fluids.
6846 (scm_internal_with_fluids): Deprecated.
6847 (scm_c_with_fluid): New.
6848
6849 2001-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
6850
6851 * print.h (PRINTH, SCM_PRINT_H): Renamed PRINTH to SCM_PRINT_H.
6852
6853 (SCM_PORT_WITH_PS_PORT, SCM_PORT_WITH_PS_PS): Only pairs may be
6854 accessed with SCM_C[AD]R.
6855
6856 (SCM_COERCE_OUTPORT): Removed redundant SCM_NIMP test.
6857
6858 2001-05-16 Rob Browning <rlb@cs.utexas.edu>
6859
6860 * version.c (s_scm_major_version): doc fixes.
6861 (s_scm_minor_version): doc fixes.
6862 (s_scm_minor_version): new function.
6863
6864 * version.h (scm_init_version): new function.
6865
6866 * versiondat.h.in: add GUILE_MICRO_VERSION.
6867
6868 2001-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
6869
6870 * deprecation.c (scm_init_deprecation): Renamed
6871 GUILE_WARN_DEPRECATED_DEFAULT to SCM_WARN_DEPRECATED_DEFAULT.
6872
6873 2001-05-16 Marius Vollmer <mvo@zagadka.ping.de>
6874
6875 * Makefile.am (cpp_sig_symbols.c, cpp_err_symbols.c): Make
6876 dependent on cpp_cnvt.awk
6877
6878 2001-05-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6879
6880 * script.c (scm_compile_shell_switches): New command line option
6881 `--use-srfi' for loading a list of SRFIs on startup.
6882 (scm_shell_usage): Added `--use-srfi' to help message.
6883
6884 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
6885
6886 Merged from mvo-vcell-cleanup-1-branch.
6887
6888 The concept of vcells has been removed from Guile. With it,
6889 explicit obarrays and associated operations are gone. Use
6890 hashtables instead of obarrays.
6891
6892 Throughout: use scm_sym2var instead of scm_sym2vcell and treat
6893 result as variable instead of vcell. Glocs no longer point to a
6894 vcell but to a variable. Use scm_c_define instead of
6895 scm_sysintern and treat the result as a variable (which it is),
6896 not a vcell.
6897
6898 * variable.c, variable.h (SCM_VARVCELL, SCM_UDVARIABLEP,
6899 SCM_DEFVARIABLEP): Deprecated.
6900 (SCM_VARIABLE_REF, SCM_VARIABLE_SET, SCM_VARIABLE_LOC): New.
6901 (variable_print): Do not print name of variable.
6902 (variable_equalp): Compare values, not vcells.
6903 (anonymous_variable_sym): Removed.
6904 (make_vcell_variable): Removed.
6905 (make_variable): New, as replacement.
6906 (scm_make_variable, scm_make_undefined_variable): Do not take name
6907 hint parameter.
6908 (scm_variable_ref): Check for SCM_UNDEFINED and throw "unbound"
6909 error in that case.
6910 (scm_builtin_variable): Deprecated.
6911
6912 * symbols.c, symbols.h (scm_sym2vcell, scm_sym2ovcell_soft,
6913 scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
6914 scm_intern, scm_intern0, scm_sysintern0_no_module_lookup,
6915 scm_sysintern, scm_sysintern0, scm_symbol_value0,
6916 scm_string_to_obarray_symbol, scm_intern_symbol,
6917 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned,
6918 scm_symbol_bound_p, scm_symbol_set_x, scm_gentmp, gentmp_counter):
6919 Deprecated and moved to "symbols-deprecated.c".
6920 (copy_and_prune_obarray, scm_builtin_bindings): Removed.
6921 (scm_init_symbols): Call scm_init_symbols_deprecated.
6922 * symbols-deprecated.c: New file.
6923 * Makefile.am: Added symbols-deprecated.c and related files in all
6924 the right places.
6925
6926 * snarf.h (SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
6927 SCM_GLOBAL_VCELL_INIT): Deprecated.
6928 (SCM_VARIABLE, SCM_GLOBAL_VARIABLE, SCM_VARIABLE_INIT,
6929 SCM_GLOBAL_VARIABLE_INIT): New, as replacement. Changed all uses.
6930
6931 * print.c (scm_iprin1): Use scm_module_reverse_lookup instead of
6932 SCM_GLOC_SYM.
6933
6934 * evalext.c, filesys.c, fports.c, gdbint.c, gh_data.c, gsubr.c,
6935 hooks.c, load.c, numbers.c, objects.c, ports.c, posix.c, procs.c,
6936 ramap.c, random.c, read.c, regex-posix.c, scmsigs.c, script.c,
6937 socket.c, srcprop.c, stacks.c, stime.c, struct.c, tag.c, throw.c:
6938 Changed according to the `throughout' comments.
6939
6940 * modules.h, modules.c (scm_module_system_booted_p): Changed type
6941 to `int'.
6942 (scm_module_type): Removed.
6943 (the_root_module): Renamed to the_root_module_var. Now points to
6944 a variable instead of a vcell. Updated all uses.
6945 (scm_the_root_module): Return SCM_BOOL_F when module systems
6946 hasn't been booted yet.
6947 (SCM_VALIDATE_STRUCT_TYPE): Removed.
6948 (scm_post_boot_init_modules): Made static.
6949 (scm_set_current_module): Call scm_post_boot_init_modules on first
6950 call.
6951 (make_modules_in, beautify_user_module_x, resolve_module,
6952 try_module_autoload, module_make_local_var_x): Tacked on "_var"
6953 suffix. Now point to variables instead of vcells. Updated all
6954 uses.
6955 (scm_module_lookup_closure): Deal with the module being SCM_BOOL_F
6956 and return SCM_BOOL_F in that case.
6957 (scm_module_transformer): Likewise.
6958 (sym_module, scm_lookup_closure_module, scm_env_module): New.
6959 (SCM_F_EVAL_CLOSURE_INTERFACE, SCM_EVAL_CLOSURE_INTERFACE_P): New.
6960 (scm_eval_closure_lookup): Do not allow new definitions when
6961 `interface' flag is set.
6962 (scm_standard_interface_eval_closure): New.
6963 (scm_pre_modules_obarray, scm_sym2var, scm_module_lookup,
6964 scm_lookup, scm_module_define, scm_define, scm_c_module_lookup,
6965 scm_c_lookup, scm_c_module_define, scm_c_define,
6966 scm_module_reverse_lookup, scm_get_pre_modules_obarray,
6967 scm_modules_prehistory): New.
6968 (scm_post_boot_init_modules): Use scm_c_define and scm_c_lookup
6969 instead of scm_intern0.
6970
6971 * macros.c (scm_make_synt): Return SCM_UNSPECIFIED instead of the
6972 symbol.
6973
6974 * keywords.c (s_scm_make_keyword_from_dash_symbol): Use a regular
6975 hashtable operations to maintain the keywords, not obarray ones.
6976
6977 * init.c (scm_load_startup_files): Do not call
6978 scm_post_boot_init_modules. This is done by
6979 scm_set_current_module now.
6980 (scm_init_guile_1): Call scm_modules_prehistory. Call
6981 scm_init_variable early on.
6982
6983 * goops.c (s_scm_sys_goops_loaded): Get
6984 var_compute_applicable_methods from scm_sym2var, not from a direct
6985 invocation of scm_goops_lookup_closure.
6986
6987 * gh_funcs.c (gh_define): Return SCM_UNSPECIFIED instead of vcell.
6988
6989 * gc.c: Added simple debugging hack to mark phase of GC: When
6990 activated, do not tail-call scm_gc_mark. This gives nice
6991 backtraces.
6992 (scm_unhash_name): Removed.
6993
6994 * feature.c (features): Renamed to features_var. Now points to a
6995 variable instead of a vcell. Updated all uses.
6996
6997 * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): Use
6998 `scm_current_module_lookup_closure' which will do the right thing
6999 when the module system hasn't been booted yet.
7000 (SCM_GLOC_SYM): Removed.
7001 (SCM_GLOC_VAR, SCM_GLOC_SET_VAL): New.
7002 (SCM_GLOC_VAL, SCM_GLOC_LOC): Reimplemented in terms of variables.
7003
7004 * eval.c (scm_lookupcar, scm_lookupcar1): Deal with variables
7005 instead of with vcells. Do not overwrite `var' with the result of
7006 the lookup, use the new `real_var' instead. Remove `var2' in
7007 exchange (which was only used with threads).
7008 (sym_three_question_marks): New.
7009 (scm_unmemocar): Use `scm_module_reverse_lookup' instead of
7010 `SCM_GLOC_SYM'.
7011 (scm_lisp_nil, scm_lisp_t): Directly define as symbols.
7012 (scm_m_atfop): Expect the function definition to be a variable
7013 instead of a vcell.
7014 (scm_macroexp): Do not use `unmemocar', explicitely remember the
7015 symbol instead.
7016 (scm_unmemocopy): Removed thoughts about anti-macro interface.
7017 (scm_eval_args): Use more explicit code in the gloc branch of the
7018 atrocious struct ambiguity test. The optimizer will sort this
7019 out.
7020 (scm_deval_args): Likewise.
7021 (SCM_CEVAL): Likewise. Also, do not use unmemocar, explicitely
7022 remember the symbol instead. Added some comments where
7023 scm_tc3_cons_gloc really exclusively refers to structs.
7024 (scm_init_eval): Use scm_define to initialize "nil" and "t" to
7025 scm_lisp_nil and scm_lisp_t, respectively. Use scm_define instead
7026 of scm_sysintern in general.
7027
7028 * dynwind.c (scm_swap_bindings): Use SCM_GLOC_SET_VAL instead of
7029 explicit magic.
7030
7031 * debug.c (s_scm_make_gloc): Only allow proper variables, no
7032 pairs. Put the variable directly in the gloc.
7033 (s_scm_gloc_p): Use `scm_tc3_cons_gloc' instead of the magic `1'.
7034 (scm_init_debug): Use scm_c_define instead scm_sysintern.
7035
7036 * cpp_cnvt.awk: Emit "scm_c_define" instead of "scm_sysintern".
7037
7038 * backtrace.h, backtrace.c (scm_the_last_stack_fluid): Renamed to
7039 scm_the_last_stack_fluid_var. It now points to a variable instead
7040 of a vcell. Updated all uses.
7041 (scm_has_shown_backtrace_hint_p_var): Now points to a variable
7042 instead of a vcell. Updated all uses.
7043
7044 * _scm.h: Include "variables.h" and "modules.h" since almost
7045 everybody needs them now.
7046
7047 * root.h (scm_symhash, scm_symhash_vars): Removed.
7048 * gc.c (scm_init_storage): Do not initialize them.
7049
7050 2001-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
7051
7052 * eval.c (scm_init_eval): Initialize scm_undefineds and
7053 scm_listofnull.
7054
7055 * gc.c (scm_debug_newcell, scm_debug_newcell2): Fixed to behave
7056 like the SCM_NEWCELL macro counterparts.
7057
7058 (scm_init_storage, scm_init_gc): Moved initialization of
7059 scm_tc16_allocated from scm_init_gc to scm_init_storage.
7060
7061 (scm_init_storage): Moved initialization of scm_undefineds and
7062 scm_listofnull to eval.c, initializion of scm_nullstr to
7063 strings.c, initializion of scm_nullvect to vectors.c.
7064
7065 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Prefer SCM_NULLP over
7066 SCM_IMP, as in scm_debug_newcell and scm_debug_newcell2.
7067
7068 * init.c (scm_init_guile_1): Reordered some initializations and
7069 added dependcy information comments.
7070
7071 * load.c (scm_init_load): Use scm_nullstr.
7072
7073 * strings.c (scm_init_strings): Initialize scm_nullstr.
7074
7075 * vectors.c (scm_init_vectors): Initialize scm_nullvect.
7076
7077 2001-05-15 Marius Vollmer <mvo@zagadka.ping.de>
7078
7079 * values.c (print_values): Print as a unreadable object, not as
7080 multiple lines. Thanks to Matthias Köppe!
7081
7082 2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
7083
7084 * deprecation.c: Fixed copyright date.
7085
7086 * deprecation.h (DEPRECATION_H, SCM_DEPRECATION_H): Renamed
7087 DEPRECATION_H to SCM_DEPRECATION_H.
7088
7089 2001-05-10 Thien-Thi Nguyen <ttn@revel.glug.org>
7090
7091 * guile-doc-snarf.in: Update copyright.
7092 Fix relative path bug. Thanks to Sergey Poznyakoff.
7093
7094 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
7095
7096 * ports.c (scm_port_revealed, scm_set_port_revealed_x): Only
7097 accept open ports. Thanks to Quetzalcoatl Bradley!
7098
7099 2001-05-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7100
7101 * procs.c: Increased `scm_subr_table_room' to 800 because Guile now
7102 has 779 primitives on startup.
7103
7104 2001-05-09 Marius Vollmer <mvo@zagadka.ping.de>
7105
7106 * eval.c (scm_i_eval): Copy expression before passing it to
7107 SCM_XEVAL. The copy operation was removed unintendedly during my
7108 change on 2001-03-25.
7109
7110 2001-05-09 Michael Livshin <mlivshin@bigfoot.com>
7111
7112 from Matthias Köppe (thanks!):
7113
7114 * ports.c (scm_c_read): pointer arithmetic on void pointers isn't
7115 portable.
7116
7117 * deprecation.c (s_scm_include_deprecated_features): ANSI'fied the
7118 docstring.
7119
7120 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
7121
7122 * gc.c (scm_init_gc): Added FIXME comment.
7123
7124 * hooks.c: Since hooks don't have a name any more, it is not
7125 necessary to include objprop.h.
7126
7127 (hook_print, scm_add_hook_x): Replace SCM_NFALSEP by !SCM_FALSEP.
7128
7129 (symbol_name, scm_make_hook_with_name): Removed.
7130
7131 (scm_create_hook): Don't set the hook's name property.
7132
7133 * hooks.h (HOOKSH, SCM_HOOKS_H): Renamed HOOKSH to SCM_HOOKS_H.
7134
7135 (SCM_HOOK_NAME, scm_make_hook_with_name): Removed.
7136
7137 * init.c (scm_init_guile_1): Hooks don't use objprops any more.
7138
7139 * numbers.c (SCM_FLOBUFLEN, FLOBUFLEN, scm_number_to_string,
7140 scm_print_real, scm_print_complex): Renamed SCM_FLOBUFLEN to
7141 FLOBUFLEN and define it unconditionally.
7142
7143 2001-05-07 Marius Vollmer <mvo@zagadka.ping.de>
7144
7145 * gh_data.c (gh_lookup): Call gh_module_lookup with
7146 `scm_current_module ()', not `#f'.
7147 (gh_module_lookup): Expect a module instead of an obarray as first
7148 argument and do lookup in that module.
7149
7150 * ramap.c (raeql_1): Do not call scm_uniform_vector_length on
7151 arrays. The length of array is already determined differently and
7152 scm_uniform_vector_length does not work on arrays.
7153
7154 2001-05-06 Marius Vollmer <mvo@zagadka.ping.de>
7155
7156 * snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
7157 as well. "SCM (*)(...)" does not work on RedHat 7.1.
7158
7159 * __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
7160 they are not used. Changed `wrong type' error into `wrong num
7161 args' error. Changed all callers.
7162
7163 * numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
7164 arguments are supplied.
7165
7166 2001-05-05 Thien-Thi Nguyen <ttn@revel.glug.org>
7167
7168 * regex-posix.c (scm_regexp_exec): Expand docstring to briefly
7169 describe `regexp/notbol' and `regexp/noteol' execution flags.
7170
7171 * strop.c (scm_substring_move_x): Doc fix; nfc.
7172
7173 2001-05-05 Marius Vollmer <mvo@zagadka.ping.de>
7174
7175 * objects.c, objects.h (scm_valid_object_procedure_p): New.
7176 (scm_set_object_procedure_x): Use it to check argument. Fix
7177 docstring.
7178
7179 * evalext.c (scm_definedp): Fix docstring.
7180
7181 2001-05-05 Gary Houston <ghouston@arglist.com>
7182
7183 * socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
7184 support.
7185
7186 2001-05-04 Neil Jerram <neil@ossau.uklinux.net>
7187
7188 * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
7189 symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
7190 Change R4RS references to R5RS.
7191
7192 * guile-snarf.awk.in: Fixes so that (i) blank lines in the
7193 docstring source are correctly reproduced in the output (ii)
7194 we don't anymore get occasional trailing quotes. Also reorganized
7195 and commented the code a little.
7196
7197 * scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
7198 fixes.
7199
7200 2001-05-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7201
7202 * strop.c (scm_string_split): New procedure.
7203
7204 * strop.h (scm_string_split): Added prototype.
7205
7206 2001-05-04 Gary Houston <ghouston@arglist.com>
7207
7208 * socket.c: define uint32_t if netdb.h doesn't. thanks to
7209 Dale P. Smith.
7210
7211 2001-05-02 Marius Vollmer <mvo@zagadka.ping.de>
7212
7213 * rw.c: Include "modules.h" and "strports.h".
7214
7215 * net_db.h (scm_gethost): Added prototype.
7216
7217 * deprecation.h, deprecation.c: New.
7218 * Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
7219 (DOT_X_FILES): Added "deprecation.x".
7220 (modinclude_HEADERS): Added "deprecation.h".
7221
7222 * init.c: Include "deprecation.h".
7223 (scm_init_guile_1): Call scm_init_deprecation.
7224
7225 2001-05-01 Marius Vollmer <mvo@zagadka.ping.de>
7226
7227 * gh.h (gh_init_guile, gh_make_string, gh_string_length,
7228 gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
7229 New.
7230
7231 2001-04-29 Gary Houston <ghouston@arglist.com>
7232
7233 * rw.c: new file, implementing C part of module (ice-9 rw).
7234 (scm_read_string_x_partial): moved from ioext.c
7235 (scm_init_rw): new proc.
7236 * rw.h: new file.
7237 init.c: include rw.h and call scm_init_rw.
7238 Makefile.am: include rw.c and rw.h.
7239
7240 2001-04-28 Rob Browning <rlb@cs.utexas.edu>
7241
7242 * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
7243 know what's supposed to happen to it.
7244
7245 * list.h (scm_list_star): deprecation expired - removed.
7246
7247 * numbers.h (scm_dblproc): deprecation expired - removed.
7248 (SCM_UNEGFIXABLE): deprecation expired - removed.
7249 (SCM_FLOBUFLEN): deprecation expired - removed.
7250 (SCM_INEXP): deprecation expired - removed.
7251 (SCM_CPLXP): deprecation expired - removed.
7252 (SCM_REAL): deprecation expired - removed.
7253 (SCM_IMAG): deprecation expired - removed.
7254 (SCM_REALPART): deprecation expired - removed.
7255 (scm_makdbl): deprecation expired - removed.
7256 (SCM_SINGP): deprecation expired - removed.
7257 (SCM_NUM2DBL): deprecation expired - removed.
7258 (SCM_NO_BIGDIG): deprecation expired - removed.
7259
7260 * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
7261 (scm_tc_dblr): deprecation expired - removed.
7262 (scm_tc_dblc): deprecation expired - removed.
7263 (scm_tc16_flo): deprecation expired - removed.
7264 (scm_tc_flo): deprecation expired - removed.
7265
7266 * tag.h (scm_tag): deprecation expired - removed.
7267
7268 * tag.c: (scm_tag): deprecation expired - removed.
7269
7270 * ioext.c: (scm_fseek): deprecation expired - removed.
7271
7272 * ioext.h (scm_fseek): deprecation expired - removed.
7273
7274 * gh_data.c (gh_int2scmb): deprecation expired - removed.
7275
7276 * gh.h (gh_int2scmb): deprecation expired - removed.
7277
7278 2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
7279
7280 * stacks.c (scm_make_stack): Fix typo in docstring.
7281
7282 2001-04-27 Rob Browning <rlb@cs.utexas.edu>
7283
7284 * error.c (scm_sysmissing): deprecation expired - removed.
7285
7286 * error.h (scm_sysmissing): deprecation expired - removed.
7287
7288 * gc.c
7289 (scm_init_gc): gc-thunk deprecation expired - removed.
7290 (scm_gc_vcell): deprecation expired - removed.
7291 (gc_async_thunk): scm_gc_vcell related code removed.
7292
7293 * vectors.h (SCM_NVECTORP): deprecation expired - removed.
7294
7295 * strings.h
7296 (SCM_NSTRINGP): deprecation expired - removed.
7297 (SCM_NRWSTRINGP): deprecation expired - removed.
7298
7299 * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
7300
7301 * chars.h
7302 (SCM_ICHRP): deprecation expired - removed.
7303 (SCM_ICHR): deprecation expired - removed.
7304 (SCM_MAKICHR): deprecation expired - removed.
7305
7306 * ports.h
7307 (SCM_INPORTP): deprecation expired - removed.
7308 (SCM_OUTPORTP): deprecation expired - removed.
7309
7310 2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
7311
7312 * modules.c (scm_module_type): New.
7313 (scm_post_boot_init_modules): Initialize from Scheme value.
7314 (the_module, scm_current_module, scm_init_modules): the_module is
7315 now a C only fluid.
7316 (scm_current_module): Export to Scheme.
7317 (scm_set_current_module): Do not call out to Scheme, do all the
7318 work in C. Export procedure to Scheme. Only accept modules, `#f'
7319 is no longer valid as the current module. Only set
7320 scm_top_level_lookup_closure_var and scm_system_transformer when
7321 they are not deprecated.
7322 (scm_module_transformer, scm_current_module_transformer): New.
7323
7324 * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
7325 scm_current_module_transformer, scm_module_transformer): New.
7326
7327 * gh_data.c: Removed FIXME comment about gh_lookup returning
7328 SCM_UNDEFINED. That's the right thing to do.
7329
7330 * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
7331 into the conditionally compiled sections.
7332 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
7333 scm_current_module_transformer instead of scm_system_transformer.
7334 * init.c (start_stack): Move initialization of
7335 scm_system_transformer to the deprecated section.
7336
7337 2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
7338
7339 * throw.c (scm_throw): Correct docstring.
7340
7341 2001-04-22 Gary Houston <ghouston@arglist.com>
7342
7343 * socket.c: attempted to improve the docstrings slightly.
7344
7345 * net_db.c: remove bogus "close" declaration.
7346 (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
7347 scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
7348 moved to socket.c.
7349 * net_db.h: declarations moved too.
7350
7351 * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
7352 long.
7353 (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
7354 (VALIDATE_INET6): new macro.
7355 (scm_inet_pton, scm_inet_ntop): new procedures, implementing
7356 inet-pton and inet-ntop.
7357 (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
7358 (scm_addr_vector): use ipv6_net_to_num.
7359
7360 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
7361
7362 * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
7363 smob number explicitly. Use SCM_TC2SMOBNUM instead.
7364
7365 * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
7366 when compiled in debug mode.
7367
7368 (scm_gc_sweep): Only call smob's free function if it is defined.
7369
7370 * print.c (scm_iprin1): No need to check for validity of smob
7371 type or existence of print function.
7372
7373 * smob.[ch] (scm_smobs): Made into a fixed size global array.
7374 Resizing will not work well with preemptive threading.
7375
7376 * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
7377
7378 (scm_make_smob_type): Extracted initialization of smob
7379 descriptors to scm_smob_prehistory. Don't use scm_numsmob outside
7380 of the critical section.
7381
7382 (scm_smob_prehistory): Initialize all smob descriptors. By
7383 default, don't assign a smob free function: Most smob types don't
7384 need one.
7385
7386 * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
7387
7388 2001-04-21 Gary Houston <ghouston@arglist.com>
7389
7390 * socket.c (FLIP_NET_HOST_128): new macro.
7391 (scm_fill_sockaddr): use new macro.
7392 (scm_addr_vector): completed IPv6 address support. added const
7393 to the address parameter.
7394
7395 2001-04-20 Gary Houston <ghouston@arglist.com>
7396
7397 * socket.c (scm_fill_sockaddr): call htons for sin6_port.
7398 Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
7399 is defined.
7400 (scm_addr_vector): use a switch instead of multiple if statements.
7401 Add support for IPv6 (incomplete) .
7402 MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
7403
7404 2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
7405
7406 * struct.c (scm_free_structs): Only pairs may be accessed with
7407 SCM_C[AD]R.
7408
7409 2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7410
7411 * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
7412
7413 * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
7414 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
7415 parentheses in order to get the correct associativity.
7416
7417 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
7418
7419 * unif.c (scm_array_to_list): Added missing handling of arrays of
7420 bytes. Thanks to Masao Uebayashi for the bug report.
7421
7422 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
7423
7424 * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
7425 consistently.
7426
7427 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
7428
7429 * procs.h (SCM_CLOSURE_FORMALS): New macro.
7430
7431 * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
7432 SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
7433 procprop.c (scm_i_procedure_arity), sort.c (closureless): Use
7434 SCM_CLOSURE_FORMALS.
7435
7436 * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
7437 (scm_i_procedure_arity): Prefer stronger predicates like
7438 SCM_NULLP or SCM_FALSEP over SCM_IMP.
7439
7440 * macros.c (macro_print): Extracted macro printing code from
7441 print.c and simplified it.
7442
7443 (scm_macro_type): Use SCM_MACRO_TYPE;
7444
7445 (scm_init_macros): Use macro_print for printing macros.
7446
7447 * print.c (scm_print_opts): Improved option documentation.
7448
7449 (scm_iprin1): Extracted printing of macros to macros.c.
7450 Simplified printing of ordinary closures.
7451
7452 * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
7453 Martin Grabmueller for the bug report.
7454
7455 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
7456
7457 This patch eliminates some further applications of SCM_C[AD]R to
7458 non pair cells.
7459
7460 * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
7461 never been applied to real pairs.
7462
7463 * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
7464
7465 (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
7466
7467 * unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
7468 SCM_ARRAY_CONTP): Renamed SCM_ARRAY_CONTIGUOUS to
7469 SCM_ARRAY_FLAG_CONTIGUOUS and use it.
7470
7471 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
7472 Added.
7473
7474 * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
7475 SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
7476
7477 * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
7478 (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
7479 SCM_SET{AND,OR}_CAR.
7480
7481 2001-04-17 Gary Houston <ghouston@arglist.com>
7482
7483 * some initial support for IPv6:
7484
7485 * socket.c (scm_fill_sockaddr): improve the argument validation.
7486 don't allocate memory until all args are checked. instead of
7487 unconditional memset of soka, try setting sin_len to 0 if
7488 SIN_LEN is defined. add support for AF_INET6. define FUNC_NAME.
7489 (scm_socket, scm_connect): extend docstrings for IPv6.
7490 (scm_init_socket): intern AF_INET6 and PF_INET6.
7491
7492 2001-04-17 Niibe Yutaka <gniibe@m17n.org>
7493
7494 * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
7495 matches SCM_DEFER_INTS at the beginning of the function.
7496
7497 * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
7498
7499 * gc.c (scm_igc): Unconditionally call
7500 SCM_CRITICAL_SECTION_START/END.
7501
7502 * fluids.c (next_fluid_num): Unconditionally call
7503 SCM_CRITICAL_SECTION_START/END.
7504 (s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.
7505
7506 * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
7507 SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
7508 Removed.
7509
7510 * __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
7511 Defined as nothing for the case of !defined(USE_THREADS).
7512 (SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
7513 Removed.
7514 (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
7515 (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
7516 LINE.
7517 (SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
7518 SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
7519 SCM_THREAD_DEFER/SCM_THREAD_ALLOW. Instead, use
7520 SCM_CRITICAL_SECTION_START/END.
7521 (SCM_REALLOW_INTS: Bug fix. Don't call
7522 SCM_THREAD_SWITCHING_CODE.
7523 (SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS. Instead, use
7524 SCM_THREAD_SWITCHING_CODE directly.
7525 (SCM_ENTER_A_SECTION): Unconditionally use
7526 SCM_CRITICAL_SECTION_START/END. (was:
7527 SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).
7528
7529 2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
7530
7531 * __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS): Replaced the
7532 macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
7533 allowed to explicitly set this macro via the CFLAGS variable
7534 during make.
7535
7536 * fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
7537 (SCM_THREAD_CRITICAL_SECTION_START,
7538 SCM_THREAD_CRITICAL_SECTION_END): Renamed
7539 SCM_THREAD_CRITICAL_SECTION_START/END to
7540 SCM_CRITICAL_SECTION_START/END.
7541
7542 2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
7543
7544 * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
7545 instead of bzero.
7546
7547 * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
7548 (MISSING_BZERO_DECL): Remove the declaration.
7549
7550 Thanks to NIIBE Yutaka.
7551
7552 2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7553
7554 * init.c, goops.c, goops.h: Reverted change of 2001-03-29. (The
7555 goops module should be registered in order to work for an
7556 application which uses libguile statically linked.)
7557
7558 2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
7559
7560 * numbers.[ch] (scm_num2long, scm_num2long_long,
7561 scm_num2ulong_long, scm_num2ulong): Argument position is an
7562 unsigned integer.
7563
7564 * environments.c (eval_environment_folder,
7565 import_environment_folder), gh_data.c (gh_scm2longs,
7566 gh_scm2floats, gh_scm2doubles): Distinguish between 0 and NULL
7567 for integers and pointers, respectively.
7568
7569 * gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
7570 (scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
7571 (SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
7572 SCM_NUM2LONG_LONG): Don't pass argument positions as pointers.
7573
7574 * filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
7575 scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
7576 (scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
7577 (scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
7578 stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
7579 validate.h (SCM_VALIDATE_LONG_COPY): Whitespace fixes.
7580
7581 2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
7582
7583 * strings.c (scm_read_only_string_p): Update docstring to reflect
7584 current (non-)usage of "read only" strings.
7585 (scm_make_shared_substring): Clarify docstring by changing
7586 "semantics" to "arguments".
7587
7588 2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7589
7590 * hooks.c (scm_make_hook, scm_make_hook_with_name),
7591 (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
7592 improvements.
7593
7594 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7595
7596 The following changes make the documentation more consistent.
7597
7598 * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
7599 (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
7600 (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
7601 (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
7602 ... @end lisp.
7603
7604 * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
7605 (scm_array_dimensions, scm_make_shared_array),
7606 (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
7607 throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
7608 (scm_string_rindex, scm_string_index, scm_substring_fill_x),
7609 (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
7610 (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
7611 posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
7612 macros.c (scm_makmmacro), list.c (scm_append), environments.c
7613 (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
7614 @example ... @end example to @lisp ... @end lisp.
7615
7616 * weaks.c (scm_weak_vector): Corrected docstring.
7617
7618 * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
7619 (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
7620 (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
7621 (scm_hashx_set_x, scm_hashx_get_handle),
7622 (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
7623 (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
7624 vectors.c (scm_vector_fill_x), strings.c
7625 (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
7626 objprop.c (scm_set_object_properties_x):
7627 (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
7628 strports.c (scm_call_with_input_string), ports.c
7629 (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
7630 list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
7631 (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
7632 (scm_make_weak_vector,scm_weak_vector_p),
7633 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
7634 (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
7635 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
7636 macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
7637 (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
7638 Made parameter names match documentation by renaming parameters
7639 and/or fixing docstrings.
7640
7641 * numbers.c (scm_ash): Corrected Texinfo markup.
7642
7643 * strop.c (scm_string_index, scm_string_rindex),
7644 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
7645
7646 * vports.c (scm_make_soft_port), unif.c
7647 (scm_uniform_vector_length, scm_array_p, scm_array_rank),
7648 (scm_dimensions_to_uniform_array, scm_transpose_array),
7649 (scm_array_in_bounds_p, scm_uniform_vector_ref),
7650 (scm_bit_count, scm_bit_position, scm_bit_count_star),
7651 (scm_array_to_list, scm_list_to_uniform_array),
7652 (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
7653 (scm_open_input_string, scm_open_output_string),
7654 (scm_get_output_string), strop.c (scm_string_copy),
7655 (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
7656 (scm_get_internal_real_time, scm_times),
7657 (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
7658 (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
7659 (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
7660 (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
7661 simpos.c (scm_system), random.c (scm_random_uniform),
7662 (scm_random_normal, scm_random_exp), ramap.c
7663 (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
7664 (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
7665 (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
7666 (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
7667 (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
7668 (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
7669 (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
7670 (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
7671 (scm_port_closed_p, scm_eof_object_p, scm_read_char),
7672 (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
7673 (scm_logand, scm_logior, scm_logxor, scm_lognot),
7674 (scm_integer_expt, scm_bit_extract, scm_logcount),
7675 (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
7676 net_db.c (scm_inet_netof, scm_lnaof), modules.c
7677 (scm_interaction_environment), macros.c (scm_makacro),
7678 (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
7679 (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
7680 (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
7681 (scm_fluid_ref), filesys.c (scm_open_fdes),
7682 (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
7683 Docstring correction: `Returns' -> `Return'
7684
7685 * gc.c (scm_set_debug_cell_accesses_x):
7686 (s_scm_gc_set_debug_check_freelist_x):
7687 * fluids.c (scm_fluid_p): Added texinfo markup.
7688
7689 * error.c (scm_strerror): Made docstring more precise.
7690
7691 * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
7692 (scm_vector_to_list, _scm_vector_fill_x), symbols.c
7693 (scm_symbol_p, scm_symbol_to_string), strorder.c
7694 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
7695 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
7696 (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
7697 (scm_string_ci_geq_p), strop.c (scm_string_copy),
7698 (scm_string_fill_x): Removed `(r5rs)' from docstrings.
7699
7700 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
7701
7702 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
7703 mode, as suggested by Michael Livshin.
7704
7705 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
7706
7707 * backtrace.c (display_backtrace_body): since the `print_state'
7708 variable is not used (instead its data field is used directly as
7709 `pstate'), protect it from the hungry compiler optimizations.
7710 thanks to Bill Schottstaedt for the report.
7711
7712 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
7713
7714 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
7715 It is only defined and used if guile is compiled with
7716 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
7717 let cells with a free_cell type tag be visible outside of the
7718 garbage collector when in debug mode.
7719
7720 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
7721
7722 (scm_assert_cell_valid): Use a local static variable to avoid
7723 recursion.
7724
7725 (MARK): Only check for rogue cell pointers in debug mode. Use
7726 scm_cellp for this purpose and place all checks for rogue pointers
7727 into that function. Further, since due to conservative scanning
7728 we may encounter free cells during marking, don't use the standard
7729 cell type accessor macro to determine the cell type.
7730
7731 (scm_cellp): Check if the cell pointer actually points into a
7732 card header.
7733
7734 (scm_init_gc): Initalize scm_tc16_allocated.
7735
7736 * gc.h (GCH): Renamed to SCM_GC_H.
7737
7738 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
7739 might be unnecessary, but I feel better this way :-)
7740
7741 (SCM_GC_CELL_TYPE): New macro.
7742
7743 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
7744 in guile, and it is unlikely that they will be applied to real
7745 pairs anyway.
7746
7747 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
7748
7749 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
7750 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
7751
7752 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
7753 make sure that in debug mode no free cell will ever be visible
7754 outside of the garbage collector.
7755
7756 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
7757
7758 * async.c (scm_asyncs_pending): Don't use != to compare SCM
7759 values.
7760
7761 * async.c (scm_system_async), variable.c (scm_make_variable,
7762 scm_make_undefined_variable): Use scm_cons to create a pair.
7763
7764 * debug.c (scm_reverse_lookup): Perform proper type checking.
7765 Remove suspicious use of SCM_SLOPPY_CONSP.
7766
7767 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
7768 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
7769 the corresponding optimization.
7770
7771 * eval.c (iqq): Use proper type check.
7772
7773 (scm_m_expand_body): Remove redundant type checks.
7774
7775 (promise_print): Don't access promise cells as pairs.
7776
7777 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
7778 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
7779 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
7780 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
7781 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
7782
7783 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
7784 (scm_iprin1): Use new macro predicate and accessors.
7785
7786 * eval.h (scm_tc16_macro): Removed declaration. It is declared
7787 in macros.h.
7788
7789 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
7790 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
7791 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
7792 SCM_VARIABLE_H. Even the macros that are used to inhibit
7793 including a header file twice should be in the SCM_ namespace.
7794
7795 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
7796 properties.c (scm_primitive_property_ref,
7797 scm_primitive_property_del_x): Prefer stronger predicates like
7798 SCM_NULLP or SCM_FALSEP over SCM_IMP.
7799
7800 * gc.c (MARK): Use proper macros to access procedure-with-setter
7801 cell elements and closure cell elements.
7802
7803 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
7804 access free cells as pairs.
7805
7806 (scm_unprotect_object): scm_hashq_get_handle returns #f if
7807 no hashtab entry is found.
7808
7809 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
7810 SCM_CLR_PORT_OPEN_FLAG.
7811
7812 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
7813 use SCM_SET_C[AD]R for uninitialized cells.
7814
7815 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
7816 If the hashtable has no slots, return #f instead of '(). This
7817 unifies the return value with most assoc-functions.
7818
7819 (scm_hash_fn_ref): Use proper type check.
7820
7821 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
7822 Removed references to non-existing functions from documentation.
7823
7824 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
7825 access keyword cell elements.
7826
7827 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
7828 macros.
7829
7830 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
7831
7832 * print.c (scm_iprlist): Added comment. Improved loop
7833 conditions.
7834
7835 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
7836 pairs.
7837
7838 * smob.c (scm_markcdr): Don't access smob cells as pairs.
7839
7840 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
7841
7842 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
7843 cells as pairs.
7844
7845 * variable.c (variable_print, variable_equalp, scm_variable_ref,
7846 scm_variable_set_x): Use proper macros to access variable cell
7847 elements.
7848
7849 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
7850
7851 * variable.h (SCM_VARVCELL): Don't access variable cells as
7852 pairs.
7853
7854 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
7855 added FIXME comment, removed register specifier.
7856
7857 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
7858
7859 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
7860 * init.c (scm_init_guile_1): Don't init goopscore module.
7861
7862 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
7863
7864 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
7865
7866 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7867
7868 * strop.c (scm_string_to_list): Fixed docstring markup.
7869 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
7870 (scm_string_downcase, scm_string_capitalize_x),
7871 (scm_string_capitalize): Rewrote and corrected docstrings.
7872 (scm_string_ci_to_symbol): Made docstring more explicit.
7873
7874 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
7875
7876 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
7877 eval.c can use it.
7878 (scm_call_with_values): Removed.
7879 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
7880 so that it can be exported.
7881 (scm_call_with_values): Removed.
7882
7883 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
7884 * eval.c: Include "libguile/values.h"
7885 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
7886 New.
7887 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
7888 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
7889 New delcarations to support above change.
7890
7891 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
7892 errors with last change.
7893
7894 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
7895
7896 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
7897 scm_i_eval): Moved the application of the system transformer from
7898 scm_i_eval to scm_primitive_eval.
7899
7900 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
7901
7902 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
7903
7904 * strop.c (scm_string_index): Fix docstring line break
7905 regression.
7906
7907 * list.c (scm_cons_star): Fix docstring typo.
7908
7909 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
7910
7911 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
7912 (big2str), ports.c (scm_drain_input), read.c (scm_read,
7913 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
7914 scm_make_string, scm_string_append), strports.c (st_resize_port,
7915 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
7916 scm_makstr with calls to scm_allocate_string.
7917
7918 * strings.[ch] (scm_allocate_string): New function.
7919
7920 * strings.[ch] (scm_makstr): Deprecated.
7921
7922 2001-03-18 Gary Houston <ghouston@arglist.com>
7923
7924 * posix.c (scm_tmpnam): check that return value from tmpnam is not
7925 NULL. rewrote the docstring.
7926 (scm_mkstemp): new procedure implementing "mkstemp!".
7927 * posix.h: declare scm_mkstemp.
7928
7929 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
7930 normally it would be found in netdb.h.
7931
7932 2001-03-17 Gary Houston <ghouston@arglist.com>
7933
7934 * sort.c (scm_sort): move sortvec variable to avoid a compiler
7935 warning when HAVE_ARRAYS is not defined. move len too.
7936
7937 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
7938 (EXTRA_DOT_X_FILES): let configure set the value.
7939 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
7940
7941 * gc.c (scm_must_malloc): changed the comment explaining when
7942 scm_must variants of malloc/free etc., should be used, based on
7943 explanation from Dirk Herrmann.
7944 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
7945 string with procedure name. use scm_must_malloc instead of malloc.
7946 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
7947 of malloc/free.
7948 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
7949 scm_ungetc): use scm_must variants of malloc/realloc/free.
7950 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
7951
7952 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
7953
7954 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
7955 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
7956 scm_wrong_type_arg instead.
7957
7958 (SCM_WNA): Deprecated.
7959
7960 * error.[ch] (scm_wta): Deprecated.
7961
7962 * numbers.c (s_i_log): Minor comment fix.
7963
7964 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
7965 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
7966 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
7967 wrong-num-args or misc errors.
7968
7969 * unif.c (scm_make_shared_array, scm_transpose_array,
7970 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
7971 Validate the rest argument (note: this is only done when guile is
7972 built with SCM_DEBUG_REST_ARGUMENT=1)
7973
7974 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
7975 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
7976
7977 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
7978 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
7979
7980 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
7981
7982 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
7983 instead of scm_wrong_num_args.
7984
7985 * coop-threads.c: Don't include libguile/strings.h. (Was only
7986 needed for former implementation of SCM_WRONG_NUM_ARGS.)
7987
7988 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
7989 wrong-num-args errors.
7990
7991 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
7992
7993 * error.[ch] (scm_error_num_args_subr): New function.
7994
7995 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7996
7997 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
7998 (scm_length, scm_append, scm_reverse, scm_list_ref),
7999 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
8000 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
8001 (scm_delete1_x), gc.c (scm_map_free_list),
8002 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
8003 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
8004 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
8005 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
8006 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
8007 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
8008 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
8009
8010 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
8011 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
8012 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
8013 symbols.c (scm_symbol_interned_p), numbers.c
8014 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
8015 markup.
8016
8017 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
8018
8019 * snarf.h (SCM_CONST_LONG): Deprecated.
8020 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
8021
8022 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
8023
8024 * numbers.c (scm_num2ulong): Check that a bignum is positive
8025 before looking at the magnitude. Correctly check for overflow
8026 during conversion.
8027 (scm_num2long_long): Likewise.
8028 (scm_num2ulong_long): New.
8029 (ULONG_LONG_MAX): Define if not already defined.
8030 * numbers.h: (scm_num2ulong_long): New prototype.
8031
8032 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8033
8034 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
8035
8036 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
8037 (SCM_OPOUTSTRPORTP): New predicate macros.
8038 (scm_open_input_string, scm_open_output_string),
8039 (scm_get_output_string): New prototypes.
8040
8041 * strports.c (scm_open_input_string, scm_open_output_string),
8042 (scm_get_output_string): New procedures (SRFI-6 compliant).
8043 Made scm_tc16_strport non-static.
8044
8045 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
8046
8047 * macros.h (SCM_ASSYNT): Removed unused object argument from
8048 signature.
8049
8050 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
8051 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
8052 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
8053 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
8054 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
8055 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
8056 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
8057 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
8058 scm_m_atdispatch): Removed unused object argument from call to
8059 SCM_ASSYNT.
8060
8061 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
8062
8063 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
8064 const int* to reflect that the input array of integers remains
8065 unchanged. Thanks to Brett Viren for the hint.
8066
8067 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8068
8069 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
8070 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
8071 in various places.
8072 (gh_scm2newstr, gh_symbol2newstr): Change call to
8073 scm_must_malloc() to malloc(), because user-free()able memory is
8074 allocated.
8075
8076 * gc.c: Added declaration of `scm_debug_check_freelist'.
8077
8078 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8079
8080 * ports.c (scm_port_mode): Changed `mode' array size to 4.
8081
8082 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
8083
8084 * strports.c (scm_object_to_string): New procedure.
8085 (scm_strprint_obj): Deprecated.
8086 * strports.h: Reflect the changes.
8087
8088 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
8089
8090 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
8091
8092 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
8093 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
8094 SCM_ASSYNT to check for correct argument types. Either use some
8095 SCM_VALIDATE_* macro or an explicit test.
8096
8097 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
8098 misc-errors.
8099
8100 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
8101 instead of calling scm_wta.
8102
8103 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8104
8105 * load.c (scm_primitive_load, scm_primitive_load_path),
8106 (scm_sys_search_load_path): Corrected docstrings (file ->
8107 filename).
8108
8109 * eval.c (scm_force): Added texinfo markup to docstring.
8110 (scm_promise_p): Renamed parameter to `obj' to match docstring.
8111
8112 * debug-malloc.c: Reinserted #include <stdio.h>.
8113
8114 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
8115
8116 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
8117
8118 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
8119 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
8120 Use SCM_LISTn instead of scm_listify.
8121
8122 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8123
8124 * _scm.h: Removed #include <errno.h>.
8125
8126 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
8127 errno variable (can be a macro on some systems, for example when
8128 using linux libc with threads).
8129
8130 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
8131 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
8132 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
8133 #include <errno.h> in these 20 out of 100 files.
8134
8135 2001-03-10 Gary Houston <ghouston@arglist.com>
8136
8137 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
8138 not already defined.
8139
8140 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8141
8142 * coop.c: Inserted #include <stdio.h>.
8143
8144 * iselect.c: Reinserted #include <stdio.h>.
8145
8146 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
8147
8148 * posix.c: Replaced `#define' of __USE_XOPEN right before
8149 including unistd.h with a define of _GNU_SOURCE at the very top of
8150 the file.
8151
8152 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
8153
8154 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
8155 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
8156 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
8157 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
8158 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
8159 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
8160 print.c, procprop.c, procs.c, properties.c, ramap.c,
8161 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
8162 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
8163 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
8164 Remove #include <stdio.h>
8165 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
8166
8167 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
8168
8169 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8170
8171 * posix.c (scm_gethostname): Set initial name length to 256 for
8172 Solaris.
8173
8174 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8175
8176 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
8177 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
8178 (scm_sethostname, scm_gethostname): New prototypes.
8179
8180 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
8181 <sys/file.h>, if present.
8182 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
8183 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
8184 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
8185 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
8186 (scm_sethostname, scm_gethostname): New procedures.
8187
8188 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
8189
8190 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
8191 not optional (ii) "recommend" spelling correction.
8192
8193 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8194
8195 * ramap.c (racp): Removed optimization which caused array copying
8196 to fail if the two arrays shared storage. Re-inserted the IVDEP
8197 macros removed in the change of 2000-03-09. (Don't really have a
8198 complete grasp of what they are for, but they seem to be necessary
8199 on Crays. This needs testing!) Thanks to Miroslav Silovic.
8200
8201 * hash.c (scm_string_hash): Don't downcase characters.
8202
8203 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8204
8205 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
8206 size from 277 --> 1009.
8207
8208 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
8209 function.
8210
8211 * coop-threads.c: Fixed change of 2001-03-06.
8212
8213 * validate.h: Code formatting.
8214
8215 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
8216
8217 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
8218 (*.doc): Add dependency on guile-snarf.awk.in.
8219
8220 * guile-snarf.awk.in: Neglect spaces at the end of
8221 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
8222 middle of docstrings. (To avoid the problem with gcc-2.96.)
8223
8224 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
8225
8226 * coop-threads.c (scm_call_with_new_thread), load.c
8227 (scm_primitive_load, scm_sys_search_load_path), random.c
8228 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
8229 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
8230 (potentially) issue a scm-misc-error or wrong-num-args error
8231 message.
8232
8233 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
8234 about the expected type with the wrong-type-arg error message.
8235
8236 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
8237 a C level bug that can't be fixed from scheme anyway.
8238
8239 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8240
8241 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
8242 Duplicate bindings are OK in a let* since a let* is semantically
8243 equivalent to a nested set of let:s.
8244
8245 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8246
8247 * print.c (scm_print_options): Fixed texinfo in docstring.
8248
8249 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
8250 the underlying functions getservent, getprotoent or getnetent
8251 return NULL instead of signalling an error.
8252
8253 2001-03-04 Gary Houston <ghouston@arglist.com>
8254
8255 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
8256 taking an unexpectedly large filename for an AF_UNIX socket from
8257 bind/connect/sendto (thanks to Martin Grabmueller).
8258
8259 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
8260 former and adjusted the latter.
8261 (scm_socket, scm_socketpair): cosmetic changes.
8262 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
8263 size_t as socklen_t substitute. don't restrict args/return values
8264 to INUM: allow full range of int or size_t.
8265 (scm_fill_sockaddr): check arguments before allocating memory, to
8266 avoid leakage. use malloc, not scm_must_malloc.
8267 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
8268 substitute. free the sockaddr structure before throwing an error.
8269 (scm_init_add_buffer): procedure removed, together with its static
8270 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
8271 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
8272 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
8273 scm_sendto): use a local buffer instead of scm_addr_buffer.
8274 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
8275 not size_t.
8276 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
8277 call to detect whether recvfrom could be bothered to set the address.
8278 (scm_init_socket): don't call scm_init_addr_buffer.
8279
8280 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
8281
8282 * debug.c (scm_procedure_source, scm_procedure_environment),
8283 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
8284 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
8285 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
8286 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
8287 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
8288 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
8289 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
8290 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
8291 scm_array_to_list, scm_array_prototype), validate.h
8292 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
8293 scm_misc_error or scm_wrong_type_arg instead.
8294
8295 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
8296
8297 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8298
8299 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
8300 (scm_sys_tag_body): Added.
8301
8302 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
8303
8304 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
8305 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
8306 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
8307 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
8308 options.c (scm_options), ports.c (scm_remove_from_port_table),
8309 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
8310 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
8311 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
8312 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
8313 instead.
8314
8315 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8316
8317 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
8318
8319 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
8320
8321 * eval.c (scm_s_duplicate_bindings): New error message.
8322 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
8323
8324 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
8325
8326 * eval.h (SCM_EVALIM2): New macro. Use it when a
8327 immediate, literal constant should be evaluated.
8328 * eval.c (scm_s_duplicate_formals): New error message string.
8329 (scm_c_improper_memq): New function.
8330 (scm_m_lambda): Check for duplicate arguments.
8331 (scm_ceval, scm_deval): When executing a body: only cons a new
8332 toplevel environment frame when it is different from the
8333 existing one; use EVALCAR instead of SIDEVAL so that we can properly
8334 check for empty combinations; use SCM_EVALIM2 for the same reason
8335 in the non-toplevel loop.
8336 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
8337 New labels with the meaning of their non-"nontoplevel" partners,
8338 but they are used when it is known that the body is not evaluated at
8339 top-level.
8340 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
8341 reporting for empty combinations.
8342
8343 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
8344
8345 * Remove dump facilities.
8346 * dump.c, dump.h: Removed.
8347 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
8348 * init.c: Remove #include "libguile/dump.h".
8349 (scm_init_guile_1): Remove scm_init_dump.
8350 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
8351 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
8352 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
8353 (scm_set_smob_dump, scm_set_smob_undump): Removed.
8354
8355 * keywords.c: Remove #include "libguile/dump.h".
8356 (keyword_dump, keyword_undump): Removed.
8357 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
8358
8359 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8360
8361 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
8362 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
8363 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
8364 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
8365 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
8366 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
8367 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
8368 to @code{} as the texinfo manual recommends, converted the
8369 examples to use a @lisp{}-environment.
8370
8371 * strports.c (scm_eval_string): Cleaned up the docstring.
8372
8373 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
8374 markup.
8375
8376 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
8377 (scm_number_to_string, scm_string_to_number, scm_number_p)
8378 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
8379 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
8380 (scm_ash): Added texinfo markup and removed obsolete @refill.
8381 (scm_gr_p): Corrected comment.
8382 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
8383 docstring) comments.
8384 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
8385 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
8386 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
8387 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
8388 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
8389 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
8390 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
8391 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
8392
8393 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
8394
8395 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
8396 (Obviously nobody compiles with SCM_RECKLESS defined...)
8397
8398 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
8399
8400 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8401
8402 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
8403
8404 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
8405
8406 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
8407
8408 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
8409 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
8410 since use of `z' suggests that the arguments may be complex.
8411
8412 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
8413 typos.
8414
8415 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
8416
8417 * dump.c (scm_binary_write, scm_binary_read), eval.c
8418 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
8419 scm_guardian_greedy_p, scm_make_guardian), fports.c
8420 (scm_file_port_p): Minor docstring fixes.
8421
8422 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
8423
8424 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
8425
8426 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
8427 scm_i_eval.
8428 (make_class_from_template): Do not bother to set the current
8429 module around the call to DEFVAR, scm_eval takes care of that.
8430 (scm_init_goops): Make scm_module_goops and
8431 scm_goops_lookup_closure permanent objects.
8432
8433 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
8434 top level, create a fresh top-level environment for each
8435 expression instead of mutating the exisint frame. This is
8436 important when that frame is closed over.
8437
8438 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
8439 SCM_DIGSPERLONG instead of DIGSPERLONG.
8440
8441 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
8442
8443 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
8444 before applying arrow procedure in `cond' and before applying
8445 receiver procedure in call-with-current-continuation.
8446 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
8447 macro. The argument is expanded more than one time.
8448
8449 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
8450 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
8451
8452 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
8453
8454 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
8455 notice and license.
8456
8457 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8458
8459 * variable.c (scm_make_variable, scm_make_undefined_variable)
8460 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
8461 (scm_variable_bound_p), values.c (scm_values)
8462 (scm_call_with_values), unif.c (scm_bit_count)
8463 (scm_bit_set_star_x), symbols.c (scm_gentemp)
8464 (scm_gensym), strings.c (scm_string_p, scm_make_string)
8465 (scm_read_only_string_p, scm_string_length, scm_string_ref)
8466 (scm_string_set_x, scm_substring, scm_string_append), stime.c
8467 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
8468 (scm_copy_random_state, scm_random), print.c (scm_newline)
8469 (scm_write_char, scm_simple_format), debug-malloc.c
8470 (scm_malloc_stats), environments.c (scm_environment_p)
8471 (scm_environment_bound_p, scm_environment_ref)
8472 (scm_environment_fold, scm_environment_define)
8473 (scm_environment_undefine, scm_environment_set_x)
8474 (scm_environment_cell, scm_environment_observe)
8475 (scm_environment_observe_weak, scm_environment_unobserve)
8476 (scm_make_eval_environment, scm_eval_environment_p)
8477 (scm_eval_environment_set_local_x, scm_eval_environment_local)
8478 (scm_eval_environment_imported)
8479 (scm_eval_environment_set_imported_x, scm_make_import_environment)
8480 (scm_import_environment_p, scm_import_environment_imports)
8481 (scm_import_environment_set_imports_x, scm_make_export_environment)
8482 (scm_export_environment_p, scm_export_environment_private)
8483 (scm_export_environment_set_private_x)
8484 (scm_export_environment_signature)
8485 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
8486 Added texinfo markup.
8487
8488 * ports.c (scm_drain_input): Lowercased argument to @var.
8489 (scm_current_input_port, scm_current_output_port): Filled in
8490 missing explanation.
8491 (scm_current_load_port, scm_set_current_output_port)
8492 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
8493 Added texinfo markup.
8494
8495 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
8496 (scm_release_arbiter): Added texinfo markup to docstrings.
8497 Changed `Returns' to `Return'.
8498 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
8499
8500 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
8501
8502 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
8503 by doubling them to `@@'.
8504
8505 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8506
8507 * numbers.c (scm_lognot), random.c (scm_random,
8508 scm_random_normal, scm_random_solid_sphere_x,
8509 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
8510 scm_random_exp), dynwind.c
8511 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
8512
8513 * goops.c (scm_sys_initialize_object, scm_instance_p,
8514 scm_class_name, scm_class_precedence_list, scm_class_slots,
8515 scm_class_environment, scm_generic_function_name,
8516 scm_generic_function_methods, scm_method_generic_function,
8517 scm_method_specializers, scm_method_procedure, scm_make_unbound,
8518 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
8519 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
8520 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
8521 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
8522 scm_class_direct_supers, scm_class_direct_slots,
8523 scm_class_direct_subclasses, scm_class_direct_methods,
8524 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
8525 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
8526 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
8527 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
8528 scm_memoized_environment, scm_procedure_name,
8529 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
8530 objects.c
8531 (scm_class_of, scm_entity_p, scm_operator_p,
8532 scm_set_object_procedure_x, scm_object_procedure,
8533 scm_make_class_object), hooks.c (scm_make_hook_with_name,
8534 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
8535 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
8536 scm_hook_to_list), lang.c
8537 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
8538 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
8539 (scm_print_options, scm_port_with_print_state,
8540 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
8541 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
8542 scm_make_procedure_with_setter, scm_procedure), throw.c
8543 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
8544 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
8545 scm_stack_ref, scm_stack_length, scm_frame_p,
8546 scm_last_stack_frame, scm_frame_number, scm_frame_source,
8547 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
8548 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
8549 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
8550 (scm_dirname, scm_basename), dynwind.c
8551 (scm_wind_chain), read.c (scm_read_options, scm_read,
8552 scm_read_hash_extend), gc.c
8553 (scm_unhash_name), eval.c (scm_eval_options_interface,
8554 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
8555 (scm_display_error, scm_set_print_params_x,
8556 scm_display_application, scm_display_backtrace, scm_backtrace),
8557 async.c (scm_async, scm_system_async, scm_async_mark,
8558 scm_system_async_mark, scm_run_asyncs, scm_noop,
8559 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
8560 scm_mask_signals): Added docstrings.
8561
8562 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
8563
8564 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
8565 address of car/cdr. (Thanks to Dirk Herrmann)
8566 Use scm_sizet to obtain the length of strings.
8567 (Thanks to Matthias Koeppe)
8568
8569 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
8570
8571 * symbols.c (scm_mem2symbol): Put a empty statement after the
8572 next_symbol label. This is mandated by ANSI, appearantly.
8573
8574 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
8575
8576 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
8577 sense to compile for a specific kernel version. Do not include
8578 <asm/signal.h> while defining __KERNEL__. This hack should no
8579 longer be needed and caused problems.
8580
8581 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
8582
8583 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
8584 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
8585 can not deal with immediates.
8586
8587 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
8588
8589 * list.c (scm_list_copy): Validate the first argument.
8590
8591 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
8592
8593 Fix evaluator so that top-level expressions are correctly
8594 evaluated with respect to the module system.
8595
8596 * modules.h. modules.c (scm_current_module_lookup_closure): New
8597 function.
8598
8599 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
8600 prototypes.
8601 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
8602 names to better reflect their meaning.
8603
8604 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
8605 evaluated at top-level and synronize lookup closure before
8606 executing every subform.
8607 (scm_primitve_eval_x, scm_primitive_eval): New functions.
8608 (scm_eval_x, scm_eval): Reimplement in terms of
8609 scm_primitive_eval_x and scm_primitive_eval, respectively.
8610
8611 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
8612
8613 * macros.c (scm_macro_name, scm_macro_transformer): Use
8614 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
8615 Thanks!
8616
8617 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
8618
8619 * dump.c (scm_store_bytes): Store data size before data.
8620 (scm_restore_bytes): Restore data size. Takes a pointer to size.
8621 * dump.h (scm_restore_bytes): Updated.
8622
8623 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
8624
8625 * dump.c: Use double cells for update schedule.
8626
8627 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
8628
8629 * ports.c (scm_unread_char): Take an optional argument.
8630
8631 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
8632
8633 * modules.h (scm_selected_module, scm_current_module): Renamed
8634 scm_selected_module to scm_current_module to synchronize Scheme
8635 and C names.
8636 (scm_select_module, scm_set_current_module): Likewise. Changed
8637 all uses.
8638
8639 * ports.c (scm_port_for_each): Make a snapshot of the port table
8640 before iterating over it. The table might change while the user
8641 code is running. With the snapshot, the user can depend on the
8642 fact that each port that existed at the start of the iteration is
8643 encountered exactly once. (ice-9 popen) depends on this.
8644
8645 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
8646
8647 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
8648
8649 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
8650 range checking for the size parameter. Thanks to Martin
8651 Grabmueller for the hint.
8652
8653 (scm_makstr): Reordered string initialization to make interrupt
8654 deferring unnecessary.
8655
8656 * vectors.c (scm_make_vector): Fixed range checking.
8657
8658 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
8659
8660 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
8661
8662 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
8663 checking of the size parameter for type correctness and valid
8664 range. Thanks to Rob Browning for reporting the problem. Instead
8665 of deferring interrupts, scm_remember_upto_here_1 is used.
8666
8667 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
8668
8669 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
8670 (scm_dump_cell_update): Removed.
8671 (scm_dump_update): Renamed from scm_dump_object_update.
8672 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
8673 a pointer instead of returning a value.
8674 * keywords.c (keyword_undump): Updated.
8675
8676 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
8677
8678 * dump.c, dump.h: Modified a lot.
8679 (SCM_DUMP_COOKIE): Version 0.1
8680 (scm_dump_mark): Removed.
8681 (scm_restore_cell_object, scm_store_cell_object): New functions.
8682
8683 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
8684 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
8685 New slots: dump, undump.
8686 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
8687 Updated.
8688
8689 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
8690 (keyword_undump): Renamed from keyword_alloc.
8691 (scm_init_keywords): Set keyword_dump and keyword_undump.
8692
8693 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
8694
8695 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
8696 the deprecated SCM_DOUBLE_CELLP.
8697
8698 * tags.h (SCM_DOUBLE_CELLP): deprecated.
8699
8700 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
8701
8702 * dump.c, dump.h: New files.
8703 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
8704 * init.c: #include "libguile/dump.h".
8705 (scm_init_guile_1): Call scm_init_dump.
8706 * smob.h (scm_smob_descriptor): New slots: dump_mark,
8707 dump_dealloc, dump_store, undump_alloc, undump_restore,
8708 undump_init.
8709 * smob.c (scm_make_smob_type): Init the new slots.
8710 (scm_set_smob_dump, scm_set_smob_undump): New functions.
8711 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
8712
8713 * keywords.c: #include "libguile/dump.h".
8714 (keyword_dealloc, keyword_alloc): New functions.
8715 (scm_init_keywords): Set smob_dump and smob_undump.
8716
8717 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
8718
8719 * vectors.c (scm_c_make_vector): New function.
8720 * vectors.h (scm_c_make_vector): Declared.
8721 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
8722 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
8723 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
8724 (scm_make_method_cache, scm_i_vector2list,
8725 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
8726 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
8727 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
8728 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
8729 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
8730 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
8731 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
8732 (scm_vector, scm_make_vector): Use scm_c_make_vector.
8733
8734 * hashtab.c (scm_c_make_hash_table): New function.
8735 * hashtab.h (scm_c_make_hash_table): Declared.
8736 * environments.c (scm_make_leaf_environment,
8737 scm_make_eval_environment), gc.c (scm_init_storage),
8738 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
8739 Use scm_c_make_hash_table.
8740
8741 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8742
8743 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
8744
8745 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
8746
8747 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
8748 end of docstring.
8749
8750 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
8751 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
8752 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
8753 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
8754 srcprop.c (scm_source_properties, scm_set_source_properties_x,
8755 scm_source_property, scm_set_source_property_x), sort.c
8756 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
8757 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
8758 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
8759 docstrings.
8760
8761 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8762
8763 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
8764 really get that arg.
8765
8766 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
8767
8768 * goops.c (s_scm_get_keyword): Bug fix.
8769
8770 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
8771
8772 The following patch was sent by Martin Grabmueller. It makes sure
8773 that in case of parameter errors the correct function name is
8774 shown, and that parameter types are only checked once.
8775
8776 * strop.c (string_copy, string_upcase_x, string_downcase_x,
8777 string_capitalize_x): New functions. Each one performs the core
8778 functionality of the corresponding scm_* function.
8779
8780 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
8781 scm_string_downcase_x, scm_string_downcase,
8782 scm_string_capitalize_x, scm_string_capitalize): Reduced to
8783 parameter checking wrappers of the above functions.
8784
8785 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
8786
8787 * continuations.c, dynl.c, keywords.c, load.c: Include
8788 strings.h. Thanks to Bill Schottstaedt for the bug report.
8789
8790 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
8791
8792 * backtrace.c (display_header): Make sure that line and column
8793 information is shown independent of whether the port the code was
8794 read from had an associated filename. Thanks to Martin
8795 Grabmueller for providing this patch.
8796
8797 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
8798
8799 * fports.[ch] (scm_file_port_p): New primitive.
8800
8801 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
8802
8803 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
8804 These are now defined in fports.c, strports.c and vports.c.
8805
8806 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
8807 vports.c (scm_tc16_sfport): Made variables (were macros defined in
8808 tags.h).
8809
8810 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
8811 (scm_make_sfptob): Made static. These return a type code now.
8812
8813 fports.c (scm_init_fports), strports.c (scm_init_strports),
8814 vports.c (scm_init_vports): Create the corresponding port types.
8815
8816 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
8817 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
8818
8819 * init.c (scm_init_guile_1): Make sure strports are initialized
8820 before gdbint.
8821
8822 * ports.[ch] (scm_make_port_type): Changed the return type to
8823 scm_bits_t.
8824
8825 * ports.c (scm_ports_prehistory): Don't create any port types
8826 here.
8827
8828 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
8829 against scm_tc16_fport directly.
8830
8831 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
8832
8833 * srcprop.c (scm_set_source_property_x): Fix to handle
8834 (set-source-property! <obj> 'copy <datum>) correctly.
8835
8836 2001-01-24 Gary Houston <ghouston@arglist.com>
8837
8838 * filesys.c (scm_link): docstring fix.
8839 * fports.h (scm_setfileno): obsolete declaration removed.
8840 * posix.c: bogus popen declaration removed.
8841
8842 * rdelim.c: new file, split from ioext.c.
8843 * rdelim.h: new file, split from ioext.h
8844 * Makefile.am: add rdelim.c and related files.
8845 * init.c: call scm_init_rdelim. include rdelim.h.
8846
8847 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
8848
8849 This patch was sent by Martin Grabmueller and makes sure that
8850 parameter errors are reported correctly by the lexicographic
8851 ordering predicates.
8852
8853 * strorder.c (string_less_p, string_ci_less_p): New functions.
8854
8855 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
8856 functionality into string_less_p, string_ci_less_p respectively.
8857 The remaining code is just a wrapper to do the parameter
8858 checking.
8859
8860 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
8861 parameters and call string_less_p instead of scm_string_less_p.
8862
8863 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
8864 Check the parameters and call string_less_ci_p instead of
8865 scm_string_ci_less_p.
8866
8867 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
8868
8869 This patch modifies scm_display_error to perform parameter
8870 checking. Thanks to Neil Jerram for the bug report.
8871
8872 * backtrace.[ch] (scm_i_display_error): New function.
8873
8874 * backtrace.c (scm_display_error): Added parameter check and
8875 extracted the core functionality into function
8876 scm_i_display_error.
8877
8878 * throw.c (handler_message): Call scm_i_display_error to display
8879 the error message.
8880
8881 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
8882
8883 * eval.c (SCM_APPLY): Added # args check for application of
8884 procedures with arity 3. (Thanks to Anders Holst.)
8885
8886 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
8887
8888 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
8889
8890 (SCM_OPDIRP): Deprecated.
8891
8892 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
8893 SCM_OPN.
8894
8895 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
8896 Instead, give an explicit error message in case the directory is
8897 closed.
8898
8899 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
8900 instead of SCM_OPENP and SCM_CLOSEDP.
8901
8902 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
8903
8904 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
8905
8906 * eval.c (inner_eval, scm_eval): Move all real functionality into
8907 inner_eval. Avoid to copy the expression twice by inlining some
8908 code from scm_i_eval.
8909
8910 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
8911
8912 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
8913 now has to be the last clause, as required by R5RS. Thanks to
8914 Martin Grabmueller for the patch.
8915
8916 2001-01-18 Gary Houston <ghouston@arglist.com>
8917
8918 * ioext.c: further simplify scm_read_string_x_partial by defining
8919 a macro SCM_EBLOCK.
8920
8921 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
8922
8923 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
8924
8925 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
8926
8927 * __scm.h: Added comment about architecture and compiler
8928 properties that are required by guile.
8929
8930 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
8931 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
8932
8933 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
8934
8935 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
8936
8937 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
8938 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
8939
8940 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
8941
8942 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
8943 to the names in limits.h.
8944
8945 * numbers.c (abs_most_negative_fixnum): Added.
8946
8947 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
8948 fixnum-min) special case.
8949
8950 (scm_big_and): Fix for negative first parameter.
8951
8952 (scm_bit_extract): Fix for fixnum paramters.
8953 Thanks to Rob Browning for the bug report.
8954
8955 (scm_init_numbers): Initialize abs_most_negative_fixnum.
8956
8957 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
8958
8959 * symbols.c (scm_symbol_bound_p): Fixed comment.
8960 Thanks to Chris Cramer.
8961
8962 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
8963
8964 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
8965 Thanks to Bill Schottstaedt.
8966
8967 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
8968
8969 from Matthias Köppe:
8970
8971 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
8972 casts its result, so doesn't yield an lvalue per ANSI C.
8973
8974 * goops.c (s_scm_sys_set_object_setter_x): use
8975 SCM_SET_ENTITY_SETTER.
8976 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
8977
8978 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
8979 its result, so doesn't yield an lvalue per ANSI C.
8980 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
8981 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
8982 SCM_GC_SET_CARD_FLAGS.
8983 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
8984
8985 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
8986
8987 2001-01-08 Gary Houston <ghouston@arglist.com>
8988
8989 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
8990 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
8991 socket.c (scm_recvfrom): use the new macro, plus minor docstring
8992 changes.
8993 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
8994 for fdes. if current input port is used, check that it's a file
8995 port.
8996
8997 2001-01-06 Gary Houston <ghouston@arglist.com>
8998
8999 * ioext.c (scm_read_string_x_partial): new procedure, implements
9000 read-string!/partial.
9001 * ports.c (scm_take_from_input_buffers): new procedure used by
9002 scm_read_string_x_partial.
9003 (scm_drain_input): use scm_take_from_input_buffers.
9004
9005 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
9006
9007 * validate.h (SCM_VALIDATE_NUMBER): New.
9008
9009 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
9010
9011 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
9012 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
9013 SET_DESTROYED): new defines/macros.
9014 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
9015 (add_to_live_list): takes a `guardian_t *' now, not SCM.
9016 (guardian_print): print more info.
9017 (guardian_apply): check if the guardian is destroyed, and throw an
9018 error if so. take one more optional argument `throw_p'.
9019 (scm_guard): depending on the value of `throw_p', return a boolean
9020 result.
9021 (scm_get_one_zombie): remove redundant property test.
9022 (guardian_t): represent the various (currently 3, I hope nothing
9023 more gets added) boolean fields as bit flags.
9024 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
9025 (scm_destroy_guardian_x): new procedure.
9026
9027 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
9028 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
9029
9030 2001-01-01 Gary Houston <ghouston@arglist.com>
9031
9032 * fports.c (fport_write): bugfix: handle short writes for
9033 unbuffered ports too. optimize the buffered case by minimizing
9034 the number of write/flush calls.
9035 (write_all): new helper procedure.
9036
9037 The ChangeLog continues in the file: "ChangeLog-2000"