*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
f2893a25
HWN
12002-08-22 Han-Wen Nienhuys <hanwen@cs.uu.nl>
2
3 * gc.h, gc.c: make scm_cells_allocated unsigned again. Thanks to
4 Bill Schottstaedt for the bug report
5
483f518b
MV
62002-08-20 Marius Vollmer <mvo@zagadka.ping.de>
7
8 * print.c (scm_iprin1): Print primitives generics always as
9 "primitive-generic" even when they have no primitive methods yet.
10
917adc55
GH
112002-08-17 Gary Houston <ghouston@arglist.com>
12
13 * coop.c (coop_create): removed bogus 2nd argument in scm_malloc
14 call.
15
67329a9e
HWN
162002-08-17 Han-Wen Nienhuys <hanwen@cs.uu.nl>
17
85835e59 18 * ports.c (scm_add_to_port_table): small bugfix.
67329a9e
HWN
19
20 * mallocs.c (scm_malloc_obj): use scm_gc_malloc in stead of
21 malloc.
22
23 * gc-segment.c (scm_i_get_new_heap_segment): remove cluster cruft:
24 only use SCM_MIN_HEAP_SEG_SIZE.
25
26 * ports.c (scm_add_to_port_table): add backwards compatibility
27 function
28
29 * ports.h: use scm_i_ prefix for port table and port table size.
30
f07c886a
MD
312002-08-15 Mikael Djurfeldt <mdj@linnaeus>
32
33 * vports.c (scm_make_soft_port): Initialize pt variable.
34
dc61cbc6
MV
352002-08-13 Marius Vollmer <mvo@zagadka.ping.de>
36
37 * strports.h (scm_c_eval_string_in_module,
38 scm_eval_string_in_module): New prototypes.
39 * strports.c (scm_eval_string_in_module): New, but use
40 "eval-string" as the Scheme name and make second parameter
41 optional.
42 (scm_eval_string): Implement using scm_eval_string_in_module.
43 (scm_c_eval_string_in_module): New.
44 Thanks to Ralf Mattes for the suggestion!
45
da220f27
HWN
462002-08-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
47
be3ff021
HWN
48 * gc-card.c ("sweep_card"): remove SCM_MISC_ERROR messages: print
49 message and abort.
50
51 * gc-mark.c ("scm_gc_mark_dependencies"): idem.
52
da220f27
HWN
53 * ports.c ("scm_new_port_table_entry"): return a boxed SCM in
54 stead of scm_t_port*. The function now takes a tag argument.
55
eab1b259
HWN
562002-08-08 Han-Wen Nienhuys <hanwen@cs.uu.nl>
57
58 * gc.h: add scm_debug_cells_gc_interval to public interface
59
60 * gc-card.c ("sweep_card"): set scm_gc_running while sweeping.
61
62 * gc.c (scm_i_expensive_validation_check): separate expensive
63 validation checks from cheap ones.
64
ba1b2226
HWN
652002-08-06 Han-Wen Nienhuys <hanwen@cs.uu.nl>
66
67 * read.c (scm_input_error): new function: give meaningful error
68 messages, and throw read-error
69
70 * gc-malloc.c (scm_calloc): add scm_calloc.
71
39e8f371
HWN
722002-08-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
73
33138b05
HWN
74 * tags.h: remove GC bits documentation from the tags table.
75
39e8f371
HWN
76 * read.c (INPUT_ERROR): Prepare for file:line:column error
77 messages for errors in scm_lreadr() and friends.
78
792002-08-04 Han-Wen Nienhuys <hanwen@cs.uu.nl>
80
81 * gc-malloc.c (scm_malloc): use scm_realloc() (simplifies
82 implementation).
83 (scm_gc_calloc): new function
84
5f16b897 852002-08-04 Han-Wen <hanwen@cs.uu.nl>
402788a9 86
5f16b897
HWN
87 * ports.c (scm_new_port_table_entry): init port entry to 0
88 completely.
402788a9
HWN
89
90 * ports.c (scm_new_port_table_entry): change function from
91 scm_add_to_port_table. This prevents cells with null-pointers from
92 being exposed to GC.
93
94 * vports.c (s_scm_make_soft_port) strports.c (scm_mkstrport),
95 fports.c (scm_fdes_to_port): Use scm_new_port_table_entry().
c8a1bdc4 96
c2cbcc57
HWN
97 * gc.c (s_scm_gc_stats): add cell-yield and malloc-yield statistic
98 to gc-stats.
99
c8a1bdc4
HWN
100 * numbers.c (big2str): return "0" for 0 iso. ""
101
c2cbcc57
HWN
102 * gc-segment.c, gc-malloc.c gc-mark.c, gc-freelist.c, gc-card.c,
103 private-gc.h: new file
c8a1bdc4
HWN
104
105 * gc.c: completely revised and cleaned up the GC. It now uses lazy
106 sweeping. More documentation in workbook/newgc.text
107
aea06b34
MV
1082002-07-25 Marius Vollmer <marius.vollmer@uni-dortmund.de>
109
110 * random.c (rstate_free): Return zero.
111
35060ae9
DH
1122002-07-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
113
114 * environments.c (remove_key_from_alist): Removed.
115
116 (obarray_remove): Simplified.
117
6a535440
SJ
1182002-07-24 Stefan Jahn <stefan@lkcc.org>
119
120 * continuations.h: ia64: Include <signal.h> before
121 <sys/ucontext.h>.
122
bcbd25b7
DH
1232002-07-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
124
125 * modules.c (scm_sym2var): Don't compare SCM values with ==.
126
1d1559ce
HWN
1272002-07-21 Han-Wen <hanwen@cs.uu.nl>
128
129 * goops.c (scm_compute_applicable_methods): use
130 scm_remember_upto_here_1 iso scm_remember_upto_here
131
132 * macros.c: include deprecation.h
133
134 * vectors.c (s_scm_vector_move_right_x): remove side effect in
135 macro arg.
136 (s_scm_vector_move_left_x): idem.
137
138 * net_db.c, posix.c, socket.c: variable naming: change ans to
139 result.
140
141 * sort.c (scm_merge_vector_x): accept vector as argument
142 iso. SCM*. This is needed for full GC correctness.
143
144 * gc.h: undo previous undocumented changes related to #ifdef
145 GENGC.
146
34d19ef6
HWN
1472002-07-20 Han-Wen <hanwen@cs.uu.nl>
148
149 * *.c: add space after commas everywhere.
150
151 * *.c: use SCM_VECTOR_SET everywhere, where a vector is written.
152 Document cases where SCM_WRITABLE_VELTS() is used.
153
154 * vectors.h (SCM_VELTS): prepare for write barrier, and let
155 SCM_VELTS() return a const pointer
156 (SCM_VECTOR_SET): add macro.
157
3063e30a
DH
1582002-07-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
159
160 * eval.c (SCM_CEVAL), macros.c (macro_print, scm_makmacro,
161 scm_sym_macro, scm_macro_type), macros.h (scm_makmacro):
162 Deprecated the special kind of built-in dynamic syntax transformer
163 that was inaccurately named "macro". Note: The built-in syntax
164 transformers that are named "mmacro" or "memoizing-macro" still
165 exist, and it is these which come much closer to what one would
166 call a macro.
167
4c5f8e8f
NJ
1682002-07-13 Neil Jerram <neil@ossau.uklinux.net>
169
170 * eval.c (unmemocopy): Fix for
171 1001-local-eval-error-backtrace-segfaults (unmemoization crash
172 with internal definitions and local-eval).
173
4f6f9ae3
GH
1742002-07-12 Gary Houston <ghouston@arglist.com>
175
176 * dynl.c: Don't define stub procedures if DYNAMIC_LINKING is not
177 defined. They don't do anything useful, especially since the
178 only case where DYNAMIC_LINKING is undefined seems to be
179 when --with-modules=no is given to configure, which is basically
180 requesting that the "dynamic linking module" be omitted.
181
182 * Makefile.am (libguile_la_SOURCES): move dynl.c from
183 libguile_la_SOURCES to EXTRA_libguile_la_SOURCES.
184
185 * extensions.c (load_extension): check DYNAMIC_LINKING for
186 scm_dynamic_call.
187 * init.c (scm_init_guile_1): check DYNAMIC_LINKING for
188 scm_init_dynamic_linking.
189
c21935e6
MV
1902002-07-10 Marius Vollmer <mvo@zagadka.ping.de>
191
192 * guile.c, iselect.h, net_db.c, posix.c, socket.c: No need to
193 check for Cygwin when including <winsock2.h>, this is already
194 check for by configure. Thus, revert change from 2002-07-07.
195
ee95d597
GH
1962002-07-10 Gary Houston <ghouston@arglist.com>
197
9540b68f 198 * eq.c: include <string.h>
ee95d597
GH
199 * dynl.c: docstring editing.
200
46732b54
GH
2012002-07-09 Gary Houston <ghouston@arglist.com>
202
203 * dynl.c (scm_dynamic_call): docstring editing.
204
c09d12e0
RB
2052002-07-08 Rob Browning <rlb@defaultvalue.org>
206
207 * gc_os_dep.c: HURD fixes.
208
3f6571eb
MV
2092002-07-07 Marius Vollmer <mvo@zagadka.ping.de>
210
211 Crosscompiling and Cygwin fixes by Jan Nieuwenhuizen. Thanks!
212
213 * Makefile.am: Override default rule for c-tokenize.$(OBJECT);
214 this should be compiled for BUILD host.
215 Override default rule for
216 guile_filter_doc_snarfage$(EEXECT); this should run on BUILD host.
217 Add missing $(EXEEXT) to guile_filter_doc_snarfage invocation.
218 (snarf2checkedtexi): Use GUILE_FOR_BUILD instead of preinstguile.
219
220 * guile.c, iselect.h, net_db.c, posix.c, socket.c: Do not include
221 <winsock2.h> on Cygwin even when we have it.
222
bd987b8e
DH
2232002-07-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
224
225 * __scm.h (SCM_CAUTIOUS), eval.c (scm_eval_args, deval_args,
226 SCM_CEVAL): Removed compile time option SCM_CAUTIOUS to clean up
227 the code. Full number of arguments checking of closures is
228 mandatory now. However, the option to disable the checking has
229 most probably not been used anyway.
230
8505e285
DH
2312002-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
232
bd987b8e
DH
233 * __scm.h (SCM_RECKLESS), backtrace.c (SCM_ASSERT), debug.c
234 (scm_debug_options), eval.c (scm_lookupcar, scm_lookupcar1,
235 scm_badargsp, SCM_CEVAL, SCM_APPLY, scm_map, scm_for_each),
236 feature.c (scm_init_feature), gsubr.c (scm_gsubr_apply), numbers.c
237 (scm_logand, scm_logior, scm_logxor, scm_i_dbl2big), srcprop.c
238 (scm_source_properties, scm_set_source_properties_x,
239 scm_source_property): Removed compile time option SCM_RECKLESS to
240 clean up the code. Full number of arguments checking of closures
241 is mandatory now. However, the option to disable the checking has
242 most probably not been used anyway.
8505e285
DH
243
244 * srcprop.c (scm_source_properties, scm_set_source_properties_x,
245 scm_source_property): Use !SCM_CONSP instead of SCM_NCONSP.
246
2ee08a28
GH
2472002-06-30 Gary Houston <ghouston@arglist.com>
248
732b9327
GH
249 * dynl.c: Removed all SCM_DEFER_INTS/SCM_ALLOW_INTS, which won't
250 do anything useful. Added a comment about need for a mutex if
251 pre-emptive threading is supported.
252
2ee08a28
GH
253 * posix.c (scm_convert_exec_args), dynl.c
254 (scm_make_argv_from_stringlist): static procs: 1) renamed both to
255 allocate_string_pointers. 2) simplified: don't reallocate the
256 strings, just make an array of pointers 3) avoid memory leaks on
257 error 4) let the procedure report errors in its own name.
258 Consequences: 1) the procedures now assume that SCM strings are
259 nul-terminated, which should always be the case. 2) Since strings
260 are not reallocated, it's now possible for strings passed to
261 dynamic-args-call to be mutated.
262
c136c920
DH
2632002-06-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
264
265 * __scm.h, eval.c, eval.h: Removed compile time option
266 MEMOIZE_LOCALS to clean up the code. Now, caching of local
267 variable positions during memoization is mandatory. However, the
268 option to disable the caching has most probably not been used
269 anyway.
270
e540802f
MV
2712002-06-18 Marius Vollmer <mvo@zagadka.ping.de>
272
273 * print.c (scm_simple_format): Print missing part of format before
274 ~% control. Thanks to Daniel Skarda!
275
4c1ffcdd
MV
2762002-06-01 Marius Vollmer <mvo@zagadka.ping.de>
277
278 * mkstemp.c: Added exception notice to license statement.
279
ba1b077b
MV
2802002-05-22 Marius Vollmer <mvo@zagadka.ping.de>
281
8dc434c7
MV
282 * numbers.c (mem2ureal): When returning an inexact zero, make sure
283 it is represented as a floating point value so that we can change
284 its sign.
285
ba1b077b
MV
286 From John W. Eaton <jwe@bevo.che.wisc.edu>
287
288 * numbers.c (idbl2str): Don't omit sign when printing negative zero.
289
74c58131
TTN
2902002-05-14 Thien-Thi Nguyen <ttn@giblet.glug.org>
291
292 * gc_os_dep.c: For I386/OPENBSD, allow for `__i386__'
0926d46e 293 in addition to `i386'. Thanks to Dale P. Smith.
74c58131 294
8766d4b5
MV
2952002-05-08 Marius Vollmer <mvo@zagadka.ping.de>
296
297 * eq.c (real_eqv): New.
298 (scm_eqv_p): Use it when comparing reals and complexes.
299
300 * numbers.c: Include <string.h>, for strncmp.
301 (mem2complex): Do not create negative NaNs.
302 (scm_leq_p, scm_geq_p): Explicitely return #f when comparing a
303 NaN.
304 (scm_inexact_to_exact): Signal error when converting a NaN.
74c58131 305
1d8c3cad
MV
3062002-05-06 Marius Vollmer <mvo@zagadka.ping.de>
307
308 * posix.c (scm_putenv): Handle removing variables explicitely by
309 calling unsetenv.
310
311 From John W. Eaton.
74c58131 312
1d8c3cad
MV
313 * numbers.h: Conditionally include floatingpoint.h, ieeefp.h, and
314 nan.h. Provide declarations for scm_inf_p, scm_nan_p, scn_inf,
315 and scm_nan.
316 * numbers.c: [SCO && ! HAVE_ISNAN] (isnan): New function.
317 [SCO && ! HAVE_ISINF] (isinf): New function.
318 (xisinf, xisnan): New functions.
319 (IS_INF): Delete.
320 (isfinite): Define in terms of xisinf.
321 (scm_inf_p, scm_nan_p): New functions.
322 (guile_Inf, guile_NaN): New file-scope vars.
323 (guile_ieee_init): New function.
324 (scm_inf, scm_nan): New functions.
325 (idbl2str): Handle Inf and NaN. Remove funny label and
326 corresponding gotos.
327 (ALLOW_DIVIDE_BY_ZERO): New macro.
328 (scm_divide): Allow division by zero to occur if
329 ALLOW_DIVIDE_BY_ZERO is defined.
330 Handle bignums and ints as special cases.
331
332 Additional stuff by me:
333
334 numbers.c (mem2ureal): Recognize "inf.0" and "nan.xxx".
335 (scm_even_p, scm_odd_p): Treat infinity as even and odd.
336 (iflo2str): Don't output a '+' for negative numbers or for Inf and
337 NaN. They will provide their own sign.
338 (scm_divide): Only allow divides by inexact zeros. Dividing by
339 exact zeros still signals an errors.
74c58131 340
7a0c65eb
TTN
3412002-04-22 Thien-Thi Nguyen <ttn@giblet.glug.org>
342
87b72063 343 * goops.h (scm_slot_exists_p): Rename from scm_slots_exists_p.
7a0c65eb
TTN
344 * goops.c (scm_slot_exists_p): Rename from scm_slots_exists_p.
345 (s_scm_slot_exists_p): Rename from s_scm_slots_exists_p.
346 Thanks to Andreas Rottmann.
347
5e423a39
GH
3482002-04-20 Gary Houston <ghouston@arglist.com>
349
350 * removal of unused fields in root state (thanks to Christopher
351 Cramer for pointing out the disuse.)
352 * root.h (scm_root_state): removed def_inp, def_outp, def_errp.
1841c44a 353 (scm_def_inp, scm_def_outp, scm_def_errp): removed.
b6287a25 354
5e423a39
GH
355 * root.c (root_mark): don't mark them.
356 (scm_make_root): don't set them to #f.
357 * init.c (scm_init_standard_ports): don't initialise with the
358 default ports.
359
9d2cce76
MV
3602002-04-17 Marius Vollmer <mvo@zagadka.ping.de>
361
362 * Makefile.am (EXTRA_DIST): Added cpp_err_symbols.c and
363 cpp_sig_symbols.c.
364
3652002-04-16 Marius Vollmer <mvo@zagadka.ping.de>
366
367 * guile-snarf.in: Do not clean input file. This would write to
368 the $(srcdir) during a VPATH build, which is not allowed. It also
369 isn't needed since it only works when an output filename has been
370 specified and in that case we don't need to clean the input file
371 because the output file will already exist.
372
6f79b6cc
MV
3732002-03-31 Marius Vollmer <mvo@zagadka.ping.de>
374
375 * guile-snarf: Install the trap for removing $cleanfile only when
376 the value of $cleanfile is actually known.
377
21550b10
RB
3782002-04-10 Rob Browning <rlb@defaultvalue.org>
379
380 * .cvsignore: add versiondat.h and *.c.clean.c.
381
bc76d628
DH
3822002-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
383
384 * srcprop.[ch] (scm_c_source_property_breakpoint_p): New
385 function, replaces macro SRCBRKP.
386
387 (SRCBRKP): Deprecated.
388
389 * eval.c (SCM_CEVAL): Replaced use of SRCBRKP by call to
390 scm_c_source_property_breakpoint_p. Removed some use of arg1 as
391 temporary variable.
392
5132eef0
DH
3932002-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
394
395 * debug.h, eval.c: Deprecated CHECK_ENTRY, CHECK_APPLY and
396 CHECK_EXIT and removed all references to them.
397
680516ba
DH
3982002-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
399
400 * debug.h (scm_ready_p, debug_print): Removed declarations.
401
402 * eval.c (EVALCELLCAR): Removed.
403
404 (SCM_CEVAL): Eliminated label loopnoap. Removed side-effecting
405 operation from condition.
406
e2bd68e0
MV
4072002-03-24 Marius Vollmer <mvo@zagadka.ping.de>
408
409 * guile-snarf.in: When the output filename is "-", write to
410 stdout. When no "-o" option is given, use "-" as the output
411 filename (i.e., stdout). Only 'clean' the inputfile or remove the
412 output file on error when the output file name is not "-". Define
413 the preprocessor macro SCM_MAGIC_SNARFER while snarfing.
414
415 * Makefile.am (.c.x): Pass "-o $@" to guile-snarf.
416
ab1f1094
DH
4172002-03-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
418
419 * eval.c (SCM_CEVAL, SCM_APPLY): Eliminated labels wrongnumargs
420 and the corresponding goto statements. Removed redundant code.
421
42030fb2
DH
4222002-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
423
424 * eval.c (SCM_CEVAL): Minimized scope of variable arg2.
425 Eliminated redundant SCM_IMP check. Exlined call to EVALCAR.
426 Re-enabled handing of rpsubrs and asubrs.
427
e050d4f8
DH
4282002-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
429
430 * eval.c (SIDEVAL): Removed.
431
432 (SCM_CEVAL): Minimized scope of variable orig_sym. Eliminated
433 goto-labels cdrxnoap, cdrxbegin and nontoplevel_cdrxnoap. Changed
434 argument checking order for set! to locals, variables and symbols.
435 Improvements to control structure. Removed some uses of arg1 and
436 arg2 as temporary variables.
437
a6d344d3
TTN
4382002-03-15 Thien-Thi Nguyen <ttn@giblet.glug.org>
439
440 * guile-snarf.in: Remove "--compat=1.4" support.
441 Add "-d" and "-D" support.
442
443 (deprecated_list): New var.
444 (compat_mode_clean_xxx): Delete.
445 (grep_deprecated): New func.
446 ("main"): If "-d" or "-D", call `grep_deprecated'.
447
3939e9df
NJ
4482002-03-15 Neil Jerram <neil@ossau.uklinux.net>
449
387d418c
NJ
450 * hooks.h: Change scm_t_c_hookype_t everywhere to
451 scm_t_c_hook_type.
452
bb2c02f2 453 Docstring fixes:
a6d344d3 454
bb2c02f2
NJ
455 * strings.c (scm_string_p): Change unnecessary `iff' to `if'.
456
457 * ports.c (scm_sys_make_void_port): Use `@file'.
458
459 * numbers.c (scm_number_p, scm_real_p): Use `otherwise' rather
460 than `else'.
461
462 * macros.c (scm_makmacro): Don't say that the form replaces its
463 source, because it doesn't.
464 (scm_makmmacro): Clarify difference between this and scm_makmacro.
465
466 * backtrace.c (scm_display_error), filesys.c (scm_umask,
467 scm_select, scm_basename), goops.c (scm_method_generic_function),
468 numbers.c (scm_integer_length), posix.c (scm_getgroups, scm_execl,
469 scm_setlocale, scm_flock), socket.c (scm_shutdown): Correct
470 spelling mistakes.
471
3939e9df
NJ
472 * debug.c (scm_debug_options), eval.c
473 (scm_eval_options_interface), read.c (scm_read_options): Change
474 incorrect @var in docstring to @code.
475
3b3cc781
MV
4762002-03-14 Marius Vollmer <mvo@zagadka.ping.de>
477
500b0d5b
MV
478 * unif.c (singp): Use SCM_REALP instead of SCM_SLOPPY_REALP.
479
3b3cc781
MV
480 * snarf.h (SCM_SNARF_INIT): Add "^:^" after code so that
481 guile-snarf can remove trailing non-init code.
482
483 * guile-snarf.in (modern_snarf): Remove everything following and
484 including "^:^" from the output.
485
dff98306
DH
4862002-03-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
487
488 * eval.c (SCM_CEVAL), srcprop.h (SRCBRKP): Eliminated union 't'.
489
490 * eval.c (SCM_CEVAL): Exlined call to EVALCAR.
491
2287fb53
TTN
4922002-03-13 Thien-Thi Nguyen <ttn@giblet.glug.org>
493
494 * guile-snarf.in: Update copyright.
495 Rewrite to internalize error handling.
496 Add "--compat=1.4" handling.
497 Add commentary.
498
499 * Makefile.am (libpath.h): Use @top_srcdir_absolute@.
500 (snarfcppopts): New var.
501 (.c.x): Use $(snarfcppopts). Rework guile-snarf usage.
502 (.c.doc): Use $(snarfcppopts).
503
822250a4
TTN
504 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
505 continuations.c, debug-malloc.c, debug.c, deprecation.c, dynl.c,
506 dynwind.c, environments.c, eq.c, error.c, eval.c, evalext.c,
507 extensions.c, feature.c, filesys.c, fluids.c, fports.c, gc.c,
508 goops.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
509 ioext.c, iselect.c, keywords.c, lang.c, list.c, load.c, macros.c,
510 modules.c, net_db.c, numbers.c, objects.c, objprop.c, options.c,
511 pairs.c, ports.c, posix.c, print.c, procprop.c, procs.c,
512 properties.c, ramap.c, random.c, rdelim.c, read.c, regex-posix.c,
513 root.c, rw.c, scmsigs.c, script.c, simpos.c, socket.c, sort.c,
514 srcprop.c, stackchk.c, stacks.c, stime.c, strings.c, strop.c,
515 strorder.c, strports.c, struct.c, symbols.c, threads.c, throw.c,
516 unif.c, values.c, variable.c, vectors.c, version.c, vports.c,
517 weaks.c: Retire inclusion guard macro SCM_MAGIC_SNARFER.
518
b7798e10
DH
5192002-03-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
520
521 * eval.c (SCM_CEVAL): Got rid of the last reference to t.lloc.
522 The next step will be to remove the union 't' and simplify the
523 code of SCM_CEVAL that way.
524
04a98cff
NJ
5252002-03-12 Neil Jerram <neil@ossau.uklinux.net>
526
527 * iselect.c (collisionp, gnfds, greadfds, gwritefds, gexceptfds,
528 rreadfds, rwritefds, rexceptfds): Made static.
529
530 * gc.c (terminating), fports.c (terminating): Renamed
531 scm_i_terminating.
532
16d98032
MV
5332002-03-11 Marius Vollmer <mvo@zagadka.ping.de>
534
5046250e
MV
535 * numbers.c (scm_divide): Adapt code from libstdc++/f2c to void
536 potential overflow problems. Thanks to John W Eaton!
537
8794207d
MV
538 * strop.c (string_capitalize_x): Treat characters as unsigned so
539 that 8-bit chars work. Thanks to David Pirotte!
16d98032 540
1d15ecd3
DH
5412002-03-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
542
543 * eval.c (SCM_CEVAL): Cleaned up the handling of 'slot-ref',
544 'slot-set!' and 'nil-cond'. Removed some uses of t.arg1, arg2 and
545 proc as temporary variables. Introduced temporary variables with
546 hopefully descriptive names for clarification. Replaced SCM_N?IMP
547 by a more explicit predicate in some places.
548
5492002-03-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
f12745b6
DH
550
551 * eval.c (SCM_CEVAL): Cleaned up the handling of #@dispatch.
552 Added lots of comments regarding the implementation of #@dispatch.
553 Changed intra-procedure communication to use t.arg1 instead of
554 arg2. Removed some uses of t.arg1, t.lloc and proc as temporary
555 variables. Introduced temporary variables with hopefully
556 descriptive names for clarification. Replaced SCM_N?IMP by a more
557 explicit predicate in some places. Use SCM_INSTANCE_HASH instead
558 of computing the expression explicitly. Eliminate now unused
559 label nontoplevel_cdrxbegin.
560
561 * goops.h (SCM_INSTANCE_HASH): New macro.
562
563 * objects.h (SCM_CMETHOD_FORMALS, SCM_CMETHOD_BODY): New macros.
564
1ebf1566
TTN
5652002-03-08 Thien-Thi Nguyen <ttn@giblet.glug.org>
566
567 * Makefile.am (bin_SCRIPTS): Revive this decl, w/ initial element
568 "guile-snarf" moved back from `noinst_SCRIPTS'.
569
020c890c
NJ
5702002-03-08 Neil Jerram <neil@ossau.uklinux.net>
571
58d233cc
NJ
572 * srcprop.c (scm_set_source_property_x): If SRCPROPS obj already
573 exists when adding a source property other than those that are
574 handled explicitly, add the new property to the SRCPROPS obj's
575 plist.
576
020c890c
NJ
577 * debug.h (SCM_MAX_FRAME_SIZE): Remove incorrect comment about use
578 of SCM_MAX_FRAME_SIZE as a bit mask; it isn't used like this.
579
580 * eval.c (SCM_CEVAL): Don't store scm_debug_eframe_size in
581 debug.status. It isn't needed, and it can overflow the bits
582 reserved for it (which may lead to a segv or a GC abort).
583
3f04400d
DH
5842002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
585
586 * eval.c (SCM_CEVAL): Cleaned up the handling of 'apply'. Removed
587 side-effecting operations from conditions and macro calls.
588 Replaced SCM_N?IMP by a more explicit predicate in some places.
589 Minimized the scope of some variables.
590
97820583
SJ
5912002-03-02 Stefan Jahn <stefan@lkcc.org>
592
593 * convert.i.c: Fixed int <-> long conversions which would have
594 failed if their sizes were different.
595
38ace99e
DH
5962002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
597
598 * eval.c (SCM_CEVAL): Cleaned up the handling of 'if', 'let',
599 'letrec' and 'set*': Removed some uses of t.arg1, t.lloc and proc
600 as temporary variables. Removed side-effecting operations from
601 conditions and macro calls. Introduced temporary variables with
602 hopefully descriptive names for clarification. Replaced SCM_N?IMP
603 by a more explicit predicate in some places. Removed code that
604 was conditionally compiled if SICP was defined - which it never
605 is.
606
e5cb71a0
DH
6072002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
608
609 * eval.c (SCM_CEVAL): Cleaned up the handling of 'cons' and 'do':
610 Removed some uses of t.arg1 and proc as temporary variables.
611 Removed side-effecting operations from conditions and macro calls.
612 Introduced temporary variables with hopefully descriptive names
613 for clarification. Replaced SCM_N?IMP by a more explicit
614 predicate in some places.
615
6a0f6ff3
DH
6162002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
617
618 * eval.c (scm_badargsp, SCM_CEVAL): Replaced SCM_N?IMP by a more
619 explicit predicate in some places.
620
621 (CHECK_EQVISH): Removed.
622
623 (SCM_CEVAL): Removed some uses of t.arg1 and proc as temporary
624 variables. Removed side-effecting operations from conditions and
625 macro calls. Introduced temporary variables for clarification.
626 Sorted if-else-if check for the type of the last form in a list by
627 frequency. Avoided some unnecessary tail-recursion calls.
628
228a24ef
DH
6292002-03-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
630
631 * gc.c (SCM_HEAP_SEG_SIZE, CELL_UP, CELL_DN, NEXT_DATA_CELL,
632 init_heap_seg, alloc_some_heap), gc.h (struct scm_cell, struct
633 scm_t_cell, SCM_CELLPTR, SCM_GC_CARD_SIZE,
634 SCM_GC_IN_CARD_HEADERP), tags.h (SCM_CELLP): Renamed the struct
635 scm_cell and all its uses to scm_t_cell in accordance to Guile's
636 naming scheme for types.
637
638 * alist.c (scm_acons), convert.i.c (CTYPES2UVECT,
639 CTYPES2UVECT_OPTIONAL), coop-threads.c (scm_call_with_new_thread,
640 scm_spawn_thread), debug.c (scm_make_debugobj), environments.c
641 (scm_make_environment), eval.c (scm_closure), fports.c
642 (scm_fdes_to_port), gc.c (scm_deprecated_newcell,
643 scm_deprecated_newcell2), inline.h (scm_alloc_cell, scm_cell),
644 list.c (SCM_I_CONS), numbers.c (scm_i_mkbig), pairs.c (scm_cons),
645 ports.c (scm_void_port), procs.c (scm_c_make_subr, scm_makcclo),
646 smob.c (scm_make_smob), smob.h (SCM_NEWSMOB), strings.c
647 (scm_take_str, scm_allocate_string), strports.c (scm_mkstrport),
648 unif.c (scm_make_uve), variable.c (make_variable), vectors.c
649 (scm_c_make_vector), vports.c (scm_make_soft_port): Renamed
650 scm_alloc_cell to scm_cell.
651
652 * environments.c (core_environments_observe), gc.c
653 (scm_deprecated_newcell2), goops.c (wrap_init, scm_wrap_object),
654 inline.h (scm_alloc_double_cell, scm_double_cell), num2float.i.c
655 (FLOAT2NUM), numbers.c (scm_make_real), procs.c
656 (scm_make_procedure_with_setter), smob.h (SCM_NEWSMOB2,
657 SCM_NEWSMOB3), struct.c (scm_make_struct, scm_make_vtable_vtable),
658 symbols.c (scm_mem2symbol, scm_mem2uninterned_symbol), weaks.c
659 (allocate_weak_vector): Renamed scm_alloc_double_cell to
660 scm_double_cell.
661
edb810bb
SJ
6622002-02-27 Stefan Jahn <stefan@lkcc.org>
663
664 * convert.i.c, convert.c: Better range checking.
665
666 * inet_aton.c, fports.c: Commented the inclusion of <winsock2.h>.
667
1ebf1566 668 * deprecation.c (vsnprintf): Define to `_vsnprintf' for
edb810bb
SJ
669 Windows (MinGW).
670
327d4dd3
TTN
6712002-02-26 Thien-Thi Nguyen <ttn@giblet.glug.org>
672
673 * Makefile.am: Update path to pre-inst-guile automake frag.
674
89d7a92c 6752002-02-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
646052c0
DH
676
677 * gc.c (scm_gc_sweep): Make it compile even when deprecated
678 features are excluded.
679
89d7a92c 6802002-02-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
bac0e232
DH
681
682 * num2integral.i.c (NUM2INTEGRAL): Fixed signedness problem.
683
4f2716b6
GH
6842002-02-25 Gary Houston <ghouston@arglist.com>
685
686 * convert.c: include <string.h> for convert_i.c.
687
46151112
RB
6882002-02-24 Rob Browning <rlb@defaultvalue.org>
689
690 * .cvsignore: add stamp-h1.
691
cd328b4f
NJ
6922002-02-21 Neil Jerram <neil@ossau.uklinux.net>
693
694 * unif.c (scm_array_to_list): Correct name, which had been
695 accidentally changed to scm_t_arrayo_list!
696
c709de7f
MD
6972002-02-20 Mikael Djurfeldt <mdj@linnaeus>
698
699 * gc.c (scm_gc_sweep): Print an error message when aborting due to
700 underflowing scm_mallocated.
701
c1965d31
MV
7022002-02-14 Marius Vollmer <marius.vollmer@uni-dortmund.de>
703
704 * gc.h, gc.c (scm_must_malloc, scm_must_realloc, scm_must_strdup,
705 scm_must_strndup, scm_done_malloc, scm_done_free, scm_must_free):
706 Reimplemented using the new scm_gc_malloc, etc., functions and
707 deprecated.
708
b606945b
TTN
7092002-02-11 Thien-Thi Nguyen <ttn@giblet.glug.org>
710
711 * Makefile.am (bin_PROGRAMS): Move `guile_filter_doc_snarfage'
712 to `noinst_PROGRAMS'.
713 (bin_SCRIPTS): Move all values to `noinst_SCRIPTS'; delete.
714 (noinst_PROGRAMS, noinst_SCRIPTS): New.
715
7c686ba8
MV
7162002-02-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
717
718 * gc.h, gc.c (scm_gc_sweep): Issue deprecation warning when
719 non-zero is returned from a port or smob free function.
720 (scm_malloc, scm_realloc, scm_strndup, scm_strdup,
721 scm_gc_register_collectable_memory,
722 scm_gc_unregister_collectable_memory, scm_gc_malloc,
723 scm_gc_realloc, scm_gc_free, scm_gc_strndup, scm_gc_strdup): New.
724
725 * backtrace.c, continuations.c, convert.i.c, coop-threads.c,
726 debug-malloc.c, dynl.c, environments.c, environments.h,
727 extensions.c, filesys.c, fports.c, gc.c, gc.h, gh_data.c, goops.c,
728 guardians.c, hooks.c, init.c, keywords.c, load.c, numbers.c,
729 ports.c, posix.c, procs.c, rdelim.c, regex-posix.c, root.c,
730 smob.c, stime.c, strings.c, struct.c, struct.h, symbols.c, unif.c,
731 vectors.c, weaks.c: Use scm_gc_malloc/scm_malloc and
732 scm_gc_free/free instead of scm_must_malloc and scm_must_free, as
733 appropriate. Return zero from smob and port free functions.
734
735 * debug-malloc.c (scm_malloc_reregister): Handle "old == NULL".
736
737 * deprecation.h, deprecation.c: Reimplemented to allow deprecation
738 messages while the GC is running.
739 (scm_c_issue_deprecation_warning_fmt): New.
740
741 * fports.c (scm_setvbuf): Reset read buffer to saved values when
742 it is pointing to the putback buffer.
743
66adc0a6
TTN
7442002-02-08 Thien-Thi Nguyen <ttn@giblet.glug.org>
745
746 * gsubr.c (create_gsubr): On "too many args" error,
747 also display arg count and name. Thanks to Bill Schottstaedt.
748
0187b4f4
TTN
7492002-02-05 Thien-Thi Nguyen <ttn@giblet.glug.org>
750
751 * Makefile.am: Include $(top_srcdir)/pre-inst-guile.am.
752
753 (bin_SCRIPTS): Remove guile-snarf-docs-texi.
754 (alldotdocfiles, snarf2checkedtexi, dotdoc2texi): New vars.
755 (guile.texi, guile-procedures.texi): Use $(dotdoc2texi).
756
757 * guile-snarf-docs-texi.in: Bye bye.
758
402e687c
MV
7592002-02-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
760
761 * symbols.c (scm_make_symbol): Fix typo in docstring.
762
763 * symbols.h (scm_mem2uninterned_symbol, scm_symbol_interned_p,
764 scm_make_symbol): New prototypes.
765
319b98ed
MV
7662002-02-03 Marius Vollmer <mvo@zagadka.ping.de>
767
768 * symbols.h (SCM_SET_SYMBOL_HASH): Removed.
769 (SCM_SYMBOL_INTERNED_P): New.
770 * symbols.c (scm_symbol_hash): Use scm_ulong2num instead of
771 SCM_MAKINUM since hash values can well be bignums.
772 (scm_mem2symbol): Only use hash values below SCM_T_BITS_MAX/2.
773 This signals a interned symbol.
774 (scm_mem2uninterned_symbol, scm_symbol_interned_p,
775 scm_make_symbol): New.
0187b4f4 776
319b98ed
MV
777 * print.c (scm_iprin1): Print uninterned symbols unreadably.
778
34472dfe
TTN
7792002-02-02 Thien-Thi Nguyen <ttn@giblet.glug.org>
780
781 * __scm.h (HAVE_UINTPTR_T): Only define if UINTPTR_T attributes
782 are defined: UINTPTR_MAX, INTPTR_MAX, INTPTR_MIN.
0187b4f4 783 Thanks to Dave Love.
34472dfe 784
1b39c2e3
MV
7852002-01-31 Marius Vollmer <mvo@zagadka.ping.de>
786
787 * symbols.c (scm_gensym): Use " g" as default prefix, not "g".
319b98ed 788 This might help to make unintended clashes less likely.
1b39c2e3
MV
789 (scm_string_to_symbol): Protect the string until the symbols is
790 created.
791
1fa86ca5
SJ
7922002-01-31 Stefan Jahn <stefan@lkcc.org>
793
794 * convert.c, convert.h, convert.i.c: New files containing C
34472dfe 795 array to Scheme conversion helpers meant to be replacement
1fa86ca5
SJ
796 functions for the deprecated gh interface.
797
798 * Makefile.am: Setup rules for new `convert.*' files.
799
af68e5e5
SJ
8002002-01-28 Stefan Jahn <stefan@lkcc.org>
801
802 * symbols.c (scm_c_symbol2str): New function, replacement for
803 `gh_scm2newsymbol()'.
804
34472dfe 805 * strings.c (scm_c_substring2str): New function. Proper
af68e5e5
SJ
806 replacement for `gh_get_substr()'.
807
808 * socket.c: Include `stdint.h' if available for the `uint32_t'
809 declaration.
810
34472dfe 811 * scmsigs.c (s_scm_sigaction): Initialize `chandler' (inhibits
af68e5e5
SJ
812 compiler warning).
813
814 * backtrace.c: Include `lang.h' for GUILE_DEBUG conditional.
815
c96d76b8 8162002-01-22 Neil Jerram <neil@ossau.uklinux.net>
34472dfe 817
c96d76b8 818 Other changes unrelated to Elisp...
34472dfe 819
c96d76b8
NJ
820 * eval.c (scm_m_if): Use s_if rather than repeating string literal
821 "if".
822 (comments): Fix a few typos.
823 (scm_for_each): Add parentheses around oddly unparenthesized
824 if/while conditions.
825
826 * read.c (scm_read_opts): Add full stop at end of doc for
827 `keywords' option.
828
829 * script.c (scm_compile_shell_switches): Use scm_str2symbol
830 instead of gh_symbol2scm.
831
832 * srcprop.h (SRCPROPBRK): Return C type rather than SCM.
833 (SRCBRKP): Use SRCPROPBRK rather than duplicating its logic.
834
835 * srcprop.c (scm_srcprops_to_plist, scm_source_property): Change
836 SRCPROPBRK (x) to SCM_BOOL (SRCPROPBRK (x)).
837
838 First batch of changes for Elisp support...
839
840 * alist.c, async.c, boolean.c, dynl.c, eval.c, filesys.c,
841 fluids.c, list.c, load.c, options.c, posix.c, print.c, sort.c,
842 throw.c, vectors.c, weaks.c: Add #include for lang.h.
843
844 * eval.c, eval.h, init.c, lang.c, lang.h: Use SCM_ENABLE_ELISP to
845 conditionalize compilation and initialization of Elisp support
846 function.
34472dfe 847
c96d76b8
NJ
848 * alist.c (scm_assq, scm_assv, scm_assoc), async.c
849 (scm_asyncs_pending, scm_run_asyncs, noop), backtrace.c
850 (scm_set_print_params_x), dynl.c (scm_make_argv_from_stringlist),
851 filesys.c (fill_select_type, retrieve_select_type), fluids.c
852 (scm_swap_fluids, scm_swap_fluids_reverse), list.c (scm_null_p,
853 scm_ilength, scm_append_x, scm_last_pair, scm_reverse,
854 scm_reverse_x, scm_list_ref, scm_list_set_x, scm_list_cdr_set_x,
bbd26b5a
NJ
855 scm_c_memq, scm_memv, scm_member), load.c (scm_search_path),
856 options.c (change_option_setting, scm_options), posix.c
857 (environ_list_to_c), print.c (scm_iprlist), throw.c
858 (scm_exit_status), vectors.c (scm_vector), weaks.c
859 (scm_weak_vector): Use SCM_NULL_OR_NIL_P instead of SCM_NULLP.
c96d76b8
NJ
860
861 * boolean.c (scm_not): Use `SCM_FALSEP || SCM_NILP' instead of
862 just SCM_FALSEP.
34472dfe 863
c96d76b8
NJ
864 * boolean.c (scm_boolean_p): Use `SCM_BOOLP || SCM_NILP' instead
865 of just SCM_BOOLP.
866
867 * eval.c (scm_lisp_nil, scm_lisp_t, s_nil_ify, scm_m_nil_ify,
868 s_t_ify, scm_m_t_ify, s_0_cond, scm_m_0_cond, s_0_ify,
869 scm_m_0_ify, s_1_ify, scm_m_1_ify): Removed.
870 (scm_m_atfop): Support function aliasing. Support both function
871 args, which need transformation, and macro args, which do not.
872 Add explanatory comments.
873 (SCM_CEVAL): In switch cases for SCM_IM_AND, SCM_IM_COND,
874 SCM_IM_DO, SCM_IM_IF and SCM_IM_OR, add `|| SCM_NILP' to existing
875 checks for SCM_FALSEP. In switch case for SCM_IM_NIL_COND, use
876 SCM_NULLP || SCM_NILP instead of checks against (removed)
877 scm_lisp_nil. Removed switch cases for SCM_IM_NIL_IFY,
878 SCM_IM_T_IFY, SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY.
879
880 * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
881 scm_m_while, scm_nil_eq): Commented out; I don't think we need
882 these, but I don't want to remove them yet, just in case.
883 (scm_init_lang): Define `%nil' variable on Scheme level to hold
884 Elisp nil value.
885
886 * lang.h (SCM_NILP): Test against Elisp nil value instead of
887 against (removed) scm_lisp_nil.
888 (SCM_NILNULLP, SCM_NIL2EOL, SCM_EOL2NIL): Commented out.
889 (SCM_NULL_OR_NIL_P): New.
890
891 * list.c (scm_append): Use SCM_VALIDATE_NULL_OR_NIL instead of
892 SCM_VALIDATE_NULL.
893
894 * print.c (scm_isymnames): Fix comment. Remove #@nil-ify,
895 #@t-ify, #@0-cond, #@0-ify, #@1-ify. Add #nil (for SCM_ELISP_NIL
896 value).
897
898 * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
899 scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort): Use
900 SCM_NULL_OR_NIL_P instead of SCM_NULLP. In constructions like `if
901 (SCM_NULLP (x)) return SCM_EOL;', return x rather than SCM_EOL.
902
903 * tags.h (SCM_IM_NIL_IFY, SCM_IM_T_IFY, SCM_IM_0_COND,
904 SCM_IM_0_IFY, SCM_IM_1_IFY): Removed.
905 (SCM_IM_BIND, SCM_IM_DELAY, SCM_IM_CALL_WITH_VALUES, SCM_UNBOUND):
906 Numbering shifted down accordingly.
907 (SCM_ELISP_NIL): New IFLAG.
908
909 * validate.h (SCM_VALIDATE_NULL_OR_NIL): New.
34472dfe 910
a392ee15
DH
9112002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
912
913 * eval.c: Removed outdated references to "everr". Improved some
914 comments.
915
916 (scm_deval_args, deval_args): Renamed scm_deval_args to
917 deval_args, since it is not part of the interface.
918
919 (SCM_CEVAL): Added (maybe somewhat verbose) comment. Avoid to
920 use references to debug.vect[0] before it exists. Add parentheses
921 to switch statement.
922
923 * goops.h: Added local emacs variables.
924
24933780
DH
9252002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
926
927 * eval.[ch] (scm_deval_args): Made static.
928
929 * srcprop.c (scm_source_property): Remove redundant SCM_IMP
930 test.
931
932 * strings.c (scm_c_string2str): Clarified comment. Replaced
933 THINKME by FIXME for uniformness. Removed question about whether
934 arguments need to be protected from garbage collection: Arguments
935 must be protected as any other variable.
936
f9450cdb
DH
9372002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
938
939 * procs.h (SCM_CLOSURE_BODY): New Macro.
940
941 * debug.c (scm_procedure_name, scm_procedure_source), eval.c
942 (SCM_CEVAL, SCM_APPLY), goops.c (scm_sys_initialize_object,
943 get_slot_value, set_slot_value), procs.c
944 (scm_procedure_documentation), sort.c (closureless), stacks.c
945 (get_applybody): Replace SCM_CDR (SCM_CODE (...)) by
946 SCM_CLOSURE_BODY.
947
948 * sort.c (closureless): Prefer !SCM_FOOP over SCM_NFOOP.
949
5dc64f64
MV
9502001-12-26 Marius Vollmer <mvo@zagadka.ping.de>
951
952 * Makefile.am (guile-procedures.txt): When we don't have makeinfo,
953 use "cp" instead.
954
197ee3d3
MV
9552001-12-16 Marius Vollmer <mvo@zagadka.ping.de>
956
957 * stacks.c, stacks.h (scm_t_stackype): Renamed to scm_stack_type
958 everywhere.
959
960 * continuations.c (scm_make_continuation): Do not retain the
961 throw_value when the continuation is invoked.
962
4d4528e7
SJ
9632001-12-08 Stefan Jahn <stefan@lkcc.org>
964
965 * strings.c (scm_c_string2str): New function. Converts a
34472dfe 966 given Scheme string into a C string. Also put in two
4d4528e7
SJ
967 THINKME's regarding the malloc policy for the missing converter
968 routines.
969
98347362
NJ
9702001-12-01 Neil Jerram <neil@ossau.uklinux.net>
971
972 * gh_data.c (gh_module_lookup): Use scm_str2symbol rather than
973 gh_symbol2scm.
974
1fc8902f
DH
9752001-11-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
976
977 * gc.h (SCM_GC_CELL_WORD, SCM_GC_CELL_OBJECT,
978 SCM_GC_SET_CELL_WORD, SCM_GC_SET_CELL_OBJECT): New macros.
979
980 (SCM_GC_CELL_TYPE, SCM_CELL_WORD, SCM_CELL_OBJECT,
981 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT, SCM_FREE_CELL_CDR,
982 SCM_GC_SET_CELL_OBJECT): Express in terms of SCM_GC_CELL_*
983 macros.
984
985 (SCM_FREE_CELL_P): Express in terms of SCM_GC_CELL_TYPE.
986
987 * inline.h (scm_alloc_cell, scm_alloc_double_cell): Use
988 SCM_GC_CELL_* macros when accessing free cells.
989
4878beec
MV
9902001-11-25 Marius Vollmer <mvo@zagadka.ping.de>
991
992 * vectors.h (SCM_MAKE_VECTOR_TAG): New.
34472dfe 993 * unif.h (SCM_MAKE_BITVECTOR_TAG, SCM_MAKE_UVECTOR_TAG): New.
4878beec
MV
994 * symbols.h (SCM_MAKE_SYMBOL_TAG): New.
995 * strings.h (SCM_MAKE_STRING_TAG): New.
996 * procs.h (SCM_MAKE_CCLO_TAG): New.
997 * numbers.h (SCM_MAKE_BIGNUM_TAG): New.
998
999 * goops.h: Replaced SCM_DEBUG_DEPRECATED with
1000 !SCM_ENABLE_DEPRECATED.
1001
1002 * async.c, async.h (scm_system_async_mark_from_signal_handler):
1003 New.
1004
1005 * scmsigs.c (scm_take_signal): Removed all code that assumes that
1006 signal handlers are allowed to divert the flow of control. Call
1007 scm_system_async_mark_from_signal_handler instead of
1008 scm_system_async_mark.
1009
1010
1011 Deprecated SCM_NEWCELL and SCM_NEWCELL2. Added scm_alloc_cell and
1012 scm_alloc_double_cell in their place.
34472dfe 1013
4878beec
MV
1014 * gc.h (SCM_GC_SET_ALLOCATED, scm_debug_newcell,
1015 scm_debug_newcell2, scm_tc16_allocated): Removed from header.
1016 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
1017 (SCM_NEWCELL, SCM_NEWCELL2): Implement in terms of
1018 scm_deprecated_newcell and scm_deprecated_newcell2.
1019
1020 gc.c (scm_tc16_allocated): Only define when including deprecated
1021 features.
1022 (scm_debug_newcell, scm_debug_newcell2): Removed.
1023 (scm_init_storage): Do not initialize scm_tc16_allocated.
1024 (scm_init_gc): Do it here.
1025 (allocated_mark): New, from old code.
1026 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
34472dfe 1027
4878beec 1028 * inline.c, inline.h: New files.
34472dfe 1029 * Makefile.am: Added them in all the right places.
4878beec 1030
34472dfe 1031 * _scm.h: Include "libguile/inline.h".
4878beec
MV
1032
1033 * alist.c, coop-threads.c, debug.c, environments.c, eval.c,
1034 fports.c, gh_data.c, goops.c, guardians.c, lang.c, list.c,
1035 num2float.i.c, numbers.c, pairs.c, ports.c, print.c, procs.c,
1036 smob.c, smob.h, strings.c, strports.c, struct.c, symbols.c,
1037 unif.c, variable.c, vectors.c, vports.c, weaks.c: Replaced
1038 SCM_NEWCELL and SCM_NEWCELL2 with scm_alloc_cell and
1039 scm_alloc_double_cell, respectively.
1040
d2bc7fae
MV
10412001-11-23 Marius Vollmer <mvo@zagadka.ping.de>
1042
1043 * modules.c (scm_c_use_module): Adapt to changes to
1044 `process-use-modules'.
1045
5eec27e9
DH
10462001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1047
1048 * numbers.c (scm_divide): Fix more division by zero errors.
1049
8978878f
GH
10502001-11-21 Gary Houston <ghouston@arglist.com>
1051
1052 * Makefile.am (OMIT_DEPENDENCIES): removed, since it seems to be
1053 obsolete. autogen.sh says:
1054 invalid unused variable name: `OMIT_DEPENDENCIES'
1055
164826d3
DH
10562001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1057
1058 * numbers.c (scm_divide): Fix (/ 0). Thanks to Keith Wright for
1059 reporting the bug.
1060
84aff7a7
MV
10612001-11-21 Marius Vollmer <mvo@zagadka.ping.de>
1062
1063 * Makefile.am (install-exec-hook): Prepend $(DESTDIR) to filename.
1064 Thanks to Eric Gillespie, Jr!
34472dfe 1065
6063dc1d
SJ
10662001-11-21 Stefan Jahn <stefan@lkcc.org>
1067
34472dfe
TTN
1068 * win32-socket.c (getservent, setservent, endservent,
1069 getprotoent, setprotoent, endprotoent): New functions.
6063dc1d
SJ
1070 Appropriate replacements for M$-Windows.
1071
1072 * numbers.c (SIZE_MAX, PTRDIFF_MAX, PTRDIFF_MIN): Reintroduced
1073 these definitions for GUILE_DEBUG.
1074
1075 * net_db.c: Include "win32-socket.h" if compiling with a native
34472dfe
TTN
1076 M$-Windows compiler. Include some pieces of code (protoent and
1077 servent interface) protected by HAVE_* macros when using a
6063dc1d
SJ
1078 native M$-Windows compiler.
1079
351982f6
MV
10802001-11-20 Marius Vollmer <mvo@zagadka.ping.de>
1081
1082 * modules.c (scm_c_export): Do nothing when the first argument is
1083 already the terminating NULL. Thanks to Han-Wen Nienhuys!
1084
849038b5
TTN
10852001-11-20 Thien-Thi Nguyen <ttn@glug.org>
1086
1087 * Makefile.am (libpath.h): In SCM_BUILD_INFO,
1088 also include `buildstamp'.
1089
5c790b44
RB
10902001-11-18 Rob Browning <rlb@defaultvalue.org>
1091
1092 * version.c
1093 (s_scm_major_version): use SCM_MAJOR_VERSION.
1094 (s_scm_minor_version): use SCM_MINOR_VERSION.
1095 (s_scm_micro_version): use SCM_MICRO_VERSION.
1096 (s_scm_version): use SCM_MAJOR_VERSION, SCM_MINOR_VERSION, and
1097 SCM_MICRO_VERSION.
1098
1099 * version.h.in
1100 (SCM_MAJOR_VERSION): renamed from SCM_GUILE_MAJOR_VERSION.
1101 (SCM_MINOR_VERSION): renamed from SCM_GUILE_MINOR_VERSION.
1102 (SCM_MICRO_VERSION): renamed from SCM_GUILE_MICRO_VERSION.
1103
694a9bb3
NJ
11042001-11-18 Neil Jerram <neil@ossau.uklinux.net>
1105
1106 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
1107 Rewrite docstrings without reference to substring-move-left/right,
1108 since the latter no longer exist.
1109
302c12b4
DH
11102001-11-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1111
1112 * eval.c: Removed bogus comment about acros.
1113
1114 (scm_unmemocar): Use !SCM_CONSP instead of SCM_IMP.
1115 Minimize scope of local variable. Eliminate dependency on
1116 macro DEBUG_EXTENSIONS.
1117
1118 (s_splicing): New error message string.
1119
1120 (scm_m_body): Issue 'bad body' message rather than 'missing
1121 expression' message.
1122
1123 (scm_m_quote): Eliminate unnecessary copying.
1124
1125 (scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let): Leave the
1126 checking of the body to scm_m_body.
1127
1128 (scm_m_do): Move comment to function header. Rename arg1 to
1129 binding. Made the code a bit easier to read.
1130
1131 (evalcar): Removed.
1132
1133 (iqq): Added a comment. Changed the depth parameter to
1134 unsigned. Use size_t for vector lengths. Make sure vector object
1135 is gc protected as long as its contents are read. Add some syntax
1136 checks. Get rid of unnecessary SCM_IMP test. Clean up the
1137 control structure a bit.
1138
1139 (scm_m_delay): Added comment about the implementation of
1140 scm_m_delay.
1141
1142 (scm_m_define): Add comment about guile's currying define
1143 syntax. Renamed 'proc' to 'name'. Eliminate dependency on macro
1144 DEBUG_EXTENSIONS. Simplified code a bit. Eliminate SICP code.
1145
1146 (scm_m_letrec1): Removed. Part of the functionality is taken
1147 over by the new function 'transform_bindings'.
1148
1149 (transform_bindings): New function. Takes over some of the
1150 functionality of removed function 'scm_m_letrec1', namely to split
1151 a list of bindings into a reversed list of variables and a list of
1152 initializers.
1153
1154 (scm_m_letrec): Call 'transform_bindings'.
1155
1156 (scm_m_let): Minimized scope of local variables. Renamed 'proc'
1157 to 'temp' and 'arg1' to 'binding'. Eliminated redundant SCM_NIMP
1158 test. Use 'transform_bindings'. Fixed scoping error with named
1159 let (Thanks to Aubrey Jaffer for reporting the bug and to Neil
1160 Jerram for suggesting the fix). Cleaned up the control structure
1161 a bit.
1162
1163 (scm_m_expand_body): Use 'transform_bindings'. Eliminated
1164 unnecessary consing. Eliminated unnecessary
1165 SCM_DEFER/ALLOW_INTS.
1166
1167 (SCM_CEVAL): Un-obfuscated some loops.
1168
cecb4a5e
NJ
11692001-11-16 Neil Jerram <neil@ossau.uklinux.net>
1170
8f85c0c6
NJ
1171 * gc.h (scm_unhash_name): Old declaration removed.
1172
1173 * eval.c (s_scm_eval): Change @var{primitive-eval} to
1174 @code{primitive-eval}.
1175
1176 * feature.c, vectors.c, net_db.c, unif.c, weaks.c, struct.c,
1177 version.c, alist.c, ports.c, ramap.c, unif.c, strings.c, list.c:
1178 Change @deffnx lines in docstrings to say {Scheme Procedure}
1179 rather than primitive or procedure.
1180
1181 * posix.c (scm_execl), filesys.c (scm_close), unif.c
1182 (scm_array_set_x, scm_array_contents, scm_uniform_array_read_x,
1183 scm_bit_set_star_x, scm_bit_invert_x), ramap.c (scm_array_fill_x,
1184 scm_array_for_each, scm_array_index_map_x), vectors.c (scm_vector,
1185 scm_make_vector, scm_vector_to_list, scm_vector_fill_x), strop.c
1186 (scm_string_split, scm_string_ci_to_symbol), strings.c
1187 (scm_string_p), sort.c (scm_merge), print.c (scm_newline),
1188 macros.c (scm_macro_type), alist.c (scm_acons, scm_assq):
1189 Docstring fixes and improvements reflecting edits that have been
1190 made in the reference manual source.
1191
1192 * objprop.c (scm_object_properties, scm_set_object_properties_x,
1193 scm_object_property, scm_set_object_property_x): Remove invalid
1194 @deffnx lines for corresponding procedure property primitives.
1195
cecb4a5e
NJ
1196 These changes add a @deffnx C function declaration and function
1197 index entries for each Guile primitive to the copy of the doc
1198 snarf output that is used for reference manual synchronization.
1199 Online help is unchanged.
849038b5 1200
cecb4a5e
NJ
1201 * snarf.h (SCM_SNARF_DOCS): Output primitive's C function name.
1202 (SCM_DEFINE, SCM_DEFINE1, SCM_REGISTER_PROC): Supply to C function
1203 name to SCM_SNARF_DOCS.
849038b5 1204
cecb4a5e
NJ
1205 * guile-snarf-docs-texi.in: Pass the shell script's arguments into
1206 snarf-check-and-output-texi.
1207
1208 * Makefile.am (guile-procedures.texi): New rule.
1209 (BUILT_SOURCES, guile.texi, guile-procedures.txt, CLEANFILES):
1210 Changed so that the last stage of doc snarfing is now performed
1211 twice, once to produce guile-procedures.txt for online help, and
1212 once to produce guile.texi for reference manual synchronization.
1213
ddea3325
DH
12142001-11-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1215
1216 * eval.c (RETURN): Wrap in do{}while(0) in order to make it
1217 safely usable as a single statement followed by a ';', for example
1218 in an if statement.
1219
1220 (SCM_CEVAL, SCM_APPLY): Clean up code using 'RETURN'.
1221
72dd0a03
NJ
12222001-11-13 Neil Jerram <neil@ossau.uklinux.net>
1223
1224 * random.c (scm_random_solid_sphere_x,
1225 scm_random_hollow_sphere_x): Correct "shere" typos.
1226
1227 * hashtab.c (scm_hash_fold): Add missing apostrophe to docstring.
1228
1229 * version.c (scm_version): Update docstring to include
1230 `micro-version'.
1231
6558eda6
MV
12322001-11-13 Marius Vollmer <mvo@zagadka.ping.de>
1233
409b8588
MV
1234 * modules.c (scm_c_export): Call va_end after collecting the
1235 symbols.
1236
adb8c0f2
MV
1237 * strop.h, strop.c (scm_substring_move_left_x,
1238 scm_substring_move_right_x): Removed.
1239
6558eda6
MV
1240 * __scm.h (HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG,
1241 HAVE_LONG_LONGS): Define to "1" when defining them, to mirror what
1242 configure does.
1243
5d8fc640
MV
12442001-11-12 Marius Vollmer <mvo@zagadka.ping.de>
1245
1246 * numbers.c: Document macros to define when including
1247 num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we
1248 now rely on SIZEOF_ macros that have been figured out at
1249 configure time.
1250
1251 * num2integral.i.c: Adapt to new interface.
1252 (NUM2INTEGRAL): Test whether a fixnum can be represented in the
1253 target type by casting it and checking whether it is still the
1254 same. Do not try to handle bignums for integral types that are
1255 smaller than fixnums. When handling bignums, collect the
1256 magnituse first into a unsigned type, and correctly check for
1257 overflow.
1258 (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that
1259 only -MIN_VALUE can still be negative of all negative numbers (in
1260 twos-complement).
1261
849038b5 1262 * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately.
5d8fc640
MV
1263
1264 * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and
1265 HAVE_LONG_LONG depending on whether their size is non-zero.
1266
d6b8cf11
TTN
12672001-11-11 Thien-Thi Nguyen <ttn@glug.org>
1268
1269 * strop.c (scm_string_null_p): Docfix; nfc.
1270 Thanks to Scott Lenser.
1271
9401323e
NJ
12722001-11-07 Neil Jerram <neil@ossau.uklinux.net>
1273
1274 * extensions.c (scm_load_extension): Canonicalize docstring
1275 whitespace.
1276
1277 * unif.c (scm_uniform_array_write), ports.c
1278 (scm_current_output_port, scm_force_output), dynwind.c
1279 (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer),
1280 filesys.c (scm_open, scm_lstat), struct.c
1281 (scm_make_struct_layout), random.c (scm_random,
1282 scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c
1283 (scm_i_index): Remove superfluous whitespace from end of docstring
1284 lines.
1285
1286 * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p),
1287 strings.c (scm_make_string), variable.c (scm_make_variable,
1288 scm_make_undefined_variable, scm_variable_p, scm_variable_set_x,
1289 scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer),
1290 posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c
1291 (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous
1292 newline at end of docstrings.
1293
1294 * modules.c (scm_set_current_module): Add missing newline to
1295 docstring.
1296
b4e15479
SJ
12972001-11-07 Stefan Jahn <stefan@lkcc.org>
1298
1299 * win32-socket.[ch]: New files. Defines Winsock-API error codes
1300 and makes them available through Guile. That is because the
1301 Winsock-API does not store its errors in `errno' and thus cannot
1302 return error messages via `strerror (errno)'.
1303
1304 * socket.c (scm_init_socket): Initialize `win32-socket' part
1305 here under M$-Windows.
1306
d6b8cf11 1307 * numbers.h: Added missing declaration of
b4e15479
SJ
1308 `scm_sys_check_number_conversions()'.
1309
1310 * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
1311 and use in `(strerror)' and `(system-error)'.
1312
d6b8cf11 1313 * Makefile.am (EXTRA_libguile_la_SOURCES): Added
b4e15479
SJ
1314 `win32-socket.[ch]' to extra source and header files.
1315
7ab89df1
MV
13162001-11-06 Marius Vollmer <mvo@zagadka.ping.de>
1317
1318 * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend
1319 a call to turn-on-debugging when --debug has been given instead of
1320 turning it on directly. Also, handle new `--no-debug' option,
1321 which might suppress the call to turn-on-debugging.
1322
0233bfc1
SJ
13232001-11-05 Stefan Jahn <stefan@lkcc.org>
1324
1325 * struct.c (s_scm_struct_vtable_p): Corrected docstring.
1326
8f99e3f3
SJ
13272001-11-04 Stefan Jahn <stefan@lkcc.org>
1328
1329 * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
d6b8cf11 1330 here (was at guile_LDADD) which describes the dependency
8f99e3f3
SJ
1331 correctly and allows a clean build on Win32.
1332
d6b8cf11 1333 * __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros
8f99e3f3
SJ
1334 into FOO.
1335
1336 * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
1337 import macros for external libraries (libcrypt, libqthreads,
1338 libreadline and libregex).
1339
1340 * coop-defs.h: Include <winsock2.h> for `struct timeval'.
1341
1342 * posix.c (flock): Added support for flock() in M$-Windows.
1343
1344 * guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead
1345 of __SCM_IMPORT__.
1346
1347 * fports.c (getflags): Differentiate reading and writing pipes
1348 descriptors.
1349
1350 * filesys.c (S_IS*): Redefine all of the S_IS*() macros for
1351 M$-Windows.
1352
1353 * coop.c (coop_condition_variable_timed_wait_mutex): Use
1354 conditionalized error code if `ETIMEDOUT' is not available.
1355 (scm_thread_usleep): Remove bogus declaration of `struct timeval
1356 timeout'.
1357
1358 * numbers.c (PTRDIFF_MIN): Moved this definition where it actually
1359 belongs. That is because NO_PREPRO_MAGIC gets undefined after
1360 each inclusion of `num2integral.i.c'.
1361 (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.
1362
4e21fa60
MV
13632001-11-03 Marius Vollmer <mvo@zagadka.ping.de>
1364
1365 * eval.c (scm_m_begin): Allow `(begin)`, with no subforms.
1366 (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED.
1367
08112c95
MD
13682001-11-02 Mikael Djurfeldt <mdj@linnaeus>
1369
7663c008
MD
1370 * print.c (scm_iprin1): Mark print state as revealed when
1371 dispatching to generic write or display.
1372
08112c95
MD
1373 * unif.c (scm_ra2contig): Fixed memory overwrite bug.
1374
f712d833
MV
13752001-11-02 Marius Vollmer <mvo@zagadka.ping.de>
1376
1377 Support for native Win32. Thanks to Stefan Jahn!
d6b8cf11 1378
f712d833
MV
1379 * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c
1380 and win32-dirent.h to extra source and header files. These
1381 include the uname() and the POSIX dirent interface implementation
1382 for M$-Windows. Put `-no-undefined' into LDFLAGS to support
1383 linkers which do not allow unresolved symbols inside shared
1384 libraries. Corrected `guile_filter_doc_snarfage$(EXEEXT)'
1385 dependency.
1386
d6b8cf11
TTN
1387 * __scm.h: Defined SCM_API. This macro gets prepended to all
1388 function and data definitions which should be exported or imported
f712d833
MV
1389 in the resulting dynamic link library in the Win32 port.
1390
1391 * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h,
d6b8cf11 1392 chars.h, continuations.h, coop-defs.h, coop-threads.h,
f712d833
MV
1393 debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h,
1394 environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h,
1395 feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h,
1396 gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h,
1397 hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h,
d6b8cf11 1398 load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h,
f712d833
MV
1399 objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h,
1400 procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h,
1401 read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h,
1402 smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h,
1403 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
1404 tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h,
1405 vports.h, weaks.h:
1406 Prefixed each each exported symbol with SCM_API.
1407
d6b8cf11 1408 * continuations.c: Added comment about the use of the extern
f712d833
MV
1409 declarations of {get,set}context() functions used in the ia64 port.
1410
1411 * continuations.h, gc.c: `__libc_ia64_register_backing_store_base'
1412 is meant to be a `unsigned long *'.
1413
1414 * filesys.c: Include `direct.h' if possible. Use local
1415 `win32-dirent.h' for the native M$-Windows port. Define S_IS*()
1416 macros for M$-Windows. Implementation of `fstat_Win32()' which is
1417 able to differentiate between sockets and other file descriptors.
1418 Use this function as wrapper in `scm_fstat()'. Fixed typo in
1419 `scm_dirname()'.
1420
1421 * fports.c: Include `io.h' is possible. Put `*fp' into referring
1422 statement block in `scm_fport_buffer_add()'.
1423 Some corrections in `getflags()'.
d6b8cf11 1424
f712d833
MV
1425 * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__.
1426
1427 * guile.c: Make sure to define __SCM_IMPORT__ for shared library
1428 build on Win32. Disable preloaded symbols on Win2 platforms.
1429
1430 * ioext.c, ports.c: Include `io.h' is possible.
1431
1432 * mkstemp.c: Include `process.h' is possible.
1433
1434 * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__,
1435 too.
1436 Put `scm_return_entry()' into HAVE_GETSERVENT conditional.
1437
1438 * posix.c: Remove unnecessary dirent includes and defines. Include
1439 local `win32-uname.h' for MinGW. Extern declaration of
1440 `mkstemp()' for systems where it does not exists. Make
1441 `getlogin()' available on M$-Windows.
1442
1443 * scmsigs.c: Made `usleep()' avalable on MinGW.
1444
1445 * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'.
1446
1447 * win32-dirent.c: Include "win32-dirent.h", not "dirent.h".
1448
1449 * win32-uname.c: Include "win32-uname.h", not "uname.h".
1450
d245ce23
MD
14512001-10-28 Mikael Djurfeldt <mdj@linnaeus>
1452
1453 * unif.c (scm_uniform_array_read_x, scm_uniform_array_write):
1454 Don't apply scm_uniform_vector_length on arrays.
1455
8ea46249
DH
14562001-10-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
1457
1458 * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
1459 scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
1460 scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
1461 SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer
1462 scm_list_<n> over scm_cons[2]?.
1463
1464 (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
1465 scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use
1466 SCM_C[AD][AD]R instead of explicit form.
1467
1468 (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered
1469 comparison parameters.
1470
1471 (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use
1472 !SCM_NULLP instead of SCM_NIMP.
1473
1474 (scm_m_case): Don't copy the form. Renamed proc to clause and
1475 minimized its scope. Renamed x to clauses. Removed side
1476 effecting operation from macro call.
1477
1478 (scm_m_cond): Don't copy the form. Renamed arg1 to clause and
1479 minimized its scope. Renamed x to clauses. Minimized the scope
1480 of variable 'len'. Make sure the else clause is treated specially
1481 even in case of '=>' occurences. Don't change the else to #t in
1482 order to be able to distinguish this case in the evaluator. Leave
1483 type checking of the recipient to the evaluator.
1484
1485 (scm_c_improper_memq): Made the comment somewhat clearer.
1486
1487 (scm_m_lambda): Renamed proc to formals. Removed unnecessary
1488 test for SCM_IM_LET at the place of the formal parameters.
1489 Simplified the formal parameter checking.
1490
1491 (scm_m_letstar): Added Comment. Renamed proc to bindings.
1492 Renamed arg1 to binding and minimized its scope. Eliminated
1493 unnecessary consing.
1494
1495 (scm_m_do): Renamed proc to bindings. Minimized the scope of
1496 variable 'len'.
1497
1498 (build_binding_list): New static function.
1499
1500 (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean).
1501 Further, split up the 'letrec' unmemoizing code to the
1502 corresponding parts for 'do', 'let' and 'letrec', adding comments
1503 to each form. Cleanup the handling of the do form (This removes
1504 some *real* code :-).
1505
1506 (SCM_CEVAL): Removed side effecting operation from macro call.
1507 Handle the 'else clause of the 'cond form specially - the symbol
1508 'else is not replaced with #t any more.
1509
8186c4f5
GH
15102001-10-14 Gary Houston <ghouston@arglist.com>
1511
1512 * version.c (scm_version): use sprintf instead of snprintf,
1513 for portability. thanks to Bill Schottstaedt.
1514
89759084
MD
15152001-10-14 Mikael Djurfeldt <mdj@linnaeus>
1516
1517 * read.c (scm_lreadr): When user-defined hash procedure returns
1518 SCM_UNSPECIFIED: Fall back to standard handling instead of raising
1519 an exception. (This prevents parsing of uniform vectors from
1520 interfering with parsing of numbers.)
1521
9c7ce563
MV
15222001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
1523
1524 * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
1525 PTRDIFF_MIN. Thanks to Ken Raeburn.
1526
15272001-10-07 Marius Vollmer <mvo@zagadka.ping.de>
1528
1529 * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
1530
1531 * eval.c (scm_m_atbind): First try to find the variable without
1532 defining it locally; when it has not been found, define it
1533 locally.
1534
1535 * modules.c (module_variable): Pass over variables that exist but
1536 are unbound.
1537
15382001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
1539
1540 * backtrace.c (display_backtrace_file_and_line): Only use
1541 scm_basename when POSIX support is compiled in. Thanks to Chris
1542 Cramer.
1543
1fe5e088
DH
15442001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1545
1546 * numbers.c (mem2uinteger): Return number read so far when coming
1547 across a hexdigit after having read a # or if not reading a hex
1548 value. This will enable the calling code to correctly handle
1549 forms like 1e2. (The background is, that the exponent markers d,
1550 e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
1551 providing this patch.
1552
1553 (mem2complex): Fix erroneous double-negation. Now, numbers like
1554 1-i will be read correctly.
1555
68665a97
MD
15562001-10-12 Mikael Djurfeldt <mdj@linnaeus>
1557
1558 * debug.c (scm_mem_to_proc): Fixed typo in previous change.
1559
1560 * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro.
1561
d5cf5324
DH
15622001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
1563
1564 * print.c (scm_print_state_vtable, print_state_pool):
1565 Initialize. These variables are now registered as gc roots.
1566
1567 (scm_current_pstate): Update documentation.
1568
1569 (scm_current_pstate, scm_make_print_state, scm_free_print_state,
1570 scm_prin1, scm_init_print): print_state_pool is registered as a
1571 gc root and thus does not need to be protected by a surrounding
1572 pair any more.
1573
1574 (make_print_state): The car of print_state_pool no longer holds
1575 the scm_print_state_vtable.
1576
1577 (scm_current_pstate, scm_make_print_state, print_circref,
1578 scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
1579 SCM_N<foo>.
1580
1581 (scm_prin1): When building lists, prefer scm_list_<n> over
1582 scm_cons[2]?.
1583
1584 (scm_iprlist): Removed a redundant SCM_IMP test.
1585
1586 (scm_simple_format): Use SCM_EQ_P to compare SCM values.
1587
37c56aec
DH
15882001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
1589
1590 * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>.
1591
1592 (scm_memcons, scm_mem_to_proc): When building lists, prefer
1593 scm_list_<n> over scm_cons[2]?.
1594
1595 (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
1596
1597 (scm_procedure_name): Use SCM_CADR instead of explicit form.
1598
1599 (debugobj_print): Coerce scm_intprint arg 1 to long, not int.
1600 Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
1601 for some reason his patch didn't make it into the cvs.
1602
79d34f68
DH
16032001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
1604
1605 * numbers.c (mem2decimal_from_point): Cleaned up the parsing a
1606 little bit - should even be somewhat more accurate now.
1607
5e137c65
RB
16082001-10-08 Rob Browning <rlb@defaultvalue.org>
1609
1610 * gc.c: support ia64 register backing store.
1611 (SCM_MARK_BACKING_STORE): new macro.
1612
1613 * continuations.h: support ia64 register backing store.
1614 (struct scm_t_contregs): add ia64 register backing store.
1615
1616 * continuations.c: support ia64 register backing store.
1617 (continuation_mark): mark ia64 register backing store.
1618 (continuation_free): free ia64 register backing store.
1619 (scm_make_continuation): capture ia64 register backing store.
1620 (copy_stack_and_call): copy ia64 register backing store.
1621
ee083ac2
DH
16222001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1623
1624 * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
1625 is known to be #f if no entry is found. Thus, use !SCM_FALSEP
1626 instead of SCM_NIMP to test for that case.
1627
1628 * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
1629 scm_t_bits instead of long.
1630
71dcdbf9
MV
16312001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
1632
1633 * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
1634 SCM_T_SIGNED_BITS_MIN): New.
1635 * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
1636 Use them to make these macros computable by the preprocessor.
1637
1638 * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
1639 whether the integral type fits in a fixnum, not the compiler.
1640 This removes a spurious compiler warning. Also, honor the
1641 NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
1642 needed for `long long's.
1643
1644 * numbers.c: Define NO_PREPRO_MAGOC when including
1645 num2integral.c.i for `long long' and `signed long long'.
1646
152812c0
MD
16472001-10-06 Mikael Djurfeldt <mdj@linnaeus>
1648
1649 These changes fixes a race condition in the Guile coop - pthread
1650 compatibility code.
d6b8cf11 1651
152812c0
MD
1652 * coop.c (mother_awake_p): New variable.
1653 (coop_create): Set mother_awake_p before creating or signalling
1654 mother; wait until mother is going to sleep before returning.
1655 (mother): Reset mother_awake_p before going to sleep.
1656
11d49f54
DH
16572001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
1658
1659 * options.c (protected_objects, scm_init_options): The content of
1660 protected_objects is now protected from garbage collection using
1661 scm_gc_register_root instead of scm_permanent_object.
1662
1663 (get_option_setting): New static function that computes an option
1664 setting as it was formerly done in the function scm_options.
1665
1666 (get_documented_option_setting): New static function that
1667 returns option documentation as it was formerly done in the
1668 function scm_options. Note that documentation C strings are no
1669 longer precomputed into SCM objects. Instead, they are converted
1670 into SCM strings every time get_documented_option_setting is
1671 called.
1672
1673 (change_option_setting): New static functions that modifies the
1674 option setting as it was formerly done in the function
1675 scm_options. The function is now exception safe, i. e. won't
1676 cause a memory leak when interrupted. Further, only non-immediate
1677 option values are added to the protection list.
1678
1679 (scm_options): This function now has only the purpose to dispatch
1680 to to get_option_setting, get_documented_option_setting or
1681 change_option_setting, depending on the arguments given to
1682 scm_options.
1683
1684 (scm_init_opts): Don't convert documentation C strings into SCM
1685 strings. Further, don't protect any object values: They _must_
1686 be immediate values, otherwise there is no guarantee that they
1687 have not been collected before anyway.
1688
1689 * options.[ch] (scm_t_option): Made type unsigned, name into a
1690 constant char* and val into a scm_t_bits type.
1691
1692 (scm_options, scm_init_opts): The number of options is guaranteed
1693 to be larger or equal to zero. Thus, the type is changed to
1694 unsigned.
1695
3dbacabc
DH
16962001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
1697
1698 * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
1699 testing an unsigned value for being >= 0.
1700
14282d0f
DH
17012001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
1702
1703 * numbers.h: Removed old comment about using SCM_CAR to access
1704 non-pair cells.
1705
1706 (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
1707 the return value is signed. Thanks to Brian Crowder for the bug
1708 report.
1709
1710 (SCM_SRS): Avoid unnecessary casting and don't unpack input
1711 values. With this patch, SCM_SRS can be safely used for other
1712 types than scm_t_signed_bits. However, it should still better be
1713 an internal macro and thus be renamed to SCM_I_SRS.
1714
1715 (SCM_MAKINUM, SCM_INUM): Use proper casting.
1716
2dbec7b5
GH
17172001-10-03 Gary Houston <ghouston@arglist.com>
1718
1719 * continuations.h, unif.h: in the descriptions of the bit patterns
1720 of the heap cells, make bit 0 the least significant.
1721
cf4ee841
TTN
17222001-09-25 Thien-Thi Nguyen <ttn@glug.org>
1723
1724 * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
1725 Thanks to Golubev I. N.
1726
4a151b3d
GH
17272001-09-25 Gary Houston <ghouston@arglist.com>
1728
1729 * ports.c (scm_drain_input): extended the docstring. thanks to
1730 Alex Schroeder and Thien-Thi Nguyen.
1731
581ded70
MD
17322001-09-23 Mikael Djurfeldt <mdj@linnaeus>
1733
1734 * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
1735 SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
1736 macros. (The NUM names might soon change.)
1737
1738 * numbers.h: Added missing declarations.
1739
5437598b
MD
17402001-09-22 Mikael Djurfeldt <mdj@linnaeus>
1741
1742 * Makefile.am: Distribute num2float.i.c.
1743
1744 * num2float.i.c: New file, multiply included by numbers.c, used
1745 to "templatize" the float <-> num conversion routines.
1746
1747 * numbers.c: New functions: scm_num2float, scm_float2num,
1748 scm_num2double, scm_double2num.
1749
0b073f0f
RB
17502001-09-21 Rob Browning <rlb@defaultvalue.org>
1751
1752 * .cvsignore: really add version.h
1753
1754 * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
1755 Otherwise it fails on the alpha. However, we might rather choose
1756 this size conditionally.
1757
1758 * numbers.c (scm_gcd): change "k" to a long from an int.
1759 Otherwise it fails on the alpha. However, we might rather choose
1760 this size conditionally.
1761
1762 * error.c (scm_wta): coerce char* to intptr_t before int
1763 assignment.
1764
1765 * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
1766 int.
1767
1768 * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
1769
2830fd91
MD
17702001-09-20 Mikael Djurfeldt <mdj@linnaeus>
1771
1772 * numbers.c (scm_integer_expt): Accept inexact integer in second
1773 argument. (Thanks to Bill Schottstaedt.)
1774
c13f0a90
RB
17752001-09-20 Rob Browning <rlb@defaultvalue.org>
1776
1777 * .cvsignore: add version.h
1778
1779 * versiondat.h.in: removed (obsolete).
1780
1781 * version.h.in: renamed from version.h.
1782 (SCM_GUILE_MAJOR_VERSION): new public macro.
1783 (SCM_GUILE_MINOR_VERSION): new public macro.
1784 (SCM_GUILE_MICRO_VERSION): new public macro.
1785
1786 * version.h: renamed to version.h.in.
1787
1788 * version.c
1789 (scm_major_version): support integer *_VERSION macros.
1790 (scm_minor_version): support integer *_VERSION macros.
1791 (scm_micro_version): support integer *_VERSION macros.
1792 (scm_version): support integer *_VERSION macros.
1793
147c18a0
MD
17942001-09-20 Mikael Djurfeldt <mdj@linnaeus>
1795
1796 * error.c, error.h: Made error keys globally accessible.
1797 Applications might want to test for these or use them in a direct
1798 call to scm_error.
1799
1800 * num2integral.i.c (NUM2INTEGRAL): Report an error when these
1801 routines are passed an inexact. This change in behavior is
1802 motivated by concordance with R5RS: It is more common that a
1803 primitive doesn't want to accept an inexact for an exact.
1804
662c5539
DH
18052001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1806
1807 The following patch partially undoes my patch from 2001-06-30,
1808 where I added the function scm_gc_mark_cell_conservatively. The
1809 function is buggy, since it breaks guile during conservative
1810 marking if a pointer on the stack points directly into the list of
1811 free cells on the heap: With conservative cell marking this will
1812 cause the whole free list to be scanned and marked - boom!
1813
1814 * gc.c (allocated_mark, MARK, heap_segment,
1815 scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
cf4ee841 1816 (scm_gc_mark_cell_conservatively): Remove function
662c5539
DH
1817 scm_gc_mark_cell_conservatively and update the corresponding
1818 comments and uses accordingly. Thanks to Christopher Cramer for
1819 the patch. (Minor corrections by me.)
1820
6c1b7628
GH
18212001-09-15 Gary Houston <ghouston@arglist.com>
1822
1823 * root.h (scm_root_state): removed the continuation_stack and
1824 continuation_stack_ptr members, which have no apparent purpose.
1825 (scm_continuation_stack, scm_continuation_stack_ptr): #defines
1826 removed.
662c5539 1827
6c1b7628
GH
1828 * root.c (root_mark), init.c (restart_stack, start_stack), gc
1829 (scm_igc): remove all references to contination_stack and
1830 continuation_stack_ptr, avoiding allocation of a vector and
1831 useless processing during gc.
1832
455c0ac8
DH
18332001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1834
1835 * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
1836
1837 (TCONC_IN): Make sure that the cell word 0 is initialized last.
1838
1839 (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
1840
1841 (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
1842
1843 (guardian_apply, scm_get_one_zombie, scm_make_guardian,
1844 mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
1845
22ba637b
DH
18462001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1847
1848 * guardians.c (mark_dependencies_in_tconc,
1849 whine_about_self_centered_zombies, scm_init_guardians): Register
1850 the static global variable `self_centered_zombies' via
1851 scm_gc_register_root, to make some cdr-ing unnecessary.
1852
c3c4d801
DH
18532001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1854
1855 * backtrace.c (display_backtrace_file,
1856 display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
1857 values, use SCM_FALSEP when comparing SCM values against #f.
1858 Thanks to Rob Browning for the bug report.
1859
b00418df
DH
18602001-09-12 Martin Baulig <martin@home-of-linux.org>
1861
1862 * strings.[ch] (scm_str2string): New function.
1863
a0d34a0b
MV
18642001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
1865
1866 * gc.c (scm_done_free): Always subtract size from scm_mallocated
1867 when computing nm, even if it's negative.
1868 (scm_must_malloc): Abort on overflow of scm_mtrigger.
1869 (scm_must_realloc): Likewise.
1870
b10586f0
ML
18712001-09-01 Michael Livshin <mlivshin@bigfoot.com>
1872
1873 * numbers.c (scm_sys_check_number_conversions): new function,
1874 defined if Guile is compiled in debugging mode. currently checks
1875 `scm_num2ulong', should check much much more.
1876
1877 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
1878 unsigned, ensure that it's positive. thanks to Martin Baulig!
cf4ee841 1879
8c494e99
DH
18802001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1881
1882 * __scm.h: Added new section about compile time selectable
1883 features.
1884
1885 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
1886 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
1887 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
1888 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
1889 Removed.
1890
1891 * deprecation.c (scm_include_deprecated_features): Simplified.
1892
1893 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
1894