(lset-difference, lset-difference,
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
036482e9
MV
12005-08-12 Marius Vollmer <mvo@zagadka.de>
2
3 * numbers.c: Use scm_from_bool instead of SCM_BOOL. Thanks to
4 Peter Gavin!
5
bc721aa2
KR
62005-08-06 Kevin Ryde <user42@zip.com.au>
7
8 * srfi-13.c (scm_string_any, scm_string_every, scm_string_tabulate,
9 scm_string_trim, scm_string_trim_right, scm_string_trim_both,
10 scm_string_index, scm_string_index_right, scm_string_skip,
11 scm_string_skip_right, scm_string_count, scm_string_map,
12 scm_string_map_x, scm_string_for_each, scm_string_for_each_index,
13 scm_string_filter, scm_string_delete): Use scm_t_trampoline_1 for
14 procedures called in loops.
15
126c81db
KR
162005-08-02 Kevin Ryde <user42@zip.com.au>
17
18 * strports.c (st_flush): Increase buffer by 1.5x when growing, to
19 avoid lots of copying where previoulsy growing by only 80 bytes at a
20 time.
21
7f278dc6
MV
222005-08-01 Marius Vollmer <mvo@zagadka.de>
23
24 * modules.h, modules.c (scm_eval_closure_module): Removed, we
25 already have scm_lookup_closure_module, which does the same thing.
26
cb5c4b07
MV
272005-08-01 Marius Vollmer <mvo@zagadka.de>
28
29 New marking algorithm for weak hashtables that fixes the problem
30 that references from the non-weak value to the associated weak
31 key (for example) would prevent the entry from ever being dropped.
32
33 Guardians have been changed back to their original semantics and
34 are no longer greedy and no longer drop cycles.
35
36 * gc-mark.c (scm_mark_all): Do not rely on hooks to run the weak
37 hashtable and guardian machinery but call the relevant functions
38 directly.
39
40 * guardians.h, guardians.c, deprecated.h,
41 deprecated.c (scm_destroy_guardian_x, scm_guardian_greedy_p,
42 scm_guardian_destroyed_p, scm_guard, scm_get_one_zombie):
43 Deprecated and moved into deprecated.[ch].
44
45 * guardians.h, guardians.c: Mostly rewritten.
46 (scm_i_init_guardians_for_gc,
47 scm_i_identify_inaccessible_guardeds,
48 scm_i_mark_inaccessible_guardeds): New.
930888e8 49 (scm_make_guardian): Removed greedy_p argument.
cb5c4b07
MV
50
51 * weaks.h, weaks.c (SCM_I_WVECT_TYPE, SCM_I_SET_WVECT_TYPE): New.
52 (SCM_I_WVECT_N_ITEMS, SCM_I_SET_WVECT_N_ITEMS): New.
53 (SCM_WVECTF_NOSCAN, SCM_WVECT_NOSCAN_P): Removed.
54 (scm_weaks_prehistory): Removed.
55 (scm_i_init_weak_vectors_for_gc, scm_i_mark_weak_vector,
56 scm_i_mark_weak_vectors_non_weaks,
57 scm_i_remove_weaks_from_weak_vectors, scm_i_remove_weaks): New.
58 (scm_weak_vector_gc_init, scm_mark_weak_vector_spines,
59 scm_scan_weak_vectors): Removed.
60
61 * hashtab.h (scm_i_scan_weak_hashtables): New.
62 * hashtab.c (make_hash_table, scm_i_rehash): Do not use
63 SCM_WVECTF_NOSCAN.
64 (hashtable_print): Use SCM_HASHTABLE_N_ITEMS instead of
65 t->n_items.
66 (scan_weak_hashtables, scm_i_scan_weak_hashtables): Renamed former
67 to latter. Do not scan the alists themselves, this is done by the
68 weak vector code now. Just update the element count.
69
70 * vectors.h (SCM_I_WVECT_TYPE, SCM_I_WVECT_EXTRA): Renamed former
71 to latter. The type is now only part of the cell word.
72 (SCM_I_SET_WVECT_TYPE, SCM_I_SET_WVECT_EXTRA): Likewise.
73
74 * init.c (scm_i_init_guile): Do not call scm_weaks_prehistory.
75
3e2073bd
MD
762005-07-18 Mikael Djurfeldt <mdj@d14n36.pdc.kth.se>
77
78 Some changes towards making it possible to run Guile on the EM64T
79 platform.
80
81 * gc.c (scm_gc_stats): Bugfix: Measure size of the type we are
82 mallocating for (unsigned long *bounds).
83
84 * hashtab.c (scm_i_rehash): Cast SCM_HASHTABLE_FLAGS (table) to
85 scm_t_bits before storing them in the type word.
86
87 * gc.c (tag_table_to_type_alist): Modified type of c_tag from
88 scm_t_bits to int.
89
e8ac8e75
KR
902005-07-12 Kevin Ryde <user42@zip.com.au>
91
92 * eval.c (scm_dbg_make_iloc): Should be SCM_IFRAMEMAX and
93 SCM_IDISTMAX, and cast uints through scm_t_bits to make gcc happy.
94 * pairs.c (scm_error_pair_access): Use scm_from_locale_string rather
95 than scm_makfrom0str.
96 Reported by Ken Raeburn.
97
98 * gc-card.c (scm_dbg_gc_get_bvec): Change return from long* to
99 scm_t_c_bvec_long*, gcc 4 doesn't like different pointer targets when
100 returning SCM_GC_CARD_BVEC.
101
102 * pairs.c (scm_error_pair_access): Plain ascii ' in error message
103 rather than latin-1 acute accent, the latter may not print on all
104 terminals.
105
106 * srfi-13.c (scm_string_filter, scm_string_delete): Strip leading and
107 trailing deletions, so as to return a substring if those are the only
108 changes.
109
adc0677d
KR
1102005-07-10 Kevin Ryde <user42@zip.com.au>
111
112 * socket.c (scm_inet_pton, scm_inet_ntop): Pointer cast to scm_t_uint8
113 for scm ipv6 funcs, gcc 4 is picky about char* vs uchar*.
114 (scm_getsockopt, scm_accept, scm_getsockname, scm_getpeername,
115 scm_recvfrom) Use socklen_t, gcc 4 is picky about int* vs socklen_t*.
116
8fecbb19
HWN
1172005-07-01 Han-Wen Nienhuys <hanwen@xs4all.nl>
118
119 * gc-card.c (scm_i_card_statistics): init tag.
120
121 * gc.c (tag_table_to_type_alist): check type of tag. Should be integer.
122
fc9c5d06
HWN
1232005-06-18 Han-Wen Nienhuys <hanwen@xs4all.nl>
124
8fecbb19
HWN
125 * fports.c (s_scm_open_file): add the b flag for binary to the doc
126 string.
fc9c5d06 127
08fce816
KR
1282005-06-25 Kevin Ryde <user42@zip.com.au>
129
130 * srfi-13.c (scm_string_filter, scm_string_delete): Partial revert
131 last change, use plain copy-on-write substrings, the individual
132 descriptions in the srfi don't mention shared storage (only the
133 introduction does).
134
135 * strings.c (scm_take_locale_stringn): Use realloc to make room for
136 null-terminator, rather than mallocing a whole new block.
137 (scm_take_locale_string): Use scm_take_locale_stringn len==-1.
138
fc4abd0e
MV
1392005-06-12 Marius Vollmer <mvo@zagadka.de>
140
e3da8a30
MV
141 * ramap.c (scm_array_index_map_x): First test for real arrays,
142 then check for generalized vectors. This ensures that the
143 generalized vector case need only work with zero-origin ranges.
12097c77
MV
144 (scm_ra_eqp, scm_ra_compare): Use the new array handle functions
145 to access the target array, making these functions work with all
146 kinds of arrays, not just bit arrays.
e3da8a30 147
fc4abd0e
MV
148 * gh.h, gh_data.c, gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c,
149 gh_list.c, gh_predicates.c: Deprecated everything.
150
151 * environments.c (environment_default_folder,
152 environment_default_observer): Do not use gh_call3, gh_call1.
153
e4da0740
HWN
1542005-06-10 Han-Wen Nienhuys <hanwen@xs4all.nl>
155
156 * modules.c (s_scm_eval_closure_module): new function. Return the
157 module inside an eval-closure.
158
159 * gc.c (scm_init_storage): make scm_stand_in_procs a weak_key hash
160 table. This means that procedure properties are GC'd if the
161 procedure dies.
162
27667158
KR
1632005-06-11 Kevin Ryde <user42@zip.com.au>
164
165 * srfi-13.c (scm_string_filter, scm_string_delete): For char and
166 charset cases, count chars kept and build a string in a second pass,
167 rather than using a cons cell for every char kept. Use a shared
168 substring when nothing removed (such sharing is allowed by the srfi).
169
8a00ba71
HWN
1702005-06-09 Han-Wen Nienhuys <hanwen@xs4all.nl>
171
172 * gc.c (tag_table_to_type_alist): convert tag number to "tag %d"
173 string, so live object stats can be sorted with string<?.
174
a677679f
MV
1752005-06-06 Marius Vollmer <mvo@zagadka.de>
176
2ff668b0
MV
177 * print.c (iprin1): When writing a string, collect all characters
178 that can be printed directly into one call to scm_lfwrite.
179 Previously, every character was output with its own call to
180 write(2) on unbuffered ports.
181
589f22f6
MV
182 * eval.c (scm_eval_options_interface): Use
183 scm_frame_critical_section instead of SCM_CRITICAL_SECTION_START
184 and SCM_CRITICAL_SECTION_END.
185
a677679f
MV
186 * unif.c (scm_array_in_bounds_p): First test for real arrays, then
187 check for generalized vectors. This ensures that the generalized
188 vector case need only work with zero-origin ranges.
189
f8cda9ee
KR
1902005-06-06 Kevin Ryde <user42@zip.com.au>
191
192 * srfi-13.c (scm_string_split): Compare char/char in scan. Mixing an
193 unsigned int SCM_CHAR and a char string meant an 8-bit char was never
194 matched.
195
cdac1be4
MV
1962005-06-05 Marius Vollmer <mvo@zagadka.de>
197
6642f7ac
MV
198 * eval.c: Added comment on how to make case 1.1 of
199 r5rs_pitfall.test succeed.
200
cdac1be4
MV
201 From Jan Nieuwenhuizen <janneke@gnu.org>. Thanks!
202
203 * hashtab.h: Bugfix: use SCM_API (WAS: extern).
204
205 * socket.c: Remove obsolete comment about socklen_t.
206 (s_scm_setsockopt)[!HAVE_IP_MREQ]: Do not use ip_mreq code.
207
208 * numbers.h (isnan)[__MINGW32__]: Remove.
209
210 * Makefile.am (gen_scmconfig_SOURCES): Bugfix: Add
211 DEFAULT_INCLUDES when cross compiling.
212
213 * threads.c (ETIMEDOUT, pipe)[__MINGW32__]: Add defines.
214
a677679f 215 * stime.c (scm_strftime)[!HAVE_TM_ZONE]: Use
cdac1be4
MV
216 SCM_SIMPLE_VECTOR_REF instead of SCM_VELTS. (Changed slightly
217 from Jan's patch.)
218
9e664475
MV
2192005-05-22 Marius Vollmer <mvo@zagadka.de>
220
188d0c5e
MV
221 * unif.c (scm_make_shared_array): Add old base to new base since
222 scm_array_handle_pos does not include the base.
223 (scm_aind): Likewise.
224
9e664475
MV
225 * ports.c (scm_putc, scm_puts): Assert that the port argument is a
226 output port.
227
5a6d139b
NJ
2282005-05-12 Neil Jerram <neil@ossau.uklinux.net>
229
230 Mac OS X compile warning fixes, reported by Richard Todd.
231
232 * unif.c (scm_i_read_array): Declare rank as ssize_t, to guarantee
233 that it is signed.
234
235 * strports.c (st_resize_port): Add unsigned char cast.
236 (scm_mkstrport): Make read/write_buf cast unsigned.
237
238 * srfi-13.c (string_titlecase_x): Add unsigned char cast.
239
240 * rdelim.c (scm_read_line): Initialize slen.
241
242 * load.c (scm_search_path): Remove weird >=1, and add
243 parentheses to clarify conditions.
244
245 * hash.c (scm_hasher): Add const unsigned char cast.
246
247 * gh_data.c (gh_chars2byvect): Add scm_t_int8 cast.
248
b01532af
NJ
2492005-05-11 Neil Jerram <neil@ossau.uklinux.net>
250
251