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