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