Describe new 1.4 compatability behavior of
[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 1700.
CommitLineData
3b698afe
MV
12005-01-12 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2
3 * deprecated.h, deprecated.c, strings.h, strings.c: Turn all
4 deprecated features that once were macros but are now functions
5 back into macros.
6
d6dc83a9
MV
72005-01-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
8
49086691
MV
9 * eval.c, debug.h (SCM_WARN_DEPRECATED): New debug option.
10 * deprecation.c (scm_issue_deprecation_warning,
11 scm_c_issue_deprecation_warning_fmt): Use it.
12 (mode): Removed.
13 (print_summary): New.
14 (scm_init_deprecation): Initialize SCM_WARN_DEPRECATED instead of
15 mode.
16
d6dc83a9
MV
17 Deprecated SCM_ARRAY* macros.
18
19 * unif.h, unif.c, ramap.c, vectors.c, srfi-4.c, srfi-4.i.c
20 (SCM_ARRAYP, SCM_I_ARRAYP): Renamed former to latter internal
21 version. Changed all uses.
22 (scm_tc16_array, scm_i_tc16_array,
23 scm_tc16_enclosed_array, scm_i_tc16_enclosed_array,
24 SCM_ARRAY_FLAG_CONTIGUOUS, SCM_I_ARRAY_FLAG_CONTIGUOUS,
25 SCM_ENCLOSE_ARRAYP, SCM_I_ENCLOSE_ARRAYP,
26 SCM_ARRAY_NDIM, SCM_I_ARRAY_NDIM,
27 SCM_ARRAY_CONTP, SCM_I_ARRAY_CONTP,
28 SCM_ARRAY_MEM, SCM_I_ARRAY_MEM,
29 SCM_ARRAY_V, SCM_I_ARRAY_V,
30 SCM_ARRAY_BASE, SCM_I_ARRAY_BASE,
31 SCM_ARRAY_DIMS, SCM_I_ARRAY_DIMS,
32 scm_t_array, scm_i_t_array): Likewise.
33 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
34 Moved from unif.h to unif.c.
35 (scm_c_array_rank): New.
36 (scm_array_rank): Reimplement using it.
37
38 * deprecated.h, deprecated.c (SCM_ARRAYP, SCM_ARRAY_NDIM,
39 SCM_ARRAY_CONTP, SCM_ARRAY_MEM, SCM_ARRAY_V, SCM_ARRAY_BASE,
40 SCM_ARRAY_DIMS, scm_t_array): New deprecated versions.
41
dc91d8de
MV
422005-01-11 Marius Vollmer <mvo@zagadka.de>
43
44 * ramap.c: Replace uses of scm_make_ra with scm_i_make_ra.
45 (GVREF, GVSET): New abbreviations. Use them everywhere instead of
46 scm_c_generalized_vector_ref and scm_cvref, and
47 scm_c_generalized_vector_set_x, respectively.
48 (RVREF, IVDEP, BINARY_ELTS_CODE, BINARY_PAIR_ELTS_CODE,
49 UNARY_ELTS_CODE, UNARY_PAIR_ELTS_CODE): Removed since unused.
50
51 * unif.h, unif.c (indices_to_pos, scm_array_handle_pos): Renamed
52 former to latter and made public. Changed all uses.
53 (scm_i_make_ra): Made public, changed tag param to enclosed flag.
54 (scm_make_ra): Deprecated, changed all uses to scm_i_make_ra.
55 (scm_i_shap2ra): New internal version of scm_shap2ra.
56 (scm_shap2ra): Deprecated, changed all uses to scm_i_shap2ra.
57 (scm_i_ra_set_contp): New internal version of scm_ra_set_contp.
58 (scm_ra_set_contp): Deprecated, changed all uses to
59 scm_i_ra_set_contp.
60 (scm_cvref, scm_aind, scm_raprin1): Deprecated.
61
66d33784
MV
622005-01-10 Marius Vollmer <marius.vollmer@uni-dortmund.de>
63
b06f099d
MV
64 * eval.c (scm_eval): Added example to docstring. Thanks to Issac
65 Trotts!
66
5d35ad81
MV
67 * unif.c (scm_list_to_typed_array): Allow the specification of the
68 upper bound as well. This is needed for empty arrays.
69 (l2ra): Give needed number of elements in error message.
70 (scm_i_print_array): Print length information for arrays that need
71 it.
72 (scm_i_read_array): Parse it.
73
66d33784
MV
74 * deprecated.h, deprecated.c (SCM_CHARS, SCM_UCHARS, SCM_LENGTH,
75 scm_i_object_chars, scm_i_object_length): Brought back from the
76 dead.
77
d7d7d401
MV
782005-01-10 Marius Vollmer <mvo@zagadka.de>
79
74c58fce
MV
80 * ramap.c: Replaced single-index uses of scm_array_set_x with
81 scm_c_generalized_vector_set_x.
82
d7d7d401
MV
83 * unif.c (scm_array_rank, scm_array_dimensions,
84 scm_shared_array_offset, scm_shared_array_increments,
85 scm_array_ref, scm_array_set_x): Use scm_t_array_handle operations
86 to simplify code and make it more general.
87 (scm_shared_array_root): Work with all kinds of arrays, including
88 naked vectors.
89 (indices_to_pos): New.
74c58fce
MV
90 (scm_make_shared_array): Use it instead of scm_aind; use handle
91 for oldra.
92
4475d3fe
KR
932005-01-10 Kevin Ryde <user42@zip.com.au>
94
95 * posix.c (scm_mkstemp): Update docstring from manual.
96
d3ddc95e
KR
97 * stime.c (scm_mktime): Missing default errno=EINVAL from prev change.
98
8c8491f5
MV
992005-01-09 Marius Vollmer <mvo@zagadka.de>
100
b89ecc6f
MV
101 * srfi-4.h, srfi-4.c, srfi-4.i.c (scm_i_uniform_vector_ref_proc,
102 scm_i_uniform_vector_set_proc): New.
103 (u8ref, u8set, s8ref, s8set, etc): New.
104 (uvec_reffers, uvec_setters): New.
105 (uvec_to_list): Use generic scm_array_handle_ref instead of
106 uvec_fast_ref since scm_array_handle_ref should be faster now.
8cb01d9f
MV
107 (coerce_to_uvec, scm_c_uniform_vector_ref,
108 scm_c_uniform_vector_set_x): Likewise.
b89ecc6f
MV
109
110 * unif.h, unif.c, inline.h (scm_i_t_array_ref, scm_i_t_array_set):
111 New.
112 (scm_t_array_handle): Added ref, set, elements and
113 writable_elements for fast inline operation of
114 scm_array_handle_ref and scm_array_handle_set.
115 (scm_array_handle_ref, scm_array_handle_set): Moved to inline.h
116 and replaced with inline code that simply calls the ref/set
117 members of the handle.
118 (enclosed_ref, vector_ref, string_ref, bitvector_ref, memoize_ref,
119 enclosed_set, vector_set, string_set, bitvector_set, memoize_set):
120 New.
121 (scm_array_handle_get): Initialize ref/set fields to memoize_ref
122 and memoize_set.
123 (scm_bitvector_fill_x, scm_bitvector_to_list, scm_bit_count,
124 scm_bit_position, scm_bit_set_star_x, scm_bit_count_star,
125 scm_bit_invert_x): Correctly multiply index with increment in the
126 general case.
127
8c8491f5
MV
128 * unif.c (scm_array_handle_set): Correctly execute only one
129 alternative. D'Oh!
130 (scm_list_to_typed_array, l2ra): Use scm_t_array_handle to fill
131 the array; this covers all cases with much simpler code.
132
133 * srfi-4.c (scm_uniform_element_size): Deprecated implementation
134 as well.
135
cd5d55c7
MV
1362005-01-09 Marius Vollmer <marius.vollmer@uni-dortmund.de>
137
138 * srfi-4.c (uvec_type): New.
139 (uvec_to_list, uvec_ref, uvec_set_x, scm_c_uniform_vector_ref,
140 scm_c_uniform_vector_x): Use it to get concrete type.
141
142 * unif.h (scm_t_array_dim): Changed type of members to ssize_t, to
143 fit the docs.
144
145 * unif.c (ra2l): Handle zero rank arrays.
146 (scm_i_print_array): Print zero rank arrays specially.
147 (tag_to_type): Return #t for an empty tag, not the empty symbol.
148 (scm_i_read_array): Allow zero rank arrays.
149
a4aad74e
MV
1502005-01-07 Marius Vollmer <marius.vollmer@uni-dortmund.de>
151
152 * hashtab.h, hashtab.c (SCM_HASHTAB_BUCKET_LOC): Removed.
153 (scan_weak_hashtables): Rewrote its use with SCM_HASHTAB_BUCKET
154 and SCM_SET_HASHTAB_BUCKET.
155
156 * print.h, print.c (scm_print_state, SCM_PRINT_STATE_LAYOUT):
157 Removed ref_stack field.
158 (PSTATE_STACK_REF, PSTATE_STACK_SET): New, for accessing the stack
159 of a print state. Use them everywhere instead of ref_stack.
160
3a40d5e1
MV
161 * srfi-4.h (scm_uniform_element_size): Deprecated for real.
162
a4aad74e
MV
163 * srfi-4.c: Include deprecation.h.
164
165 * vectors.h, vectors.c, unif.h, unif.c, deprecated.h,
166 deprecated.c, eq.c
167 (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR): Removed.
168 (scm_vector_elements, scm_vector_writable_elements,
169 scm_generalized_vector_get_handle): Moved to vectors.[hc] from
170 unif.[hc].
171 (SCM_SIMPLE_VECTOR_LOC): Removed.
172 (SCM_VECTOR_MAX_LENGTH, SCM_VECTOR_LENGTH, SCM_VELTS,
173 SCM_WRITABLE_VELTS, SCM_VECTOR_REF, SCM_VECTOR_SET,
174 scm_vector_equal_p): Moved from vectors.[hc] to deprecated.[hc].
175 (scm_vector_equal_p, scm_i_vector_equal_p): Renamed former to
176 latter. Changed use in eq.c.
177
f01fe441
MV
1782005-01-07 Marius Vollmer <mvo@zagadka.de>
179
180 Make the uniform vector routines also deal with one dimensional
181 arrays.
182
183 * srfi-4.c (SCM_IS_UVEC): New, use it instead of
184 SCM_SMOB_PREDICATE in this file.
185 (is_uvec): Also recognize one-dimensional uniform numeric arrays
186 of the right type.
187 (scm_is_uniform_vector): Likewise.
188 (uvec_fast_ref): Made BASE param const.
189 (uvec_writable_elements, uvec_elements): New.
190 (uvec_to_list, uvec_ref, uvec_set_x, uvec_length,
191 scm_c_uniform_vector_length, scm_c_uniform_vector_ref,
192 scm_c_uniform_set_x): Use them to also deal with one-dimensional
193 arrays.
194 (scm_uniform_vector_ref, scm_uniform_vector_set_x): Deprecate old
195 argument convention.
196 (scm_uniform_vector_to_list): Let uvec_to_list do all the
197 checking.
198 (scm_uniform_vector_length): Use uvec_length.
199
2aaf5726
MV
2002005-01-06 Marius Vollmer <marius.vollmer@uni-dortmund.de>
201
202 * srfi-4.h, srfi-4.c (scm_c_uniform_vector_element_size,
203 scm_c_uniform_vector_size): Removed.
204 (scm_array_handle_uniform_element_size): New.
205
206
207 * unif.h (scm_array_handle_ref, scm_array_handle_set): Changed
208 type of POS parameter to be signed, positions can be negative.
209 (scm_array_handle_release): New, changed all uses of
210 scm_t_array_handle to properly call it.
211 (scm_vector_get_handle, scm_generalized_vector_get_handle):
212 Renamed former to latter, changed all uses.
213
34ae52fc
MV
2142005-01-05 Marius Vollmer <mvo@zagadka.de>
215
216 Updated bitvector routines to also use scm_t_array_handles.
217
218 * unif.h (scm_bitvector_elements,
219 scm_bitvector_writable_elements): Use a scm_t_array_handle and
220 deliver offset, length and increment to caller. Changed all uses.
221 (scm_bitvector_release_elements,
222 scm_frame_bitvector_release_elements,
223 scm_bitvector_release_writable_elements,
224 scm_frame_bitvector_release_writable_elements): Removed.
225 (scm_array_handle_bit_elements,
226 scm_array_handle_bit_writable_elements,
227 scm_array_handle_bit_elements_offset): New.
228 (scm_make_typed_array): The special value for non-initialized
229 arrays is now SCM_UNSPECIFIED. The old special value SCM_BOOL_F
230 was a valid value to fill bitvectors with, so it can't really be
231 specialed out.
232
c4cb7628
KR
2332005-01-04 Kevin Ryde <user42@zip.com.au>
234
235 * stime.c (scm_strftime): Free t.tm_zone produced by bdtime2c.
236 Reported by Bill Schottstaedt.
237
0356881d
MV
2382005-01-02 Marius Vollmer <mvo@zagadka.de>
239
240 * sort.c (quicksort): Added INC parameter for non-contigous
241 vectors.
242 (quicksort1): New, for contigous vectors. Both functions are
243 generated from the same code by including "quicksort.i.c".
244 (scm_restricted_vector_sort_x): Call one of quicksort and
245 quicksort1, depending on increment of vector.
246 (scm_sort): Simply call scm_sort_x on a copy of the list or
247 vector.
248 (scm_merge_vector_x, scm_merge_vector_step): Changed indices to
249 size_t, added inc parameter.
250 (scm_stable_sort_x): Allocate temporary storage as Scheme vector
251 so that it doesn't leak.
252 (scm_stable_sort): Simply call scm_stable_sort_x on a copy of the
253 list or vector.
254
255 * ramap.c (scm_array_map_x): Do not try to convert fill value
256 before filling, any necessary conversion is done while storing.
257
258 * gc-card.c (scm_i_sweep_card): Call scm_i_vector_free instead of
259 doing it inline.
260
261 * hashtab.c, hashtab.h (SCM_HASHTABLE_BUCKETS): Removed.
262 (SCM_HASHTABLE_BUCKET, SCM_HASHTABLE_BUCKET_LOC): New. Replaced
263 all uses of SCM_HASHTABLE_BUCKETS with SCM_HASHTABLE_BUCKET.
264
265 * tags.h, weaks.c, vports.c, hashtab.c, convert.c, sort.c,
266 convert.c, convert.h, convert.i.c, deprecated.c, environments.c,
267 eval.c, filesys.c, fluids.c, gc-mark.c, gh.h, gh_data.c, goops.c,
268 hash.c, init.c, libguile_la-arrays.loT, modules.c, net_db.c,
269 objects.c, ports.c, posix.c, print.c, random.c, read.c,
270 regex-posix.c, scmsigs.c, socket.c, stime.c, symbols.c: Use new
271 vector elements API or simple vector API, as appropriate. Removed
272 SCM_HAVE_ARRAYS ifdefery. Replaced all uses of
273 SCM_HASHTABLE_BUCKETS with SCM_HASHTABLE_BUCKET.
274
275 * srfi-4.h, srfi-4.c,
276 srfi-4.i.c (scm_array_handle_uniform_elements,
277 scm_array_handle_uniform_writable_elements,
278 scm_uniform_vector_elements,
279 scm_uniform_vector_writable_elements):
280 (scm_<foo>vector_elements, scm_<foo>vector_writable_elements): Use
281 scm_t_array_handle, deliver length and increment.
282 (scm_array_handle_<foo>_elements,
283 scm_array_handle_<foo>_writable_elements): New.
284
285 * gen-scmconfig.h.in (SCM_I_GSC_HAVE_ARRAYS): Removed.
286 * gen-scmconfig.c: Hard code SCM_HAVE_ARRAYS to "1".
287
288 * unif.h, unif.c (scm_t_array_handle, scm_array_get_handle,
289 scm_array_handle_rank, scm_array_handle_dims, scm_array_handle_ref
290 scm_array_handle_set, scm_array_handle_elements
291 scm_array_handle_writable_elements, scm_vector_get_handle): New.
292 (scm_make_uve, scm_array_prototype, scm_list_to_uniform_array,
293 scm_dimensions_to_uniform_array): Deprecated for real.
294 (scm_array_p, scm_i_array_p): Use latter for SCM_DEFINE since
295 snarfing wont allow a mismatch between C and Scheme arglists.
296 (scm_make_shared_array, scm_enclose_array): Correctly use
297 scm_c_generalized_vector_length instead of
298 scm_uniform_vector_length.
299
300 * validate.h (SCM_VALIDATE_VECTOR,
301 SCM_VALIDATE_VECTOR_OR_DVECTOR): use scm_is_simple_vector instead
302 of SCM_VECTORP.
303
304 * weaks.h, weaks.c: Use new internal weak vector API from
305 vectors.h.
306
307 * Makefile.am (libguile_la_SOURCES, DOT_X_FILES, DOT_DOC_FILES,
308 EXTRA_libguile_la_SOURCES): Changed ramap.c and unif.c from being
309 'extra' to being regular sources.
310 (noinst_HEADERS): Added quicksort.i.c.
311 * quicksort.i.c: New file.
312
313 * vectors.h, vector.c (SCM_VECTORP, SCM_VECTOR_LENGTH, SCM_VELTS,
314 SCM_WRITABLE_VELTS, SCM_VECTOR_REF, SCM_VECTOR_SET): Deprecated
315 and reimplemented. Replaced all uses with scm_vector_elements,
316 scm_vector_writable_elements, or SCM_SIMPLE_VECTOR_*, as
317 appropriate.
318 (scm_is_simple_vector, SCM_SIMPLE_VECTOR_LENGTH,
319 SCM_SIMPLE_VECTOR_REF, SCM_SIMPLE_VECTOR_SET,
320 SCM_SIMPLE_VECTOR_LOC): New.
321 (SCM_VECTOR_BASE, SCM_SET_VECTOR_BASE, SCM_VECTOR_MAX_LENGTH,
322 SCM_MAKE_VECTOR_TAG, SCM_SET_VECTOR_LENGTH,
323 SCM_VELTS_AS_STACKITEMS, SCM_SETVELTS, SCM_GC_WRITABLE_VELTS):
324 Removed.
325 (scm_vector_copy): New.
326 (scm_vector_elements, scm_vector_writable_elements): Use
327 scm_t_array_handle, deliver length and increment. Moved to
328 unif.h. Changed all uses.
329 (scm_vector_release_elements,
330 scm_vector_release_writable_elements,
331 (scm_frame_vector_release_elements,
332 scm_frame_vector_release_writable_elements): Removed.
333 (SCM_I_IS_VECTOR, SCM_I_VECTOR_ELTS, SCM_I_VECTOR_WELTS,
334 SCM_I_VECTOR_LENGTH, scm_i_vector_free): New internal API.
335 (SCM_I_WVECTP SCM_I_WVECT_LENGTH SCM_I_WVECT_VELTS
336 SCM_I_WVECT_GC_WVELTS SCM_I_WVECT_TYPE SCM_I_WVECT_GC_CHAIN
337 SCM_I_SET_WVECT_GC_CHAIN, scm_i_allocate_weak_vector): New, for
338 weak vectors.
339
0336d18b
MV
3402004-12-29 Marius Vollmer <mvo@zagadka.de>
341
342 No longer use creators to specify the type of an array. Creators
343 expose the fact that arrays are wrapped around vectors, but that
344 might change.
345
346 * srfi-4.h (scm_i_proc_make_u8vector, scm_i_proc_make_s8vector,
347 scm_i_proc_make_u16vector, scm_i_proc_make_s16vector,
348 scm_i_proc_make_u32vector, scm_i_proc_make_s32vector,
349 scm_i_proc_make_u64vector, scm_i_proc_make_s64vector,
350 scm_i_proc_make_f32vector, scm_i_proc_make_f64vector,
351 scm_i_proc_make_c32vector, scm_i_proc_make_c64vector,
352 uvec_proc_vars): Removed.
353 (scm_i_generalized_vector_creator): Removed.
354 (scm_i_generalized_vector_type): New.
355
356 * unif.h, unif.c (scm_typed_array_p, scm_make_array,
357 scm_make_typed_array, scm_array_type, scm_list_to_array,
358 scm_list_to_typed_array, scm_is_array, scm_is_typed_array): New.
359 (scm_array_creator): Removed.
360 (scm_array_p): Deprecated second PROT argument.
361 (scm_dimensions_to_uniform_array, scm_list_to_uniform_array):
362 Deprecated, reimplemented in terms of scm_make_typed_array and
363 scm_list_to_typed_array.
364 (scm_i_proc_make_vector, scm_i_proc_make_string,
365 scm_i_proc_make_bitvector): Removed.
366 (type_creator_table, init_type_creator_table, type_to_creator,
367 make_typed_vector): New.
368 (scm_i_convert_old_prototype): Removed.
369 (prototype_to_type): New.
370 (scm_make_uve): Deprecated, reimplemented using make_typed_vector.
371 (scm_array_dimensions): Use scm_list_1 instead of scm_cons for
372 minor added clarity.
373 (scm_make_shared_array, scm_ra2contig): Use make_typed_vector
374 instead of scm_make_uve.
375 (tag_creator_table, scm_i_tag_to_creator): Removed.
376 (tag_to_type): New.
377 (scm_i_read_array): Use scm_list_to_typed_array instead of
378 scm_list_to_uniform_array.
379
277e8472
MV
3802004-12-27 Marius Vollmer <mvo@zagadka.de>
381
32b26202
MV
382 * unif.h, unif.c (scm_bitvector_elements): Made return value "const".
383 (scm_bitvector_writable_elements): New.
384 (scm_bitvector_release, scm_bitvector_release_elements):
385 Renamed former to latter. Added explicit call to
386 scm_remember_upto_here_1.
387 (scm_frame_bitvector_release,
388 scm_frame_bitvector_release_elements): Renamed former to latter.
389 (scm_bitvector_release_writable_elements,
390 scm_bitvector_release_writable_elements): New.
391 Changed all uses as required by the changes above.
392
393 * srfi-4.h, srfi-4.c, srfi-4.i.c (scm_uniform_vector_elements,
394 scm_u8vector_elements, etc): Made return value "const".
395 (scm_uniform_vector_writable_elements,
396 scm_u8vector_writable_elements, etc): New.
397 (scm_uniform_vector_release, scm_uniform_vector_release_elements):
398 Renamed former to latter. Added explicit call to
399 scm_remember_upto_here_1.
400 (scm_frame_uniform_vector_release,
401 scm_frame_uniform_vector_release_elements): Renamed former to latter.
402 (scm_uniform_vector_release_writable_elements,
403 scm_frame_uniform_vector_release_writable_elements): New. Takes
404 crown of longest identifier yet.
405 Changed all uses as required by the changes above.
406
277e8472
MV
407 * vectors.h, vectors.c (scm_c_vector_set_x): Make return type
408 void.
409 (scm_is_vector, scm_vector_p, scm_vector_length,
410 scm_c_vector_length, scm_vector_ref, scm_c_vector_ref,
411 scm_vector_set_x, scm_c_vector_set_x, scm_vector_to_list,
412 scm_vector_move_left_x, scm_vector_move_right_x,
413 scm_vector_fill_x): handle one-dimensional arrays.
32b26202
MV
414 (scm_vector_elements, scm_vector_release_elements,
415 scm_vector_frame_release_elements, scm_vector_writable_elements,
416 scm_vector_release_writable_elements,
417 scm_vector_frame_release_writable_elements): New.
418 (scm_list_to_vector, scm_vector_to_list, scm_vector_fill,
419 scm_vector_move_left_x, scm_vector_move_right_x): Use them.
277e8472
MV
420
421 * ramap.c (scm_ramapc, scm_raeql): Use
422 scm_c_generalized_vector_length instead of
423 scm_uniform_vector_length.
424 (scm_ramap, rafe): Use scm_c_vector_ref instead of SCM_VELTS. use
425 scm_c_generalized_vector_ref instead of scm_uniform_vector_ref.
426
49c51610
MV
4272004-12-23 Marius Vollmer <marius.vollmer@uni-dortmund.de>
428
429 * continuations.h, continuations.c (scm_t_contregs): New 'offset'
430 member for relocating debug frames.
431 (scm_make_continuation): Set it.
432
433 * stacks.c (read_frame, read_frames, scm_make_stack,
434 scm_last_stack_frame, scm_stack_id): Use the new 'offset' member
435 of continuations instead of calculating the offset ourselves.
436 Relocate 'vect' member of scm_t_debug_frame.
437
3b2ee265
KR
4382004-12-16 Kevin Ryde <user42@zip.com.au>
439
440 * ramap.c (scm_array_map_x): Check for at least one source argument.
441
e120686a
KR
4422004-12-14 Kevin Ryde <user42@zip.com.au>
443
444 * srfi-13.c (string-any, string-every): Use a scheme wrapper around
445 the C code so for the final call to the predicate procedure is a tail
446 call, per SRFI-13 spec.
447
680b5237
KR
4482004-12-10 Kevin Ryde <user42@zip.com.au>
449
450 * eq.c (scm_eq_p, scm_eqv_p, scm_equal_p): Update docstrings from
451 recent revision to the reference manual.
452
453 * numbers.c (scm_modulo): Amend fixme comment about negative divisor
454 with "%", C99 says it's well-defined.
455
456 * socket.c (scm_from_ipv6): Just use mpz_import. Don't bother trying
457 to fit scm_from_ulong_long, since that uses mpz_import anyway. Don't
458 bother trying to fit scm_from_ulong, not really worth the trouble if
459 addresses are more than 4 bytes usually.
460
446d320c
KR
4612004-11-30 Kevin Ryde <user42@zip.com.au>
462
463 * gc_os_dep.c (NetBSD): Test __m68k__ and __arm__ as well as m68k and
464 arm32. Reported by Greg Troxel.
465
f2654760
MV
4662004-11-14 mvo <mvo@zagadka.de>
467
468 * unif.c, unif.h (scm_i_cvref): Made non-static for ramap.c.
469
470 * Makefile.am (INCLUDES): It is "@LTDLINCL@", not "@LTDLINC@".
471
d550e35f
MV
4722004-11-12 Marius Vollmer <marius.vollmer@uni-dortmund.de>
473
474 Enclosed arrays are now their own smob. This has been done to
475 make the code more explicit about them and to prepare for the time
f2654760
MV
476 when generalized vectors include arbitrary one-dimensional
477 arrays. (Uptonow, enclosed arrays have been recognized by their
478 use of an array as their storage 'vector'. When all generalized
479 vectors are allowed as storage, including one-dimensional arrays,
480 this will no longer work.)
d550e35f
MV
481
482 * unif.h, unif.c: (scm_tc16_enclosed_array, SCM_ENCLOSED_ARRAYP):
483 New.
484 (exactly_one_third, singp): Removed.
485 (scm_array_p, scm_array_dimensions, scm_shared_array_root,
486 scm_shared_array_offset, scm_shared_array_increments): Handle
487 enclosed arrays explicitely.
488 (scm_array_rank): Likewise. Also, do not return zero for
489 non-arrays, signal an error instead since arrays with rank zero do
490 exist.
491 (scm_i_make_ra): New, for specifying the tag of the new array.
492 (scm_make_enclosed_array): Use it.
493 (scm_make_ra): Reimplemented in terms of scm_i_make_ra.
494 (scm_make_shared_array): Use scm_c_generalized_vector_length
495 instead of scm_uniform_vector_length.
496 (scm_array_in_bounds_p): Rewritten to be much cleaner.
497 (scm_i_cvref): New, doing the job of scm_cvref.
498 (scm_cvref): Use scm_i_cvref.
499 (scm_array_ref): Do not accept non-arrays when no indices are
500 given. Use scm_i_cvref to do the actual access.
501 ("uniform-array-set1"): Do not register.
502 (scm_array_set_x, scm_uniform_array_read_x,
503 scm_uniform_array_write): Handle enclosed arrays explicitly.
504 (ra2l): Use scm_i_cvref instead of scm_uniform_vector_ref to also
505 handle enclosed arrays.
506 (scm_array_to_list): Handle enclosed arrays explicitly.
507 (rapr1): Removed.
508 (scm_i_print_array_dimension): Use scm_i_cvref to also handle
509 enclosed arrays.
510 (scm_i_print_enclosed_array): New.
511 (tag_proto_table, tag_creator_table): Renamed former to latter.
512 Added "a" and "b" for strings and bitvectors, resp.
513 (scm_i_tag_to_prototype, scm_i_tag_to_creator): Renamed former to
514 latter. Tag "a" is in the table now, no need to handle it as a
515 legacy tag.
516 (scm_raprin1): Just call scm_iprin1.
517 (scm_array_creator, scm_array_prototype): Handle enclosed arrays
518 explicitly.
519 (scm_init_unif): Initialize scm_tc16_enclosed_array smob.
520 Use scm_i_print_array as printer for scm_tc16_array.
521
2ed34885
MV
5222004-11-10 Marius Vollmer <mvo@zagadka.de>
523
823086c1
MV
524 * ramap.c (cind): Changed second arg to be pointer to long instead
525 of uniform vector.
526 (scm_ramapc): Allocate index vector with scm_malloc and not as
d550e35f 527 uniform vector. Wrap it in a frame so that it gets properly freed.
823086c1
MV
528 (scm_array_index_map_x): Likewise.
529
530 * unif.c: Changed all uses of scm_array_prototype to
531 scm_array_creator. (scm_i_get_old_prototype): Signal error when no
532 prototype is known.
533 (scm_uniform_array_read_x, scm_uniform_array_write): Reimplemented
534 in terms of scm_uniform_vector_read_x and
535 scm_uniform_vector_write, respectively. Strings and
536 bitvector support has been dropped.
537
2ed34885
MV
538 * srfi-4.h, srfi-4.c: Do not include <libguile.h>, include the
539 needed files directly. Include config.h, <unistd.h> and <io.h>
540 when available.
541 (scm_uniform_vector_read_x, scm_uniform_vector_write): New.
542
2c72f253
MV
5432004-11-09 Marius Vollmer <mvo@zagadka.de>
544
545 * gh_data.c (gh_uniform_vector_length): Properly use
546 scm_c_uniform_vector_length instead of scm_uniform_vector_length.
547
3cc0a296
MV
5482004-11-09 Marius Vollmer <marius.vollmer@uni-dortmund.de>
549
550 * srfi-4.h (scm_c_uniform_vector_ref, scm_c_uniform_vector_set_x):
551 New.
552 (scm_i_uniform_vector_creator): Removed.
553 (scm_i_generalized_vector_creator): New.
554 (scm_uniform_vector_length, scm_uniform_element_size): Do not
555 handle generalized vectors, only uniform numeric vectors.
556 (alloc_uvec): Do length check here...
557 (make_uvec): ...but not here.
558 (coerce_to_uvec): Use new generalized vector functions to handle
559 all kinds of vectors in one go.
560
561 * tags.h (scm_tc7_bvect): Renamed to scm_tc7_unused7, renaming the
562 remaining scm_tc7_unused tags to get a neatly ordered list.
563
564 * eq.c, evalext.c, gc-card.c, gc-mark.c, objects.c, print.c: Do no
565 longer handle scm_tc7_bvect bitvectors.
566
567 * ramap.c: Use the new generalized vector functions to handle all
568 vector like things.
569
570 * vectors.h, vectors.c (scm_is_vector, scm_c_vector_length,
571 scm_c_vector_ref, scm_c_vector_set_x, scm_generalized_vector_p,
572 scm_generalized_vector_length, scm_generalized_vector_ref,
573 scm_generalized_vector_set_x, scm_generalized_vector_to_list,
574 scm_is_generalized_vector, scm_c_generalized_vector_length,
575 scm_c_generalized_vector_ref, scm_c_generalized_vector_set_x):
576 New.
577
578 * unif.h, unif.c (scm_bitvector_p, scm_bitvector,
579 scm_make_bitvector, scm_bitvector_length, scm_bitvector_ref,
580 scm_bitvector_set_x, scm_list_to_bitvector, scm_bitvector_to_list,
581 scm_bitvector_fill_x, scm_is_bitvector, scm_c_make_bitvector,
582 scm_c_bitvector_length, scm_c_bitvector_ref,
583 scm_c_bitvector_set_x, scm_bitvector_elements,
584 scm_bitvector_release, scm_frame_bitvector_release,
585 scm_tc16_bitvector, bitvector_free, bitvector_print,
586 bitvector_equalp, count_ones, find_first_one): New.
587 (scm_bit_count, scm_bit_position, scm_bit_set_star_x,
588 scm_bit_count_star, scm_bit_invert_x, scm_istr2bve): Rewritten
589 using the new C API for bitvectors and maybe count_ones or
590 find_first_one, as appropriate.
591 (SCM_I_MAX_LENGTH, SCM_BITVECTOR_P, SCM_BITVECTOR_BASE,
592 SCM_SET_BITVECTOR_BASE, SCM_BITVECTOR_MAX_LENGTH,
593 SCM_BITVECTOR_LENGTH, SCM_MAKE_BITVECTOR_TAG,
594 SCM_SET_BITVECTOR_LENGTH): Removed. Replaced all uses with the
595 new functions from above.
596 (scm_i_proc_make_vector, scm_i_proc_make_string,
597 scm_i_proc_make_bitvector): Made non-static for use in
598 scm_i_generalized_vector_creator.
599 (scm_make_u1vector): Removed, replaced by scm_make_bitvector.
600 (scm_make_uve): Validate that the created object is a generalized
601 vector.
602 (scm_i_legacy_tag): Removed.
603 (scm_i_print_array): Do it here.
604 (scm_raprin1): Only print enclosed arrays.
605
606 * Makefile.am (DOT_DOC_FILES): Added srfi-4.doc.
607
c24d026b
MV
6082004-11-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
609
1f2328fe
MV
610 * srfi-4.c (make_uvec): Use SCM_I_SIZE_MAX instead of SIZE_MAX for
611 added portability.
612
613 * chars.c (scm_charnames, scm_charnums): Added "sp" as an alias
614 for "space". Thanks to Bruce Korb!
615
c24d026b
MV
616 * rw.c (scm_read_string_x_partial): Bugfix, apply offset to dest
617 only after dest has been set. Thanks to Hyper Division!
618
619 * gh_data.c (gh_uniform_vector_length): Use
620 scm_uniform_vector_length instead of SCM_UVECTOR_LENGTH.
621
d4ea47c8
MV
6222004-11-03 Marius Vollmer <mvo@zagadka.de>
623
624 * unif.h (SCM_UVECTOR_BASE, SCM_SET_UVECTOR_BASE,
625 SCM_UVECTOR_MAXLENGTH, SCM_UVECTOR_LENGTH, SCM_MAKE_UVECTOR_TAG,
626 SCM_SET_UVECTOR_LENGTH): Removed.
627
236288e2
MV
6282004-11-02 Marius Vollmer <mvo@zagadka.de>
629
630