summaryrefslogtreecommitdiff
path: root/module/srfi
diff options
context:
space:
mode:
authorDaniel Llorens <lloda@sarc.name>2021-12-06 13:38:37 +0100
committerDaniel Llorens <lloda@sarc.name>2021-12-06 14:00:03 +0100
commit5759e37181ae648cc861656b6c75982851ba93fa (patch)
tree97e66e5402c614e6cdde5937e22abeb53d8301e1 /module/srfi
parent6af3362b059bb132231354ccca7f15c781f50f48 (diff)
downloadguile-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 'module/srfi')
-rw-r--r--module/srfi/srfi-4.scm3
-rw-r--r--module/srfi/srfi-4/gnu.scm8
2 files changed, 8 insertions, 3 deletions
diff --git a/module/srfi/srfi-4.scm b/module/srfi/srfi-4.scm
index b2e6f4928..9209185f7 100644
--- a/module/srfi/srfi-4.scm
+++ b/module/srfi/srfi-4.scm
@@ -116,3 +116,6 @@
(define-bytevector-type s64 s64-native 8)
(define-bytevector-type f32 ieee-single-native 4)
(define-bytevector-type f64 ieee-double-native 8)
+
+(load-extension (string-append "libguile-" (effective-version))
+ "scm_init_srfi_4")
diff --git a/module/srfi/srfi-4/gnu.scm b/module/srfi/srfi-4/gnu.scm
index 35e6c4f66..7c5d2c5fb 100644
--- a/module/srfi/srfi-4/gnu.scm
+++ b/module/srfi/srfi-4/gnu.scm
@@ -33,8 +33,6 @@
c64vector? make-c64vector c64vector c64vector-length c64vector-ref
c64vector-set! c64vector->list list->c64vector
- make-srfi-4-vector
-
;; Somewhat polymorphic conversions.
any->u8vector any->s8vector any->u16vector any->s16vector
any->u32vector any->s32vector any->u64vector any->s64vector
@@ -48,10 +46,14 @@
;; copy range with destination
u8vector-copy! s8vector-copy! u16vector-copy! s16vector-copy!
u32vector-copy! s32vector-copy! u64vector-copy! s64vector-copy!
- f32vector-copy! f64vector-copy! c32vector-copy! c64vector-copy!))
+ f32vector-copy! f64vector-copy! c32vector-copy! c64vector-copy!
+
+ ;; from libguile
+ srfi-4-vector-type-size make-srfi-4-vector))
(define make-srfi-4-vector (@@ (srfi srfi-4) make-srfi-4-vector))
+(define srfi-4-vector-type-size (@@ (srfi srfi-4) srfi-4-vector-type-size))
(define (bytevector-c32-native-ref v i)
(make-rectangular (bytevector-ieee-single-native-ref v i)