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