From 39e0f5c0927583affcc60469e7251396fff25a8c Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Thu, 11 Jun 2015 21:54:39 -0400 Subject: [PATCH] (scheme write) library --- Makefile | 5 ++++- icyc.scm | 1 + scheme/base.sld | 5 ----- scheme/eval.sld | 1 + scheme/write.sld | 12 ++++++++++++ tests/unit-tests.scm | 1 + 6 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 scheme/write.sld diff --git a/Makefile b/Makefile index 45491c5e..8c4aa696 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ TESTSCM = unit-tests TESTFILES = $(addprefix tests/, $(addsuffix .scm, $(TESTSCM))) -all: cyclone scheme/base.o scheme/read.o scheme/char.o scheme/eval.o icyc +all: cyclone scheme/base.o scheme/read.o scheme/write.o scheme/char.o scheme/eval.o icyc scheme/base.o: cyclone scheme/base.sld ./cyclone scheme/base.sld @@ -15,6 +15,9 @@ scheme/eval.o: cyclone scheme/eval.sld scheme/read.o: cyclone scheme/read.sld ./cyclone scheme/read.sld +scheme/write.o: cyclone scheme/write.sld + ./cyclone scheme/write.sld + trans.so: trans.scm csc -s trans.scm diff --git a/icyc.scm b/icyc.scm index fc789cac..cb88e29e 100644 --- a/icyc.scm +++ b/icyc.scm @@ -7,6 +7,7 @@ (import (scheme base) (scheme char) (scheme read) + (scheme write) (scheme eval)) (cond-expand (cyclone diff --git a/scheme/base.sld b/scheme/base.sld index 203cb3fd..ff910029 100644 --- a/scheme/base.sld +++ b/scheme/base.sld @@ -54,7 +54,6 @@ current-output-port ;current-input-port ;current-error-port - write ;; TODO: move to (scheme write) library error raise raise-continuable @@ -285,10 +284,6 @@ (error "bad parameter syntax")))))) (define current-output-port (make-parameter (Cyc-stdout))) - (define (write obj . port) - (if (null? port) - (Cyc-write obj (current-output-port)) - (Cyc-write obj (car port)))) (define (error msg . args) (raise (cons msg args))) (define (raise obj) diff --git a/scheme/eval.sld b/scheme/eval.sld index 672ad00a..a2a1e13a 100644 --- a/scheme/eval.sld +++ b/scheme/eval.sld @@ -1,6 +1,7 @@ (define-library (scheme eval) (import (scheme base) + (scheme write) (scheme read)) (export eval diff --git a/scheme/write.sld b/scheme/write.sld new file mode 100644 index 00000000..22d744f9 --- /dev/null +++ b/scheme/write.sld @@ -0,0 +1,12 @@ +(define-library (scheme write) + (export + write + ) + (import (scheme base)) + (begin + (define (write obj . port) + (if (null? port) + (Cyc-write obj (current-output-port)) + (Cyc-write obj (car port)))) + ) +) diff --git a/tests/unit-tests.scm b/tests/unit-tests.scm index 95011fa6..5f1adb21 100644 --- a/tests/unit-tests.scm +++ b/tests/unit-tests.scm @@ -1,5 +1,6 @@ (import (scheme base) (scheme char) + (scheme write) (scheme eval)) (define *num-passed* 0)