Commit | Line | Data |
---|---|---|
e548be5f MV |
1 | 2004-09-08 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
2 | ||
eb8d0af1 MV |
3 | * Makefile.am (EXTRA_libguile_la_SOURCES): Removed "alloca.c". |
4 | ||
e548be5f MV |
5 | * eq.c (real_eqv): Pretend that all NaNs are equal. |
6 | ||
7 | * numbers.c (scm_integer_expt): Do not accept inexact integers. | |
8 | ||
e7acba81 MV |
9 | 2004-09-07 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
10 | ||
874fbad1 MV |
11 | * srfi-13.c (scm_string_trim_right, scm_string_xcopy_x): Correctly |
12 | use size_t for some locals instead of int. | |
13 | ||
e7acba81 MV |
14 | * read.c (scm_flush_ws): Detect "#!"-style comments here. |
15 | (scm_lreadr): Abort on seeing "#!", which should no longer happen. | |
16 | (skip_scsh_block_comment): Use scm_input_error instead of | |
17 | scm_misc_error in case of EOF. | |
18 | ||
5de12658 KR |
19 | 2004-09-07 Kevin Ryde <user42@zip.com.au> |
20 | ||
21 | * numbers.c (scm_integer_expt): Reject exponent +/-inf. | |
5de12658 KR |
22 | Bug report by Bill Schottstaedt. |
23 | ||
24 | * ports.c (scm_getc, scm_lfwrite): Recognise \a \b and \r for port | |
25 | column. | |
26 | * ports.h (SCM_ZEROCOL, SCM_DECCOL): New macros. | |
27 | ||
28 | * posix.c (scm_access): Update docstring per manual. | |
29 | ||
30 | * posix.c (scm_nice): Correction to error detection. Reported by | |
31 | Matthias Koeppe. | |
32 | ||
33 | * stime.c (scm_current_time, scm_gettimeofday, scm_strptime): Don't | |
34 | throw error before unlocking mutex with SCM_ALLOW_INTS. | |
35 | ||
e227addf KR |
36 | 2004-09-06 Kevin Ryde <user42@zip.com.au> |
37 | ||
38 | * stime.h (SCM_TIME_UNITS_PER_SECOND): Use sysconf(_SC_CLK_TCK) when | |
39 | available. This also gets around CLK_TCK being absent when | |
40 | _GNU_SOURCE and _POSIX_C_SOURCE are defined in stime.c. | |
41 | ||
edea856c SJ |
42 | 2004-09-03 Stefan Jahn <stefan@lkcc.org> |
43 | ||
44 | * threads.c (scm_threads_mark_stacks): Fixed local variable | |
45 | definitions. | |
46 | ||
e7acba81 | 47 | * strings.c (scm_i_substring_copy, scm_string_append): Fixed |
edea856c SJ |
48 | local variable definitions. |
49 | ||
50 | * stime.c (_POSIX_C_SOURCE): Do not define this item on | |
51 | MinGW32 because it conflicts with its pthread headers. | |
874fbad1 MV |
52 | (scm_mktime): Consider the HAVE_STRUCT_TM_TM_ZONE define. |
53 | (scm_strftime): Using scm_from_locale_string() instead of | |
edea856c SJ |
54 | scm_makfrom0str(). |
55 | ||
874fbad1 | 56 | * posix.c (scm_putenv): Fixed typo in the !HAVE_UNSETENV |
edea856c SJ |
57 | part. |
58 | ||
59 | * numbers.c (scm_init_numbers): Removed check_sanity() call | |
60 | inside GUILE_DEBUG. The function has been removed somewhen... | |
61 | ||
62 | * filesys.c (_POSIX_C_SOURCE): Do not define this item on | |
63 | MinGW32 because it conflicts with its pthread headers. | |
64 | ||
d9eb2d67 MV |
65 | 2004-08-27 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
66 | ||
67 | * strings.c (SCM_STRINGP): Accept all strings. | |
68 | (SCM_STRING_CHARS): Reject shared substrings here. | |
69 | ||
70 | * script.c (scm_compile_shell_switches): Added 2003 and 2004 to | |
71 | the Copyright years. | |
72 | ||
c495c342 KR |
73 | 2004-08-27 Kevin Ryde <user42@zip.com.au> |
74 | ||
75 | * socket.c (scm_fill_sockaddr): Use HAVE_STRUCT_SOCKADDR_SIN_LEN and | |
76 | HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN for sockaddr fields, SIN_LEN and | |
77 | SIN_LEN6 are not defined on all systems. Reported by Michael Tuexen. | |
78 | ||
57aa5515 MV |
79 | 2004-08-26 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
80 | ||
81 | * strings.h, strings.c (scm_i_make_symbol): Added FLAGS parameter. | |
82 | * symbols.h, symbols.c (SCM_I_F_SYMBOL_UNINTERNED, | |
83 | scm_i_symbol_is_interned, scm_i_mem2symbol, | |
84 | scm_i_mem2uninternedsymbol): Use it to store uninternedness flag. | |
85 | ||
ce25760f MV |
86 | 2004-08-25 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
87 | ||
19ff6ffc MV |
88 | * srfi-13.c: First cut at thread-safeness and proper use of |
89 | scm_i_string_chars et al. Copious scm_remember_upto_heres have | |
90 | been inserted. Made sure that no internal string pointer is used | |
91 | across a SCM_TICK or a possible GC. | |
92 | ||
ce25760f MV |
93 | * script.c (scm_compile_shell_switches): Use |
94 | scm_from_locale_string instead of scm_makfrom0str. | |
95 | ||
96 | * srfi-13.c (scm_string_rindex): Export to Scheme, as it has | |
97 | always been. | |
98 | ||
c5080b51 MV |
99 | 2004-08-25 Marius Vollmer <mvo@zagadka.de> |
100 | ||
101 | Moved SRFI-13 and SRFI-14 into the core, taking over the role of | |
102 | strop.c. | |
103 | ||
104 | * srfi-13.c, srfi-13.h, srfi-14.c, srfi-14.h: New files. | |
105 | * strop.h, strop.c: Removed, they are now empty. | |
106 | * Makefile.am: Updated for new and removed files. | |
107 | ||
108 | * symbols.h, symbols.c (scm_string_ci_to_symbol): Moved here, next | |
109 | to scm_string_to_symbol. | |
110 | ||
111 | * chars.c (scm_char_alphabetic_p, scm_char_numeric_p, | |
112 | scm_char_whitespace_p, scm_upper_case_p, scm_lower_case_p, | |
113 | scm_char_is_both_p): Use scm_char_set_contains_p with the proper | |
114 | charset instead of libc functions. | |
115 | ||
116 | * strorder.c (scm_string_equal_p, scm_string_ci_equal_p, | |
117 | scm_string_less_p, scm_string_leq_p, scm_string_gr_p, | |
118 | scm_string_geq_p, scm_string_ci_less_p, scm_string_ci_leq_p, | |
119 | scm_string_ci_gr_p, scm_string_ci_geq_p): Use scm_string_eq, etc | |
120 | instead of explicit code. | |
121 | ||
122 | * deprecated.c, load.c, posix.c, unif.c, symbols.c: Include | |
123 | "srfi-13.h" instead of "strop.h". | |
124 | ||
125 | * init.c (scm_init_guile_1): Call scm_init_srfi_13 and | |
126 | scm_init_srfi_14. Do not call scm_init_strop. | |
127 | ||
4b0d27f2 MV |
128 | 2004-08-24 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
129 | ||
130 | * numbers.c (scm_inf_p): Synced docstring back from manual. | |
131 | ||
3ece39d6 MV |
132 | 2004-08-22 Marius Vollmer <mvo@zagadka.de> |
133 | ||
134 | * strings.c (get_str_buf_start): New helper function. | |
135 | (scm_i_substring, scm_i_substring_copy, scm_i_substring_shared, | |
136 | scm_i_string_char, scm_i_string_writable_chars): Use it. | |
137 | (scm_i_substring_copy): Make START argument optional for C | |
138 | callers, for upcoming SRFI-13 integration. | |
139 | ||
140 | 2004-08-21 Marius Vollmer <mvo@zagadka.de> | |
141 | ||
142 | From Richard Todd, Thanks! | |
143 | ||
144 | * script.c (scm_compile_shell_switches): added '-L' switch to add | |
145 | to the %load-path. | |
146 | ||
5fa0939c DH |
147 | 2004-08-21 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> |
148 | ||
149 | * eval.c (unmemoize_exprs): When dropping internal body markers | |
150 | from the output during unmemoization, also drop those that are not | |
151 | immediately at the beginning of a body. | |
152 | ||
2146fdeb MV |
153 | 2004-08-20 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
154 | ||
c1f54b3d MV |
155 | * eval.c (scm_lookupcar1): Report "Variable used before given a |
156 | value" insetad of an "Unbound" one for variables that are found | |
157 | but still contain SCM_UNDEFINED. | |
2146fdeb MV |
158 | |
159 | * posix.c (scm_mkstemp): Correction to the correction, mkstemp | |
160 | expects a null-terminated string in the locale encoding, but | |
161 | scm_i_string_writable_chars doesn't give that. Fixed by letting | |
162 | mkstemp modify a locale version of the tmpl argument and copying | |
163 | the result back into tmpl. | |
164 | ||
165 | * strop.c (scm_substring_move_x): Store into str2, not str1. | |
166 | ||
d4f76919 KR |
167 | 2004-08-20 Kevin Ryde <user42@zip.com.au> |
168 | ||
169 | * posix.c (scm_mkstemp): Correction to new locale_string stuff, need | |
170 | to modify the input string. | |
171 | ||
b5247a6b MV |
172 | 2004-08-19 Marius Vollmer <mvo@zagadka.de> |
173 | ||
174 | * deprecated.c (SCM_SYMBOL_CHARS): Cast away const in return. | |
175 | (SCM_SYMBOL_LENGTH): It's scm_i_symbol_length, not | |
176 | scm_c_symbol_length. | |
177 | ||
f26b9395 MV |
178 | 2004-08-19 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
179 | ||
180 | New string implementation, with copy-on-write strings and | |
181 | mutation-sharing substrings, and a new internal string API. | |
182 | Symbols can now share memory with strings. | |
183 | ||
184 | * tags.h (scm_tc7_stringbuf): New tag. | |
185 | ||
186 | * strings.h, strings.c: (scm_i_string_chars, scm_i_string_length, | |
187 | scm_i_string_writable_chars, scm_i_string_stop_writing): New, to | |
188 | replace SCM_I_STRING_CHARS and SCM_I_STRING_LENGTH. Updated all | |
189 | uses. | |
190 | (scm_i_make_string, scm_c_make_string): New, to replace | |
191 | scm_allocate_string. Updated all uses. | |
192 | (SCM_STRINGP, SCM_STRING_CHARS, SCM_STRING_UCHARS, | |
193 | SCM_STRING_LENGTH): Deprecated. | |
194 | (scm_allocate_string, scm_take_str, scm_take0str, scm_mem2string, | |
195 | scm_str2string, scm_makfrom0str, scm_makfrom0str_opt): | |
196 | Discouraged. Replaced all uses with scm_from_locale_string or | |
197 | similar, as appropriate. | |
198 | (scm_c_string_length, scm_c_string_ref, scm_c_string_set_x, | |
199 | scm_c_substring, scm_c_substring_shared, scm_c_substring_copy, | |
200 | scm_substring_shared, scm_substring_copy): New. | |
201 | ||
202 | * symbols.c, symbols.h (SCM_SYMBOLP, SCM_SYMBOL_FUNC, | |
203 | SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS, SCM_SET_SYMBOL_PROPS, | |
204 | SCM_SYMBOL_HASH, SCM_SYMBOL_INTERNED_P, scm_mem2symbol, | |
205 | scm_str2symbol, scm_mem2uninterned_symbol): Discouraged. | |
206 | (SCM_SYMBOL_LENGTH, SCM_SYMBOL_CHARS, scm_c_symbol2str): | |
207 | Deprecated. | |
208 | (SCM_MAKE_SYMBOL_TAG, SCM_SET_SYMBOL_LENGTH, SCM_SET_SYMBOL_CHARS, | |
209 | SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS): Removed. | |
210 | (scm_is_symbol, scm_from_locale_symbol, scm_from_locale_symboln): | |
211 | New, to replace scm_str2symbol and scm_mem2symbol, respectively. | |
212 | Updated all uses. | |
213 | (scm_gensym): Generate only the number suffix in the buffer, just | |
214 | string-append the prefix. | |
215 | ||
216 | * error.c (scm_memory_error): Do not try to throw, just abort. | |
217 | Throwing will not work anyway. | |
218 | ||
219 | * gh.h, gh-data.c (gh_set_substr): Made src const. | |
220 | ||
221 | * ports.c (scm_i_mode_bits_n): New, for counted strings. | |
222 | (scm_mode_bits): Use it. | |
223 | (scm_c_port_for_each): Blocking GC does not seem to work, allocate | |
224 | a vector normally and fill that instead of consing a list with a | |
225 | blocked GC. | |
226 | ||
227 | * read.c (scm_i_casei_streq): New, for counted strings. | |
228 | ||
229 | * threads.c (gc_section_count): Removed, thread-sleeping can not | |
230 | be nested. | |
231 | (scm_i_thread_put_to_sleep): Call scm_i_leave_guile before locking | |
232 | admin mutex so that we can be put to sleep by other threads while | |
233 | blocking on that mutex. Lock all the heap mutex of all threads, | |
234 | including ourselves. | |
235 | (scm_i_thread_wake_up): Unlock all threads, including ourselves, | |
236 | call scm_i_enter_guile. | |
237 | (scm_thread_mark_stacks): Expect all threads to be suspended. | |
238 | ||
239 | * gc.h, gc.c (scm_i_gc_admin_mutex): New, to protect | |
240 | scm_gc_mallocated, for now. | |
241 | (scm_init_storage): Initialize it. | |
242 | * gc-malloc.c (descrease_mtrigger, increase_mtrigger): Use it. | |
243 | ||
244 | * gc-mark.c (scm_gc_mark_dependencies): Call scm_i_string_mark, | |
245 | scm_i_stringbuf_mark and scm_i_symbol_mark, as appropriate. | |
246 | * gc-card.c (scm_i_sweep_card): Call scm_i_string_free, | |
247 | scm_i_stringbuf_free and scm_i_symbol_free, as appropriate. | |
248 | ||
cd505b38 MV |
249 | * strop.c (scm_string_copy): Use scm_c_substring to get a |
250 | copy-on-write string. | |
251 | ||
8a807b26 KR |
252 | 2004-08-18 Kevin Ryde <user42@zip.com.au> |
253 | ||
254 | * arbiters.c (FETCH_STORE): New macro. | |
255 | (SCM_LOCK_VAL, SCM_UNLOCK_VAL): New constants. | |
256 | (SCM_LOCK_ARB, SCM_UNLOCK_ARB): Remove, effectively absorbed into | |
257 | scm_try_arbiter and scm_release_arbiter. | |
258 | (scm_try_arbiter, scm_release_arbiter): Use FETCH_STORE to get xchg | |
259 | for speed on i386, otherwise using mutex. | |
260 | ||
261 | * eq.c (scm_equal_p): Remove real==fraction and fraction==real, they | |
262 | must be #f according to R5RS. (equal? follows eqv?, and for eqv? an | |
263 | exact and inexact is #f.) | |
264 | ||
265 | * fports.c (fport_print): Use scm_ttyname instead of ttyname directly, | |
266 | to get thread safety of scm_ttyname. | |
267 | ||
268 | * ports.c (ttyname): Remove prototype, unused. | |
269 | ||
d6cd4c36 | 270 | * socket.c (scm_init_socket): Add SOCK_SEQPACKET and SOCK_RDM. |
1f3cc0d3 | 271 | Reported by Michael Tuexen. |
d6cd4c36 | 272 | |
fa0c0a4b MV |
273 | 2004-08-13 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
274 | ||
275 | * load.c (scm_init_load_path): Do not pass NULL to | |
276 | scm_to_locale_string, which would happen when GUILE_LOAD_PATH is | |
277 | not set. Thanks to Bill Schottstaedt. | |
278 | ||
70f7ee41 MV |
279 | 2004-08-12 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
280 | ||
281 | * socket.c (scm_inet_aton, scm_inet_pton): Convert SCM strings to | |
282 | locale strings instead of accessing their internals. | |
283 | (scm_recv, scm_send, scm_recvfrom, scm_sendto): Use | |
284 | SCM_I_STRING_CHARS and SCM_I_STRING_LENGTH instead of | |
285 | SCM_STRING_CHARS and SCM_STRING_LENGTH. | |
286 | ||
287 | * simpos.c (scm_system): Convert SCM strings to locale strings | |
288 | instead of accessing their internals. | |
289 | ||
290 | * script.c (scm_compile_shell_switches): Convert version to locale | |
291 | string before printing it. | |
292 | ||
293 | * rdelim.c (scm_read_delimited_x): Avoid | |
294 | SCM_VALIDATE_SUBSTRING_SPEC_COPY and use scm_from_size_t instead | |
295 | of scm_from_long for the returned number of read characters. | |
296 | ||
297 | * ioext.c (scm_fdopen): Use scm_i_fdes_to_port together with | |
298 | scm_i_mode_bits to avoid accessing internals of SCM string from C. | |
299 | ||
300 | * filesys.c (STRING_SYSCALL, STRING2_SYSCALL): New helper macros. | |
301 | Use them instead of SCM_SYSCALL when one or two strings need to be | |
302 | converted into locale strings. | |
303 | (my_rename): New, gathers platform dependent code for renaming. | |
304 | (scm_rename): Use it. | |
305 | (scm_readlink, scm_copy_file): Convert SCM strings to locale | |
306 | strings instead of accessing their internals. | |
307 | (scm_basename, scm_dirname): Use SCM_I_STRING_CHARS and | |
308 | SCM_I_STRING_LENGTH instead of SCM_STRING_CHARS and | |
309 | SCM_STRING_LENGTH. | |
310 | ||
311 | * extensions.c (load_extension): Convert lib and init to locale | |
312 | strings instead of accessing the internals directly. | |
313 | (scm_c_load_extension): Use scm_from_locale_string instead of | |
314 | scm_makfrom0str. | |
315 | ||
316 | * fports.h, fports.c (scm_i_fdes_to_port): New, like | |
317 | scm_fdes_to_port, but take mode bits directly instead of as a C | |
318 | string. | |
319 | (scm_i_fdes_to_port): Implement using above. | |
320 | (scm_open_file): Use scm_i_fdes_to_port together with | |
321 | scm_i_mode_bits to avoid accessing internals of SCM string from C. | |
322 | * vports.c (scm_make_soft_port): Use scm_i_fdes_to_port together | |
323 | with scm_i_mode_bits to avoid accessing internals of SCM string | |
324 | from C. | |
325 | ||
326 | * ports.h (scm_i_mode_bits): New, same as scm_mode_bits but with a | |
327 | SCM string as argument. | |
328 | ||
329 | * ports.c (scm_i_void_port): New, like scm_void_port but take mode | |
330 | bits directly instead of C string. | |
331 | (scm_void_port): Implement using above. | |
332 | (scm_sys_make_void_port): Use scm_i_void_port together with | |
333 | scm_i_mode_bits to avoid accessing internals of SCM string. | |
334 | ||
335 | * strings.h, strings.c (scm_i_get_substring_spec): New. | |
336 | ||
337 | * socket.c, rw.c, deprecated.h, validate.h | |
338 | (SCM_VALIDATE_STRING_COPY): Deprecated. Replaced all uses with | |
339 | SCM_VALIDATE_STRING plus SCM_I_STRING_CHARS or | |
340 | scm_to_locale_string, etc. | |
341 | (SCM_VALIDATE_SUBSTRING_SPEC_COPY): Deprecated. Replaced as | |
342 | above, plus scm_i_get_substring_spec. | |
343 | ||
344 | * regex-posix.c, read.c, random.c, ramap.c, print.c, numbers.c, | |
345 | hash.c, gc.c, gc-card.c, convert.i.c, backtrace.c, strop.c, | |
346 | strorder.c, strports.c, struct.c, symbols.c, unif.c, ports.c: Use | |
347 | SCM_I_STRING_CHARS, SCM_I_STRING_UCHARS, and SCM_I_STRING_LENGTH | |
348 | instead of SCM_STRING_CHARS, SCM_STRING_UCHARS, and | |
349 | SCM_STRING_LENGTH, respectively. Also, replaced scm_return_first | |
350 | with more explicit scm_remember_upto_here_1, etc, or introduced | |
351 | them in the first place. | |
352 | ||
353 | * posix.c (WITH_STRING): New helper macro. Use it where one | |
354 | locale string is needed for a short piece of code. | |
355 | (STRING_SYSCALL): New helper macro. Use it instead of SCM_SYSCALL | |
356 | when one locale string is needed. | |
357 | (scm_mkstemp): Convert tmpl to a locale string. | |
358 | (scm_putenv): Rewritten to use only C strings. | |
359 | (scm_setlocale, scm_crpt): Convert argument strings to locale | |
360 | strings. | |
361 | ||
362 | 2004-08-11 Marius Vollmer <marius.vollmer@uni-dortmund.de> | |
363 | ||
364 | * load.c (scm_primitive_load_path): Do not check for absolute | |
365 | filenames when scm_sys_search_load_path returns false, which will | |
366 | return absolute filenames unchanged. | |
367 | ||
bb26cc2d MV |
368 | 2004-08-11 Marius Vollmer <mvo@zagadka.de> |
369 | ||
370 | * gc.c, procprop.c (scm_init_storage, scm_stand_in_procs, | |
371 | scm_stand_in_proc): Use a hastable for scm_stand_in_procs instead | |
372 | of an alist. Thanks to Matthias Koeppe! | |
373 | ||
02573e4c MV |
374 | 2004-08-10 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
375 | ||
376 | * strings.h, deprecated.h (SCM_STRING_COERCE_0TERMINATION_X): | |
377 | Moved from string.h to deprecated.h. | |
378 | ||
379 | * deprecated.c, deprecated.h (SCM_CHARS, SCM_LENGTH): Removed. | |
380 | ||
f9751e86 | 381 | * strings.h, strings.c (SCM_MAKE_STRING_TAG): Renamed to |
02573e4c MV |
382 | SCM_I_MAKE_STRING_TAG, changed all uses. |
383 | (SCM_STRING_CHARS, SCM_STRING_UCHARS, SCM_STRING_LENGTH): Renamed | |
384 | to SCM_I_STRING_CHARS, SCM_I_STRING_UCHARS, and SCM_I_LENGTH | |
385 | respectively. For a short time, the old names are still there as | |
386 | aliases. Not all uses have been changed yet, but the ones in | |
387 | strings.c have. | |
388 | (SCM_STRING_MAX_LEN): Do not hardcode to 24 bits, compute from | |
389 | SCM_T_BITS_MAX. | |
390 | (scm_is_string, scm_from_locale_string, scm_from_locale_stringn, | |
391 | scm_take_locale_string, scm_take_locale_stringn, | |
392 | scm_to_locale_string, scm_to_locale_stringn, | |
393 | scm_to_locale_stringbuf): New. | |
394 | (scm_c_string2str, scm_c_substring2str): Deprecated by moving to | |
395 | deprecated.[hc]. Implemented in terms of the new functions above. | |
396 | (scm_take_str, scm_take0str, scm_mem2string, scm_str2string, | |
397 | scm_makfrom0str): Reimplemented in terms of the new functions from | |
398 | above. They will be discouraged shortly. | |
399 | (scm_substring): Do not use scm_mem2string. | |
400 | (scm_i_allocate_string_pointers, scm_i_free_string_pointers): New, | |
401 | to replace similar code from posix.c, simpos.c, and dynl.c. | |
402 | (scm_string_append): Use memcpy instead of explicit loop. Do not | |
403 | use register keyword. Use plain 'char' instead of 'unsigned | |
404 | char'. | |
405 | ||
406 | * strports.c (scm_mkstrport): Use SCM_I_STRING_UCHARS instead of | |
407 | SCM_STRING_UCHARS. Use SCM_I_STRINGP instead of SCM_STRINGP. | |
408 | ||
409 | * strop.c (scm_i_index): Replaced SCM_STRINGP, SCM_STRING_CHARS, | |
410 | and SCM_STRING_LENGTH with SCM_I_STRINGP, SCM_I_STRING_CHARS, and | |
411 | SCM_I_STRING_LENGTH, respectively. Pass string object directly, | |
412 | not as a pointer. Use scm_remember_upto_here_1 to protect it. | |
413 | ||
414 | * read.c (scm_input_error): Use a SCM value for 'fn', not a C | |
415 | string. This avoids a conversion round-trip. | |
416 | ||
417 | * gh_data.c: Replaced SCM_STRINGP, SCM_STRING_CHARS, and | |
418 | SCM_STRING_LENGTH with SCM_I_STRINGP, SCM_I_STRING_CHARS, and | |
419 | SCM_I_STRING_LENGTH, respectively. | |
420 | (gh_scm2newstr): Implement in terms of scm_to_locale_string. | |
421 | ||
422 | * environments.c: Instead calling scm_puts on the SCM_STRING_CHARS | |
423 | of a string, call scm_display on the string itself. | |
424 | ||
425 | * dynwind.c, dynwind.h (scm_frame_free): New. | |
426 | ||
427 | * stime.c, socket.c, simpos.c, procs.c, posix.c, ports.c, | |
428 | net_db.c, fports.c, filesys.c, eval.c, deprecation.c, dynl.c: | |
429 | Replaced uses of SCM_STRING_CHARS with proper uses of | |
430 | scm_to_locale_string. Replaced SCM_STRINGP with scm_is_string. | |
431 | Replaced scm_mem2string with scm_from_locale_string. | |
432 | ||
433 | * simpos.c, posix.c (allocate_string_pointers, environ_list_to_c): | |
434 | Removed, replaced all uses with scm_i_allocate_string_pointers. | |
435 | ||
436 | * load.h, load.c (scm_internal_parse_path): Removed. | |
437 | (scm_parse_path): Use scm_string_split to do the work. | |
438 | (scm_init_load_path): Use scm_parse_path instead of | |
439 | scm_internal_parse_path. | |
440 | (scm_search_path): Rewritten string handling part of the code in | |
441 | terms of scm_to_locale_stringbuf and so that it is thread safe. | |
442 | ||
443 | * error.c (scm_error_scm): Throw directly instead of calling | |
444 | scm_error, this avoids the back and forth conversion of SUBR and | |
445 | MESSAGE and also plugs a memory leak. | |
446 | (scm_error): Call scm_error_scm. | |
447 | ||
448 | * backtrace.c: Replaced SCM_STRINGP with scm_is_string. | |
449 | (display_header): Print FNAME when it is true, not | |
450 | merely when it is a string. | |
451 | ||
452 | * strings.h (SCM_SET_STRING_LENGTH, SCM_SET_STRING_CHARS): Removed | |
453 | unceremoniously. They were unused by Guile itself, and external | |
454 | use should stop immediately. | |
455 | ||
456 | ||
409eb4e5 MV |
457 | 2004-08-10 Marius Vollmer <mvo@zagadka.de> |
458 | ||
459 | * numbers.h, number.c, deprecated.h, deprecated.c (scm_round, | |
460 | scm_truncate): Renamed to scm_c_round and scm_c_truncate; | |
461 | deprecated versions installed in deprecated.h and deprecated.c. | |
462 | Changed all uses. | |
463 | ||
a00eaf19 RB |
464 | 2004-08-06 Rob Browning <rlb@defaultvalue.org> |
465 | ||
466 | * net_db.c (scm_resolv_error): don't cause an exception while | |
467 | trying to throw an exception -- call scm_misc_error with correct | |
468 | arguments. The previous arguments needed a format escape that | |
469 | wasn't in any of the format strings. | |
470 | ||
bcb88c93 KR |
471 | 2004-08-06 Kevin Ryde <user42@zip.com.au> |
472 | ||
8f094b97 KR |
473 | * ramap.c (scm_array_fill_x): For byvect char fill, force signed char |
474 | so as not to depend on signedness of plain char. For byvect range | |
475 | check, throw out-of-range rather than wrong-type-arg. | |
476 | ||
bcb88c93 KR |
477 | * unif.c (scm_uniform_vector_ref, scm_array_set_x): For byvect, force |
478 | signed byte range checks by using scm_to_schar and scm_from_schar, | |
479 | don't want to depend on signedness of C char. | |
480 | ||
29e61124 KR |
481 | 2004-08-05 Kevin Ryde <user42@zip.com.au> |
482 | ||
483 | * arbiters.c (scm_try_arbiter): Use scm_i_misc_mutex instead of | |
484 | SCM_DEFER_INTS. | |
485 | (scm_release_arbiter): Use scm_i_misc_mutex so return value can be | |
486 | guaranteed if multiple threads compete to unlock. | |
487 | Update docstrings per doc/ref/api-scheduling.texi. | |
488 | ||
99de794f KR |
489 | * filesys.c (scm_copy_file): Use fstat on the input fd rather than |
490 | stat on the filename, to be certain a file rename can't mean we get | |
491 | info on one filesystem object but open another. This fstat usage is | |
492 | similar to Emacs copy-file. | |
493 | ||
29e61124 KR |
494 | * posix.c (scm_setgroups): Enhance docstring, per doc/ref/posix.texi. |
495 | ||
496 | * simpos.c (scm_system_star): Change scm_from_long to scm_from_int on | |
497 | SIGINT and SIGQUIT, since those values are ints. | |
498 | ||
759aa8f9 MV |
499 | 2004-08-03 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
500 | ||
7241f213 MV |
501 | * num2integral.i.c, num2float.i.c: Removed. |
502 | * Makefile.am (noinst_HEADERS): Updated. | |
503 | ||
f9656a9f MV |
504 | * numbers.h. numbers.c (scm_make_ratio): Renamed to |
505 | scm_i_make_ratio and made static, replaced uses with scm_divide. | |
96d8c217 MV |
506 | (scm_complex_p): New, export as "complex?" to Scheme. |
507 | (scm_number_p): Export as "number?" to Scheme. | |
508 | (scm_is_complex, scm_is_number): New. | |
509 | (scm_c_make_rectangular, scm_c_make_polar): New. | |
510 | (scm_make_rectangular, scm_make_polar): Use above. | |
511 | (scm_c_real_part, scm_c_imag_part, scm_c_magnitude, scm_c_angle): | |
512 | New. | |
513 | (scm_make_complex): Discouraged by moving to discouraged.h and | |
514 | discouraged.c. Replaced all uses with scm_c_make_rectangular. | |
515 | ||
759aa8f9 MV |
516 | * discouraged.h, discouraged.c, numbers.c, numbers.h |
517 | (scm_is_rational): New. | |
518 | (scm_i_short2big, scm_i_int2big, scm_i_uint2big, scm_i_size2big, | |
519 | scm_i_ptrdiff2big, scm_i_long_long2big, scm_i_ulong_long2big): | |
520 | Removed prototypes. | |
521 | (scm_make_real, scm_num2dbl, scm_float2num, scm_double2num): | |
522 | Discouraged by moving to discouraged.h and discouraged.c. | |
523 | Replaced all uses with scm_from_double. | |
524 | (scm_num2float, scm_num2double): Discouraged by moving prototype | |
525 | to discouraged.h and rewriting in terms of scm_to_double. | |
526 | Replaced all uses with scm_to_double. | |
527 | (scm_to_double): Do not implement in terms of scm_num2dbl, use | |
528 | explicit code. | |
529 | (scm_from_double): Do not implement in terms of scm_make_real, use | |
530 | explicit code. | |
531 | ||
531bf3e6 MV |
532 | 2004-08-02 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
533 | ||
759aa8f9 MV |
534 | * init.c (scm_init_guile_1): Call scm_i_init_discouraged. |
535 | ||
531bf3e6 MV |
536 | * gen-scmconfig.h.in (SCM_I_GSC_ENABLE_DISCOURAGED): New. |
537 | * gen-scmconfig.c (SCM_ENABLE_DISCOURAGED): Emit based on above. | |
538 | ||
539 | * eval.c (SCM_EVALIM, SCM_EVALIM2, SCM_XEVAL, SCM_XEVALCAR): | |
540 | Renamed to SCM_I_* in order to avoid collisions with the versions | |
541 | defined in deprecated.h. | |
542 | ||
543 | * discouraged.h, discouraged.c: New files. | |
544 | ||
545 | * deprecated.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP, SCM_EQ_P, | |
546 | SCM_NEGATE_BOOL, SCM_BOOL, SCM_BOOT_NOT): Promoted from being | |
547 | deprecated to being discouraged by moving to discouraged.h. | |
548 | ||
549 | * numbers.h, numbers.c, discouraged.h, discouraged.c | |
550 | (scm_short2num, scm_ushort2num, scm_int2num, scm_uint2num, | |
551 | scm_long2num, scm_ulong2num, scm_size2num, scm_ptrdiff2num, | |
552 | scm_num2short, scm_num2ushort, scm_num2int, scm_num2uint, | |
553 | scm_num2long, scm_num2ulong, scm_num2size, scm_num2ptrdiff, | |
554 | scm_long_long2num, scm_ulong_long2num, scm_num2long_long, | |
555 | scm_num2ulong_long): Discouraged by moving to discouraged.h and | |
556 | discouraged.c and reimplementing in terms of scm_from_* and | |
557 | scm_to_*. Changed all uses to the new scm_from_* and scm_to_* | |
558 | functions. | |
559 | ||
560 | * numbers.h, numbers.c: Removed GUILE_DEBUG code. | |
561 | (scm_i_short2big, scm_i_ushort2big, scm_i_int2big, scm_i_uint2big, | |
562 | scm_i_size2big, scm_i_ptrdiff2big): Removed. | |
563 | (scm_i_long2big, scm_i_ulong2big): New, explicit definitions. | |
564 | * conv-integer.i.c, conv-uinteger.i.c: Use them instead of | |
565 | explicit code. | |
566 | ||
5ec82e96 KR |
567 | 2004-08-02 Kevin Ryde <user42@zip.com.au> |
568 | ||
569 | * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): Add comments about past | |
570 | and current usage and migration. | |
571 | ||
58f28989 KR |
572 | 2004-07-31 Kevin Ryde <user42@zip.com.au> |
573 | ||
574 | * error.c (scm_strerror): Use scm_i_misc_mutex around strerror since | |
575 | it's not thread safe. | |
576 | (scm_syserror): Use scm_strerror rather than SCM_I_STRERROR, to take | |
577 | advantage of this. | |
578 | * fports.c (scm_open_file): Use scm_strerror likewise. | |
579 | * filesys.c (scm_stat, scm_lstat): Ditto. | |
580 | ||
581 | * filesys.c (scm_copy_file): Avoid fd leak when destination file | |
582 | cannot be opened. | |
583 | ||
584 | * symbols.c (scm_gensym): Use scm_i_misc_mutex around gensym_counter | |
585 | update, for thread safety. | |
586 | (gensym_counter): Move into scm_gensym which is its only user. | |
587 | (scm_init_symbols): No need to explicitly initialize gensym_counter. | |
588 | ||
03696aab MV |
589 | 2004-07-29 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
590 | ||
51fdb325 MV |
591 | * numbers.h (scm_to_schar, scm_to_uchar, scm_to_char, |
592 | scm_to_short, scm_to_ushort, scm_to_int, scm_to_uint, scm_to_long, | |
593 | scm_to_ulong, scm_to_long_long, scm_to_ulong_long, scm_to_intmax, | |
594 | scm_to_uintmax, scm_to_size_t, scm_to_ssize_t scm_from_schar, | |
595 | scm_from_uchar, scm_from_char, scm_from_short, scm_from_ushort, | |
596 | scm_from_int, scm_from_uint, scm_from_long, scm_from_ulong, | |
597 | scm_from_long_long, scm_from_ulong_long, scm_from_intmax, | |
598 | scm_from_uintmax, scm_from_size_t, scm_from_ssize_t): No longer | |
599 | defined in terms of scm_to_signed_integer, etc, but in terms of | |
600 | scm_to_int8, etc. | |
601 | ||
602 | * gen-scmconfig.c (SCM_SIZEOF_INTMAX, SCM_SIZEOF_SIZE_T): New. | |
603 | ||
03696aab MV |
604 | * gen-scmconfig.h.in: Removed SCM_I_GSC_*_LIMITS macros, they are |
605 | no longer used. | |
606 | ||
607 | * __scm.h (SCM_I_UTYPE_MAX, SCM_I_TYPE_MAX, SCM_I_TYPE_MIN, | |
608 | SCM_I_SIZE_MAX, SCM_I_SSIZE_MIN, SCM_I_SSIZE_MAX): New. | |
609 | ||
610 | * __scm.h, gen-scmconfig.c (SCM_I_LLONG_MAX, SCM_I_LLONG_MIN, | |
611 | SCM_I_ULLONG_MAX, SCM_T_INT8_MIN, SCM_T_INT8_MAX, SCM_T_UINT8_MAX, | |
612 | SCM_T_INT16_MIN, SCM_T_INT16_MAX, SCM_T_UINT16_MAX, | |
613 | SCM_T_INT32_MIN, SCM_T_INT32_MAX, SCM_T_UINT32_MAX, | |
614 | SCM_T_INT64_MIN, SCM_T_INT64_MAX, SCM_T_UINT64_MAX, | |
615 | SCM_T_INTMAX_MIN, SCM_T_INTMAX_MAX, SCM_T_UINTMAX_MAX): Moved | |
616 | definition into __scm.h, using new SCM_I_TYPE_MIN, etc. | |
617 | ||
618 | * conv-integer.i.c, conv-uinteger.i.c: New files, used to generate | |
619 | the functions below. | |
620 | ||
621 | * Makefile.am (noinst_HEADERS): Added conv-integer.i.c and | |
622 | conv-uinteger.i.c. | |
623 | ||
624 | * numbers.c, numbers.h (scm_to_int8, scm_to_uint8, scm_to_int16, | |
625 | scm_to_uint16, scm_to_int32, scm_to_uint32, scm_to_int64, | |
626 | scm_to_uint64, scm_from_int8, scm_from_uint8, scm_from_int16, | |
627 | scm_from_uint16, scm_from_int32, scm_from_uint32, scm_from_int64, | |
628 | scm_from_uint64): Turned from macros into proper functions. | |
629 | (scm_to_signed_integer, scm_to_unsigned_integer, | |
630 | scm_from_signed_integer, scm_from_unsigned_integer): Generate via | |
631 | conv-integer.i.c and conv-uinteger.i.c, as well. | |
632 | ||
633 | * number.h (scm_to_ssize_t, scm_to_size_t): Use the new | |
634 | SCM_I_SSIZE_MIN, SCM_I_SSIZE_MAX, and SCM_I_SIZE_MAX macros for | |
635 | the limits. Those are always defined. | |
636 | ||
1f15779e KR |
637 | 2004-07-29 Kevin Ryde <user42@zip.com.au> |
638 | ||
639 | * posix.c (scm_ttyname): Use scm_i_misc_mutex for thread safety. | |
640 | ||
48360eb3 KR |
641 | 2004-07-28 Kevin Ryde <user42@zip.com.au> |
642 | ||
643 | * posix.c (scm_ctermid): Use an L_ctermid buf on the stack, for thread | |
644 | safety. | |
645 | ||
c3f3c841 KR |
646 | * unif.c (scm_array_set_x): For svect, use scm_num2short for |
647 | consistency with other vector types and to get arg and func name into | |
648 | error message. | |
649 | ||
c82f8ed6 MV |
650 | 2004-07-27 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
651 | ||
652 | * deprecated.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP, SCM_BOOL): | |
653 | Reimplement using scm_is_false, scm_is_true, scm_is_bool, and | |
654 | scm_from_bool, respectively. | |
655 | (SCM_NINUMP): Added. | |
656 | ||
657 | * tags.h, deprecated.h (SCM_EQ_P): Deprecated by moving it into | |
658 | deprecated.h. Replaced all uses with scm_is_eq. | |
659 | ||
317b4c4a KR |
660 | 2004-07-24 Kevin Ryde <user42@zip.com.au> |
661 | ||
662 | * threads.c, threads.h (scm_i_misc_mutex): New SCM_GLOBAL_MUTEX. | |
663 | * posix.c (scm_crypt): Use it to protect static data in crypt(). | |
664 | ||
e11e83f3 MV |
665 | 2004-07-23 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
666 | ||
667 | * deprecated.h, deprecated.c, numbers.h (SCM_INUMP, SCM_NINUMP, | |
c82f8ed6 | 668 | SCM_INUM): Deprecated by renaming them to SCM_I_INUMP, |
e11e83f3 MV |
669 | SCM_I_NINUMP and SCM_I_INUM, respectively and adding deprecated |
670 | versions to deprecated.h and deprecated.c. Changed all uses to | |
671 | either use the SCM_I_ variants or scm_is_*, scm_to_*, or | |
672 | scm_from_*, as appropriate. | |
673 | ||
674 | * dynwind.c (scm_i_dowinds): Removed unused code that would call | |
675 | the unexisting scm_cross_dynwind_binding_scope for inums on the | |
676 | windlist. | |
677 | ||
a55c2b68 MV |
678 | 2004-07-10 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
679 | ||
680 | * socket.c (ipv6_net_to_num, scm_from_ipv6): Renamed | |
e11e83f3 | 681 | ipv6_net_to_num to scm_from_ipv6, for converting from an IPv6 |
a55c2b68 MV |
682 | byte-wise address to a SCM integer. Changed all uses. |
683 | (ipv6_num_to_net, scm_to_ipv6): Renamed ipv6_num_to_net to | |
684 | scm_to_ipv6 and added type and range checking, for converting from | |
685 | an IPv& byte-wise address to a SCM integer. Changed all uses. | |
686 | (bignum_in_ipv6_range_p, VALIDATE_INET6): Removed, their function | |
687 | is now done by scm_to_ipv6. | |
688 | ||
689 | * numbers.c (scm_to_signed_integer, scm_to_unsigned_integer): dot | |
690 | not accept inexact integers. | |
691 | ||
692 | * validate.h, deprecated.h (SCM_VALIDATE_INUM, | |
693 | SCM_VALIDATE_INUM_COPY, SCM_VALIDATE_BIGINT, | |
694 | SCM_VALIDATE_INUM_MIN, SCM_VALIDATE_INUM_MIN_COPY, | |
695 | SCM_VALIDATE_INUM_MIN_DEF_COPY,SCM_VALIDATE_INUM_DEF, | |
696 | SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_INUM_RANGE, | |
697 | SCM_VALIDATE_INUM_RANGE_COPY): Deprecated because they make the | |
698 | fixnum/bignum distinction visible. Changed all uses to | |
699 | scm_to_size_t or similar. | |
700 | ||
701 | 2004-07-09 Marius Vollmer <marius.vollmer@uni-dortmund.de> | |
702 | ||
703 | * cpp_cnvt.awk: Use scm_from_int instead of SCM_MAKINUM. | |
704 | ||
48a06bd5 KR |
705 | 2004-07-10 Kevin Ryde <user42@zip.com.au> |
706 | ||
707 | * hash.c (scm_hashq, scm_hashv, scm_hash): Restrict to size>=1 rather | |
708 | than size>=0, since 0<=hash<size cannot be satisfied for size==0, and | |
709 | such a size causes divide-by-zeros in scm_hasher. | |
710 | ||
052fbfd9 KR |
711 | * regex-posix.c (scm_make_regexp): Free rx on error, to avoid memory |
712 | leak. | |
713 | ||
43240c9c MV |
714 | 2004-07-08 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
715 | ||
716 | * numbers.c (scm_is_signed_integer, scm_is_unsigned_integer): | |
717 | Rewritten using the same logic as scm_to_signed_integer and | |
718 | scm_to_unsigned_integer, respectively, which is better(tm). Also, | |
719 | use CHAR_BIT instead of hardcoding 8. | |
720 | (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Removed and used | |
721 | SCM_I_LLONG_MIN etc. instead. | |
722 | ||
723 | * numbers.h (SCM_MAKINUM, SCM_I_MAKINUM): Renamed SCM_MAKINUM to | |
724 | SCM_I_MAKINUM and changed all uses. | |
725 | * deprecated.h, deprecated.c (SCM_MAKINUM): Newly deprecated. | |
726 | ||
a3de8e7b MV |
727 | * gen-scmconfig.c (SCM_I_LLONG_MIN, SCM_I_LLONG_MAX, |
728 | SCM_I_ULLONG_MAX): Instead of hard-coding the numbers, compute | |
43240c9c MV |
729 | them by assuming twos-complement. |
730 | ||
c9eb03bb MV |
731 | 2004-07-07 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
732 | ||
733 | * gen-scmconfig.h.in: Added all the new SCM_I_GSC_*_LIMITS that | |
734 | configure now produces. | |
735 | * gen-scmconfig.c: Use them to output SCM_T_INT8_MIN, etc | |
736 | definitions, giving the limits of the integer types defined by | |
737 | Guile. Also, output a hard coded SCM_I_LLONG_MIN, etc since | |
738 | LLONG_MIN or LONG_LONG_MIN is hard to get at. | |
739 | ||
740 | * numbers.h (scm_to_short, scm_to_ushort): It's SHRT_MIN, etc, not | |
741 | SHORT_MIN. | |
742 | (scm_to_size_t): Use SIZE_MAX instead of cooking our own. | |
743 | (scm_to_long_long, scm_to_ulong_long, scm_to_int8, scm_to_uint8, | |
744 | scm_to_int16, scm_to_uint16, scm_to_int32, scm_to_uint32, | |
745 | scm_to_int64, scm_to_uint64, scm_to_intmax, scm_to_uintmax, | |
746 | scm_from_long_long, scm_from_ulong_long, scm_from_int8, | |
747 | scm_from_uint8, scm_from_int16, scm_from_uint16, scm_from_int32, | |
748 | scm_from_uint32, scm_from_int64, scm_from_uint64, scm_from_intmax, | |
749 | scm_from_uintmax): New. | |
750 | ||
7888309b MV |
751 | 2004-07-06 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
752 | ||
753 | * tags.h (scm_is_eq): New. | |
754 | ||
755 | * deprecated.h, boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOL, | |
756 | SCM_NEGATE_BOOL, SCM_BOOLP): Deprecated by moving into | |
757 | "deprecated.h". Replaced all uses with scm_is_false, scm_is_true, | |
758 | scm_from_bool, and scm_is_bool, respectively. | |
759 | ||
760 | * boolean.h (scm_is_bool): Fix bug in prototype. | |
761 | (scm_from_bool): The argument is "x" not "f", stupid. | |
762 | ||
763 | * boolean.c (scm_is_bool): Fix typo. | |
764 | ||
765 | * numbers.h, numbers.c (scm_is_integer, scm_is_signed_integer, | |
766 | scm_is_unsigned_integer, scm_to_signed_integer, | |
767 | scm_to_unsigned_integer, scm_to_schar, scm_to_uchar, scm_to_char, | |
768 | scm_to_short, scm_to_ushort, scm_to_long, scm_to_ulong, | |
769 | scm_to_size_t, scm_to_ssize_t, scm_from_schar, scm_from_uchar, | |
770 | scm_from_char, scm_from_short, scm_from_ushort, scm_from_int, | |
771 | scm_from_uint, scm_from_long, scm_from_ulong, scm_from_size_t, | |
772 | scm_from_ssize_t, scm_is_real, scm_to_double, scm_from_double): | |
773 | New. | |
774 | ||
800570a6 MV |
775 | 2004-07-05 Marius Vollmer <marius.vollmer@uni-dortmund.de> |
776 | ||
777 | * boolean.h, boolean.c (scm_is_true, scm_is_false, scm_from_bool, | |
778 | scm_to_bool): New. | |
779 | ||
9fcf3cbb DH |
780 | 2004-06-27 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> |
781 | ||
782 | * backtrace.c (display_expression, display_frame): Call | |
783 | scm_i_unmemoize_expr for unmemoizing a memoized object holding a | |
784 | single memoized expression. | |
785 | ||
786 | * debug.c (memoized_print): Don't try to unmemoize the memoized | |
787 | object, since we can't know whether it holds a single expression | |
788 | or a body. | |
789 | ||
790 | (scm_mem_to_proc): Removed check for lambda expression, since it | |
791 | was moot anyway. Whoever uses these functions for debugging | |
792 | purposes should know what they do: Creating invalid memoized code | |
793 | will cause crashes, independent of whether this check is present | |
794 | or not. | |
795 | ||
796 | (scm_proc_to_mem): Take the closure's code as it is and don't | |
797 | append a SCM_IM_LAMBDA isym. To allow easier debugging, the | |
798 | memoized code should not be modified. | |
799 | ||
800 | * debug.[ch] (scm_unmemoize, scm_i_unmemoize_expr): Removed | |
801 | scm_unmemoize from public use, but made scm_i_unmemoize_expr | |
802 | available as a guile internal function instead. However, | |
803 | scm_i_unmemoize_expr will only work on memoized objects that hold | |
804 | a single memoized expression. It won't work with bodies. | |
805 | ||
806 | * debug.c (scm_procedure_source), macros.c (macro_print), print.c | |
807 | (scm_iprin1): Call scm_i_unmemocopy_body for unmemoizing a body, | |
808 | i. e. a list of expressions. | |
809 | ||
810 | * eval.c (unmemoize_exprs): Drop internal body markers from the | |
811 | output during unmemoization. | |
812 | ||
813 | * eval.[ch] (scm_unmemocopy, scm_i_unmemocopy_expr, | |
814 | scm_i_unmemocopy_body): Removed scm_unmemocopy from public use, | |
815 | but made scm_i_unmemocopy_expr and scm_i_unmemocopy_body available | |
816 | as guile internal functions instead. scm_i_unmemoize_expr will | |
817 | only work on a single memoized expression, while | |
818 | scm_i_unmemocopy_body will only work on bodies. | |
819 | ||
90df793f DH |
820 | 2004-06-21 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> |
821 | ||
822 | * eval.c (unmemoize_exprs): Handle semi-memoized code. | |
823 | ||
824 | (scm_cons_source, scm_primitive_eval): Prefer higher level | |
825 | predicate SCM_FALSEP over SCM_IMP. | |
826 | ||
8048c00b RB |
827 | 2004-06-15 Rob Browning <rlb@defaultvalue.org> |
828 | ||
829 | * script.c (scm_shell_usage): minor phrasing change. | |
830 | ||
831 | * gc_os_dep.c: update ifdefery for macosx. | |
832 | (scm_get_stack_base): separate result initialization from | |
833 | declaration to slience warnings with macosx and hp-ux using gcc | |
834 |