mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
Factor out (srfi 160 mini) for f8/f16 base.
Closes #961. Import this instead of the full vector libs for (srfi 231). Also fix install of full vector libs for (srfi 160).
This commit is contained in:
parent
afda4ab979
commit
6c49071833
4 changed files with 7 additions and 58 deletions
1
Makefile
1
Makefile
|
@ -367,6 +367,7 @@ install-base: all
|
|||
$(INSTALL) -m0644 lib/srfi/159/*.scm $(DESTDIR)$(MODDIR)/srfi/159/
|
||||
$(INSTALL) -m0644 lib/srfi/159/*.sld $(DESTDIR)$(MODDIR)/srfi/159/
|
||||
$(INSTALL) -m0644 lib/srfi/160/*.sld $(DESTDIR)$(MODDIR)/srfi/160/
|
||||
$(INSTALL) -m0644 lib/srfi/160/*.scm $(DESTDIR)$(MODDIR)/srfi/160/
|
||||
$(INSTALL) -m0644 lib/srfi/166/*.sld $(DESTDIR)$(MODDIR)/srfi/166/
|
||||
$(INSTALL) -m0644 lib/srfi/166/*.scm $(DESTDIR)$(MODDIR)/srfi/166/
|
||||
$(INSTALL) -m0644 lib/srfi/146/*.sld $(DESTDIR)$(MODDIR)/srfi/146/
|
||||
|
|
|
@ -60,31 +60,8 @@
|
|||
vector-append vector-copy vector-copy!
|
||||
vector-map vector-for-each)
|
||||
(scheme write)
|
||||
(srfi 160 base)
|
||||
(srfi 160 prims)
|
||||
(rename (only (chibi) list->uvector make-uvector)
|
||||
(list->uvector list->uniform-vector)
|
||||
(make-uvector make-uniform-vector)))
|
||||
(srfi 160 mini))
|
||||
(begin
|
||||
(define (f16? x) (and (real? x) (inexact? x)))
|
||||
(define f16vector-length uvector-length)
|
||||
(define (make-f16vector len . o)
|
||||
(let ((res (make-uniform-vector SEXP_F16 len)))
|
||||
(if (and (pair? o) (not (zero? (car o))))
|
||||
(do ((i 0 (+ i 1)))
|
||||
((>= i len))
|
||||
(f16vector-set! res i (car o))))
|
||||
res))
|
||||
(define (f16vector->list uv . o)
|
||||
(let ((start (if (pair? o) (car o) 0))
|
||||
(end (if (and (pair? o) (pair? (cdr o)))
|
||||
(cadr o)
|
||||
(f16vector-length uv))))
|
||||
(do ((i (- end 1) (- i 1))
|
||||
(res '() (cons (f16vector-ref uv i) res)))
|
||||
((< i start) res))))
|
||||
(define (list->f16vector ls) (list->uniform-vector SEXP_F16 ls))
|
||||
(define (f16vector . args) (list->f16vector args))
|
||||
(define uvector? f16vector?)
|
||||
(define make-uvector make-f16vector)
|
||||
(define vector f16vector)
|
||||
|
|
|
@ -60,31 +60,8 @@
|
|||
vector-append vector-copy vector-copy!
|
||||
vector-map vector-for-each)
|
||||
(scheme write)
|
||||
(srfi 160 base)
|
||||
(srfi 160 prims)
|
||||
(rename (only (chibi) list->uvector make-uvector)
|
||||
(list->uvector list->uniform-vector)
|
||||
(make-uvector make-uniform-vector)))
|
||||
(srfi 160 mini))
|
||||
(begin
|
||||
(define (f8? x) (and (real? x) (inexact? x)))
|
||||
(define f8vector-length uvector-length)
|
||||
(define (make-f8vector len . o)
|
||||
(let ((res (make-uniform-vector SEXP_F8 len)))
|
||||
(if (and (pair? o) (not (zero? (car o))))
|
||||
(do ((i 0 (+ i 1)))
|
||||
((>= i len))
|
||||
(f8vector-set! res i (car o))))
|
||||
res))
|
||||
(define (f8vector->list uv . o)
|
||||
(let ((start (if (pair? o) (car o) 0))
|
||||
(end (if (and (pair? o) (pair? (cdr o)))
|
||||
(cadr o)
|
||||
(f8vector-length uv))))
|
||||
(do ((i (- end 1) (- i 1))
|
||||
(res '() (cons (f8vector-ref uv i) res)))
|
||||
((< i start) res))))
|
||||
(define (list->f8vector ls) (list->uniform-vector SEXP_F8 ls))
|
||||
(define (f8vector . args) (list->f8vector args))
|
||||
(define uvector? f8vector?)
|
||||
(define make-uvector make-f8vector)
|
||||
(define vector f8vector)
|
||||
|
|
|
@ -56,21 +56,15 @@
|
|||
)
|
||||
(include "231/transforms.scm")
|
||||
(cond-expand
|
||||
((and chibi (library (srfi 160 f8)))
|
||||
(import (srfi 160 f8))
|
||||
((and chibi (library (srfi 160 mini)))
|
||||
(import (srfi 160 mini))
|
||||
(begin
|
||||
(define-storage-class f8-storage-class
|
||||
f8vector-ref f8vector-set! f8? make-f8vector f8vector-length 0)))
|
||||
(else
|
||||
(begin
|
||||
(define f8-storage-class f32-storage-class))))
|
||||
(cond-expand
|
||||
((and chibi (library (srfi 160 f16)))
|
||||
(import (srfi 160 f16))
|
||||
(begin
|
||||
f8vector-ref f8vector-set! f8? make-f8vector f8vector-length 0)
|
||||
(define-storage-class f16-storage-class
|
||||
f16vector-ref f16vector-set! f16? make-f16vector f16vector-length 0)))
|
||||
(else
|
||||
(begin
|
||||
(define f8-storage-class f32-storage-class)
|
||||
(define f16-storage-class f32-storage-class))))
|
||||
)
|
||||
|
|
Loading…
Add table
Reference in a new issue