*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
5e137c65
RB
12001-10-08 Rob Browning <rlb@defaultvalue.org>
2
3 * gc.c: support ia64 register backing store.
4 (SCM_MARK_BACKING_STORE): new macro.
5
6 * continuations.h: support ia64 register backing store.
7 (struct scm_t_contregs): add ia64 register backing store.
8
9 * continuations.c: support ia64 register backing store.
10 (continuation_mark): mark ia64 register backing store.
11 (continuation_free): free ia64 register backing store.
12 (scm_make_continuation): capture ia64 register backing store.
13 (copy_stack_and_call): copy ia64 register backing store.
14
ee083ac2
DH
152001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
16
17 * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
18 is known to be #f if no entry is found. Thus, use !SCM_FALSEP
19 instead of SCM_NIMP to test for that case.
20
21 * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
22 scm_t_bits instead of long.
23
71dcdbf9
MV
242001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
25
26 * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
27 SCM_T_SIGNED_BITS_MIN): New.
28 * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
29 Use them to make these macros computable by the preprocessor.
30
31 * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
32 whether the integral type fits in a fixnum, not the compiler.
33 This removes a spurious compiler warning. Also, honor the
34 NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
35 needed for `long long's.
36
37 * numbers.c: Define NO_PREPRO_MAGOC when including
38 num2integral.c.i for `long long' and `signed long long'.
39
152812c0
MD
402001-10-06 Mikael Djurfeldt <mdj@linnaeus>
41
42 These changes fixes a race condition in the Guile coop - pthread
43 compatibility code.
44
45 * coop.c (mother_awake_p): New variable.
46 (coop_create): Set mother_awake_p before creating or signalling
47 mother; wait until mother is going to sleep before returning.
48 (mother): Reset mother_awake_p before going to sleep.
49
11d49f54
DH
502001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
51
52 * options.c (protected_objects, scm_init_options): The content of
53 protected_objects is now protected from garbage collection using
54 scm_gc_register_root instead of scm_permanent_object.
55
56 (get_option_setting): New static function that computes an option
57 setting as it was formerly done in the function scm_options.
58
59 (get_documented_option_setting): New static function that
60 returns option documentation as it was formerly done in the
61 function scm_options. Note that documentation C strings are no
62 longer precomputed into SCM objects. Instead, they are converted
63 into SCM strings every time get_documented_option_setting is
64 called.
65
66 (change_option_setting): New static functions that modifies the
67 option setting as it was formerly done in the function
68 scm_options. The function is now exception safe, i. e. won't
69 cause a memory leak when interrupted. Further, only non-immediate
70 option values are added to the protection list.
71
72 (scm_options): This function now has only the purpose to dispatch
73 to to get_option_setting, get_documented_option_setting or
74 change_option_setting, depending on the arguments given to
75 scm_options.
76
77 (scm_init_opts): Don't convert documentation C strings into SCM
78 strings. Further, don't protect any object values: They _must_
79 be immediate values, otherwise there is no guarantee that they
80 have not been collected before anyway.
81
82 * options.[ch] (scm_t_option): Made type unsigned, name into a
83 constant char* and val into a scm_t_bits type.
84
85 (scm_options, scm_init_opts): The number of options is guaranteed
86 to be larger or equal to zero. Thus, the type is changed to
87 unsigned.
88
3dbacabc
DH
892001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
90
91 * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
92 testing an unsigned value for being >= 0.
93
14282d0f
DH
942001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
95
96 * numbers.h: Removed old comment about using SCM_CAR to access
97 non-pair cells.
98
99 (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
100 the return value is signed. Thanks to Brian Crowder for the bug
101 report.
102
103 (SCM_SRS): Avoid unnecessary casting and don't unpack input
104 values. With this patch, SCM_SRS can be safely used for other
105 types than scm_t_signed_bits. However, it should still better be
106 an internal macro and thus be renamed to SCM_I_SRS.
107
108 (SCM_MAKINUM, SCM_INUM): Use proper casting.
109
2dbec7b5
GH
1102001-10-03 Gary Houston <ghouston@arglist.com>
111
112 * continuations.h, unif.h: in the descriptions of the bit patterns
113 of the heap cells, make bit 0 the least significant.
114
cf4ee841
TTN
1152001-09-25 Thien-Thi Nguyen <ttn@glug.org>
116
117 * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
118 Thanks to Golubev I. N.
119
4a151b3d
GH
1202001-09-25 Gary Houston <ghouston@arglist.com>
121
122 * ports.c (scm_drain_input): extended the docstring. thanks to
123 Alex Schroeder and Thien-Thi Nguyen.
124
581ded70
MD
1252001-09-23 Mikael Djurfeldt <mdj@linnaeus>
126
127 * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
128 SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
129 macros. (The NUM names might soon change.)
130
131 * numbers.h: Added missing declarations.
132
5437598b
MD
1332001-09-22 Mikael Djurfeldt <mdj@linnaeus>
134
135 * Makefile.am: Distribute num2float.i.c.
136
137 * num2float.i.c: New file, multiply included by numbers.c, used
138 to "templatize" the float <-> num conversion routines.
139
140 * numbers.c: New functions: scm_num2float, scm_float2num,
141 scm_num2double, scm_double2num.
142
0b073f0f
RB
1432001-09-21 Rob Browning <rlb@defaultvalue.org>
144
145 * .cvsignore: really add version.h
146
147 * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
148 Otherwise it fails on the alpha. However, we might rather choose
149 this size conditionally.
150
151 * numbers.c (scm_gcd): change "k" to a long from an int.
152 Otherwise it fails on the alpha. However, we might rather choose
153 this size conditionally.
154
155 * error.c (scm_wta): coerce char* to intptr_t before int
156 assignment.
157
158 * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
159 int.
160
161 * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
162
2830fd91
MD
1632001-09-20 Mikael Djurfeldt <mdj@linnaeus>
164
165 * numbers.c (scm_integer_expt): Accept inexact integer in second
166 argument. (Thanks to Bill Schottstaedt.)
167
c13f0a90
RB
1682001-09-20 Rob Browning <rlb@defaultvalue.org>
169
170 * .cvsignore: add version.h
171
172 * versiondat.h.in: removed (obsolete).
173
174 * version.h.in: renamed from version.h.
175 (SCM_GUILE_MAJOR_VERSION): new public macro.
176 (SCM_GUILE_MINOR_VERSION): new public macro.
177 (SCM_GUILE_MICRO_VERSION): new public macro.
178
179 * version.h: renamed to version.h.in.
180
181 * version.c
182 (scm_major_version): support integer *_VERSION macros.
183 (scm_minor_version): support integer *_VERSION macros.
184 (scm_micro_version): support integer *_VERSION macros.
185 (scm_version): support integer *_VERSION macros.
186
147c18a0
MD
1872001-09-20 Mikael Djurfeldt <mdj@linnaeus>
188
189 * error.c, error.h: Made error keys globally accessible.
190 Applications might want to test for these or use them in a direct
191 call to scm_error.
192
193 * num2integral.i.c (NUM2INTEGRAL): Report an error when these
194 routines are passed an inexact. This change in behavior is
195 motivated by concordance with R5RS: It is more common that a
196 primitive doesn't want to accept an inexact for an exact.
197
662c5539
DH
1982001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
199
200 The following patch partially undoes my patch from 2001-06-30,
201 where I added the function scm_gc_mark_cell_conservatively. The
202 function is buggy, since it breaks guile during conservative
203 marking if a pointer on the stack points directly into the list of
204 free cells on the heap: With conservative cell marking this will
205 cause the whole free list to be scanned and marked - boom!
206
207 * gc.c (allocated_mark, MARK, heap_segment,
208 scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
cf4ee841 209 (scm_gc_mark_cell_conservatively): Remove function
662c5539
DH
210 scm_gc_mark_cell_conservatively and update the corresponding
211 comments and uses accordingly. Thanks to Christopher Cramer for
212 the patch. (Minor corrections by me.)
213
6c1b7628
GH
2142001-09-15 Gary Houston <ghouston@arglist.com>
215
216 * root.h (scm_root_state): removed the continuation_stack and
217 continuation_stack_ptr members, which have no apparent purpose.
218 (scm_continuation_stack, scm_continuation_stack_ptr): #defines
219 removed.
662c5539 220
6c1b7628
GH
221 * root.c (root_mark), init.c (restart_stack, start_stack), gc
222 (scm_igc): remove all references to contination_stack and
223 continuation_stack_ptr, avoiding allocation of a vector and
224 useless processing during gc.
225
455c0ac8
DH
2262001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
227
228 * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
229
230 (TCONC_IN): Make sure that the cell word 0 is initialized last.
231
232 (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
233
234 (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
235
236 (guardian_apply, scm_get_one_zombie, scm_make_guardian,
237 mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
238
22ba637b
DH
2392001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
240
241 * guardians.c (mark_dependencies_in_tconc,
242 whine_about_self_centered_zombies, scm_init_guardians): Register
243 the static global variable `self_centered_zombies' via
244 scm_gc_register_root, to make some cdr-ing unnecessary.
245
c3c4d801
DH
2462001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
247
248 * backtrace.c (display_backtrace_file,
249 display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
250 values, use SCM_FALSEP when comparing SCM values against #f.
251 Thanks to Rob Browning for the bug report.
252
b00418df
DH
2532001-09-12 Martin Baulig <martin@home-of-linux.org>
254
255 * strings.[ch] (scm_str2string): New function.
256
a0d34a0b
MV
2572001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
258
259 * gc.c (scm_done_free): Always subtract size from scm_mallocated
260 when computing nm, even if it's negative.
261 (scm_must_malloc): Abort on overflow of scm_mtrigger.
262 (scm_must_realloc): Likewise.
263
b10586f0
ML
2642001-09-01 Michael Livshin <mlivshin@bigfoot.com>
265
266 * numbers.c (scm_sys_check_number_conversions): new function,
267 defined if Guile is compiled in debugging mode. currently checks
268 `scm_num2ulong', should check much much more.
269
270 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
271 unsigned, ensure that it's positive. thanks to Martin Baulig!
cf4ee841 272
8c494e99
DH
2732001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
274
275 * __scm.h: Added new section about compile time selectable
276 features.
277
278 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
279 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
280 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
281 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
282 Removed.
283
284 * deprecation.c (scm_include_deprecated_features): Simplified.
285
286 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
287