* boot-9.scm (process-define-module): New options: :export-syntax,
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
8186c4f5
GH
12001-10-14 Gary Houston <ghouston@arglist.com>
2
3 * version.c (scm_version): use sprintf instead of snprintf,
4 for portability. thanks to Bill Schottstaedt.
5
89759084
MD
62001-10-14 Mikael Djurfeldt <mdj@linnaeus>
7
8 * read.c (scm_lreadr): When user-defined hash procedure returns
9 SCM_UNSPECIFIED: Fall back to standard handling instead of raising
10 an exception. (This prevents parsing of uniform vectors from
11 interfering with parsing of numbers.)
12
9c7ce563
MV
132001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
14
15 * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
16 PTRDIFF_MIN. Thanks to Ken Raeburn.
17
182001-10-07 Marius Vollmer <mvo@zagadka.ping.de>
19
20 * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
21
22 * eval.c (scm_m_atbind): First try to find the variable without
23 defining it locally; when it has not been found, define it
24 locally.
25
26 * modules.c (module_variable): Pass over variables that exist but
27 are unbound.
28
292001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
30
31 * backtrace.c (display_backtrace_file_and_line): Only use
32 scm_basename when POSIX support is compiled in. Thanks to Chris
33 Cramer.
34
1fe5e088
DH
352001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
36
37 * numbers.c (mem2uinteger): Return number read so far when coming
38 across a hexdigit after having read a # or if not reading a hex
39 value. This will enable the calling code to correctly handle
40 forms like 1e2. (The background is, that the exponent markers d,
41 e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
42 providing this patch.
43
44 (mem2complex): Fix erroneous double-negation. Now, numbers like
45 1-i will be read correctly.
46
68665a97
MD
472001-10-12 Mikael Djurfeldt <mdj@linnaeus>
48
49 * debug.c (scm_mem_to_proc): Fixed typo in previous change.
50
51 * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro.
52
d5cf5324
DH
532001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
54
55 * print.c (scm_print_state_vtable, print_state_pool):
56 Initialize. These variables are now registered as gc roots.
57
58 (scm_current_pstate): Update documentation.
59
60 (scm_current_pstate, scm_make_print_state, scm_free_print_state,
61 scm_prin1, scm_init_print): print_state_pool is registered as a
62 gc root and thus does not need to be protected by a surrounding
63 pair any more.
64
65 (make_print_state): The car of print_state_pool no longer holds
66 the scm_print_state_vtable.
67
68 (scm_current_pstate, scm_make_print_state, print_circref,
69 scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
70 SCM_N<foo>.
71
72 (scm_prin1): When building lists, prefer scm_list_<n> over
73 scm_cons[2]?.
74
75 (scm_iprlist): Removed a redundant SCM_IMP test.
76
77 (scm_simple_format): Use SCM_EQ_P to compare SCM values.
78
37c56aec
DH
792001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
80
81 * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>.
82
83 (scm_memcons, scm_mem_to_proc): When building lists, prefer
84 scm_list_<n> over scm_cons[2]?.
85
86 (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
87
88 (scm_procedure_name): Use SCM_CADR instead of explicit form.
89
90 (debugobj_print): Coerce scm_intprint arg 1 to long, not int.
91 Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
92 for some reason his patch didn't make it into the cvs.
93
79d34f68
DH
942001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
95
96 * numbers.c (mem2decimal_from_point): Cleaned up the parsing a
97 little bit - should even be somewhat more accurate now.
98
5e137c65
RB
992001-10-08 Rob Browning <rlb@defaultvalue.org>
100
101 * gc.c: support ia64 register backing store.
102 (SCM_MARK_BACKING_STORE): new macro.
103
104 * continuations.h: support ia64 register backing store.
105 (struct scm_t_contregs): add ia64 register backing store.
106
107 * continuations.c: support ia64 register backing store.
108 (continuation_mark): mark ia64 register backing store.
109 (continuation_free): free ia64 register backing store.
110 (scm_make_continuation): capture ia64 register backing store.
111 (copy_stack_and_call): copy ia64 register backing store.
112
ee083ac2
DH
1132001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
114
115 * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
116 is known to be #f if no entry is found. Thus, use !SCM_FALSEP
117 instead of SCM_NIMP to test for that case.
118
119 * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
120 scm_t_bits instead of long.
121
71dcdbf9
MV
1222001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
123
124 * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
125 SCM_T_SIGNED_BITS_MIN): New.
126 * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
127 Use them to make these macros computable by the preprocessor.
128
129 * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
130 whether the integral type fits in a fixnum, not the compiler.
131 This removes a spurious compiler warning. Also, honor the
132 NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
133 needed for `long long's.
134
135 * numbers.c: Define NO_PREPRO_MAGOC when including
136 num2integral.c.i for `long long' and `signed long long'.
137
152812c0
MD
1382001-10-06 Mikael Djurfeldt <mdj@linnaeus>
139
140 These changes fixes a race condition in the Guile coop - pthread
141 compatibility code.
142
143 * coop.c (mother_awake_p): New variable.
144 (coop_create): Set mother_awake_p before creating or signalling
145 mother; wait until mother is going to sleep before returning.
146 (mother): Reset mother_awake_p before going to sleep.
147
11d49f54
DH
1482001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
149
150 * options.c (protected_objects, scm_init_options): The content of
151 protected_objects is now protected from garbage collection using
152 scm_gc_register_root instead of scm_permanent_object.
153
154 (get_option_setting): New static function that computes an option
155 setting as it was formerly done in the function scm_options.
156
157 (get_documented_option_setting): New static function that
158 returns option documentation as it was formerly done in the
159 function scm_options. Note that documentation C strings are no
160 longer precomputed into SCM objects. Instead, they are converted
161 into SCM strings every time get_documented_option_setting is
162 called.
163
164 (change_option_setting): New static functions that modifies the
165 option setting as it was formerly done in the function
166 scm_options. The function is now exception safe, i. e. won't
167 cause a memory leak when interrupted. Further, only non-immediate
168 option values are added to the protection list.
169
170 (scm_options): This function now has only the purpose to dispatch
171 to to get_option_setting, get_documented_option_setting or
172 change_option_setting, depending on the arguments given to
173 scm_options.
174
175 (scm_init_opts): Don't convert documentation C strings into SCM
176 strings. Further, don't protect any object values: They _must_
177 be immediate values, otherwise there is no guarantee that they
178 have not been collected before anyway.
179
180 * options.[ch] (scm_t_option): Made type unsigned, name into a
181 constant char* and val into a scm_t_bits type.
182
183 (scm_options, scm_init_opts): The number of options is guaranteed
184 to be larger or equal to zero. Thus, the type is changed to
185 unsigned.
186
3dbacabc
DH
1872001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
188
189 * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
190 testing an unsigned value for being >= 0.
191
14282d0f
DH
1922001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
193
194 * numbers.h: Removed old comment about using SCM_CAR to access
195 non-pair cells.
196
197 (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
198 the return value is signed. Thanks to Brian Crowder for the bug
199 report.
200
201 (SCM_SRS): Avoid unnecessary casting and don't unpack input
202 values. With this patch, SCM_SRS can be safely used for other
203 types than scm_t_signed_bits. However, it should still better be
204 an internal macro and thus be renamed to SCM_I_SRS.
205
206 (SCM_MAKINUM, SCM_INUM): Use proper casting.
207
2dbec7b5
GH
2082001-10-03 Gary Houston <ghouston@arglist.com>
209
210 * continuations.h, unif.h: in the descriptions of the bit patterns
211 of the heap cells, make bit 0 the least significant.
212
cf4ee841
TTN
2132001-09-25 Thien-Thi Nguyen <ttn@glug.org>
214
215 * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
216 Thanks to Golubev I. N.
217
4a151b3d
GH
2182001-09-25 Gary Houston <ghouston@arglist.com>
219
220 * ports.c (scm_drain_input): extended the docstring. thanks to
221 Alex Schroeder and Thien-Thi Nguyen.
222
581ded70
MD
2232001-09-23 Mikael Djurfeldt <mdj@linnaeus>
224
225 * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
226 SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
227 macros. (The NUM names might soon change.)
228
229 * numbers.h: Added missing declarations.
230
5437598b
MD
2312001-09-22 Mikael Djurfeldt <mdj@linnaeus>
232
233 * Makefile.am: Distribute num2float.i.c.
234
235 * num2float.i.c: New file, multiply included by numbers.c, used
236 to "templatize" the float <-> num conversion routines.
237
238 * numbers.c: New functions: scm_num2float, scm_float2num,
239 scm_num2double, scm_double2num.
240
0b073f0f
RB
2412001-09-21 Rob Browning <rlb@defaultvalue.org>
242
243 * .cvsignore: really add version.h
244
245 * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
246 Otherwise it fails on the alpha. However, we might rather choose
247 this size conditionally.
248
249 * numbers.c (scm_gcd): change "k" to a long from an int.
250 Otherwise it fails on the alpha. However, we might rather choose
251 this size conditionally.
252
253 * error.c (scm_wta): coerce char* to intptr_t before int
254 assignment.
255
256 * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
257 int.
258
259 * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
260
2830fd91
MD
2612001-09-20 Mikael Djurfeldt <mdj@linnaeus>
262
263 * numbers.c (scm_integer_expt): Accept inexact integer in second
264 argument. (Thanks to Bill Schottstaedt.)
265
c13f0a90
RB
2662001-09-20 Rob Browning <rlb@defaultvalue.org>
267
268 * .cvsignore: add version.h
269
270 * versiondat.h.in: removed (obsolete).
271
272 * version.h.in: renamed from version.h.
273 (SCM_GUILE_MAJOR_VERSION): new public macro.
274 (SCM_GUILE_MINOR_VERSION): new public macro.
275 (SCM_GUILE_MICRO_VERSION): new public macro.
276
277 * version.h: renamed to version.h.in.
278
279 * version.c
280 (scm_major_version): support integer *_VERSION macros.
281 (scm_minor_version): support integer *_VERSION macros.
282 (scm_micro_version): support integer *_VERSION macros.
283 (scm_version): support integer *_VERSION macros.
284
147c18a0
MD
2852001-09-20 Mikael Djurfeldt <mdj@linnaeus>
286
287 * error.c, error.h: Made error keys globally accessible.
288 Applications might want to test for these or use them in a direct
289 call to scm_error.
290
291 * num2integral.i.c (NUM2INTEGRAL): Report an error when these
292 routines are passed an inexact. This change in behavior is
293 motivated by concordance with R5RS: It is more common that a
294 primitive doesn't want to accept an inexact for an exact.
295
662c5539
DH
2962001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
297
298 The following patch partially undoes my patch from 2001-06-30,
299 where I added the function scm_gc_mark_cell_conservatively. The
300 function is buggy, since it breaks guile during conservative
301 marking if a pointer on the stack points directly into the list of
302 free cells on the heap: With conservative cell marking this will
303 cause the whole free list to be scanned and marked - boom!
304
305 * gc.c (allocated_mark, MARK, heap_segment,
306 scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
cf4ee841 307 (scm_gc_mark_cell_conservatively): Remove function
662c5539
DH
308 scm_gc_mark_cell_conservatively and update the corresponding
309 comments and uses accordingly. Thanks to Christopher Cramer for
310 the patch. (Minor corrections by me.)
311
6c1b7628
GH
3122001-09-15 Gary Houston <ghouston@arglist.com>
313
314 * root.h (scm_root_state): removed the continuation_stack and
315 continuation_stack_ptr members, which have no apparent purpose.
316 (scm_continuation_stack, scm_continuation_stack_ptr): #defines
317 removed.
662c5539 318
6c1b7628
GH
319 * root.c (root_mark), init.c (restart_stack, start_stack), gc
320 (scm_igc): remove all references to contination_stack and
321 continuation_stack_ptr, avoiding allocation of a vector and
322 useless processing during gc.
323
455c0ac8
DH
3242001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
325
326 * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
327
328 (TCONC_IN): Make sure that the cell word 0 is initialized last.
329
330 (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
331
332 (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
333
334 (guardian_apply, scm_get_one_zombie, scm_make_guardian,
335 mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
336
22ba637b
DH
3372001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
338
339 * guardians.c (mark_dependencies_in_tconc,
340 whine_about_self_centered_zombies, scm_init_guardians): Register
341 the static global variable `self_centered_zombies' via
342 scm_gc_register_root, to make some cdr-ing unnecessary.
343
c3c4d801
DH
3442001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
345
346 * backtrace.c (display_backtrace_file,
347 display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
348 values, use SCM_FALSEP when comparing SCM values against #f.
349 Thanks to Rob Browning for the bug report.
350
b00418df
DH
3512001-09-12 Martin Baulig <martin@home-of-linux.org>
352
353 * strings.[ch] (scm_str2string): New function.
354
a0d34a0b
MV
3552001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
356
357 * gc.c (scm_done_free): Always subtract size from scm_mallocated
358 when computing nm, even if it's negative.
359 (scm_must_malloc): Abort on overflow of scm_mtrigger.
360 (scm_must_realloc): Likewise.
361
b10586f0
ML
3622001-09-01 Michael Livshin <mlivshin@bigfoot.com>
363
364 * numbers.c (scm_sys_check_number_conversions): new function,
365 defined if Guile is compiled in debugging mode. currently checks
366 `scm_num2ulong', should check much much more.
367
368 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
369 unsigned, ensure that it's positive. thanks to Martin Baulig!
cf4ee841 370
8c494e99
DH
3712001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
372
373 * __scm.h: Added new section about compile time selectable
374 features.
375
376 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
377 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
378 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
379 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
380 Removed.
381
382 * deprecation.c (scm_include_deprecated_features): Simplified.
383
384 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
385