(scm_strftime): Free t.tm_zone produced by bdtime2c.
[bpt/guile.git] / libguile / ChangeLog
Content-type: text/html HCoop Git - bpt/guile.git/blame - libguile/ChangeLog


500 - Internal Server Error

Malformed UTF-8 character (fatal) at (eval 8) line 1, <$fd> line 995.
CommitLineData
0356881d
MV
12005-01-02 Marius Vollmer <mvo@zagadka.de>
2
3 * sort.c (quicksort): Added INC parameter for non-contigous
4 vectors.
5 (quicksort1): New, for contigous vectors. Both functions are
6 generated from the same code by including "quicksort.i.c".
7 (scm_restricted_vector_sort_x): Call one of quicksort and
8 quicksort1, depending on increment of vector.
9 (scm_sort): Simply call scm_sort_x on a copy of the list or
10 vector.
11 (scm_merge_vector_x, scm_merge_vector_step): Changed indices to
12 size_t, added inc parameter.
13 (scm_stable_sort_x): Allocate temporary storage as Scheme vector
14 so that it doesn't leak.
15 (scm_stable_sort): Simply call scm_stable_sort_x on a copy of the
16 list or vector.
17
18 * ramap.c (scm_array_map_x): Do not try to convert fill value
19 before filling, any necessary conversion is done while storing.
20
21 * gc-card.c (scm_i_sweep_card): Call scm_i_vector_free instead of
22 doing it inline.
23
24 * hashtab.c, hashtab.h (SCM_HASHTABLE_BUCKETS): Removed.
25 (SCM_HASHTABLE_BUCKET, SCM_HASHTABLE_BUCKET_LOC): New. Replaced
26 all uses of SCM_HASHTABLE_BUCKETS with SCM_HASHTABLE_BUCKET.
27
28 * tags.h, weaks.c, vports.c, hashtab.c, convert.c, sort.c,
29 convert.c, convert.h, convert.i.c, deprecated.c, environments.c,
30 eval.c, filesys.c, fluids.c, gc-mark.c, gh.h, gh_data.c, goops.c,
31 hash.c, init.c, libguile_la-arrays.loT, modules.c, net_db.c,
32 objects.c, ports.c, posix.c, print.c, random.c, read.c,
33 regex-posix.c, scmsigs.c, socket.c, stime.c, symbols.c: Use new
34 vector elements API or simple vector API, as appropriate. Removed
35 SCM_HAVE_ARRAYS ifdefery. Replaced all uses of
36 SCM_HASHTABLE_BUCKETS with SCM_HASHTABLE_BUCKET.
37
38 * srfi-4.h, srfi-4.c,
39 srfi-4.i.c (scm_array_handle_uniform_elements,
40 scm_array_handle_uniform_writable_elements,
41 scm_uniform_vector_elements,
42 scm_uniform_vector_writable_elements):
43 (scm_<foo>vector_elements, scm_<foo>vector_writable_elements): Use
44 scm_t_array_handle, deliver length and increment.
45 (scm_array_handle_<foo>_elements,
46 scm_array_handle_<foo>_writable_elements): New.
47
48 * gen-scmconfig.h.in (SCM_I_GSC_HAVE_ARRAYS): Removed.
49 * gen-scmconfig.c: Hard code SCM_HAVE_ARRAYS to "1".
50
51 * unif.h, unif.c (scm_t_array_handle, scm_array_get_handle,
52 scm_array_handle_rank, scm_array_handle_dims, scm_array_handle_ref
53 scm_array_handle_set, scm_array_handle_elements
54 scm_array_handle_writable_elements, scm_vector_get_handle): New.
55 (scm_make_uve, scm_array_prototype, scm_list_to_uniform_array,
56 scm_dimensions_to_uniform_array): Deprecated for real.
57 (scm_array_p, scm_i_array_p): Use latter for SCM_DEFINE since
58 snarfing wont allow a mismatch between C and Scheme arglists.
59 (scm_make_shared_array, scm_enclose_array): Correctly use
60 scm_c_generalized_vector_length instead of
61 scm_uniform_vector_length.
62
63 * validate.h (SCM_VALIDATE_VECTOR,
64 SCM_VALIDATE_VECTOR_OR_DVECTOR): use scm_is_simple_vector instead
65 of SCM_VECTORP.
66
67 * weaks.h, weaks.c: Use new internal weak vector API from
68 vectors.h.
69
70 * Makefile.am (libguile_la_SOURCES, DOT_X_FILES, DOT_DOC_FILES,
71 EXTRA_libguile_la_SOURCES): Changed ramap.c and unif.c from being
72 'extra' to being regular sources.
73 (noinst_HEADERS): Added quicksort.i.c.
74 * quicksort.i.c: New file.
75
76 * vectors.h, vector.c (SCM_VECTORP, SCM_VECTOR_LENGTH, SCM_VELTS,
77 SCM_WRITABLE_VELTS, SCM_VECTOR_REF, SCM_VECTOR_SET): Deprecated
78 and reimplemented. Replaced all uses with scm_vector_elements,
79 scm_vector_writable_elements, or SCM_SIMPLE_VECTOR_*, as
80 appropriate.
81 (scm_is_simple_vector, SCM_SIMPLE_VECTOR_LENGTH,
82 SCM_SIMPLE_VECTOR_REF, SCM_SIMPLE_VECTOR_SET,
83 SCM_SIMPLE_VECTOR_LOC): New.
84 (SCM_VECTOR_BASE, SCM_SET_VECTOR_BASE, SCM_VECTOR_MAX_LENGTH,
85 SCM_MAKE_VECTOR_TAG, SCM_SET_VECTOR_LENGTH,
86 SCM_VELTS_AS_STACKITEMS, SCM_SETVELTS, SCM_GC_WRITABLE_VELTS):
87 Removed.
88 (scm_vector_copy): New.
89 (scm_vector_elements, scm_vector_writable_elements): Use
90 scm_t_array_handle, deliver length and increment. Moved to
91 unif.h. Changed all uses.
92 (scm_vector_release_elements,
93 scm_vector_release_writable_elements,
94 (scm_frame_vector_release_elements,
95 scm_frame_vector_release_writable_elements): Removed.
96 (SCM_I_IS_VECTOR, SCM_I_VECTOR_ELTS, SCM_I_VECTOR_WELTS,
97 SCM_I_VECTOR_LENGTH, scm_i_vector_free): New internal API.
98 (SCM_I_WVECTP SCM_I_WVECT_LENGTH SCM_I_WVECT_VELTS
99 SCM_I_WVECT_GC_WVELTS SCM_I_WVECT_TYPE SCM_I_WVECT_GC_CHAIN
100 SCM_I_SET_WVECT_GC_CHAIN, scm_i_allocate_weak_vector): New, for
101 weak vectors.
102
0336d18b
MV
1032004-12-29 Marius Vollmer <mvo@zagadka.de>
104
105 No longer use creators to specify the type of an array. Creators
106 expose the fact that arrays are wrapped around vectors, but that
107 might change.
108
109 * srfi-4.h (scm_i_proc_make_u8vector, scm_i_proc_make_s8vector,
110 scm_i_proc_make_u16vector, scm_i_proc_make_s16vector,
111 scm_i_proc_make_u32vector, scm_i_proc_make_s32vector,
112 scm_i_proc_make_u64vector, scm_i_proc_make_s64vector,
113 scm_i_proc_make_f32vector, scm_i_proc_make_f64vector,
114 scm_i_proc_make_c32vector, scm_i_proc_make_c64vector,
115 uvec_proc_vars): Removed.
116 (scm_i_generalized_vector_creator): Removed.
117 (scm_i_generalized_vector_type): New.
118
119 * unif.h, unif.c (scm_typed_array_p, scm_make_array,
120 scm_make_typed_array, scm_array_type, scm_list_to_array,
121 scm_list_to_typed_array, scm_is_array, scm_is_typed_array): New.
122 (scm_array_creator): Removed.
123 (scm_array_p): Deprecated second PROT argument.
124 (scm_dimensions_to_uniform_array, scm_list_to_uniform_array):
125 Deprecated, reimplemented in terms of scm_make_typed_array and
126 scm_list_to_typed_array.
127 (scm_i_proc_make_vector, scm_i_proc_make_string,
128 scm_i_proc_make_bitvector): Removed.
129 (type_creator_table, init_type_creator_table, type_to_creator,
130 make_typed_vector): New.
131 (scm_i_convert_old_prototype): Removed.
132 (prototype_to_type): New.
133 (scm_make_uve): Deprecated, reimplemented using make_typed_vector.
134 (scm_array_dimensions): Use scm_list_1 instead of scm_cons for
135 minor added clarity.
136 (scm_make_shared_array, scm_ra2contig): Use make_typed_vector
137 instead of scm_make_uve.
138 (tag_creator_table, scm_i_tag_to_creator): Removed.
139 (tag_to_type): New.
140 (scm_i_read_array): Use scm_list_to_typed_array instead of
141 scm_list_to_uniform_array.
142
277e8472
MV
1432004-12-27 Marius Vollmer <mvo@zagadka.de>
144
32b26202
MV
145 * unif.h, unif.c (scm_bitvector_elements): Made return value "const".
146 (scm_bitvector_writable_elements): New.
147 (scm_bitvector_release, scm_bitvector_release_elements):
148 Renamed former to latter. Added explicit call to
149 scm_remember_upto_here_1.
150 (scm_frame_bitvector_release,
151 scm_frame_bitvector_release_elements): Renamed former to latter.
152 (scm_bitvector_release_writable_elements,
153 scm_bitvector_release_writable_elements): New.
154 Changed all uses as required by the changes above.
155
156 * srfi-4.h, srfi-4.c, srfi-4.i.c (scm_uniform_vector_elements,
157 scm_u8vector_elements, etc): Made return value "const".
158 (scm_uniform_vector_writable_elements,
159 scm_u8vector_writable_elements, etc): New.
160 (scm_uniform_vector_release, scm_uniform_vector_release_elements):
161 Renamed former to latter. Added explicit call to
162 scm_remember_upto_here_1.
163 (scm_frame_uniform_vector_release,
164 scm_frame_uniform_vector_release_elements): Renamed former to latter.
165 (scm_uniform_vector_release_writable_elements,
166 scm_frame_uniform_vector_release_writable_elements): New. Takes
167 crown of longest identifier yet.
168 Changed all uses as required by the changes above.
169
277e8472
MV
170 * vectors.h, vectors.c (scm_c_vector_set_x): Make return type
171 void.
172 (scm_is_vector, scm_vector_p, scm_vector_length,
173 scm_c_vector_length, scm_vector_ref, scm_c_vector_ref,
174 scm_vector_set_x, scm_c_vector_set_x, scm_vector_to_list,
175 scm_vector_move_left_x, scm_vector_move_right_x,
176 scm_vector_fill_x): handle one-dimensional arrays.
32b26202
MV
177 (scm_vector_elements, scm_vector_release_elements,
178 scm_vector_frame_release_elements, scm_vector_writable_elements,
179 scm_vector_release_writable_elements,
180 scm_vector_frame_release_writable_elements): New.
181 (scm_list_to_vector, scm_vector_to_list, scm_vector_fill,
182 scm_vector_move_left_x, scm_vector_move_right_x): Use them.
277e8472
MV
183
184 * ramap.c (scm_ramapc, scm_raeql): Use
185 scm_c_generalized_vector_length instead of
186 scm_uniform_vector_length.
187 (scm_ramap, rafe): Use scm_c_vector_ref instead of SCM_VELTS. use
188 scm_c_generalized_vector_ref instead of scm_uniform_vector_ref.
189
49c51610
MV
1902004-12-23 Marius Vollmer <marius.vollmer@uni-dortmund.de>
191
192 * continuations.h, continuations.c (scm_t_contregs): New 'offset'
193 member for relocating debug frames.
194 (scm_make_continuation): Set it.
195
196 * stacks.c (read_frame, read_frames, scm_make_stack,
197 scm_last_stack_frame, scm_stack_id): Use the new 'offset' member
198 of continuations instead of calculating the offset ourselves.
199 Relocate 'vect' member of scm_t_debug_frame.
200
3b2ee265
KR
2012004-12-16 Kevin Ryde <user42@zip.com.au>
202
203 * ramap.c (scm_array_map_x): Check for at least one source argument.
204
e120686a
KR
2052004-12-14 Kevin Ryde <user42@zip.com.au>
206
207 * srfi-13.c (string-any, string-every): Use a scheme wrapper around
208 the C code so for the final call to the predicate procedure is a tail
209 call, per SRFI-13 spec.
210
680b5237
KR
2112004-12-10 Kevin Ryde <user42@zip.com.au>
212
213 * eq.c (scm_eq_p, scm_eqv_p, scm_equal_p): Update docstrings from
214 recent revision to the reference manual.
215
216 * numbers.c (scm_modulo): Amend fixme comment about negative divisor
217 with "%", C99 says it's well-defined.
218
219 * socket.c (scm_from_ipv6): Just use mpz_import. Don't bother trying
220 to fit scm_from_ulong_long, since that uses mpz_import anyway. Don't
221 bother trying to fit scm_from_ulong, not really worth the trouble if
222 addresses are more than 4 bytes usually.
223
446d320c
KR
2242004-11-30 Kevin Ryde <user42@zip.com.au>
225
226 * gc_os_dep.c (NetBSD): Test __m68k__ and __arm__ as well as m68k and
227 arm32. Reported by Greg Troxel.
228
f2654760
MV
2292004-11-14 mvo <mvo@zagadka.de>
230
231 * unif.c, unif.h (scm_i_cvref): Made non-static for ramap.c.
232
233 * Makefile.am (INCLUDES): It is "@LTDLINCL@", not "@LTDLINC@".
234
d550e35f
MV
2352004-11-12 Marius Vollmer <marius.vollmer@uni-dortmund.de>
236
237 Enclosed arrays are now their own smob. This has been done to
238 make the code more explicit about them and to prepare for the time
f2654760
MV
239 when generalized vectors include arbitrary one-dimensional
240 arrays. (Uptonow, enclosed arrays have been recognized by their
241 use of an array as their storage 'vector'. When all generalized
242 vectors are allowed as storage, including one-dimensional arrays,
243 this will no longer work.)
d550e35f
MV
244
245 * unif.h, unif.c: (scm_tc16_enclosed_array, SCM_ENCLOSED_ARRAYP):
246 New.
247 (exactly_one_third, singp): Removed.
248 (scm_array_p, scm_array_dimensions, scm_shared_array_root,
249 scm_shared_array_offset, scm_shared_array_increments): Handle
250 enclosed arrays explicitely.
251 (scm_array_rank): Likewise. Also, do not return zero for
252 non-arrays, signal an error instead since arrays with rank zero do
253 exist.
254 (scm_i_make_ra): New, for specifying the tag of the new array.
255 (scm_make_enclosed_array): Use it.
256 (scm_make_ra): Reimplemented in terms of scm_i_make_ra.
257 (scm_make_shared_array): Use scm_c_generalized_vector_length
258 instead of scm_uniform_vector_length.
259 (scm_array_in_bounds_p): Rewritten to be much cleaner.
260 (scm_i_cvref): New, doing the job of scm_cvref.
261 (scm_cvref): Use scm_i_cvref.
262 (scm_array_ref): Do not accept non-arrays when no indices are
263 given. Use scm_i_cvref to do the actual access.
264 ("uniform-array-set1"): Do not register.
265 (scm_array_set_x, scm_uniform_array_read_x,
266 scm_uniform_array_write): Handle enclosed arrays explicitly.
267 (ra2l): Use scm_i_cvref instead of scm_uniform_vector_ref to also
268 handle enclosed arrays.
269 (scm_array_to_list): Handle enclosed arrays explicitly.
270 (rapr1): Removed.
271 (scm_i_print_array_dimension): Use scm_i_cvref to also handle
272 enclosed arrays.
273 (scm_i_print_enclosed_array): New.
274 (tag_proto_table, tag_creator_table): Renamed former to latter.
275 Added "a" and "b" for strings and bitvectors, resp.
276 (scm_i_tag_to_prototype, scm_i_tag_to_creator): Renamed former to
277 latter. Tag "a" is in the table now, no need to handle it as a
278 legacy tag.
279 (scm_raprin1): Just call scm_iprin1.
280 (scm_array_creator, scm_array_prototype): Handle enclosed arrays
281 explicitly.
282 (scm_init_unif): Initialize scm_tc16_enclosed_array smob.
283 Use scm_i_print_array as printer for scm_tc16_array.
284
2ed34885
MV
2852004-11-10 Marius Vollmer <mvo@zagadka.de>
286
823086c1
MV
287 * ramap.c (cind): Changed second arg to be pointer to long instead
288 of uniform vector.
289 (scm_ramapc): Allocate index vector with scm_malloc and not as
d550e35f 290 uniform vector. Wrap it in a frame so that it gets properly freed.
823086c1
MV
291 (scm_array_index_map_x): Likewise.
292
293 * unif.c: Changed all uses of scm_array_prototype to
294 scm_array_creator. (scm_i_get_old_prototype): Signal error when no
295 prototype is known.
296 (scm_uniform_array_read_x, scm_uniform_array_write): Reimplemented
297 in terms of scm_uniform_vector_read_x and
298 scm_uniform_vector_write, respectively. Strings and
299 bitvector support has been dropped.
300
2ed34885
MV
301 * srfi-4.h, srfi-4.c: Do not include <libguile.h>, include the
302 needed files directly. Include config.h, <unistd.h> and <io.h>
303 when available.
304 (scm_uniform_vector_read_x, scm_uniform_vector_write): New.
305
2c72f253
MV
3062004-11-09 Marius Vollmer <mvo@zagadka.de>
307
308 * gh_data.c (gh_uniform_vector_length): Properly use
309 scm_c_uniform_vector_length instead of scm_uniform_vector_length.
310
3cc0a296
MV
3112004-11-09 Marius Vollmer <marius.vollmer@uni-dortmund.de>
312
313 * srfi-4.h (scm_c_uniform_vector_ref, scm_c_uniform_vector_set_x):
314 New.
315 (scm_i_uniform_vector_creator): Removed.
316 (scm_i_generalized_vector_creator): New.
317 (scm_uniform_vector_length, scm_uniform_element_size): Do not
318 handle generalized vectors, only uniform numeric vectors.
319 (alloc_uvec): Do length check here...
320 (make_uvec): ...but not here.
321 (coerce_to_uvec): Use new generalized vector functions to handle
322 all kinds of vectors in one go.
323
324 * tags.h (scm_tc7_bvect): Renamed to scm_tc7_unused7, renaming the
325 remaining scm_tc7_unused tags to get a neatly ordered list.
326
327 * eq.c, evalext.c, gc-card.c, gc-mark.c, objects.c, print.c: Do no
328 longer handle scm_tc7_bvect bitvectors.
329
330 * ramap.c: Use the new generalized vector functions to handle all
331 vector like things.
332
333 * vectors.h, vectors.c (scm_is_vector, scm_c_vector_length,
334 scm_c_vector_ref, scm_c_vector_set_x, scm_generalized_vector_p,
335 scm_generalized_vector_length, scm_generalized_vector_ref,
336 scm_generalized_vector_set_x, scm_generalized_vector_to_list,
337 scm_is_generalized_vector, scm_c_generalized_vector_length,
338 scm_c_generalized_vector_ref, scm_c_generalized_vector_set_x):
339 New.
340
341 * unif.h, unif.c (scm_bitvector_p, scm_bitvector,
342 scm_make_bitvector, scm_bitvector_length, scm_bitvector_ref,
343 scm_bitvector_set_x, scm_list_to_bitvector, scm_bitvector_to_list,
344 scm_bitvector_fill_x, scm_is_bitvector, scm_c_make_bitvector,
345 scm_c_bitvector_length, scm_c_bitvector_ref,
346 scm_c_bitvector_set_x, scm_bitvector_elements,
347 scm_bitvector_release, scm_frame_bitvector_release,
348 scm_tc16_bitvector, bitvector_free, bitvector_print,
349 bitvector_equalp, count_ones, find_first_one): New.
350 (scm_bit_count, scm_bit_position, scm_bit_set_star_x,
351 scm_bit_count_star, scm_bit_invert_x, scm_istr2bve): Rewritten
352 using the new C API for bitvectors and maybe count_ones or
353 find_first_one, as appropriate.
354 (SCM_I_MAX_LENGTH, SCM_BITVECTOR_P, SCM_BITVECTOR_BASE,
355 SCM_SET_BITVECTOR_BASE, SCM_BITVECTOR_MAX_LENGTH,
356 SCM_BITVECTOR_LENGTH, SCM_MAKE_BITVECTOR_TAG,
357 SCM_SET_BITVECTOR_LENGTH): Removed. Replaced all uses with the
358 new functions from above.
359 (scm_i_proc_make_vector, scm_i_proc_make_string,
360 scm_i_proc_make_bitvector): Made non-static for use in
361 scm_i_generalized_vector_creator.
362 (scm_make_u1vector): Removed, replaced by scm_make_bitvector.
363 (scm_make_uve): Validate that the created object is a generalized
364 vector.
365 (scm_i_legacy_tag): Removed.
366 (scm_i_print_array): Do it here.
367 (scm_raprin1): Only print enclosed arrays.
368
369 * Makefile.am (DOT_DOC_FILES): Added srfi-4.doc.
370
c24d026b
MV
3712004-11-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
372
1f2328fe
MV
373 * srfi-4.c (make_uvec): Use SCM_I_SIZE_MAX instead of SIZE_MAX for
374 added portability.
375
376 * chars.c (scm_charnames, scm_charnums): Added "sp" as an alias
377 for "space". Thanks to Bruce Korb!
378
c24d026b
MV
379 * rw.c (scm_read_string_x_partial): Bugfix, apply offset to dest
380 only after dest has been set. Thanks to Hyper Division!
381
382 * gh_data.c (gh_uniform_vector_length): Use
383 scm_uniform_vector_length instead of SCM_UVECTOR_LENGTH.
384
d4ea47c8
MV
3852004-11-03 Marius Vollmer <mvo@zagadka.de>
386
387 * unif.h (SCM_UVECTOR_BASE, SCM_SET_UVECTOR_BASE,
388 SCM_UVECTOR_MAXLENGTH, SCM_UVECTOR_LENGTH, SCM_MAKE_UVECTOR_TAG,
389 SCM_SET_UVECTOR_LENGTH): Removed.
390
236288e2
MV
3912004-11-02 Marius Vollmer <mvo@zagadka.de>
392
393