Marius Vollmer [Sun, 2 Jan 2005 20:06:08 +0000 (20:06 +0000)]
* weaks.c: Use new vector elements API or simple vector
API, as appropriate.
* srfi-4.h, srfi-4.c, srfi-4.i.c (scm_array_handle_uniform_elements,
scm_array_handle_uniform_writable_elements,
scm_uniform_vector_elements, scm_uniform_vector_writable_elements):
(scm_<foo>vector_elements, scm_<foo>vector_writable_elements): Use
scm_t_array_handle, deliver length and increment.
(scm_array_handle_<foo>_elements,
scm_array_handle_<foo>_writable_elements): New.
* unif.h, unif.c (scm_t_array_handle, scm_array_get_handle,
scm_array_handle_rank, scm_array_handle_dims, scm_array_handle_ref
scm_array_handle_set, scm_array_handle_elements
scm_array_handle_writable_elements, scm_vector_get_handle): New.
(scm_make_uve, scm_array_prototype, scm_list_to_uniform_array,
scm_dimensions_to_uniform_array): Deprecated for real. (scm_array_p,
scm_i_array_p): Use latter for SCM_DEFINE since snarfing wont allow a
mismatch between C and Scheme arglists. (scm_make_shared_array,
scm_enclose_array): Correctly use scm_c_generalized_vector_length
instead of scm_uniform_vector_length.
* weaks.h, weaks.c: Use new internal weak vector API from
vectors.h.
* Makefile.am (libguile_la_SOURCES, DOT_X_FILES, DOT_DOC_FILES,
EXTRA_libguile_la_SOURCES): Changed ramap.c and unif.c from being
'extra' to being regular sources.
(noinst_HEADERS): Added quicksort.i.c.
* quicksort.i.c: New file.
* vectors.h, vector.c (SCM_VECTORP, SCM_VECTOR_LENGTH, SCM_VELTS,
SCM_WRITABLE_VELTS, SCM_VECTOR_REF, SCM_VECTOR_SET): Deprecated and
reimplemented. Replaced all uses with scm_vector_elements,
scm_vector_writable_elements, or SCM_SIMPLE_VECTOR_*, as appropriate.
(scm_is_simple_vector, SCM_SIMPLE_VECTOR_LENGTH,
SCM_SIMPLE_VECTOR_REF, SCM_SIMPLE_VECTOR_SET, SCM_SIMPLE_VECTOR_LOC):
New. (SCM_VECTOR_BASE, SCM_SET_VECTOR_BASE, SCM_VECTOR_MAX_LENGTH,
SCM_MAKE_VECTOR_TAG, SCM_SET_VECTOR_LENGTH, SCM_VELTS_AS_STACKITEMS,
SCM_SETVELTS, SCM_GC_WRITABLE_VELTS): Removed. (scm_vector_copy):
New. (scm_vector_elements, scm_vector_writable_elements): Use
scm_t_array_handle, deliver length and increment. Moved to
unif.h. Changed all uses. (scm_vector_release_elements,
scm_vector_release_writable_elements,
(scm_frame_vector_release_elements,
scm_frame_vector_release_writable_elements): Removed.
(SCM_I_IS_VECTOR, SCM_I_VECTOR_ELTS, SCM_I_VECTOR_WELTS,
SCM_I_VECTOR_LENGTH, scm_i_vector_free): New internal API.
(SCM_I_WVECTP SCM_I_WVECT_LENGTH SCM_I_WVECT_VELTS
SCM_I_WVECT_GC_WVELTS SCM_I_WVECT_TYPE SCM_I_WVECT_GC_CHAIN
SCM_I_SET_WVECT_GC_CHAIN, scm_i_allocate_weak_vector): New, for weak
vectors.
Marius Vollmer [Sun, 2 Jan 2005 19:43:36 +0000 (19:43 +0000)]
* gen-scmconfig.h.in (SCM_I_GSC_HAVE_ARRAYS): Removed.
* gen-scmconfig.c: Hard code SCM_HAVE_ARRAYS to "1".
Marius Vollmer [Sun, 2 Jan 2005 19:16:39 +0000 (19:16 +0000)]
* Makefile.am (libguile_la_SOURCES, DOT_X_FILES, DOT_DOC_FILES,
EXTRA_libguile_la_SOURCES): Changed ramap.c and unif.c from being
'extra' to being regular sources.
(noinst_HEADERS): Added quicksort.i.c.
* quicksort.i.c: New file.
Marius Vollmer [Sun, 2 Jan 2005 18:55:03 +0000 (18:55 +0000)]
* Makefile.am (libguile_la_SOURCES, DOT_X_FILES, DOT_DOC_FILES,
EXTRA_libguile_la_SOURCES): Changed ramap.c and unif.c from being
'extra' to being regular sources.
(noinst_HEADERS): Added quicksort.i.c.
* quicksort.i.c: New file.
Marius Vollmer [Sun, 2 Jan 2005 18:51:42 +0000 (18:51 +0000)]
(SCM_I_GSC_HAVE_ARRAYS): Removed '--disable-arrays' option.
Kevin Ryde [Sat, 1 Jan 2005 23:59:56 +0000 (23:59 +0000)]
*** empty log message ***
Kevin Ryde [Sat, 1 Jan 2005 23:54:46 +0000 (23:54 +0000)]
* posix.texi (Pipes): Expand and clarify a bit. Describe port
inheritance. Caution against waitpid WAIT_ANY.
Kevin Ryde [Sat, 1 Jan 2005 23:11:08 +0000 (23:11 +0000)]
Add some index entries.
Kevin Ryde [Sat, 1 Jan 2005 23:05:00 +0000 (23:05 +0000)]
Add "invocation" index entry.
Kevin Ryde [Sat, 1 Jan 2005 22:57:38 +0000 (22:57 +0000)]
*** empty log message ***
Kevin Ryde [Sat, 1 Jan 2005 22:49:03 +0000 (22:49 +0000)]
(srfi_DATA): Add srfi-39.scm.
Kevin Ryde [Sat, 1 Jan 2005 22:48:18 +0000 (22:48 +0000)]
*** empty log message ***
Kevin Ryde [Sat, 1 Jan 2005 22:46:43 +0000 (22:46 +0000)]
Use define-module to keep bindings from
subsequent tests, use test-suite lib for stand-alone checking.
Kevin Ryde [Sat, 1 Jan 2005 22:45:32 +0000 (22:45 +0000)]
(SCM_TESTS): Add srfi-39.test.
Marius Vollmer [Thu, 30 Dec 2004 02:46:58 +0000 (02:46 +0000)]
Properly close @deftypefn.
Marius Vollmer [Wed, 29 Dec 2004 18:33:54 +0000 (18:33 +0000)]
*** empty log message ***
Marius Vollmer [Wed, 29 Dec 2004 18:33:33 +0000 (18:33 +0000)]
(make-array, list->array): Removed.
(uniform-vector-fill!): Prepared to be deprecated.
Marius Vollmer [Wed, 29 Dec 2004 18:30:48 +0000 (18:30 +0000)]
(Arrays): Updated for the new 'typed' approach at creating arrays.
Marius Vollmer [Wed, 29 Dec 2004 18:25:00 +0000 (18:25 +0000)]
*** empty log message ***
Marius Vollmer [Wed, 29 Dec 2004 18:21:55 +0000 (18:21 +0000)]
* srfi-4.h (scm_i_proc_make_u8vector, scm_i_proc_make_s8vector,
scm_i_proc_make_u16vector, scm_i_proc_make_s16vector,
scm_i_proc_make_u32vector, scm_i_proc_make_s32vector,
scm_i_proc_make_u64vector, scm_i_proc_make_s64vector,
scm_i_proc_make_f32vector, scm_i_proc_make_f64vector,
scm_i_proc_make_c32vector, scm_i_proc_make_c64vector,
uvec_proc_vars): Removed.
(scm_i_generalized_vector_creator): Removed.
(scm_i_generalized_vector_type): New.
* unif.h, unif.c (scm_typed_array_p, scm_make_array,
scm_make_typed_array, scm_array_type, scm_list_to_array,
scm_list_to_typed_array, scm_is_array, scm_is_typed_array): New.
(scm_array_creator): Removed.
(scm_array_p): Deprecated second PROT argument.
(scm_dimensions_to_uniform_array, scm_list_to_uniform_array):
Deprecated, reimplemented in terms of scm_make_typed_array and
scm_list_to_typed_array.
(scm_i_proc_make_vector, scm_i_proc_make_string,
scm_i_proc_make_bitvector): Removed.
(type_creator_table, init_type_creator_table, type_to_creator,
make_typed_vector): New.
(scm_i_convert_old_prototype): Removed.
(prototype_to_type): New.
(scm_make_uve): Deprecated, reimplemented using make_typed_vector.
(scm_array_dimensions): Use scm_list_1 instead of scm_cons for
minor added clarity.
(scm_make_shared_array, scm_ra2contig): Use make_typed_vector
instead of scm_make_uve.
(tag_creator_table, scm_i_tag_to_creator): Removed.
(tag_to_type): New.
(scm_i_read_array): Use scm_list_to_typed_array instead of
scm_list_to_uniform_array.
Kevin Ryde [Tue, 28 Dec 2004 00:37:22 +0000 (00:37 +0000)]
*** empty log message ***
Kevin Ryde [Tue, 28 Dec 2004 00:36:59 +0000 (00:36 +0000)]
(SRFI-1 Searching): In any and every, revise for
clarity, note last call in each is a tail call.
Kevin Ryde [Tue, 28 Dec 2004 00:25:51 +0000 (00:25 +0000)]
*** empty log message ***
Kevin Ryde [Tue, 28 Dec 2004 00:24:03 +0000 (00:24 +0000)]
Typo in integer?
Kevin Ryde [Tue, 28 Dec 2004 00:16:58 +0000 (00:16 +0000)]
(String Predicates): For string-any and string-every,
last chars are now tail calls per srfi, and reinstate char_pred can be
character or character set (somehow lost in cut and paste).
Kevin Ryde [Tue, 28 Dec 2004 00:13:16 +0000 (00:13 +0000)]
Add some index entries.
Neil Jerram [Mon, 27 Dec 2004 20:17:03 +0000 (20:17 +0000)]
Move continuation / stack tests to continuations.test, and add save and
restore of debug options.
Marius Vollmer [Mon, 27 Dec 2004 02:32:37 +0000 (02:32 +0000)]
*** empty log message ***
Marius Vollmer [Mon, 27 Dec 2004 02:32:25 +0000 (02:32 +0000)]
(Vectors, Bit Vectors, Uniform Numeric
Vectors): Updated for the distinction between read-only and write
access to storage locations.
Marius Vollmer [Mon, 27 Dec 2004 02:28:38 +0000 (02:28 +0000)]
(scm_bitvector_elements): Made return value "const".
(scm_bitvector_writable_elements): New.
(scm_bitvector_release, scm_bitvector_release_elements):
Renamed former to latter. Added explicit call to
scm_remember_upto_here_1.
(scm_frame_bitvector_release,
scm_frame_bitvector_release_elements): Renamed former to latter.
(scm_bitvector_release_writable_elements,
scm_bitvector_release_writable_elements): New.
Changed all uses as required by the changes above.
Marius Vollmer [Mon, 27 Dec 2004 02:11:16 +0000 (02:11 +0000)]
* unif.c (scm_bitvector_release): Added explicit call to
scm_remember_upto_here_1.
(scm_uniform_vector_elements,
scm_u8vector_elements, etc): Made return value "const".
(scm_uniform_vector_writable_elements,
scm_u8vector_writable_elements, etc): New.
(scm_uniform_vector_release, scm_uniform_vector_release_elements):
Renamed former to latter. Added explicit call to
scm_remember_upto_here_1.
(scm_frame_uniform_vector_release,
scm_frame_uniform_vector_release_elements): Renamed former to latter.
(scm_uniform_vector_release_writable_elements,
scm_frame_uniform_vector_release_writable_elements): New. Takes
crown of longest identifier yet.
Changed all uses as required by the changes above.
Marius Vollmer [Mon, 27 Dec 2004 02:10:14 +0000 (02:10 +0000)]
(scm_uniform_vector_elements,
scm_u8vector_elements, etc): Made return value "const".
(scm_uniform_vector_writable_elements,
scm_u8vector_writable_elements, etc): New.
(scm_uniform_vector_release, scm_uniform_vector_release_elements):
Renamed former to latter. Added explicit call to
scm_remember_upto_here_1.
(scm_frame_uniform_vector_release,
scm_frame_uniform_vector_release_elements): Renamed former to latter.
(scm_uniform_vector_release_writable_elements,
scm_frame_uniform_vector_release_writable_elements): New. Takes
crown of longest identifier yet.
Changed all uses as required by the changes above.
Marius Vollmer [Mon, 27 Dec 2004 02:01:21 +0000 (02:01 +0000)]
(scm_c_vector_set_x): Make return type
void.
(scm_is_vector, scm_vector_p, scm_vector_length,
scm_c_vector_length, scm_vector_ref, scm_c_vector_ref,
scm_vector_set_x, scm_c_vector_set_x, scm_vector_to_list,
scm_vector_move_left_x, scm_vector_move_right_x,
scm_vector_fill_x): handle one-dimensional arrays.
(scm_vector_elements, scm_vector_release_elements,
scm_vector_frame_release_elements, scm_vector_writable_elements,
scm_vector_release_writable_elements,
scm_vector_frame_release_writable_elements): New.
(scm_list_to_vector, scm_vector_to_list, scm_vector_fill,
scm_vector_move_left_x, scm_vector_move_right_x): Use them.
Marius Vollmer [Mon, 27 Dec 2004 00:11:43 +0000 (00:11 +0000)]
*** empty log message ***
Marius Vollmer [Mon, 27 Dec 2004 00:09:57 +0000 (00:09 +0000)]
(scm_ramapc, scm_raeql): Use
scm_c_generalized_vector_length instead of
scm_uniform_vector_length.
(scm_ramap, rafe): Use scm_c_vector_ref instead of SCM_VELTS. use
scm_c_generalized_vector_ref instead of scm_uniform_vector_ref.
Marius Vollmer [Mon, 27 Dec 2004 00:00:07 +0000 (00:00 +0000)]
(scm_c_vector_set_x): Make return type
void.
(scm_is_vector, scm_vector_p, scm_vector_length,
scm_c_vector_length, scm_vector_ref, scm_c_vector_ref,
scm_vector_set_x, scm_c_vector_set_x, scm_vector_to_list,
scm_vector_move_left_x, scm_vector_move_right_x,
scm_vector_fill_x): handle one-dimensional arrays.
Marius Vollmer [Sun, 26 Dec 2004 23:56:43 +0000 (23:56 +0000)]
Los typo fixos.
Marius Vollmer [Thu, 23 Dec 2004 15:32:17 +0000 (15:32 +0000)]
*** empty log message ***
Marius Vollmer [Thu, 23 Dec 2004 15:32:02 +0000 (15:32 +0000)]
News tests for making stacks from continuations. From Neil Jerram.
Marius Vollmer [Thu, 23 Dec 2004 15:30:29 +0000 (15:30 +0000)]
(read_frame, read_frames, scm_make_stack, scm_last_stack_frame,
scm_stack_id): Use the new 'offset' member of continuations instead of
calculating the offset ourselves. Relocate 'vect' member of
scm_t_debug_frame.
Marius Vollmer [Thu, 23 Dec 2004 15:30:16 +0000 (15:30 +0000)]
(scm_t_contregs): New 'offset' member for relocating debug frames.
(scm_make_continuation): Set it.
Marius Vollmer [Wed, 22 Dec 2004 15:33:28 +0000 (15:33 +0000)]
*** empty log message ***
Marius Vollmer [Wed, 22 Dec 2004 15:33:18 +0000 (15:33 +0000)]
(Arrays): Reorganized and 'modernized'.
Marius Vollmer [Wed, 22 Dec 2004 15:02:13 +0000 (15:02 +0000)]
*** empty log message ***
Marius Vollmer [Wed, 22 Dec 2004 15:01:53 +0000 (15:01 +0000)]
Added open-pipe* and open-input-output-pipe.
Marius Vollmer [Wed, 22 Dec 2004 15:01:24 +0000 (15:01 +0000)]
Support bidirectional communication by making open-pipe support
OPEN_BOTH as second argument and in that case return a soft
input-output port which uses two pipes internally. Provide open-pipe*
to execute programs without using the shell (and actually base
open-pipe on it) and the obvious open-input-output-pipe.
Marius Vollmer [Wed, 22 Dec 2004 14:50:56 +0000 (14:50 +0000)]
(module-make-local-var!): When creating a new variable, initialize it
to the value of any imported variable with the given name. This
allows code like (define round round) to work as expected.
Mikael Djurfeldt [Mon, 20 Dec 2004 21:38:23 +0000 (21:38 +0000)]
expect.texi (Expect): Removed backslash escapes of regexp
operators ( and ) in code example for expect-strings.
Mikael Djurfeldt [Mon, 20 Dec 2004 21:20:52 +0000 (21:20 +0000)]
Update, document available SRFIs.
Kevin Ryde [Thu, 16 Dec 2004 00:41:39 +0000 (00:41 +0000)]
*** empty log message ***
Kevin Ryde [Wed, 15 Dec 2004 23:01:32 +0000 (23:01 +0000)]
(scm_array_map_x): Check for at least one source argument.
Kevin Ryde [Tue, 14 Dec 2004 00:23:52 +0000 (00:23 +0000)]
*** empty log message ***
Kevin Ryde [Tue, 14 Dec 2004 00:21:25 +0000 (00:21 +0000)]
(string-any, string-every): Use a scheme
wrapper around the C code so for the final call to the predicate
procedure is a tail call, per SRFI-13 spec.
Kevin Ryde [Mon, 13 Dec 2004 22:40:08 +0000 (22:40 +0000)]
*** empty log message ***
Kevin Ryde [Mon, 13 Dec 2004 22:37:31 +0000 (22:37 +0000)]
(Regexp Functions): Revise regex-substitute and
regex-substitute/global for clarity, add some examples.
Kevin Ryde [Mon, 13 Dec 2004 22:29:45 +0000 (22:29 +0000)]
(lambda* Reference): Revise for clarity, note
how #:rest works with #:key, note previous bindings available to
default expressions.
Kevin Ryde [Fri, 10 Dec 2004 00:49:51 +0000 (00:49 +0000)]
More of:
(scm_eq_p, scm_eqv_p, scm_equal_p): Update docstrings from
recent revision to the reference manual.
Kevin Ryde [Fri, 10 Dec 2004 00:42:42 +0000 (00:42 +0000)]
*** empty log message ***
Kevin Ryde [Fri, 10 Dec 2004 00:42:20 +0000 (00:42 +0000)]
(inet-pton): New tests.
Kevin Ryde [Fri, 10 Dec 2004 00:41:33 +0000 (00:41 +0000)]
(scm_from_ipv6): Just use mpz_import. Don't bother trying
to fit scm_from_ulong_long, since that uses mpz_import anyway. Don't
bother trying to fit scm_from_ulong, not really worth the trouble if
addresses are more than 4 bytes usually.
Kevin Ryde [Fri, 10 Dec 2004 00:00:27 +0000 (00:00 +0000)]
(scm_modulo): Amend fixme comment about negative divisor
with "%", C99 says it's well-defined.
Kevin Ryde [Thu, 9 Dec 2004 23:49:46 +0000 (23:49 +0000)]
(scm_eq_p, scm_eqv_p, scm_equal_p): Update docstrings from
recent revision to the reference manual.
Kevin Ryde [Wed, 8 Dec 2004 23:09:15 +0000 (23:09 +0000)]
Let the string->number documented? test say "documented?".
Kevin Ryde [Mon, 6 Dec 2004 00:51:00 +0000 (00:51 +0000)]
*** empty log message ***
Kevin Ryde [Mon, 6 Dec 2004 00:44:44 +0000 (00:44 +0000)]
*** empty log message ***
Kevin Ryde [Mon, 6 Dec 2004 00:41:41 +0000 (00:41 +0000)]
(break): New tests.
Kevin Ryde [Mon, 6 Dec 2004 00:39:27 +0000 (00:39 +0000)]
(break): Change to a tail-recursive form.
Kevin Ryde [Mon, 6 Dec 2004 00:34:53 +0000 (00:34 +0000)]
(span): Change to a tail-recursive form.
Kevin Ryde [Mon, 6 Dec 2004 00:33:40 +0000 (00:33 +0000)]
(span): New tests.
Kevin Ryde [Mon, 6 Dec 2004 00:12:00 +0000 (00:12 +0000)]
(alist-delete): New tests.
Kevin Ryde [Mon, 6 Dec 2004 00:09:14 +0000 (00:09 +0000)]
(alist-delete): Change to a tail-recursive form.
Kevin Ryde [Sun, 5 Dec 2004 23:53:20 +0000 (23:53 +0000)]
(alist-delete): Correction to equality proc call argument
order, spec is for given KEY param first.
Kevin Ryde [Sun, 5 Dec 2004 21:57:44 +0000 (21:57 +0000)]
*** empty log message ***
Kevin Ryde [Sun, 5 Dec 2004 21:49:48 +0000 (21:49 +0000)]
(alist-copy): New tests.
Kevin Ryde [Sun, 5 Dec 2004 21:44:53 +0000 (21:44 +0000)]
*** empty log message ***
Kevin Ryde [Sun, 5 Dec 2004 21:44:18 +0000 (21:44 +0000)]
(alist-copy): Change to a tail-recursive form.
Kevin Ryde [Sun, 5 Dec 2004 00:56:26 +0000 (00:56 +0000)]
*** empty log message ***
Kevin Ryde [Sat, 4 Dec 2004 23:18:17 +0000 (23:18 +0000)]
*** empty log message ***
Kevin Ryde [Sat, 4 Dec 2004 23:16:52 +0000 (23:16 +0000)]
(append-map, append-map!): Rewrite as simple "concatenate map" forms,
for tail recursiveness.
Kevin Ryde [Sat, 4 Dec 2004 23:10:39 +0000 (23:10 +0000)]
(append-map): New tests.
Kevin Ryde [Sat, 4 Dec 2004 23:05:04 +0000 (23:05 +0000)]
(append-map, append-map!): Rewrite as simple "apply append" forms, for
tail recursiveness.
Kevin Ryde [Sat, 4 Dec 2004 22:47:12 +0000 (22:47 +0000)]
(filter-map): New tests.
Kevin Ryde [Sat, 4 Dec 2004 22:43:51 +0000 (22:43 +0000)]
(SRFI-1 Length Append etc): In concatenate, note equivalence to "apply append".
Kevin Ryde [Sat, 4 Dec 2004 22:37:03 +0000 (22:37 +0000)]
*** empty log message ***
Kevin Ryde [Sat, 4 Dec 2004 22:35:30 +0000 (22:35 +0000)]
(filter-map): Change to a tail-recursive form.
Marius Vollmer [Wed, 1 Dec 2004 00:02:47 +0000 (00:02 +0000)]
*** empty log message ***
Marius Vollmer [Wed, 1 Dec 2004 00:02:24 +0000 (00:02 +0000)]
* boot-9.scm (app, %app): Renamed former to the latter.
Previously, 'app' was reserved in every module. Now '%app' is
reserved, which is slightly better. The real fix is to not use
'local-ref' etc to find modules. Changed all uses.
* syncase.scm: Changed 'app' to '%app'.
Kevin Ryde [Mon, 29 Nov 2004 21:16:54 +0000 (21:16 +0000)]
*** empty log message ***
Kevin Ryde [Mon, 29 Nov 2004 21:13:57 +0000 (21:13 +0000)]
(NetBSD): Test __m68k__ and __arm__ as well as m68k and
arm32. Reported by Greg Troxel.
Kevin Ryde [Sat, 27 Nov 2004 20:06:23 +0000 (20:06 +0000)]
*** empty log message ***
Kevin Ryde [Sat, 27 Nov 2004 20:05:52 +0000 (20:05 +0000)]
(AC_SUBST): Correction, LTDLINC should be LTDLINCL, the
latter is what libtool defines.
Marius Vollmer [Sun, 14 Nov 2004 00:25:10 +0000 (00:25 +0000)]
*** empty log message ***
Marius Vollmer [Sun, 14 Nov 2004 00:23:08 +0000 (00:23 +0000)]
(scm_i_cvref): Made non-static for ramap.c.
Marius Vollmer [Sun, 14 Nov 2004 00:18:26 +0000 (00:18 +0000)]
(INCLUDES): It is "@LTDLINCL@", not "@LTDLINC@".
Marius Vollmer [Fri, 12 Nov 2004 19:00:36 +0000 (19:00 +0000)]
*** empty log message ***
Marius Vollmer [Fri, 12 Nov 2004 19:00:22 +0000 (19:00 +0000)]
Replaced uniform-array-set1! with just array-set!. Do not check
improper index lists, which can't arise with uarray-set!. Use
"#s16()" instead of "#h()".
Marius Vollmer [Fri, 12 Nov 2004 18:57:12 +0000 (18:57 +0000)]
Do not use prototypes, use creator functions.
Marius Vollmer [Fri, 12 Nov 2004 18:55:25 +0000 (18:55 +0000)]
(scm_tc16_enclosed_array, SCM_ENCLOSED_ARRAYP):
New.
(exactly_one_third, singp): Removed.
(scm_array_p, scm_array_dimensions, scm_shared_array_root,
scm_shared_array_offset, scm_shared_array_increments): Handle
enclosed arrays explicitely.
(scm_array_rank): Likewise. Also, do not return zero for
non-arrays, signal an error instead since arrays with rank zero do
exist.
(scm_i_make_ra): New, for specifying the tag of the new array.
(scm_make_enclosed_array): Use it.
(scm_make_ra): Reimplemented in terms of scm_i_make_ra.
(scm_make_shared_array): Use scm_c_generalized_vector_length
instead of scm_uniform_vector_length.
(scm_array_in_bounds_p): Rewritten to be much cleaner.
(scm_i_cvref): New, doing the job of scm_cvref.
(scm_cvref): Use scm_i_cvref.
(scm_array_ref): Do not accept non-arrays when no indices are
given. Use scm_i_cvref to do the actual access.
("uniform-array-set1"): Do not register.
(scm_array_set_x, scm_uniform_array_read_x,
scm_uniform_array_write): Handle enclosed arrays explicitly.
(ra2l): Use scm_i_cvref instead of scm_uniform_vector_ref to also
handle enclosed arrays.
(scm_array_to_list): Handle enclosed arrays explicitly.
(rapr1): Removed.
(scm_i_print_array_dimension): Use scm_i_cvref to also handle
enclosed arrays.
(scm_i_print_enclosed_array): New.
(tag_proto_table, tag_creator_table): Renamed former to latter.
Added "a" and "b" for strings and bitvectors, resp.
(scm_i_tag_to_prototype, scm_i_tag_to_creator): Renamed former to
latter. Tag "a" is in the table now, no need to handle it as a
legacy tag.
(scm_raprin1): Just call scm_iprin1.
(scm_array_creator, scm_array_prototype): Handle enclosed arrays
explicitly.
(scm_init_unif): Initialize scm_tc16_enclosed_array smob.
Use scm_i_print_array as printer for scm_tc16_array.
Marius Vollmer [Wed, 10 Nov 2004 16:00:17 +0000 (16:00 +0000)]
Updated cross reference to Arrays.
Marius Vollmer [Wed, 10 Nov 2004 01:57:37 +0000 (01:57 +0000)]
More harsh words about non-compatibilities...