Commit | Line | Data |
---|---|---|
8186c4f5 GH |
1 | 2001-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 |
6 | 2001-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 |
13 | 2001-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 | ||
18 | 2001-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 | ||
29 | 2001-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 |
35 | 2001-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 |
47 | 2001-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 |
53 | 2001-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 |
79 | 2001-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 |
94 | 2001-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 |
99 | 2001-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 |
113 | 2001-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 |
122 | 2001-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 |
138 | 2001-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 |
148 | 2001-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 |
187 | 2001-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 |
192 | 2001-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 |
208 | 2001-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 |
213 | 2001-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 |
218 | 2001-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 |
223 | 2001-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 |
231 | 2001-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 |
241 | 2001-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 |
261 | 2001-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 |
266 | 2001-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 |
285 | 2001-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 |
296 | 2001-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 |
312 | 2001-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 |
324 | 2001-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 |
337 | 2001-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 |
344 | 2001-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 |
351 | 2001-09-12 Martin Baulig <martin@home-of-linux.org> |
352 | ||
353 | * strings.[ch] (scm_str2string): New function. | |
354 | ||
a0d34a0b MV |
355 | 2001-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 |
362 | 2001-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 |
371 | 2001-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 |