diff options
author | Daniel Llorens <lloda@sarc.name> | 2021-12-06 13:38:37 +0100 |
---|---|---|
committer | Daniel Llorens <lloda@sarc.name> | 2021-12-06 14:00:03 +0100 |
commit | 5759e37181ae648cc861656b6c75982851ba93fa (patch) | |
tree | 97e66e5402c614e6cdde5937e22abeb53d8301e1 /libguile/srfi-4.c | |
parent | 6af3362b059bb132231354ccca7f15c781f50f48 (diff) | |
download | guile-5759e37181ae648cc861656b6c75982851ba93fa.tar.gz |
New function srfi-4-vector-type-size in (srfi srfi-4 gnu)
This patch removes the undocumented function make-srfi-4-vector from
(guile). That function is still exported from (srfi srfi-4 gnu).
* libguile/srfi-4.h (scm_init_srfi_4): Split into scm_bootstrap_srfi_4()
and scm_init_srfi_4(), after the pattern of scm_init_bytevectors() and
scm_bootstrap_bytevectors().
* libguile/init.c: Replace scm_init_srfi_4() call by scm_bootstrap_srfi_4().
* module/srfi/srfi-4.scm: Load newly defined srfi-4 extension. This
provides undocumented make-srfi-4-vector.
* module/srfi/srfi-4/gnu.scm: Export srfi-4-vector-type-size.
* doc/ref/srfi-modules.texi: Document srfi-4-vector-type-size.
Diffstat (limited to 'libguile/srfi-4.c')
-rw-r--r-- | libguile/srfi-4.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/libguile/srfi-4.c b/libguile/srfi-4.c index cb9de9d8f..23896c32c 100644 --- a/libguile/srfi-4.c +++ b/libguile/srfi-4.c @@ -37,6 +37,7 @@ #include "numbers.h" #include "uniform.h" #include "variable.h" +#include "version.h" #include "srfi-4.h" @@ -277,8 +278,21 @@ SCM_DEFINE (scm_make_srfi_4_vector, "make-srfi-4-vector", 2, 1, 0, } #undef FUNC_NAME +SCM_DEFINE (scm_srfi_4_vector_type_size, "srfi-4-vector-type-size", 1, 0, 0, + (SCM vec), + "Return the size, in bytes, of each element of a srfi-4 vector.") +#define FUNC_NAME s_scm_srfi_4_vector_type_size +{ + SCM_VALIDATE_BYTEVECTOR (1, vec); + return scm_from_size_t (SCM_BYTEVECTOR_TYPE_SIZE (vec)); +} +#undef FUNC_NAME + + +/* Initialization. */ + void -scm_init_srfi_4 (void) +scm_bootstrap_srfi_4 (void) { #define REGISTER(tag, TAG) \ scm_i_register_vector_constructor \ @@ -298,6 +312,15 @@ scm_init_srfi_4 (void) REGISTER (c32, C32); REGISTER (c64, C64); + scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION, + "scm_init_srfi_4", + (scm_t_extension_init_func) scm_init_srfi_4, + NULL); +} + +void +scm_init_srfi_4 (void) +{ #include "srfi-4.x" } |