Backup
This commit is contained in:
parent
aa6044f1b9
commit
2b9ef4a4df
|
|
@ -22,7 +22,8 @@ RUN git clone https://codeberg.org/foreign-c/foreign-c.git --depth=2
|
||||||
ARG SCHEME=chibi
|
ARG SCHEME=chibi
|
||||||
ARG IMAGE=${SCHEME}:head
|
ARG IMAGE=${SCHEME}:head
|
||||||
FROM schemers/${IMAGE}
|
FROM schemers/${IMAGE}
|
||||||
RUN apt-get update && apt-get install -y make gcc libffi-dev libcurl4 gauche
|
RUN apt-get update && apt-get install -y make gcc libffi-dev libcurl4 gauche \
|
||||||
|
netcat-traditional ca-certificates curl
|
||||||
RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
|
RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
|
||||||
COPY --from=build /build /build
|
COPY --from=build /build /build
|
||||||
ARG SCHEME=chibi
|
ARG SCHEME=chibi
|
||||||
|
|
@ -46,4 +47,4 @@ RUN cp -r /build/foreign-c-libraries/retropikzel retropikzel/
|
||||||
RUN cp -r /build/foreign-c/foreign .
|
RUN cp -r /build/foreign-c/foreign .
|
||||||
COPY Makefile .
|
COPY Makefile .
|
||||||
COPY srfi srfi/
|
COPY srfi srfi/
|
||||||
|
COPY foreign foreign/
|
||||||
|
|
|
||||||
6
Makefile
6
Makefile
|
|
@ -45,7 +45,7 @@ test-r7rs-docker:
|
||||||
test-r6rs: tmpdir
|
test-r6rs: tmpdir
|
||||||
cd ${TMPDIR} && echo "(import (rnrs) (foreign c) (srfi :${SRFI}) (srfi :64))" > test-r6rs.sps
|
cd ${TMPDIR} && echo "(import (rnrs) (foreign c) (srfi :${SRFI}) (srfi :64))" > test-r6rs.sps
|
||||||
cd ${TMPDIR} && cat srfi/${SRFI}/test.scm >> test-r6rs.sps
|
cd ${TMPDIR} && cat srfi/${SRFI}/test.scm >> test-r6rs.sps
|
||||||
cd ${TMPDIR} && akku install chez-srfi akku-r7rs "(foreign c)" #"(retropikzel shell)"
|
cd ${TMPDIR} && akku install chez-srfi akku-r7rs #"(foreign c)" "(retropikzel shell)"
|
||||||
cd ${TMPDIR} && COMPILE_R7RS=${SCHEME} compile-scheme -I .akku/lib -o test-r6rs test-r6rs.sps
|
cd ${TMPDIR} && COMPILE_R7RS=${SCHEME} compile-scheme -I .akku/lib -o test-r6rs test-r6rs.sps
|
||||||
cd ${TMPDIR} && ./test-r6rs
|
cd ${TMPDIR} && ./test-r6rs
|
||||||
|
|
||||||
|
|
@ -57,6 +57,4 @@ tmpdir:
|
||||||
rm -rf ${TMPDIR}
|
rm -rf ${TMPDIR}
|
||||||
mkdir -p ${TMPDIR}
|
mkdir -p ${TMPDIR}
|
||||||
cp -r srfi ${TMPDIR}/
|
cp -r srfi ${TMPDIR}/
|
||||||
|
cp -r foreign ${TMPDIR}/
|
||||||
clean:
|
|
||||||
git clean -X -f
|
|
||||||
|
|
|
||||||
24
srfi/106.scm
24
srfi/106.scm
|
|
@ -72,8 +72,8 @@
|
||||||
(define SO-REUSEPORT 15)
|
(define SO-REUSEPORT 15)
|
||||||
(define AI-PASSIVE 1)
|
(define AI-PASSIVE 1)
|
||||||
|
|
||||||
(define +sockaddr-size+ 16)
|
(define *sockaddr-size* 16)
|
||||||
(define +ai-family-size+ 2)
|
(define *ai-family-size* 2)
|
||||||
|
|
||||||
(define socket-merge-flags (lambda flags (apply + flags)))
|
(define socket-merge-flags (lambda flags (apply + flags)))
|
||||||
(define (socket-purge-flags base-flag . flags) (apply - (cons base-flag flags)))
|
(define (socket-purge-flags base-flag . flags) (apply - (cons base-flag flags)))
|
||||||
|
|
@ -134,11 +134,11 @@
|
||||||
(let* ((pointer (make-c-bytevector 128 0))
|
(let* ((pointer (make-c-bytevector 128 0))
|
||||||
(pointer-address (c-bytevector->address pointer))
|
(pointer-address (c-bytevector->address pointer))
|
||||||
(node-pointer (address->c-bytevector
|
(node-pointer (address->c-bytevector
|
||||||
(+ pointer-address +ai-family-size+))))
|
(+ pointer-address *ai-family-size*))))
|
||||||
(c-bytevector-set! pointer 'u16 0 *af-unix*)
|
(c-bytevector-set! pointer 'u16 0 *af-unix*)
|
||||||
(c-strcpy node-pointer (string->c-utf8 node))
|
(c-strcpy node-pointer (string->c-utf8 node))
|
||||||
pointer))
|
pointer))
|
||||||
(sockaddr-size (+ +ai-family-size+ (bytevector-length (string->utf8 node)))))
|
(sockaddr-size (+ *ai-family-size* (bytevector-length (string->utf8 node)))))
|
||||||
(when (< socket-file-descriptor 0)
|
(when (< socket-file-descriptor 0)
|
||||||
(c-perror (string->c-utf8 "make-client-socket (socket) error"))
|
(c-perror (string->c-utf8 "make-client-socket (socket) error"))
|
||||||
(raise-continuable "make-client-socket (socket) error"))
|
(raise-continuable "make-client-socket (socket) error"))
|
||||||
|
|
@ -214,7 +214,7 @@
|
||||||
(let* ((pointer (make-c-bytevector 128 0))
|
(let* ((pointer (make-c-bytevector 128 0))
|
||||||
(pointer-address (c-bytevector->address pointer))
|
(pointer-address (c-bytevector->address pointer))
|
||||||
(node-pointer (address->c-bytevector
|
(node-pointer (address->c-bytevector
|
||||||
(+ pointer-address +ai-family-size+))))
|
(+ pointer-address *ai-family-size*))))
|
||||||
(c-bytevector-set! pointer 'u16 0 *af-inet*)
|
(c-bytevector-set! pointer 'u16 0 *af-inet*)
|
||||||
(c-bytevector-set! pointer
|
(c-bytevector-set! pointer
|
||||||
'u16
|
'u16
|
||||||
|
|
@ -226,7 +226,7 @@
|
||||||
(option (let ((pointer (make-c-bytevector (c-type-size 'int))))
|
(option (let ((pointer (make-c-bytevector (c-type-size 'int))))
|
||||||
(c-bytevector-set! pointer 'int 0 1)
|
(c-bytevector-set! pointer 'int 0 1)
|
||||||
pointer))
|
pointer))
|
||||||
(sockaddr-size (+ +ai-family-size+ (bytevector-length (string->utf8 node)))))
|
(sockaddr-size (+ *ai-family-size* (bytevector-length (string->utf8 node)))))
|
||||||
(when (< socket-file-descriptor 0)
|
(when (< socket-file-descriptor 0)
|
||||||
(c-perror (string->c-utf8 "make-server-socket (socket) error"))
|
(c-perror (string->c-utf8 "make-server-socket (socket) error"))
|
||||||
(raise-continuable "make-server-socket (socket) error"))
|
(raise-continuable "make-server-socket (socket) error"))
|
||||||
|
|
@ -236,7 +236,7 @@
|
||||||
(when (< (c-setsockopt socket-file-descriptor SOL-SOCKET SO-REUSEPORT option (c-type-size 'int)) 0)
|
(when (< (c-setsockopt socket-file-descriptor SOL-SOCKET SO-REUSEPORT option (c-type-size 'int)) 0)
|
||||||
(c-perror (string->c-utf8 "make-server-socket (setsockopt SO-REUSEPORT) error"))
|
(c-perror (string->c-utf8 "make-server-socket (setsockopt SO-REUSEPORT) error"))
|
||||||
(raise-continuable "make-server-socket (setsockopt SO-REUSEPORT) error"))
|
(raise-continuable "make-server-socket (setsockopt SO-REUSEPORT) error"))
|
||||||
(when (< (c-bind socket-file-descriptor sockaddr +sockaddr-size+) 0)
|
(when (< (c-bind socket-file-descriptor sockaddr *sockaddr-size*) 0)
|
||||||
(c-perror (string->c-utf8 "socket-accept (bind) error"))
|
(c-perror (string->c-utf8 "socket-accept (bind) error"))
|
||||||
(raise-continuable "socket-accept (bind) error"))
|
(raise-continuable "socket-accept (bind) error"))
|
||||||
(when (< (c-listen socket-file-descriptor 0) 0)
|
(when (< (c-listen socket-file-descriptor 0) 0)
|
||||||
|
|
@ -337,19 +337,19 @@
|
||||||
((symbol=? 'name 'inet6) *af-inet6*)
|
((symbol=? 'name 'inet6) *af-inet6*)
|
||||||
((symbol=? 'name 'unspec) *af-unspec*)
|
((symbol=? 'name 'unspec) *af-unspec*)
|
||||||
((symbol=? 'name 'unix) *af-unix*)
|
((symbol=? 'name 'unix) *af-unix*)
|
||||||
(else (error "address-family: Unrecognized name" name))))))
|
(else (error "address-family: Unrecognized name" 'name))))))
|
||||||
|
|
||||||
(define-syntax address-info
|
(define-syntax address-info
|
||||||
(syntax-rules ()
|
(syntax-rules ()
|
||||||
((_ names ...)
|
((_ names ...)
|
||||||
(apply socket-merge-flags
|
(apply socket-merge-flags
|
||||||
(map (lambda (name)
|
(map (lambda (name)
|
||||||
(cond ((symbol=? name 'canoname) *ai-canoname*)
|
(cond ((symbol=? name 'canonname) *ai-canonname*)
|
||||||
((symbol=? name 'numerichost) *ai-numerichost*)
|
((symbol=? name 'numerichost) *ai-numerichost*)
|
||||||
((symbol=? name 'v4mapped) *ai-v4mapped*)
|
((symbol=? name 'v4mapped) *ai-v4mapped*)
|
||||||
((symbol=? name 'all) *ai-all*)
|
((symbol=? name 'all) *ai-all*)
|
||||||
((symbol=? name 'addrconfig) *ai-addrconfig*)
|
((symbol=? name 'addrconfig) *ai-addrconfig*)
|
||||||
(else (error "address-info: Unrecognized name" name))))
|
(else (error "address-info: Unrecognized name" 'name))))
|
||||||
'(names ...))))))
|
'(names ...))))))
|
||||||
|
|
||||||
(define-syntax socket-domain
|
(define-syntax socket-domain
|
||||||
|
|
@ -357,7 +357,7 @@
|
||||||
((_ name)
|
((_ name)
|
||||||
(cond ((symbol=? 'name 'stream) *sock-stream*)
|
(cond ((symbol=? 'name 'stream) *sock-stream*)
|
||||||
((symbol=? 'name 'datagram) *af-unix*)
|
((symbol=? 'name 'datagram) *af-unix*)
|
||||||
(else (error "socket-domain: Unrecognized name" name))))))
|
(else (error "socket-domain: Unrecognized name" 'name))))))
|
||||||
|
|
||||||
(define-syntax ip-protocol
|
(define-syntax ip-protocol
|
||||||
(syntax-rules ()
|
(syntax-rules ()
|
||||||
|
|
@ -365,7 +365,7 @@
|
||||||
(cond ((symbol=? 'name 'ip) *ipproto-ip*)
|
(cond ((symbol=? 'name 'ip) *ipproto-ip*)
|
||||||
((symbol=? 'name 'tcp) *ipproto-tcp*)
|
((symbol=? 'name 'tcp) *ipproto-tcp*)
|
||||||
((symbol=? 'name 'udp) *ipproto-udp*)
|
((symbol=? 'name 'udp) *ipproto-udp*)
|
||||||
(else (error "ip-protocol: Unrecognized name" name))))))
|
(else (error "ip-protocol: Unrecognized name" 'name))))))
|
||||||
|
|
||||||
(define-syntax shutdown-method
|
(define-syntax shutdown-method
|
||||||
(syntax-rules ()
|
(syntax-rules ()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue