From c15999cc764d2507ec6d914bf2e790fef20185e3 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Mon, 8 Sep 2014 17:08:38 +0900 Subject: [PATCH] update benz --- extlib/benz | 2 +- piclib/picrin/array.scm | 2 +- piclib/picrin/base.scm | 33 +---- piclib/picrin/dictionary.scm | 3 +- piclib/picrin/experimental/lambda.scm | 1 + piclib/picrin/macro.scm | 7 +- piclib/picrin/record.scm | 3 +- piclib/picrin/test.scm | 6 +- piclib/scheme/base.scm | 175 ++++++++++++++++++++++++-- 9 files changed, 181 insertions(+), 51 deletions(-) diff --git a/extlib/benz b/extlib/benz index 14e7fd4e..b8b57435 160000 --- a/extlib/benz +++ b/extlib/benz @@ -1 +1 @@ -Subproject commit 14e7fd4e98ca4619edb5eb7e48b882d94e5e50d2 +Subproject commit b8b5743589ccbed555805d768d5c840aad350499 diff --git a/piclib/picrin/array.scm b/piclib/picrin/array.scm index f7e1dc60..d12b7848 100644 --- a/piclib/picrin/array.scm +++ b/piclib/picrin/array.scm @@ -1,6 +1,6 @@ (define-library (picrin array) (import (scheme base) - (scheme write) + (picrin base) (picrin record)) (define-record-type diff --git a/piclib/picrin/base.scm b/piclib/picrin/base.scm index f1ea2c0b..e28310df 100644 --- a/piclib/picrin/base.scm +++ b/piclib/picrin/base.scm @@ -31,38 +31,22 @@ integer? exact? inexact? - exact-integer? = < > <= >= - zero? - positive? - negative? - odd? - even? - min - max + - * / abs - floor-quotient - floor-remainder floor/ - truncate-quotient - truncate-remainder truncate/ - gcd - lcm floor ceiling truncate round - exact-integer-sqrt - square expt number->string string->number @@ -129,19 +113,15 @@ vector->list) (export string? - make-string string-length string-ref - string-set! + string-copy + string-append string=? string? string<=? - string>=? - string-copy - string-copy! - string-append - string-fill!) + string>=?) (export make-dictionary dictionary? @@ -160,16 +140,13 @@ (export current-input-port current-output-port current-error-port + + port? input-port? output-port? textual-port? binary-port? - port? - input-port-open? - output-port-open? close-port - close-input-port - close-output-port open-input-string open-output-string diff --git a/piclib/picrin/dictionary.scm b/piclib/picrin/dictionary.scm index a532b2e4..1940d676 100644 --- a/piclib/picrin/dictionary.scm +++ b/piclib/picrin/dictionary.scm @@ -1,5 +1,6 @@ (define-library (picrin dictionary) - (import (scheme base)) + (import (scheme base) + (picrin base)) (define (dictionary-map proc dict) (let ((kvs '())) diff --git a/piclib/picrin/experimental/lambda.scm b/piclib/picrin/experimental/lambda.scm index 5a1d3eb1..5f6ac0ab 100644 --- a/piclib/picrin/experimental/lambda.scm +++ b/piclib/picrin/experimental/lambda.scm @@ -1,5 +1,6 @@ (define-library (picrin experimental lambda) (import (scheme base) + (picrin base) (picrin macro)) (define-syntax destructuring-bind diff --git a/piclib/picrin/macro.scm b/piclib/picrin/macro.scm index 0e5dc4b4..c17c7555 100644 --- a/piclib/picrin/macro.scm +++ b/piclib/picrin/macro.scm @@ -1,12 +1,7 @@ ;;; Hygienic Macros (define-library (picrin macro) - (import (picrin base macro) - (picrin base) - (picrin list) - (picrin symbol) - (scheme base) - (picrin dictionary)) + (import (picrin base)) ;; assumes no derived expressions are provided yet diff --git a/piclib/picrin/record.scm b/piclib/picrin/record.scm index 18ee0fa7..b2b72489 100644 --- a/piclib/picrin/record.scm +++ b/piclib/picrin/record.scm @@ -1,5 +1,6 @@ (define-library (picrin record) - (import (scheme base)) + (import (picrin base) + (scheme base)) (define (set-record-writer! record-type writer) (record-set! record-type 'writer writer)) diff --git a/piclib/picrin/test.scm b/piclib/picrin/test.scm index 28650b84..17a1e41c 100644 --- a/piclib/picrin/test.scm +++ b/piclib/picrin/test.scm @@ -1,8 +1,8 @@ (define-library (picrin test) (import (scheme base) - (scheme write) - (scheme read) - (scheme process-context)) + (scheme process-context) + (picrin base)) + (define test-counter 0) (define counter 0) (define failure-counter 0) diff --git a/piclib/scheme/base.scm b/piclib/scheme/base.scm index efb0a61a..b166f24e 100644 --- a/piclib/scheme/base.scm +++ b/piclib/scheme/base.scm @@ -1,11 +1,14 @@ (define-library (scheme base) (import (picrin base) - (picrin list) - (picrin symbol) (picrin macro)) - (export define set! lambda quote - if begin define-syntax) + (export define + set! + lambda + quote + if + begin + define-syntax) ;; call/cc @@ -267,7 +270,7 @@ (lambda (form r c) `(,(r 'letrec-syntax) ,@(cdr form))))) - (import (scheme read) (scheme file)) + (import (scheme file)) (define-syntax include (letrec ((read-file @@ -682,8 +685,6 @@ ;; 4.2.6. Dynamic bindings - (import (picrin parameter)) - (define-syntax parameterize (ir-macro-transformer (lambda (form inject compare) @@ -764,9 +765,6 @@ ;; 5.5 Recored-type definitions - (import (picrin record) - (scheme write)) - (define ((default-record-writer ctor) obj) (let ((port (open-output-string))) (display "#.(" port) @@ -858,6 +856,163 @@ (rename truncate-quotient quotient) (rename truncate-remainder remainder)) + (export define + lambda + if + quote + set! + begin + define-syntax) + + (export eq? + eqv? + equal?) + + (export boolean? + boolean=? + not) + + (export char? + char->integer + integer->char) + + (export number? + complex? + real? + rational? + integer? + exact? + inexact? + exact-integer? + = + < + > + <= + >= + zero? + positive? + negative? + odd? + even? + min + max + + + - + * + / + abs + floor-quotient + floor-remainder + floor/ + truncate-quotient + truncate-remainder + truncate/ + gcd + lcm + floor + ceiling + truncate + round + exact-integer-sqrt + square + expt + number->string + string->number + finite? + infinite? + nan? + exp + log + sin + cos + tan + acos + asin + atan + sqrt) + + (export vector? + make-vector + vector-length + vector-ref + vector-set! + vector-copy! + vector-copy + vector-append + vector-fill! + list->vector + vector->list) + + (export string? + make-string + string-length + string-ref + string-set! + string=? + string? + string<=? + string>=? + string-copy + string-copy! + string-append + string-fill!) + + (export current-input-port + current-output-port + current-error-port + + port? + input-port? + output-port? + textual-port? + binary-port? + close-port + + open-input-string + open-output-string + get-output-string + open-input-bytevector + open-output-bytevector + get-output-bytevector + + eof-object? + eof-object + + read-char + peek-char + char-ready? + read-line + read-string + + read-u8 + peek-u8 + u8-ready? + read-bytevector + read-bytevector! + + newline + write-char + write-string + write-u8 + write-bytevector + flush-output-port) + + (export with-exception-handler + raise + raise-continuable + error + error-object? + error-object-message + error-object-irritants + read-error? + file-error?) + + (export procedure? + apply + map + for-each) + ;; 6.4 Pairs and lists (export pair?