From be907a31e3b04fbacdb7e37ca0c657ea64a2c0c7 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sat, 25 Mar 2017 18:26:35 +0900 Subject: [PATCH] porting (chibi temp-file) and (chibi zlib) to chicken --- Makefile | 2 ++ lib/chibi/temp-file.sld | 11 +++++++++-- lib/chibi/zlib.sld | 20 ++++++++++++++++++-- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 686436ea..dd094d38 100644 --- a/Makefile +++ b/Makefile @@ -454,7 +454,9 @@ snowballs: $(SNOW_CHIBI) package lib/chibi/string.sld $(SNOW_CHIBI) package lib/chibi/sxml.sld $(SNOW_CHIBI) package lib/chibi/tar.sld + $(SNOW_CHIBI) package lib/chibi/temp-file.sld $(SNOW_CHIBI) package lib/chibi/term/ansi.sld $(SNOW_CHIBI) package lib/chibi/term/edit-line.sld $(SNOW_CHIBI) package lib/chibi/test.sld $(SNOW_CHIBI) package lib/chibi/uri.sld + $(SNOW_CHIBI) package lib/chibi/zlib.sld diff --git a/lib/chibi/temp-file.sld b/lib/chibi/temp-file.sld index df4671c9..a8892c69 100644 --- a/lib/chibi/temp-file.sld +++ b/lib/chibi/temp-file.sld @@ -1,5 +1,12 @@ (define-library (chibi temp-file) (export call-with-temp-file call-with-temp-dir) - (import (scheme base) (scheme time) (srfi 33) - (chibi filesystem) (chibi pathname) (chibi process)) + (import (scheme base) (scheme time) + (chibi filesystem) (chibi pathname)) + (cond-expand + ((library (srfi 33)) (import (srfi 33))) + (else (import (srfi 60)))) + (cond-expand + (chibi (import (only (chibi process) current-process-id))) + (chicken (import (only (posix) current-process-id))) + (else (begin (define (current-process-id) 0)))) (include "temp-file.scm")) diff --git a/lib/chibi/zlib.sld b/lib/chibi/zlib.sld index d3caf0e1..62684af8 100644 --- a/lib/chibi/zlib.sld +++ b/lib/chibi/zlib.sld @@ -1,6 +1,22 @@ (define-library (chibi zlib) (export gzip-file gunzip-file gzip gunzip maybe-gunzip) - (import (scheme base) (scheme write) - (chibi io) (chibi process) (chibi temp-file)) + (import (scheme base) + (chibi temp-file)) + (cond-expand + (chibi (import (chibi process))) + (chicken + (import (rename (chicken) (system %system)) + (only (data-structures) intersperse) + (only (posix) process)) + (begin + (define (system . args) + (%system (apply string-append (intersperse args " ")))) + (define (process->bytevector cmd) + (call-with-values (lambda () + (if (pair? cmd) + (process (car cmd) (cdr cmd)) + (process cmd))) + (lambda (in out pid) + (read-bytevector #f in))))))) (include "zlib.scm"))