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