* debug.h, eval.c: Deprecated CHECK_ENTRY, CHECK_APPLY and
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
5132eef0
DH
12002-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2
3 * debug.h, eval.c: Deprecated CHECK_ENTRY, CHECK_APPLY and
4 CHECK_EXIT and removed all references to them.
5
680516ba
DH
62002-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
7
8 * debug.h (scm_ready_p, debug_print): Removed declarations.
9
10 * eval.c (EVALCELLCAR): Removed.
11
12 (SCM_CEVAL): Eliminated label loopnoap. Removed side-effecting
13 operation from condition.
14
e2bd68e0
MV
152002-03-24 Marius Vollmer <mvo@zagadka.ping.de>
16
17 * guile-snarf.in: When the output filename is "-", write to
18 stdout. When no "-o" option is given, use "-" as the output
19 filename (i.e., stdout). Only 'clean' the inputfile or remove the
20 output file on error when the output file name is not "-". Define
21 the preprocessor macro SCM_MAGIC_SNARFER while snarfing.
22
23 * Makefile.am (.c.x): Pass "-o $@" to guile-snarf.
24
ab1f1094
DH
252002-03-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
26
27 * eval.c (SCM_CEVAL, SCM_APPLY): Eliminated labels wrongnumargs
28 and the corresponding goto statements. Removed redundant code.
29
42030fb2
DH
302002-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
31
32 * eval.c (SCM_CEVAL): Minimized scope of variable arg2.
33 Eliminated redundant SCM_IMP check. Exlined call to EVALCAR.
34 Re-enabled handing of rpsubrs and asubrs.
35
e050d4f8
DH
362002-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
37
38 * eval.c (SIDEVAL): Removed.
39
40 (SCM_CEVAL): Minimized scope of variable orig_sym. Eliminated
41 goto-labels cdrxnoap, cdrxbegin and nontoplevel_cdrxnoap. Changed
42 argument checking order for set! to locals, variables and symbols.
43 Improvements to control structure. Removed some uses of arg1 and
44 arg2 as temporary variables.
45
a6d344d3
TTN
462002-03-15 Thien-Thi Nguyen <ttn@giblet.glug.org>
47
48 * guile-snarf.in: Remove "--compat=1.4" support.
49 Add "-d" and "-D" support.
50
51 (deprecated_list): New var.
52 (compat_mode_clean_xxx): Delete.
53 (grep_deprecated): New func.
54 ("main"): If "-d" or "-D", call `grep_deprecated'.
55
3939e9df
NJ
562002-03-15 Neil Jerram <neil@ossau.uklinux.net>
57
387d418c
NJ
58 * hooks.h: Change scm_t_c_hookype_t everywhere to
59 scm_t_c_hook_type.
60
bb2c02f2 61 Docstring fixes:
a6d344d3 62
bb2c02f2
NJ
63 * strings.c (scm_string_p): Change unnecessary `iff' to `if'.
64
65 * ports.c (scm_sys_make_void_port): Use `@file'.
66
67 * numbers.c (scm_number_p, scm_real_p): Use `otherwise' rather
68 than `else'.
69
70 * macros.c (scm_makmacro): Don't say that the form replaces its
71 source, because it doesn't.
72 (scm_makmmacro): Clarify difference between this and scm_makmacro.
73
74 * backtrace.c (scm_display_error), filesys.c (scm_umask,
75 scm_select, scm_basename), goops.c (scm_method_generic_function),
76 numbers.c (scm_integer_length), posix.c (scm_getgroups, scm_execl,
77 scm_setlocale, scm_flock), socket.c (scm_shutdown): Correct
78 spelling mistakes.
79
3939e9df
NJ
80 * debug.c (scm_debug_options), eval.c
81 (scm_eval_options_interface), read.c (scm_read_options): Change
82 incorrect @var in docstring to @code.
83
3b3cc781
MV
842002-03-14 Marius Vollmer <mvo@zagadka.ping.de>
85
500b0d5b
MV
86 * unif.c (singp): Use SCM_REALP instead of SCM_SLOPPY_REALP.
87
3b3cc781
MV
88 * snarf.h (SCM_SNARF_INIT): Add "^:^" after code so that
89 guile-snarf can remove trailing non-init code.
90
91 * guile-snarf.in (modern_snarf): Remove everything following and
92 including "^:^" from the output.
93
dff98306
DH
942002-03-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
95
96 * eval.c (SCM_CEVAL), srcprop.h (SRCBRKP): Eliminated union 't'.
97
98 * eval.c (SCM_CEVAL): Exlined call to EVALCAR.
99
2287fb53
TTN
1002002-03-13 Thien-Thi Nguyen <ttn@giblet.glug.org>
101
102 * guile-snarf.in: Update copyright.
103 Rewrite to internalize error handling.
104 Add "--compat=1.4" handling.
105 Add commentary.
106
107 * Makefile.am (libpath.h): Use @top_srcdir_absolute@.
108 (snarfcppopts): New var.
109 (.c.x): Use $(snarfcppopts). Rework guile-snarf usage.
110 (.c.doc): Use $(snarfcppopts).
111
822250a4
TTN
112 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
113 continuations.c, debug-malloc.c, debug.c, deprecation.c, dynl.c,
114 dynwind.c, environments.c, eq.c, error.c, eval.c, evalext.c,
115 extensions.c, feature.c, filesys.c, fluids.c, fports.c, gc.c,
116 goops.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
117 ioext.c, iselect.c, keywords.c, lang.c, list.c, load.c, macros.c,
118 modules.c, net_db.c, numbers.c, objects.c, objprop.c, options.c,
119 pairs.c, ports.c, posix.c, print.c, procprop.c, procs.c,
120 properties.c, ramap.c, random.c, rdelim.c, read.c, regex-posix.c,
121 root.c, rw.c, scmsigs.c, script.c, simpos.c, socket.c, sort.c,
122 srcprop.c, stackchk.c, stacks.c, stime.c, strings.c, strop.c,
123 strorder.c, strports.c, struct.c, symbols.c, threads.c, throw.c,
124 unif.c, values.c, variable.c, vectors.c, version.c, vports.c,
125 weaks.c: Retire inclusion guard macro SCM_MAGIC_SNARFER.
126
b7798e10
DH
1272002-03-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
128
129 * eval.c (SCM_CEVAL): Got rid of the last reference to t.lloc.
130 The next step will be to remove the union 't' and simplify the
131 code of SCM_CEVAL that way.
132
04a98cff
NJ
1332002-03-12 Neil Jerram <neil@ossau.uklinux.net>
134
135 * iselect.c (collisionp, gnfds, greadfds, gwritefds, gexceptfds,
136 rreadfds, rwritefds, rexceptfds): Made static.
137
138 * gc.c (terminating), fports.c (terminating): Renamed
139 scm_i_terminating.
140
16d98032
MV
1412002-03-11 Marius Vollmer <mvo@zagadka.ping.de>
142
5046250e
MV
143 * numbers.c (scm_divide): Adapt code from libstdc++/f2c to void
144 potential overflow problems. Thanks to John W Eaton!
145
8794207d
MV
146 * strop.c (string_capitalize_x): Treat characters as unsigned so
147 that 8-bit chars work. Thanks to David Pirotte!
16d98032 148
1d15ecd3
DH
1492002-03-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
150
151 * eval.c (SCM_CEVAL): Cleaned up the handling of 'slot-ref',
152 'slot-set!' and 'nil-cond'. Removed some uses of t.arg1, arg2 and
153 proc as temporary variables. Introduced temporary variables with
154 hopefully descriptive names for clarification. Replaced SCM_N?IMP
155 by a more explicit predicate in some places.
156
1572002-03-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
f12745b6
DH
158
159 * eval.c (SCM_CEVAL): Cleaned up the handling of #@dispatch.
160 Added lots of comments regarding the implementation of #@dispatch.
161 Changed intra-procedure communication to use t.arg1 instead of
162 arg2. Removed some uses of t.arg1, t.lloc and proc as temporary
163 variables. Introduced temporary variables with hopefully
164 descriptive names for clarification. Replaced SCM_N?IMP by a more
165 explicit predicate in some places. Use SCM_INSTANCE_HASH instead
166 of computing the expression explicitly. Eliminate now unused
167 label nontoplevel_cdrxbegin.
168
169 * goops.h (SCM_INSTANCE_HASH): New macro.
170
171 * objects.h (SCM_CMETHOD_FORMALS, SCM_CMETHOD_BODY): New macros.
172
1ebf1566
TTN
1732002-03-08 Thien-Thi Nguyen <ttn@giblet.glug.org>
174
175 * Makefile.am (bin_SCRIPTS): Revive this decl, w/ initial element
176 "guile-snarf" moved back from `noinst_SCRIPTS'.
177
020c890c
NJ
1782002-03-08 Neil Jerram <neil@ossau.uklinux.net>
179
58d233cc
NJ
180 * srcprop.c (scm_set_source_property_x): If SRCPROPS obj already
181 exists when adding a source property other than those that are
182 handled explicitly, add the new property to the SRCPROPS obj's
183 plist.
184
020c890c
NJ
185 * debug.h (SCM_MAX_FRAME_SIZE): Remove incorrect comment about use
186 of SCM_MAX_FRAME_SIZE as a bit mask; it isn't used like this.
187
188 * eval.c (SCM_CEVAL): Don't store scm_debug_eframe_size in
189 debug.status. It isn't needed, and it can overflow the bits
190 reserved for it (which may lead to a segv or a GC abort).
191
3f04400d
DH
1922002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
193
194 * eval.c (SCM_CEVAL): Cleaned up the handling of 'apply'. Removed
195 side-effecting operations from conditions and macro calls.
196 Replaced SCM_N?IMP by a more explicit predicate in some places.
197 Minimized the scope of some variables.
198
97820583
SJ
1992002-03-02 Stefan Jahn <stefan@lkcc.org>
200
201 * convert.i.c: Fixed int <-> long conversions which would have
202 failed if their sizes were different.
203
38ace99e
DH
2042002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
205
206 * eval.c (SCM_CEVAL): Cleaned up the handling of 'if', 'let',
207 'letrec' and 'set*': Removed some uses of t.arg1, t.lloc and proc
208 as temporary variables. Removed side-effecting operations from
209 conditions and macro calls. Introduced temporary variables with
210 hopefully descriptive names for clarification. Replaced SCM_N?IMP
211 by a more explicit predicate in some places. Removed code that
212 was conditionally compiled if SICP was defined - which it never
213 is.
214
e5cb71a0
DH
2152002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
216
217 * eval.c (SCM_CEVAL): Cleaned up the handling of 'cons' and 'do':
218 Removed some uses of t.arg1 and proc as temporary variables.
219 Removed side-effecting operations from conditions and macro calls.
220 Introduced temporary variables with hopefully descriptive names
221 for clarification. Replaced SCM_N?IMP by a more explicit
222 predicate in some places.
223
6a0f6ff3
DH
2242002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
225
226 * eval.c (scm_badargsp, SCM_CEVAL): Replaced SCM_N?IMP by a more
227 explicit predicate in some places.
228
229 (CHECK_EQVISH): Removed.
230
231 (SCM_CEVAL): Removed some uses of t.arg1 and proc as temporary
232 variables. Removed side-effecting operations from conditions and
233 macro calls. Introduced temporary variables for clarification.
234 Sorted if-else-if check for the type of the last form in a list by
235 frequency. Avoided some unnecessary tail-recursion calls.
236
228a24ef
DH
2372002-03-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
238
239 * gc.c (SCM_HEAP_SEG_SIZE, CELL_UP, CELL_DN, NEXT_DATA_CELL,
240 init_heap_seg, alloc_some_heap), gc.h (struct scm_cell, struct
241 scm_t_cell, SCM_CELLPTR, SCM_GC_CARD_SIZE,
242 SCM_GC_IN_CARD_HEADERP), tags.h (SCM_CELLP): Renamed the struct
243 scm_cell and all its uses to scm_t_cell in accordance to Guile's
244 naming scheme for types.
245
246 * alist.c (scm_acons), convert.i.c (CTYPES2UVECT,
247 CTYPES2UVECT_OPTIONAL), coop-threads.c (scm_call_with_new_thread,
248 scm_spawn_thread), debug.c (scm_make_debugobj), environments.c
249 (scm_make_environment), eval.c (scm_closure), fports.c
250 (scm_fdes_to_port), gc.c (scm_deprecated_newcell,
251 scm_deprecated_newcell2), inline.h (scm_alloc_cell, scm_cell),
252 list.c (SCM_I_CONS), numbers.c (scm_i_mkbig), pairs.c (scm_cons),
253 ports.c (scm_void_port), procs.c (scm_c_make_subr, scm_makcclo),
254 smob.c (scm_make_smob), smob.h (SCM_NEWSMOB), strings.c
255 (scm_take_str, scm_allocate_string), strports.c (scm_mkstrport),
256 unif.c (scm_make_uve), variable.c (make_variable), vectors.c
257 (scm_c_make_vector), vports.c (scm_make_soft_port): Renamed
258 scm_alloc_cell to scm_cell.
259
260 * environments.c (core_environments_observe), gc.c
261 (scm_deprecated_newcell2), goops.c (wrap_init, scm_wrap_object),
262 inline.h (scm_alloc_double_cell, scm_double_cell), num2float.i.c
263 (FLOAT2NUM), numbers.c (scm_make_real), procs.c
264 (scm_make_procedure_with_setter), smob.h (SCM_NEWSMOB2,
265 SCM_NEWSMOB3), struct.c (scm_make_struct, scm_make_vtable_vtable),
266 symbols.c (scm_mem2symbol, scm_mem2uninterned_symbol), weaks.c
267 (allocate_weak_vector): Renamed scm_alloc_double_cell to
268 scm_double_cell.
269
edb810bb
SJ
2702002-02-27 Stefan Jahn <stefan@lkcc.org>
271
272 * convert.i.c, convert.c: Better range checking.
273
274 * inet_aton.c, fports.c: Commented the inclusion of <winsock2.h>.
275
1ebf1566 276 * deprecation.c (vsnprintf): Define to `_vsnprintf' for
edb810bb
SJ
277 Windows (MinGW).
278
327d4dd3
TTN
2792002-02-26 Thien-Thi Nguyen <ttn@giblet.glug.org>
280
281 * Makefile.am: Update path to pre-inst-guile automake frag.
282
89d7a92c 2832002-02-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
646052c0
DH
284
285 * gc.c (scm_gc_sweep): Make it compile even when deprecated
286 features are excluded.
287
89d7a92c 2882002-02-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
bac0e232
DH
289
290 * num2integral.i.c (NUM2INTEGRAL): Fixed signedness problem.
291
4f2716b6
GH
2922002-02-25 Gary Houston <ghouston@arglist.com>
293
294 * convert.c: include <string.h> for convert_i.c.
295
46151112
RB
2962002-02-24 Rob Browning <rlb@defaultvalue.org>
297
298 * .cvsignore: add stamp-h1.
299
cd328b4f
NJ
3002002-02-21 Neil Jerram <neil@ossau.uklinux.net>
301
302 * unif.c (scm_array_to_list): Correct name, which had been
303 accidentally changed to scm_t_arrayo_list!
304
c709de7f
MD
3052002-02-20 Mikael Djurfeldt <mdj@linnaeus>
306
307 * gc.c (scm_gc_sweep): Print an error message when aborting due to
308 underflowing scm_mallocated.
309
c1965d31
MV
3102002-02-14 Marius Vollmer <marius.vollmer@uni-dortmund.de>
311
312 * gc.h, gc.c (scm_must_malloc, scm_must_realloc, scm_must_strdup,
313 scm_must_strndup, scm_done_malloc, scm_done_free, scm_must_free):
314 Reimplemented using the new scm_gc_malloc, etc., functions and
315 deprecated.
316
b606945b
TTN
3172002-02-11 Thien-Thi Nguyen <ttn@giblet.glug.org>
318
319 * Makefile.am (bin_PROGRAMS): Move `guile_filter_doc_snarfage'
320 to `noinst_PROGRAMS'.
321 (bin_SCRIPTS): Move all values to `noinst_SCRIPTS'; delete.
322 (noinst_PROGRAMS, noinst_SCRIPTS): New.
323
7c686ba8
MV
3242002-02-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
325
326 * gc.h, gc.c (scm_gc_sweep): Issue deprecation warning when
327 non-zero is returned from a port or smob free function.
328 (scm_malloc, scm_realloc, scm_strndup, scm_strdup,
329 scm_gc_register_collectable_memory,
330 scm_gc_unregister_collectable_memory, scm_gc_malloc,
331 scm_gc_realloc, scm_gc_free, scm_gc_strndup, scm_gc_strdup): New.
332
333 * backtrace.c, continuations.c, convert.i.c, coop-threads.c,
334 debug-malloc.c, dynl.c, environments.c, environments.h,
335 extensions.c, filesys.c, fports.c, gc.c, gc.h, gh_data.c, goops.c,
336 guardians.c, hooks.c, init.c, keywords.c, load.c, numbers.c,
337 ports.c, posix.c, procs.c, rdelim.c, regex-posix.c, root.c,
338 smob.c, stime.c, strings.c, struct.c, struct.h, symbols.c, unif.c,
339 vectors.c, weaks.c: Use scm_gc_malloc/scm_malloc and
340 scm_gc_free/free instead of scm_must_malloc and scm_must_free, as
341 appropriate. Return zero from smob and port free functions.
342
343 * debug-malloc.c (scm_malloc_reregister): Handle "old == NULL".
344
345 * deprecation.h, deprecation.c: Reimplemented to allow deprecation
346 messages while the GC is running.
347 (scm_c_issue_deprecation_warning_fmt): New.
348
349 * fports.c (scm_setvbuf): Reset read buffer to saved values when
350 it is pointing to the putback buffer.
351
66adc0a6
TTN
3522002-02-08 Thien-Thi Nguyen <ttn@giblet.glug.org>
353
354 * gsubr.c (create_gsubr): On "too many args" error,
355 also display arg count and name. Thanks to Bill Schottstaedt.
356
0187b4f4
TTN
3572002-02-05 Thien-Thi Nguyen <ttn@giblet.glug.org>
358
359 * Makefile.am: Include $(top_srcdir)/pre-inst-guile.am.
360
361 (bin_SCRIPTS): Remove guile-snarf-docs-texi.
362 (alldotdocfiles, snarf2checkedtexi, dotdoc2texi): New vars.
363 (guile.texi, guile-procedures.texi): Use $(dotdoc2texi).
364
365 * guile-snarf-docs-texi.in: Bye bye.
366
402e687c
MV
3672002-02-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
368
369 * symbols.c (scm_make_symbol): Fix typo in docstring.
370
371 * symbols.h (scm_mem2uninterned_symbol, scm_symbol_interned_p,
372 scm_make_symbol): New prototypes.
373
319b98ed
MV
3742002-02-03 Marius Vollmer <mvo@zagadka.ping.de>
375
376 * symbols.h (SCM_SET_SYMBOL_HASH): Removed.
377 (SCM_SYMBOL_INTERNED_P): New.
378 * symbols.c (scm_symbol_hash): Use scm_ulong2num instead of
379 SCM_MAKINUM since hash values can well be bignums.
380 (scm_mem2symbol): Only use hash values below SCM_T_BITS_MAX/2.
381 This signals a interned symbol.
382 (scm_mem2uninterned_symbol, scm_symbol_interned_p,
383 scm_make_symbol): New.
0187b4f4 384
319b98ed
MV
385 * print.c (scm_iprin1): Print uninterned symbols unreadably.
386
34472dfe
TTN
3872002-02-02 Thien-Thi Nguyen <ttn@giblet.glug.org>
388
389 * __scm.h (HAVE_UINTPTR_T): Only define if UINTPTR_T attributes
390 are defined: UINTPTR_MAX, INTPTR_MAX, INTPTR_MIN.
0187b4f4 391 Thanks to Dave Love.
34472dfe 392
1b39c2e3
MV
3932002-01-31 Marius Vollmer <mvo@zagadka.ping.de>
394
395 * symbols.c (scm_gensym): Use " g" as default prefix, not "g".
319b98ed 396 This might help to make unintended clashes less likely.
1b39c2e3
MV
397 (scm_string_to_symbol): Protect the string until the symbols is
398 created.
399
1fa86ca5
SJ
4002002-01-31 Stefan Jahn <stefan@lkcc.org>
401
402 * convert.c, convert.h, convert.i.c: New files containing C
34472dfe 403 array to Scheme conversion helpers meant to be replacement
1fa86ca5
SJ
404 functions for the deprecated gh interface.
405
406 * Makefile.am: Setup rules for new `convert.*' files.
407
af68e5e5
SJ
4082002-01-28 Stefan Jahn <stefan@lkcc.org>
409
410 * symbols.c (scm_c_symbol2str): New function, replacement for
411 `gh_scm2newsymbol()'.
412
34472dfe 413 * strings.c (scm_c_substring2str): New function. Proper
af68e5e5
SJ
414 replacement for `gh_get_substr()'.
415
416 * socket.c: Include `stdint.h' if available for the `uint32_t'
417 declaration.
418
34472dfe 419 * scmsigs.c (s_scm_sigaction): Initialize `chandler' (inhibits
af68e5e5
SJ
420 compiler warning).
421
422 * backtrace.c: Include `lang.h' for GUILE_DEBUG conditional.
423
c96d76b8 4242002-01-22 Neil Jerram <neil@ossau.uklinux.net>
34472dfe 425
c96d76b8 426 Other changes unrelated to Elisp...
34472dfe 427
c96d76b8
NJ
428 * eval.c (scm_m_if): Use s_if rather than repeating string literal
429 "if".
430 (comments): Fix a few typos.
431 (scm_for_each): Add parentheses around oddly unparenthesized
432 if/while conditions.
433
434 * read.c (scm_read_opts): Add full stop at end of doc for
435 `keywords' option.
436
437 * script.c (scm_compile_shell_switches): Use scm_str2symbol
438 instead of gh_symbol2scm.
439
440 * srcprop.h (SRCPROPBRK): Return C type rather than SCM.
441 (SRCBRKP): Use SRCPROPBRK rather than duplicating its logic.
442
443 * srcprop.c (scm_srcprops_to_plist, scm_source_property): Change
444 SRCPROPBRK (x) to SCM_BOOL (SRCPROPBRK (x)).
445
446 First batch of changes for Elisp support...
447
448 * alist.c, async.c, boolean.c, dynl.c, eval.c, filesys.c,
449 fluids.c, list.c, load.c, options.c, posix.c, print.c, sort.c,
450 throw.c, vectors.c, weaks.c: Add #include for lang.h.
451
452 * eval.c, eval.h, init.c, lang.c, lang.h: Use SCM_ENABLE_ELISP to
453 conditionalize compilation and initialization of Elisp support
454 function.
34472dfe 455
c96d76b8
NJ
456 * alist.c (scm_assq, scm_assv, scm_assoc), async.c
457 (scm_asyncs_pending, scm_run_asyncs, noop), backtrace.c
458 (scm_set_print_params_x), dynl.c (scm_make_argv_from_stringlist),
459 filesys.c (fill_select_type, retrieve_select_type), fluids.c
460 (scm_swap_fluids, scm_swap_fluids_reverse), list.c (scm_null_p,
461 scm_ilength, scm_append_x, scm_last_pair, scm_reverse,
462 scm_reverse_x, scm_list_ref, scm_list_set_x, scm_list_cdr_set_x,
bbd26b5a
NJ
463 scm_c_memq, scm_memv, scm_member), load.c (scm_search_path),
464 options.c (change_option_setting, scm_options), posix.c
465 (environ_list_to_c), print.c (scm_iprlist), throw.c
466 (scm_exit_status), vectors.c (scm_vector), weaks.c
467 (scm_weak_vector): Use SCM_NULL_OR_NIL_P instead of SCM_NULLP.
c96d76b8
NJ
468
469 * boolean.c (scm_not): Use `SCM_FALSEP || SCM_NILP' instead of
470 just SCM_FALSEP.
34472dfe 471
c96d76b8
NJ
472 * boolean.c (scm_boolean_p): Use `SCM_BOOLP || SCM_NILP' instead
473 of just SCM_BOOLP.
474
475 * eval.c (scm_lisp_nil, scm_lisp_t, s_nil_ify, scm_m_nil_ify,
476 s_t_ify, scm_m_t_ify, s_0_cond, scm_m_0_cond, s_0_ify,
477 scm_m_0_ify, s_1_ify, scm_m_1_ify): Removed.
478 (scm_m_atfop): Support function aliasing. Support both function
479 args, which need transformation, and macro args, which do not.
480 Add explanatory comments.
481 (SCM_CEVAL): In switch cases for SCM_IM_AND, SCM_IM_COND,
482 SCM_IM_DO, SCM_IM_IF and SCM_IM_OR, add `|| SCM_NILP' to existing
483 checks for SCM_FALSEP. In switch case for SCM_IM_NIL_COND, use
484 SCM_NULLP || SCM_NILP instead of checks against (removed)
485 scm_lisp_nil. Removed switch cases for SCM_IM_NIL_IFY,
486 SCM_IM_T_IFY, SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY.
487
488 * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
489 scm_m_while, scm_nil_eq): Commented out; I don't think we need
490 these, but I don't want to remove them yet, just in case.
491 (scm_init_lang): Define `%nil' variable on Scheme level to hold
492 Elisp nil value.
493
494 * lang.h (SCM_NILP): Test against Elisp nil value instead of
495 against (removed) scm_lisp_nil.
496 (SCM_NILNULLP, SCM_NIL2EOL, SCM_EOL2NIL): Commented out.
497 (SCM_NULL_OR_NIL_P): New.
498
499 * list.c (scm_append): Use SCM_VALIDATE_NULL_OR_NIL instead of
500 SCM_VALIDATE_NULL.
501
502 * print.c (scm_isymnames): Fix comment. Remove #@nil-ify,
503 #@t-ify, #@0-cond, #@0-ify, #@1-ify. Add #nil (for SCM_ELISP_NIL
504 value).
505
506 * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
507 scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort): Use
508 SCM_NULL_OR_NIL_P instead of SCM_NULLP. In constructions like `if
509 (SCM_NULLP (x)) return SCM_EOL;', return x rather than SCM_EOL.
510
511 * tags.h (SCM_IM_NIL_IFY, SCM_IM_T_IFY, SCM_IM_0_COND,
512 SCM_IM_0_IFY, SCM_IM_1_IFY): Removed.
513 (SCM_IM_BIND, SCM_IM_DELAY, SCM_IM_CALL_WITH_VALUES, SCM_UNBOUND):
514 Numbering shifted down accordingly.
515 (SCM_ELISP_NIL): New IFLAG.
516
517 * validate.h (SCM_VALIDATE_NULL_OR_NIL): New.
34472dfe 518
a392ee15
DH
5192002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
520
521 * eval.c: Removed outdated references to "everr". Improved some
522 comments.
523
524 (scm_deval_args, deval_args): Renamed scm_deval_args to
525 deval_args, since it is not part of the interface.
526
527 (SCM_CEVAL): Added (maybe somewhat verbose) comment. Avoid to
528 use references to debug.vect[0] before it exists. Add parentheses
529 to switch statement.
530
531 * goops.h: Added local emacs variables.
532
24933780
DH
5332002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
534
535 * eval.[ch] (scm_deval_args): Made static.
536
537 * srcprop.c (scm_source_property): Remove redundant SCM_IMP
538 test.
539
540 * strings.c (scm_c_string2str): Clarified comment. Replaced
541 THINKME by FIXME for uniformness. Removed question about whether
542 arguments need to be protected from garbage collection: Arguments
543 must be protected as any other variable.
544
f9450cdb
DH
5452002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
546
547 * procs.h (SCM_CLOSURE_BODY): New Macro.
548
549 * debug.c (scm_procedure_name, scm_procedure_source), eval.c
550 (SCM_CEVAL, SCM_APPLY), goops.c (scm_sys_initialize_object,
551 get_slot_value, set_slot_value), procs.c
552 (scm_procedure_documentation), sort.c (closureless), stacks.c
553 (get_applybody): Replace SCM_CDR (SCM_CODE (...)) by
554 SCM_CLOSURE_BODY.
555
556 * sort.c (closureless): Prefer !SCM_FOOP over SCM_NFOOP.
557
5dc64f64
MV
5582001-12-26 Marius Vollmer <mvo@zagadka.ping.de>
559
560 * Makefile.am (guile-procedures.txt): When we don't have makeinfo,
561 use "cp" instead.
562
197ee3d3
MV
5632001-12-16 Marius Vollmer <mvo@zagadka.ping.de>
564
565 * stacks.c, stacks.h (scm_t_stackype): Renamed to scm_stack_type
566 everywhere.
567
568 * continuations.c (scm_make_continuation): Do not retain the
569 throw_value when the continuation is invoked.
570
4d4528e7
SJ
5712001-12-08 Stefan Jahn <stefan@lkcc.org>
572
573 * strings.c (scm_c_string2str): New function. Converts a
34472dfe 574 given Scheme string into a C string. Also put in two
4d4528e7
SJ
575 THINKME's regarding the malloc policy for the missing converter
576 routines.
577
98347362
NJ
5782001-12-01 Neil Jerram <neil@ossau.uklinux.net>
579
580 * gh_data.c (gh_module_lookup): Use scm_str2symbol rather than
581 gh_symbol2scm.
582
1fc8902f
DH
5832001-11-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
584
585 * gc.h (SCM_GC_CELL_WORD, SCM_GC_CELL_OBJECT,
586 SCM_GC_SET_CELL_WORD, SCM_GC_SET_CELL_OBJECT): New macros.
587
588 (SCM_GC_CELL_TYPE, SCM_CELL_WORD, SCM_CELL_OBJECT,
589 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT, SCM_FREE_CELL_CDR,
590 SCM_GC_SET_CELL_OBJECT): Express in terms of SCM_GC_CELL_*
591 macros.
592
593 (SCM_FREE_CELL_P): Express in terms of SCM_GC_CELL_TYPE.
594
595 * inline.h (scm_alloc_cell, scm_alloc_double_cell): Use
596 SCM_GC_CELL_* macros when accessing free cells.
597
4878beec
MV
5982001-11-25 Marius Vollmer <mvo@zagadka.ping.de>
599
600 * vectors.h (SCM_MAKE_VECTOR_TAG): New.
34472dfe 601 * unif.h (SCM_MAKE_BITVECTOR_TAG, SCM_MAKE_UVECTOR_TAG): New.
4878beec
MV
602 * symbols.h (SCM_MAKE_SYMBOL_TAG): New.
603 * strings.h (SCM_MAKE_STRING_TAG): New.
604 * procs.h (SCM_MAKE_CCLO_TAG): New.
605 * numbers.h (SCM_MAKE_BIGNUM_TAG): New.
606
607 * goops.h: Replaced SCM_DEBUG_DEPRECATED with
608 !SCM_ENABLE_DEPRECATED.
609
610 * async.c, async.h (scm_system_async_mark_from_signal_handler):
611 New.
612
613 * scmsigs.c (scm_take_signal): Removed all code that assumes that
614 signal handlers are allowed to divert the flow of control. Call
615 scm_system_async_mark_from_signal_handler instead of
616 scm_system_async_mark.
617
618
619 Deprecated SCM_NEWCELL and SCM_NEWCELL2. Added scm_alloc_cell and
620 scm_alloc_double_cell in their place.
34472dfe 621
4878beec
MV
622 * gc.h (SCM_GC_SET_ALLOCATED, scm_debug_newcell,
623 scm_debug_newcell2, scm_tc16_allocated): Removed from header.
624 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
625 (SCM_NEWCELL, SCM_NEWCELL2): Implement in terms of
626 scm_deprecated_newcell and scm_deprecated_newcell2.
627
628 gc.c (scm_tc16_allocated): Only define when including deprecated
629 features.
630 (scm_debug_newcell, scm_debug_newcell2): Removed.
631 (scm_init_storage): Do not initialize scm_tc16_allocated.
632 (scm_init_gc): Do it here.
633 (allocated_mark): New, from old code.
634 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
34472dfe 635
4878beec 636 * inline.c, inline.h: New files.
34472dfe 637 * Makefile.am: Added them in all the right places.
4878beec 638
34472dfe 639 * _scm.h: Include "libguile/inline.h".
4878beec
MV
640
641 * alist.c, coop-threads.c, debug.c, environments.c, eval.c,
642 fports.c, gh_data.c, goops.c, guardians.c, lang.c, list.c,
643 num2float.i.c, numbers.c, pairs.c, ports.c, print.c, procs.c,
644 smob.c, smob.h, strings.c, strports.c, struct.c, symbols.c,
645 unif.c, variable.c, vectors.c, vports.c, weaks.c: Replaced
646 SCM_NEWCELL and SCM_NEWCELL2 with scm_alloc_cell and
647 scm_alloc_double_cell, respectively.
648
d2bc7fae
MV
6492001-11-23 Marius Vollmer <mvo@zagadka.ping.de>
650
651 * modules.c (scm_c_use_module): Adapt to changes to
652 `process-use-modules'.
653
5eec27e9
DH
6542001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
655
656 * numbers.c (scm_divide): Fix more division by zero errors.
657
8978878f
GH
6582001-11-21 Gary Houston <ghouston@arglist.com>
659
660 * Makefile.am (OMIT_DEPENDENCIES): removed, since it seems to be
661 obsolete. autogen.sh says:
662 invalid unused variable name: `OMIT_DEPENDENCIES'
663
164826d3
DH
6642001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
665
666 * numbers.c (scm_divide): Fix (/ 0). Thanks to Keith Wright for
667 reporting the bug.
668
84aff7a7
MV
6692001-11-21 Marius Vollmer <mvo@zagadka.ping.de>
670
671 * Makefile.am (install-exec-hook): Prepend $(DESTDIR) to filename.
672 Thanks to Eric Gillespie, Jr!
34472dfe 673
6063dc1d
SJ
6742001-11-21 Stefan Jahn <stefan@lkcc.org>
675
34472dfe
TTN
676 * win32-socket.c (getservent, setservent, endservent,
677 getprotoent, setprotoent, endprotoent): New functions.
6063dc1d
SJ
678 Appropriate replacements for M$-Windows.
679
680 * numbers.c (SIZE_MAX, PTRDIFF_MAX, PTRDIFF_MIN): Reintroduced
681 these definitions for GUILE_DEBUG.
682
683 * net_db.c: Include "win32-socket.h" if compiling with a native
34472dfe
TTN
684 M$-Windows compiler. Include some pieces of code (protoent and
685 servent interface) protected by HAVE_* macros when using a
6063dc1d
SJ
686 native M$-Windows compiler.
687
351982f6
MV
6882001-11-20 Marius Vollmer <mvo@zagadka.ping.de>
689
690 * modules.c (scm_c_export): Do nothing when the first argument is
691 already the terminating NULL. Thanks to Han-Wen Nienhuys!
692
849038b5
TTN
6932001-11-20 Thien-Thi Nguyen <ttn@glug.org>
694
695 * Makefile.am (libpath.h): In SCM_BUILD_INFO,
696 also include `buildstamp'.
697
5c790b44
RB
6982001-11-18 Rob Browning <rlb@defaultvalue.org>
699
700 * version.c
701 (s_scm_major_version): use SCM_MAJOR_VERSION.
702 (s_scm_minor_version): use SCM_MINOR_VERSION.
703 (s_scm_micro_version): use SCM_MICRO_VERSION.
704 (s_scm_version): use SCM_MAJOR_VERSION, SCM_MINOR_VERSION, and
705 SCM_MICRO_VERSION.
706
707 * version.h.in
708 (SCM_MAJOR_VERSION): renamed from SCM_GUILE_MAJOR_VERSION.
709 (SCM_MINOR_VERSION): renamed from SCM_GUILE_MINOR_VERSION.
710 (SCM_MICRO_VERSION): renamed from SCM_GUILE_MICRO_VERSION.
711
694a9bb3
NJ
7122001-11-18 Neil Jerram <neil@ossau.uklinux.net>
713
714 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
715 Rewrite docstrings without reference to substring-move-left/right,
716 since the latter no longer exist.
717
302c12b4
DH
7182001-11-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
719
720 * eval.c: Removed bogus comment about acros.
721
722 (scm_unmemocar): Use !SCM_CONSP instead of SCM_IMP.
723 Minimize scope of local variable. Eliminate dependency on
724 macro DEBUG_EXTENSIONS.
725
726 (s_splicing): New error message string.
727
728 (scm_m_body): Issue 'bad body' message rather than 'missing
729 expression' message.
730
731 (scm_m_quote): Eliminate unnecessary copying.
732
733 (scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let): Leave the
734 checking of the body to scm_m_body.
735
736 (scm_m_do): Move comment to function header. Rename arg1 to
737 binding. Made the code a bit easier to read.
738
739 (evalcar): Removed.
740
741 (iqq): Added a comment. Changed the depth parameter to
742 unsigned. Use size_t for vector lengths. Make sure vector object
743 is gc protected as long as its contents are read. Add some syntax
744 checks. Get rid of unnecessary SCM_IMP test. Clean up the
745 control structure a bit.
746
747 (scm_m_delay): Added comment about the implementation of
748 scm_m_delay.
749
750 (scm_m_define): Add comment about guile's currying define
751 syntax. Renamed 'proc' to 'name'. Eliminate dependency on macro
752 DEBUG_EXTENSIONS. Simplified code a bit. Eliminate SICP code.
753
754 (scm_m_letrec1): Removed. Part of the functionality is taken
755 over by the new function 'transform_bindings'.
756
757 (transform_bindings): New function. Takes over some of the
758 functionality of removed function 'scm_m_letrec1', namely to split
759 a list of bindings into a reversed list of variables and a list of
760 initializers.
761
762 (scm_m_letrec): Call 'transform_bindings'.
763
764 (scm_m_let): Minimized scope of local variables. Renamed 'proc'
765 to 'temp' and 'arg1' to 'binding'. Eliminated redundant SCM_NIMP
766 test. Use 'transform_bindings'. Fixed scoping error with named
767 let (Thanks to Aubrey Jaffer for reporting the bug and to Neil
768 Jerram for suggesting the fix). Cleaned up the control structure
769 a bit.
770
771 (scm_m_expand_body): Use 'transform_bindings'. Eliminated
772 unnecessary consing. Eliminated unnecessary
773 SCM_DEFER/ALLOW_INTS.
774
775 (SCM_CEVAL): Un-obfuscated some loops.
776
cecb4a5e
NJ
7772001-11-16 Neil Jerram <neil@ossau.uklinux.net>
778
8f85c0c6
NJ
779 * gc.h (scm_unhash_name): Old declaration removed.
780
781 * eval.c (s_scm_eval): Change @var{primitive-eval} to
782 @code{primitive-eval}.
783
784 * feature.c, vectors.c, net_db.c, unif.c, weaks.c, struct.c,
785 version.c, alist.c, ports.c, ramap.c, unif.c, strings.c, list.c:
786 Change @deffnx lines in docstrings to say {Scheme Procedure}
787 rather than primitive or procedure.
788
789 * posix.c (scm_execl), filesys.c (scm_close), unif.c
790 (scm_array_set_x, scm_array_contents, scm_uniform_array_read_x,
791 scm_bit_set_star_x, scm_bit_invert_x), ramap.c (scm_array_fill_x,
792 scm_array_for_each, scm_array_index_map_x), vectors.c (scm_vector,
793 scm_make_vector, scm_vector_to_list, scm_vector_fill_x), strop.c
794 (scm_string_split, scm_string_ci_to_symbol), strings.c
795 (scm_string_p), sort.c (scm_merge), print.c (scm_newline),
796 macros.c (scm_macro_type), alist.c (scm_acons, scm_assq):
797 Docstring fixes and improvements reflecting edits that have been
798 made in the reference manual source.
799
800 * objprop.c (scm_object_properties, scm_set_object_properties_x,
801 scm_object_property, scm_set_object_property_x): Remove invalid
802 @deffnx lines for corresponding procedure property primitives.
803
cecb4a5e
NJ
804 These changes add a @deffnx C function declaration and function
805 index entries for each Guile primitive to the copy of the doc
806 snarf output that is used for reference manual synchronization.
807 Online help is unchanged.
849038b5 808
cecb4a5e
NJ
809 * snarf.h (SCM_SNARF_DOCS): Output primitive's C function name.
810 (SCM_DEFINE, SCM_DEFINE1, SCM_REGISTER_PROC): Supply to C function
811 name to SCM_SNARF_DOCS.
849038b5 812
cecb4a5e
NJ
813 * guile-snarf-docs-texi.in: Pass the shell script's arguments into
814 snarf-check-and-output-texi.
815
816 * Makefile.am (guile-procedures.texi): New rule.
817 (BUILT_SOURCES, guile.texi, guile-procedures.txt, CLEANFILES):
818 Changed so that the last stage of doc snarfing is now performed
819 twice, once to produce guile-procedures.txt for online help, and
820 once to produce guile.texi for reference manual synchronization.
821
ddea3325
DH
8222001-11-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
823
824 * eval.c (RETURN): Wrap in do{}while(0) in order to make it
825 safely usable as a single statement followed by a ';', for example
826 in an if statement.
827
828 (SCM_CEVAL, SCM_APPLY): Clean up code using 'RETURN'.
829
72dd0a03
NJ
8302001-11-13 Neil Jerram <neil@ossau.uklinux.net>
831
832 * random.c (scm_random_solid_sphere_x,
833 scm_random_hollow_sphere_x): Correct "shere" typos.
834
835 * hashtab.c (scm_hash_fold): Add missing apostrophe to docstring.
836
837 * version.c (scm_version): Update docstring to include
838 `micro-version'.
839
6558eda6
MV
8402001-11-13 Marius Vollmer <mvo@zagadka.ping.de>
841
409b8588
MV
842 * modules.c (scm_c_export): Call va_end after collecting the
843 symbols.
844
adb8c0f2
MV
845 * strop.h, strop.c (scm_substring_move_left_x,
846 scm_substring_move_right_x): Removed.
847
6558eda6
MV
848 * __scm.h (HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG,
849 HAVE_LONG_LONGS): Define to "1" when defining them, to mirror what
850 configure does.
851
5d8fc640
MV
8522001-11-12 Marius Vollmer <mvo@zagadka.ping.de>
853
854 * numbers.c: Document macros to define when including
855 num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we
856 now rely on SIZEOF_ macros that have been figured out at
857 configure time.
858
859 * num2integral.i.c: Adapt to new interface.
860 (NUM2INTEGRAL): Test whether a fixnum can be represented in the
861 target type by casting it and checking whether it is still the
862 same. Do not try to handle bignums for integral types that are
863 smaller than fixnums. When handling bignums, collect the
864 magnituse first into a unsigned type, and correctly check for
865 overflow.
866 (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that
867 only -MIN_VALUE can still be negative of all negative numbers (in
868 twos-complement).
869
849038b5 870 * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately.
5d8fc640
MV
871
872 * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and
873 HAVE_LONG_LONG depending on whether their size is non-zero.
874
d6b8cf11
TTN
8752001-11-11 Thien-Thi Nguyen <ttn@glug.org>
876
877 * strop.c (scm_string_null_p): Docfix; nfc.
878 Thanks to Scott Lenser.
879
9401323e
NJ
8802001-11-07 Neil Jerram <neil@ossau.uklinux.net>
881
882 * extensions.c (scm_load_extension): Canonicalize docstring
883 whitespace.
884
885 * unif.c (scm_uniform_array_write), ports.c
886 (scm_current_output_port, scm_force_output), dynwind.c
887 (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer),
888 filesys.c (scm_open, scm_lstat), struct.c
889 (scm_make_struct_layout), random.c (scm_random,
890 scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c
891 (scm_i_index): Remove superfluous whitespace from end of docstring
892 lines.
893
894 * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p),
895 strings.c (scm_make_string), variable.c (scm_make_variable,
896 scm_make_undefined_variable, scm_variable_p, scm_variable_set_x,
897 scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer),
898 posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c
899 (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous
900 newline at end of docstrings.
901
902 * modules.c (scm_set_current_module): Add missing newline to
903 docstring.
904
b4e15479
SJ
9052001-11-07 Stefan Jahn <stefan@lkcc.org>
906
907 * win32-socket.[ch]: New files. Defines Winsock-API error codes
908 and makes them available through Guile. That is because the
909 Winsock-API does not store its errors in `errno' and thus cannot
910 return error messages via `strerror (errno)'.
911
912 * socket.c (scm_init_socket): Initialize `win32-socket' part
913 here under M$-Windows.
914
d6b8cf11 915 * numbers.h: Added missing declaration of
b4e15479
SJ
916 `scm_sys_check_number_conversions()'.
917
918 * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
919 and use in `(strerror)' and `(system-error)'.
920
d6b8cf11 921 * Makefile.am (EXTRA_libguile_la_SOURCES): Added
b4e15479
SJ
922 `win32-socket.[ch]' to extra source and header files.
923
7ab89df1
MV
9242001-11-06 Marius Vollmer <mvo@zagadka.ping.de>
925
926 * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend
927 a call to turn-on-debugging when --debug has been given instead of
928 turning it on directly. Also, handle new `--no-debug' option,
929 which might suppress the call to turn-on-debugging.
930
0233bfc1
SJ
9312001-11-05 Stefan Jahn <stefan@lkcc.org>
932
933 * struct.c (s_scm_struct_vtable_p): Corrected docstring.
934
8f99e3f3
SJ
9352001-11-04 Stefan Jahn <stefan@lkcc.org>
936
937 * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
d6b8cf11 938 here (was at guile_LDADD) which describes the dependency
8f99e3f3
SJ
939 correctly and allows a clean build on Win32.
940
d6b8cf11 941 * __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros
8f99e3f3
SJ
942 into FOO.
943
944 * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
945 import macros for external libraries (libcrypt, libqthreads,
946 libreadline and libregex).
947
948 * coop-defs.h: Include <winsock2.h> for `struct timeval'.
949
950 * posix.c (flock): Added support for flock() in M$-Windows.
951
952 * guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead
953 of __SCM_IMPORT__.
954
955 * fports.c (getflags): Differentiate reading and writing pipes
956 descriptors.
957
958 * filesys.c (S_IS*): Redefine all of the S_IS*() macros for
959 M$-Windows.
960
961 * coop.c (coop_condition_variable_timed_wait_mutex): Use
962 conditionalized error code if `ETIMEDOUT' is not available.
963 (scm_thread_usleep): Remove bogus declaration of `struct timeval
964 timeout'.
965
966 * numbers.c (PTRDIFF_MIN): Moved this definition where it actually
967 belongs. That is because NO_PREPRO_MAGIC gets undefined after
968 each inclusion of `num2integral.i.c'.
969 (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.
970
4e21fa60
MV
9712001-11-03 Marius Vollmer <mvo@zagadka.ping.de>
972
973 * eval.c (scm_m_begin): Allow `(begin)`, with no subforms.
974 (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED.
975
08112c95
MD
9762001-11-02 Mikael Djurfeldt <mdj@linnaeus>
977
7663c008
MD
978 * print.c (scm_iprin1): Mark print state as revealed when
979 dispatching to generic write or display.
980
08112c95
MD
981 * unif.c (scm_ra2contig): Fixed memory overwrite bug.
982
f712d833
MV
9832001-11-02 Marius Vollmer <mvo@zagadka.ping.de>
984
985 Support for native Win32. Thanks to Stefan Jahn!
d6b8cf11 986
f712d833
MV
987 * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c
988 and win32-dirent.h to extra source and header files. These
989 include the uname() and the POSIX dirent interface implementation
990 for M$-Windows. Put `-no-undefined' into LDFLAGS to support
991 linkers which do not allow unresolved symbols inside shared
992 libraries. Corrected `guile_filter_doc_snarfage$(EXEEXT)'
993 dependency.
994
d6b8cf11
TTN
995 * __scm.h: Defined SCM_API. This macro gets prepended to all
996 function and data definitions which should be exported or imported
f712d833
MV
997 in the resulting dynamic link library in the Win32 port.
998
999 * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h,
d6b8cf11 1000 chars.h, continuations.h, coop-defs.h, coop-threads.h,
f712d833
MV
1001 debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h,
1002 environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h,
1003 feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h,
1004 gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h,
1005 hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h,
d6b8cf11 1006 load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h,
f712d833
MV
1007 objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h,
1008 procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h,
1009 read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h,
1010 smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h,
1011 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
1012 tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h,
1013 vports.h, weaks.h:
1014 Prefixed each each exported symbol with SCM_API.
1015
d6b8cf11 1016 * continuations.c: Added comment about the use of the extern
f712d833
MV
1017 declarations of {get,set}context() functions used in the ia64 port.
1018
1019 * continuations.h, gc.c: `__libc_ia64_register_backing_store_base'
1020 is meant to be a `unsigned long *'.
1021
1022 * filesys.c: Include `direct.h' if possible. Use local
1023 `win32-dirent.h' for the native M$-Windows port. Define S_IS*()
1024 macros for M$-Windows. Implementation of `fstat_Win32()' which is
1025 able to differentiate between sockets and other file descriptors.
1026 Use this function as wrapper in `scm_fstat()'. Fixed typo in
1027 `scm_dirname()'.
1028
1029 * fports.c: Include `io.h' is possible. Put `*fp' into referring
1030 statement block in `scm_fport_buffer_add()'.
1031 Some corrections in `getflags()'.
d6b8cf11 1032
f712d833
MV
1033 * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__.
1034
1035 * guile.c: Make sure to define __SCM_IMPORT__ for shared library
1036 build on Win32. Disable preloaded symbols on Win2 platforms.
1037
1038 * ioext.c, ports.c: Include `io.h' is possible.
1039
1040 * mkstemp.c: Include `process.h' is possible.
1041
1042 * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__,
1043 too.
1044 Put `scm_return_entry()' into HAVE_GETSERVENT conditional.
1045
1046 * posix.c: Remove unnecessary dirent includes and defines. Include
1047 local `win32-uname.h' for MinGW. Extern declaration of
1048 `mkstemp()' for systems where it does not exists. Make
1049 `getlogin()' available on M$-Windows.
1050
1051 * scmsigs.c: Made `usleep()' avalable on MinGW.
1052
1053 * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'.
1054
1055 * win32-dirent.c: Include "win32-dirent.h", not "dirent.h".
1056
1057 * win32-uname.c: Include "win32-uname.h", not "uname.h".
1058
d245ce23
MD
10592001-10-28 Mikael Djurfeldt <mdj@linnaeus>
1060
1061 * unif.c (scm_uniform_array_read_x, scm_uniform_array_write):
1062 Don't apply scm_uniform_vector_length on arrays.
1063
8ea46249
DH
10642001-10-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
1065
1066 * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
1067 scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
1068 scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
1069 SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer
1070 scm_list_<n> over scm_cons[2]?.
1071
1072 (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
1073 scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use
1074 SCM_C[AD][AD]R instead of explicit form.
1075
1076 (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered
1077 comparison parameters.
1078
1079 (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use
1080 !SCM_NULLP instead of SCM_NIMP.
1081
1082 (scm_m_case): Don't copy the form. Renamed proc to clause and
1083 minimized its scope. Renamed x to clauses. Removed side
1084 effecting operation from macro call.
1085
1086 (scm_m_cond): Don't copy the form. Renamed arg1 to clause and
1087 minimized its scope. Renamed x to clauses. Minimized the scope
1088 of variable 'len'. Make sure the else clause is treated specially
1089 even in case of '=>' occurences. Don't change the else to #t in
1090 order to be able to distinguish this case in the evaluator. Leave
1091 type checking of the recipient to the evaluator.
1092
1093 (scm_c_improper_memq): Made the comment somewhat clearer.
1094
1095 (scm_m_lambda): Renamed proc to formals. Removed unnecessary
1096 test for SCM_IM_LET at the place of the formal parameters.
1097 Simplified the formal parameter checking.
1098
1099 (scm_m_letstar): Added Comment. Renamed proc to bindings.
1100 Renamed arg1 to binding and minimized its scope. Eliminated
1101 unnecessary consing.
1102
1103 (scm_m_do): Renamed proc to bindings. Minimized the scope of
1104 variable 'len'.
1105
1106 (build_binding_list): New static function.
1107
1108 (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean).
1109 Further, split up the 'letrec' unmemoizing code to the
1110 corresponding parts for 'do', 'let' and 'letrec', adding comments
1111 to each form. Cleanup the handling of the do form (This removes
1112 some *real* code :-).
1113
1114 (SCM_CEVAL): Removed side effecting operation from macro call.
1115 Handle the 'else clause of the 'cond form specially - the symbol
1116 'else is not replaced with #t any more.
1117
8186c4f5
GH
11182001-10-14 Gary Houston <ghouston@arglist.com>
1119
1120 * version.c (scm_version): use sprintf instead of snprintf,
1121 for portability. thanks to Bill Schottstaedt.
1122
89759084
MD
11232001-10-14 Mikael Djurfeldt <mdj@linnaeus>
1124
1125 * read.c (scm_lreadr): When user-defined hash procedure returns
1126 SCM_UNSPECIFIED: Fall back to standard handling instead of raising
1127 an exception. (This prevents parsing of uniform vectors from
1128 interfering with parsing of numbers.)
1129
9c7ce563
MV
11302001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
1131
1132 * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
1133 PTRDIFF_MIN. Thanks to Ken Raeburn.
1134
11352001-10-07 Marius Vollmer <mvo@zagadka.ping.de>
1136
1137 * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
1138
1139 * eval.c (scm_m_atbind): First try to find the variable without
1140 defining it locally; when it has not been found, define it
1141 locally.
1142
1143 * modules.c (module_variable): Pass over variables that exist but
1144 are unbound.
1145
11462001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
1147
1148 * backtrace.c (display_backtrace_file_and_line): Only use
1149 scm_basename when POSIX support is compiled in. Thanks to Chris
1150 Cramer.
1151
1fe5e088
DH
11522001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1153
1154 * numbers.c (mem2uinteger): Return number read so far when coming
1155 across a hexdigit after having read a # or if not reading a hex
1156 value. This will enable the calling code to correctly handle
1157 forms like 1e2. (The background is, that the exponent markers d,
1158 e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
1159 providing this patch.
1160
1161 (mem2complex): Fix erroneous double-negation. Now, numbers like
1162 1-i will be read correctly.
1163
68665a97
MD
11642001-10-12 Mikael Djurfeldt <mdj@linnaeus>
1165
1166 * debug.c (scm_mem_to_proc): Fixed typo in previous change.
1167
1168 * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro.
1169
d5cf5324
DH
11702001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
1171
1172 * print.c (scm_print_state_vtable, print_state_pool):
1173 Initialize. These variables are now registered as gc roots.
1174
1175 (scm_current_pstate): Update documentation.
1176
1177 (scm_current_pstate, scm_make_print_state, scm_free_print_state,
1178 scm_prin1, scm_init_print): print_state_pool is registered as a
1179 gc root and thus does not need to be protected by a surrounding
1180 pair any more.
1181
1182 (make_print_state): The car of print_state_pool no longer holds
1183 the scm_print_state_vtable.
1184
1185 (scm_current_pstate, scm_make_print_state, print_circref,
1186 scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
1187 SCM_N<foo>.
1188
1189 (scm_prin1): When building lists, prefer scm_list_<n> over
1190 scm_cons[2]?.
1191
1192 (scm_iprlist): Removed a redundant SCM_IMP test.
1193
1194 (scm_simple_format): Use SCM_EQ_P to compare SCM values.
1195
37c56aec
DH
11962001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
1197
1198 * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>.
1199
1200 (scm_memcons, scm_mem_to_proc): When building lists, prefer
1201 scm_list_<n> over scm_cons[2]?.
1202
1203 (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
1204
1205 (scm_procedure_name): Use SCM_CADR instead of explicit form.
1206
1207 (debugobj_print): Coerce scm_intprint arg 1 to long, not int.
1208 Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
1209 for some reason his patch didn't make it into the cvs.
1210
79d34f68
DH
12112001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
1212
1213 * numbers.c (mem2decimal_from_point): Cleaned up the parsing a
1214 little bit - should even be somewhat more accurate now.
1215
5e137c65
RB
12162001-10-08 Rob Browning <rlb@defaultvalue.org>
1217
1218 * gc.c: support ia64 register backing store.
1219 (SCM_MARK_BACKING_STORE): new macro.
1220
1221 * continuations.h: support ia64 register backing store.
1222 (struct scm_t_contregs): add ia64 register backing store.
1223
1224 * continuations.c: support ia64 register backing store.
1225 (continuation_mark): mark ia64 register backing store.
1226 (continuation_free): free ia64 register backing store.
1227 (scm_make_continuation): capture ia64 register backing store.
1228 (copy_stack_and_call): copy ia64 register backing store.
1229
ee083ac2
DH
12302001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1231
1232 * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
1233 is known to be #f if no entry is found. Thus, use !SCM_FALSEP
1234 instead of SCM_NIMP to test for that case.
1235
1236 * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
1237 scm_t_bits instead of long.
1238
71dcdbf9
MV
12392001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
1240
1241 * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
1242 SCM_T_SIGNED_BITS_MIN): New.
1243 * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
1244 Use them to make these macros computable by the preprocessor.
1245
1246 * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
1247 whether the integral type fits in a fixnum, not the compiler.
1248 This removes a spurious compiler warning. Also, honor the
1249 NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
1250 needed for `long long's.
1251
1252 * numbers.c: Define NO_PREPRO_MAGOC when including
1253 num2integral.c.i for `long long' and `signed long long'.
1254
152812c0
MD
12552001-10-06 Mikael Djurfeldt <mdj@linnaeus>
1256
1257 These changes fixes a race condition in the Guile coop - pthread
1258 compatibility code.
d6b8cf11 1259
152812c0
MD
1260 * coop.c (mother_awake_p): New variable.
1261 (coop_create): Set mother_awake_p before creating or signalling
1262 mother; wait until mother is going to sleep before returning.
1263 (mother): Reset mother_awake_p before going to sleep.
1264
11d49f54
DH
12652001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
1266
1267 * options.c (protected_objects, scm_init_options): The content of
1268 protected_objects is now protected from garbage collection using
1269 scm_gc_register_root instead of scm_permanent_object.
1270
1271 (get_option_setting): New static function that computes an option
1272 setting as it was formerly done in the function scm_options.
1273
1274 (get_documented_option_setting): New static function that
1275 returns option documentation as it was formerly done in the
1276 function scm_options. Note that documentation C strings are no
1277 longer precomputed into SCM objects. Instead, they are converted
1278 into SCM strings every time get_documented_option_setting is
1279 called.
1280
1281 (change_option_setting): New static functions that modifies the
1282 option setting as it was formerly done in the function
1283 scm_options. The function is now exception safe, i. e. won't
1284 cause a memory leak when interrupted. Further, only non-immediate
1285 option values are added to the protection list.
1286
1287 (scm_options): This function now has only the purpose to dispatch
1288 to to get_option_setting, get_documented_option_setting or
1289 change_option_setting, depending on the arguments given to
1290 scm_options.
1291
1292 (scm_init_opts): Don't convert documentation C strings into SCM
1293 strings. Further, don't protect any object values: They _must_
1294 be immediate values, otherwise there is no guarantee that they
1295 have not been collected before anyway.
1296
1297 * options.[ch] (scm_t_option): Made type unsigned, name into a
1298 constant char* and val into a scm_t_bits type.
1299
1300 (scm_options, scm_init_opts): The number of options is guaranteed
1301 to be larger or equal to zero. Thus, the type is changed to
1302 unsigned.
1303
3dbacabc
DH
13042001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
1305
1306 * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
1307 testing an unsigned value for being >= 0.
1308
14282d0f
DH
13092001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
1310
1311 * numbers.h: Removed old comment about using SCM_CAR to access
1312 non-pair cells.
1313
1314 (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
1315 the return value is signed. Thanks to Brian Crowder for the bug
1316 report.
1317
1318 (SCM_SRS): Avoid unnecessary casting and don't unpack input
1319 values. With this patch, SCM_SRS can be safely used for other
1320 types than scm_t_signed_bits. However, it should still better be
1321 an internal macro and thus be renamed to SCM_I_SRS.
1322
1323 (SCM_MAKINUM, SCM_INUM): Use proper casting.
1324
2dbec7b5
GH
13252001-10-03 Gary Houston <ghouston@arglist.com>
1326
1327 * continuations.h, unif.h: in the descriptions of the bit patterns
1328 of the heap cells, make bit 0 the least significant.
1329
cf4ee841
TTN
13302001-09-25 Thien-Thi Nguyen <ttn@glug.org>
1331
1332 * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
1333 Thanks to Golubev I. N.
1334
4a151b3d
GH
13352001-09-25 Gary Houston <ghouston@arglist.com>
1336
1337 * ports.c (scm_drain_input): extended the docstring. thanks to
1338 Alex Schroeder and Thien-Thi Nguyen.
1339
581ded70
MD
13402001-09-23 Mikael Djurfeldt <mdj@linnaeus>
1341
1342 * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
1343 SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
1344 macros. (The NUM names might soon change.)
1345
1346 * numbers.h: Added missing declarations.
1347
5437598b
MD
13482001-09-22 Mikael Djurfeldt <mdj@linnaeus>
1349
1350 * Makefile.am: Distribute num2float.i.c.
1351
1352 * num2float.i.c: New file, multiply included by numbers.c, used
1353 to "templatize" the float <-> num conversion routines.
1354
1355 * numbers.c: New functions: scm_num2float, scm_float2num,
1356 scm_num2double, scm_double2num.
1357
0b073f0f
RB
13582001-09-21 Rob Browning <rlb@defaultvalue.org>
1359
1360 * .cvsignore: really add version.h
1361
1362 * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
1363 Otherwise it fails on the alpha. However, we might rather choose
1364 this size conditionally.
1365
1366 * numbers.c (scm_gcd): change "k" to a long from an int.
1367 Otherwise it fails on the alpha. However, we might rather choose
1368 this size conditionally.
1369
1370 * error.c (scm_wta): coerce char* to intptr_t before int
1371 assignment.
1372
1373 * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
1374 int.
1375
1376 * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
1377
2830fd91
MD
13782001-09-20 Mikael Djurfeldt <mdj@linnaeus>
1379
1380 * numbers.c (scm_integer_expt): Accept inexact integer in second
1381 argument. (Thanks to Bill Schottstaedt.)
1382
c13f0a90
RB
13832001-09-20 Rob Browning <rlb@defaultvalue.org>
1384
1385 * .cvsignore: add version.h
1386
1387 * versiondat.h.in: removed (obsolete).
1388
1389 * version.h.in: renamed from version.h.
1390 (SCM_GUILE_MAJOR_VERSION): new public macro.
1391 (SCM_GUILE_MINOR_VERSION): new public macro.
1392 (SCM_GUILE_MICRO_VERSION): new public macro.
1393
1394 * version.h: renamed to version.h.in.
1395
1396 * version.c
1397 (scm_major_version): support integer *_VERSION macros.
1398 (scm_minor_version): support integer *_VERSION macros.
1399 (scm_micro_version): support integer *_VERSION macros.
1400 (scm_version): support integer *_VERSION macros.
1401
147c18a0
MD
14022001-09-20 Mikael Djurfeldt <mdj@linnaeus>
1403
1404 * error.c, error.h: Made error keys globally accessible.
1405 Applications might want to test for these or use them in a direct
1406 call to scm_error.
1407
1408 * num2integral.i.c (NUM2INTEGRAL): Report an error when these
1409 routines are passed an inexact. This change in behavior is
1410 motivated by concordance with R5RS: It is more common that a
1411 primitive doesn't want to accept an inexact for an exact.
1412
662c5539
DH
14132001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1414
1415 The following patch partially undoes my patch from 2001-06-30,
1416 where I added the function scm_gc_mark_cell_conservatively. The
1417 function is buggy, since it breaks guile during conservative
1418 marking if a pointer on the stack points directly into the list of
1419 free cells on the heap: With conservative cell marking this will
1420 cause the whole free list to be scanned and marked - boom!
1421
1422 * gc.c (allocated_mark, MARK, heap_segment,
1423 scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
cf4ee841 1424 (scm_gc_mark_cell_conservatively): Remove function
662c5539
DH
1425 scm_gc_mark_cell_conservatively and update the corresponding
1426 comments and uses accordingly. Thanks to Christopher Cramer for
1427 the patch. (Minor corrections by me.)
1428
6c1b7628
GH
14292001-09-15 Gary Houston <ghouston@arglist.com>
1430
1431 * root.h (scm_root_state): removed the continuation_stack and
1432 continuation_stack_ptr members, which have no apparent purpose.
1433 (scm_continuation_stack, scm_continuation_stack_ptr): #defines
1434 removed.
662c5539 1435
6c1b7628
GH
1436 * root.c (root_mark), init.c (restart_stack, start_stack), gc
1437 (scm_igc): remove all references to contination_stack and
1438 continuation_stack_ptr, avoiding allocation of a vector and
1439 useless processing during gc.
1440
455c0ac8
DH
14412001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1442
1443 * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
1444
1445 (TCONC_IN): Make sure that the cell word 0 is initialized last.
1446
1447 (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
1448
1449 (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
1450
1451 (guardian_apply, scm_get_one_zombie, scm_make_guardian,
1452 mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
1453
22ba637b
DH
14542001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1455
1456 * guardians.c (mark_dependencies_in_tconc,
1457 whine_about_self_centered_zombies, scm_init_guardians): Register
1458 the static global variable `self_centered_zombies' via
1459 scm_gc_register_root, to make some cdr-ing unnecessary.
1460
c3c4d801
DH
14612001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1462
1463 * backtrace.c (display_backtrace_file,
1464 display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
1465 values, use SCM_FALSEP when comparing SCM values against #f.
1466 Thanks to Rob Browning for the bug report.
1467
b00418df
DH
14682001-09-12 Martin Baulig <martin@home-of-linux.org>
1469
1470 * strings.[ch] (scm_str2string): New function.
1471
a0d34a0b
MV
14722001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
1473
1474 * gc.c (scm_done_free): Always subtract size from scm_mallocated
1475 when computing nm, even if it's negative.
1476 (scm_must_malloc): Abort on overflow of scm_mtrigger.
1477 (scm_must_realloc): Likewise.
1478
b10586f0
ML
14792001-09-01 Michael Livshin <mlivshin@bigfoot.com>
1480
1481 * numbers.c (scm_sys_check_number_conversions): new function,
1482 defined if Guile is compiled in debugging mode. currently checks
1483 `scm_num2ulong', should check much much more.
1484
1485 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
1486 unsigned, ensure that it's positive. thanks to Martin Baulig!
cf4ee841 1487
8c494e99
DH
14882001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1489
1490 * __scm.h: Added new section about compile time selectable
1491 features.
1492
1493 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
1494 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
1495 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
1496 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
1497 Removed.
1498
1499 * deprecation.c (scm_include_deprecated_features): Simplified.
1500
1501 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
1502