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