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