Commit | Line | Data |
---|---|---|
cb5c4b07 MV |
1 | 2005-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 |
50 | 2005-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 |
64 | 2005-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 |
84 | 2005-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 |
91 | 2005-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 |
97 | 2005-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 |
102 | 2005-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 |
113 | 2005-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 |
128 | 2005-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 |
137 | 2005-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 |
144 | 2005-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 |
149 | 2005-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 |
164 | 2005-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 |
170 | 2005-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 |
193 | 2005-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 |
202 | 2005-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 |
223 | 2005-05-11 Neil Jerram <neil@ossau.uklinux.net> |
224 | ||
225 |