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