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