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