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