~ chicken-core (chicken-5) e1d4dea7aab29fe7c3a4b1c307f055e7512c8cae
commit e1d4dea7aab29fe7c3a4b1c307f055e7512c8cae
Author: Evan Hanson <evhan@foldling.org>
AuthorDate: Tue Jan 12 23:42:55 2016 +1300
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Tue Mar 8 22:52:33 2016 +1300
Move repl and repl-prompt to new chicken.repl module
Also, sort the library list in runtests.sh.
diff --git a/README b/README
index 53489fcd..3a1146bc 100644
--- a/README
+++ b/README
@@ -297,6 +297,7 @@
| | |-- chicken.irregex.import.so
| | |-- chicken.ports.import.so
| | |-- chicken.posix.import.so
+ | | |-- chicken.repl.import.so
| | |-- chicken.tcp.import.so
| | |-- chicken.utils.import.so
| | |-- csi.import.so
diff --git a/chicken-install.scm b/chicken-install.scm
index 41c03048..35302baf 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -57,6 +57,7 @@
"chicken.lolevel.import.so"
"chicken.ports.import.so"
"chicken.posix.import.so"
+ "chicken.repl.import.so"
"chicken.tcp.import.so"
"chicken.utils.import.so"
"csi.import.so"
diff --git a/chicken.import.scm b/chicken.import.scm
index 339e6fa5..39dad630 100644
--- a/chicken.import.scm
+++ b/chicken.import.scm
@@ -217,8 +217,6 @@
register-feature!
remprop!
rename-file
- (repl . chicken.eval#repl)
- (repl-prompt . chicken.eval#repl-prompt)
(repository-path . chicken.eval#repository-path)
(require . chicken.eval#require)
reset
diff --git a/core.scm b/core.scm
index 5faccf51..c45d324d 100644
--- a/core.scm
+++ b/core.scm
@@ -1404,7 +1404,7 @@
(map (lambda (x) (walk x e se #f #f h ln)) xs) )
(when (memq 'c debugging-chicken) (newline) (pretty-print exp))
- (##sys#clear-trace-buffer)
+ (foreign-code "C_clear_trace_buffer();")
;; Process visited definitions and main expression:
(walk
`(##core#begin
diff --git a/csi.scm b/csi.scm
index fd815d86..a240fe4c 100644
--- a/csi.scm
+++ b/csi.scm
@@ -26,7 +26,7 @@
(declare
- (uses data-structures eval expand extras ports)
+ (uses data-structures eval expand extras ports repl)
(usual-integrations)
(disable-interrupts)
(compile-syntax)
@@ -56,7 +56,8 @@ EOF
(import chicken.data-structures
chicken.extras
- chicken.ports)
+ chicken.ports
+ chicken.repl)
;;; Parameters:
diff --git a/defaults.make b/defaults.make
index d771c8fc..41a5212d 100644
--- a/defaults.make
+++ b/defaults.make
@@ -265,8 +265,8 @@ CHICKEN_PROGRAM_OPTIONS += $(if $(PROFILE_OBJECTS),-profile)
PRIMITIVE_IMPORT_LIBRARIES = chicken csi chicken.foreign
POSIX_IMPORT_LIBRARY = chicken.posix
DYNAMIC_IMPORT_LIBRARIES = setup-api setup-download srfi-4
-DYNAMIC_CHICKEN_IMPORT_LIBRARIES = data-structures eval expand extras \
- files internal irregex lolevel ports tcp utils
+DYNAMIC_CHICKEN_IMPORT_LIBRARIES = data-structures eval repl expand \
+ extras files internal irregex lolevel ports tcp utils
# targets
diff --git a/distribution/manifest b/distribution/manifest
index 0160f893..d3cd94c5 100644
--- a/distribution/manifest
+++ b/distribution/manifest
@@ -40,6 +40,7 @@ srfi-4.c
stub.c
support.c
chicken.compiler.support.import.scm
+repl.c
tcp.c
utils.c
feathers.in
@@ -88,6 +89,7 @@ posixunix.scm
posixwin.scm
posix-common.scm
profiler.scm
+repl.scm
runtime.c
scheduler.scm
srfi-4.scm
@@ -262,6 +264,8 @@ chicken.ports.import.scm
chicken.ports.import.c
chicken.posix.import.scm
chicken.posix.import.c
+chicken.repl.import.scm
+chicken.repl.import.c
chicken.tcp.import.scm
chicken.tcp.import.c
chicken.utils.import.scm
@@ -340,6 +344,7 @@ manual-html/Unit lolevel.html
manual-html/Unit ports.html
manual-html/Unit posix.html
manual-html/Unit irregex.html
+manual-html/Unit repl.html
manual-html/Unit srfi-4.html
manual-html/Unit tcp.html
manual-html/Unit utils.html
diff --git a/eval.scm b/eval.scm
index ca1dbe79..a9b090ad 100644
--- a/eval.scm
+++ b/eval.scm
@@ -28,9 +28,7 @@
(declare
(unit eval)
(uses expand internal modules)
- (not inline ##sys#repl-read-hook ##sys#repl-print-hook
- ##sys#read-prompt-hook ##sys#alias-global-hook ##sys#user-read-hook
- ##sys#syntax-error-hook))
+ (not inline ##sys#alias-global-hook ##sys#user-read-hook ##sys#syntax-error-hook))
#>
#ifndef C_INSTALL_EGG_HOME
@@ -53,7 +51,7 @@
eval eval-handler extension-information
load load-library load-noisily load-relative load-verbose
interaction-environment null-environment scheme-report-environment
- repl repl-prompt require repository-path set-dynamic-load-mode!)
+ require repository-path set-dynamic-load-mode!)
;; Exclude values defined within this module.
(import (except scheme eval load interaction-environment null-environment scheme-report-environment))
@@ -88,6 +86,7 @@
(chicken.ports . ports)
(chicken.posix . posix)
(chicken.tcp . tcp)
+ (chicken.repl . repl)
(chicken.utils . utils)))
(define-constant core-library-units
@@ -1385,7 +1384,7 @@
(##sys#error
'null-environment
"unsupported null environment version" n) )))))
-
+
;;; Find included file:
@@ -1427,150 +1426,6 @@
(else (loop (##sys#slot paths 1))) ) ) ) ) ) )
-;;;; Read-Eval-Print loop:
-
-(define ##sys#repl-print-length-limit #f)
-(define ##sys#repl-read-hook #f)
-(define ##sys#repl-recent-call-chain #f) ; used in csi for ,c command
-
-(define (##sys#repl-print-hook x port)
- (##sys#with-print-length-limit ##sys#repl-print-length-limit (cut ##sys#print x #t port))
- (##sys#write-char-0 #\newline port) )
-
-(define repl-prompt (make-parameter (lambda () "#;> ")))
-
-(define ##sys#read-prompt-hook
- (let ([repl-prompt repl-prompt])
- (lambda ()
- (##sys#print ((repl-prompt)) #f ##sys#standard-output)
- (##sys#flush-output ##sys#standard-output) ) ) )
-
-(define ##sys#clear-trace-buffer (foreign-lambda void "C_clear_trace_buffer"))
-(define (##sys#resize-trace-buffer i)
- (##sys#check-fixnum i)
- (##core#inline "C_resize_trace_buffer" i))
-
-(define repl
- (let ((eval eval)
- (read read)
- (call-with-current-continuation call-with-current-continuation)
- (string-append string-append))
- (lambda (#!optional (evaluator eval))
-
- (define (write-err xs)
- (for-each (cut ##sys#repl-print-hook <> ##sys#standard-error) xs) )
-
- (define (write-results xs)
- (cond ((null? xs)
- (##sys#print "; no values\n" #f ##sys#standard-output))
- ((not (eq? (##core#undefined) (car xs)))
- (for-each (cut ##sys#repl-print-hook <> ##sys#standard-output) xs)
- (when (pair? (cdr xs))
- (##sys#print
- (string-append "; " (##sys#number->string (length xs)) " values\n")
- #f ##sys#standard-output)))))
-
- (let ((stdin ##sys#standard-input)
- (stdout ##sys#standard-output)
- (stderr ##sys#standard-error)
- (ehandler (##sys#error-handler))
- (rhandler (##sys#reset-handler))
- (lv #f)
- (qh ##sys#quit-hook)
- (uie ##sys#unbound-in-eval) )
-
- (define (saveports)
- (set! stdin ##sys#standard-input)
- (set! stdout ##sys#standard-output)
- (set! stderr ##sys#standard-error) )
-
- (define (resetports)
- (set! ##sys#standard-input stdin)
- (set! ##sys#standard-output stdout)
- (set! ##sys#standard-error stderr) )
-
- (call-with-current-continuation
- (lambda (k)
- (##sys#dynamic-wind
- (lambda ()
- (set! lv (load-verbose))
- (set! ##sys#quit-hook (lambda (result) (k result)))
- (load-verbose #t)
- (##sys#error-handler
- (lambda (msg . args)
- (resetports)
- (##sys#print "\nError" #f ##sys#standard-error)
- (when msg
- (##sys#print ": " #f ##sys#standard-error)
- (##sys#print msg #f ##sys#standard-error) )
- (if (and (pair? args) (null? (cdr args)))
- (begin
- (##sys#print ": " #f ##sys#standard-error)
- (write-err args) )
- (begin
- (##sys#write-char-0 #\newline ##sys#standard-error)
- (write-err args) ) )
- (set! ##sys#repl-recent-call-chain
- (or (and-let* ((lexn ##sys#last-exception) ;XXX not really right
- ((##sys#structure? lexn 'condition))
- (a (member '(exn . call-chain) (##sys#slot lexn 2))))
- (let ((ct (cadr a)))
- (##sys#really-print-call-chain
- ##sys#standard-error ct
- "\n\tCall history:\n")
- ct))
- (print-call-chain ##sys#standard-error)))
- (flush-output ##sys#standard-error) ) ) )
- (lambda ()
- (let loop ()
- (saveports)
- (call-with-current-continuation
- (lambda (c)
- (##sys#reset-handler
- (lambda ()
- (set! ##sys#read-error-with-line-number #f)
- (set! ##sys#enable-qualifiers #t)
- (resetports)
- (c #f) ) ) ) )
- (##sys#read-prompt-hook)
- (let ([exp ((or ##sys#repl-read-hook read))])
- (unless (eof-object? exp)
- (when (eq? #\newline (##sys#peek-char-0 ##sys#standard-input))
- (##sys#read-char-0 ##sys#standard-input) )
- (##sys#clear-trace-buffer)
- (set! ##sys#unbound-in-eval '())
- (receive result (evaluator exp)
- (when (and ##sys#warnings-enabled (pair? ##sys#unbound-in-eval))
- (let loop ((vars ##sys#unbound-in-eval) (u '()))
- (cond ((null? vars)
- (when (pair? u)
- (##sys#notice
- "the following toplevel variables are referenced but unbound:\n")
- (for-each
- (lambda (v)
- (##sys#print " " #f ##sys#standard-error)
- (##sys#print (car v) #t ##sys#standard-error)
- (when (cdr v)
- (##sys#print " (in " #f ##sys#standard-error)
- (##sys#print (cdr v) #t ##sys#standard-error)
- (##sys#write-char-0 #\) ##sys#standard-error) )
- (##sys#write-char-0 #\newline ##sys#standard-error) )
- u)
- (##sys#flush-output ##sys#standard-error)))
- ((or (memq (caar vars) u)
- (##sys#symbol-has-toplevel-binding? (caar vars)) )
- (loop (cdr vars) u) )
- (else (loop (cdr vars) (cons (car vars) u))) ) 9 ) )
- (write-results result)
- (loop) ) ) ) ) )
- (lambda ()
- (load-verbose lv)
- (set! ##sys#quit-hook qh)
- (set! ##sys#unbound-in-eval uie)
- (##sys#error-handler ehandler)
- (##sys#reset-handler rhandler) ) ) ) ) ) ) ))
-
-
;;; SRFI-10:
(define sharp-comma-reader-ctors (make-vector 301 '()))
diff --git a/library.scm b/library.scm
index 643d0d47..2f35b7af 100644
--- a/library.scm
+++ b/library.scm
@@ -4637,8 +4637,8 @@ EOF
args) ] )
(##sys#print #\newline #f ##sys#standard-error)
(print-call-chain ##sys#standard-error)
- (when (and ##sys#break-on-error (##sys#symbol-has-toplevel-binding? 'repl))
- (repl)
+ (when (and ##sys#break-on-error (##sys#symbol-has-toplevel-binding? 'chicken.repl#repl))
+ (chicken.repl#repl)
(##sys#print #\newline #f ##sys#standard-error)
(##core#inline "C_exit_runtime" _ex_software) )
(##core#inline "C_halt" #f) )
diff --git a/manual/Supported language b/manual/Supported language
index fd98439d..0c5eadfe 100644
--- a/manual/Supported language
+++ b/manual/Supported language
@@ -15,6 +15,7 @@
* [[Exceptions]]
* [[Unit library]] Basic Scheme definitions
* [[Unit eval]] Evaluation
+* [[Unit repl]] Read-print-eval loop
* [[Unit expand]] Modules and macros handling
* [[Unit data-structures]] Data structures
* [[Unit ports]] I/O ports
diff --git a/manual/Unit eval b/manual/Unit eval
index e61a3f95..4b61e775 100644
--- a/manual/Unit eval
+++ b/manual/Unit eval
@@ -182,4 +182,4 @@ before calling {{eval}}.
---
Previous: [[Unit library]]
-Next: [[Unit expand]]
+Next: [[Unit repl]]
diff --git a/manual/Unit repl b/manual/Unit repl
new file mode 100644
index 00000000..19bd50de
--- /dev/null
+++ b/manual/Unit repl
@@ -0,0 +1,27 @@
+[[tags: manual]]
+[[toc:]]
+
+== Unit repl
+
+This unit provides CHICKEN's read-print-eval loop.
+
+
+=== repl
+
+<procedure>(repl [EVALUATOR])</procedure>
+
+Start a new read-eval-print loop. Sets the {{reset-handler}} so that
+any invocation of {{reset}} restarts the read-eval-print loop. Also
+changes the current exception-handler to display a message, write
+any arguments to the value of {{(current-error-port)}} and reset.
+
+If {{EVALUATOR}} is given, it should be a procedure of one argument that
+is used in place of {{eval}} to evaluate each entered expression.
+
+You can use {{quit}} to terminate the current read-eval-print loop.
+
+
+---
+Previous: [[Unit eval]]
+
+Next: [[Unit expand]]
diff --git a/modules.scm b/modules.scm
index 1bdbaf48..9f906453 100644
--- a/modules.scm
+++ b/modules.scm
@@ -940,6 +940,7 @@
(##sys#register-module-alias 'lolevel 'chicken.lolevel)
(##sys#register-module-alias 'ports 'chicken.ports)
(##sys#register-module-alias 'posix 'chicken.posix)
+(##sys#register-module-alias 'repl 'chicken.repl)
(##sys#register-module-alias 'tcp 'chicken.tcp)
(##sys#register-module-alias 'utils 'chicken.utils)
diff --git a/repl.scm b/repl.scm
new file mode 100644
index 00000000..393ea0ab
--- /dev/null
+++ b/repl.scm
@@ -0,0 +1,182 @@
+;;;; repl.scm - CHICKEN's read/eval/print loop
+;
+; Copyright (c) 2008-2016, The CHICKEN Team
+; Copyright (c) 2000-2007, Felix L. Winkelmann
+; All rights reserved.
+;
+; Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
+; conditions are met:
+;
+; Redistributions of source code must retain the above copyright notice, this list of conditions and the following
+; disclaimer.
+; Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
+; disclaimer in the documentation and/or other materials provided with the distribution.
+; Neither the name of the author nor the names of its contributors may be used to endorse or promote
+; products derived from this software without specific prior written permission.
+;
+; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+; AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
+; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+; POSSIBILITY OF SUCH DAMAGE.
+
+(declare
+ (unit repl)
+ (uses eval)
+ (not inline ##sys#repl-read-hook ##sys#repl-print-hook ##sys#read-prompt-hook))
+
+(module chicken.repl
+ (repl repl-prompt)
+
+(import scheme
+ chicken
+ chicken.eval
+ chicken.foreign)
+
+(include "common-declarations.scm")
+
+(define ##sys#repl-print-length-limit #f)
+(define ##sys#repl-read-hook #f)
+(define ##sys#repl-recent-call-chain #f) ; used in csi for ,c command
+
+(define (##sys#repl-print-hook x port)
+ (##sys#with-print-length-limit ##sys#repl-print-length-limit (cut ##sys#print x #t port))
+ (##sys#write-char-0 #\newline port))
+
+(define repl-prompt
+ (make-parameter (lambda () "#;> ")))
+
+(define ##sys#read-prompt-hook
+ (let ((repl-prompt repl-prompt))
+ (lambda ()
+ (##sys#print ((repl-prompt)) #f ##sys#standard-output)
+ (##sys#flush-output ##sys#standard-output))))
+
+(define (##sys#resize-trace-buffer i)
+ (##sys#check-fixnum i)
+ (##core#inline "C_resize_trace_buffer" i))
+
+(define repl
+ (let ((eval eval)
+ (read read)
+ (call-with-current-continuation call-with-current-continuation)
+ (string-append string-append))
+ (lambda (#!optional (evaluator eval))
+
+ (define (write-err xs)
+ (for-each (cut ##sys#repl-print-hook <> ##sys#standard-error) xs))
+
+ (define (write-results xs)
+ (cond ((null? xs)
+ (##sys#print "; no values\n" #f ##sys#standard-output))
+ ((not (eq? (##core#undefined) (car xs)))
+ (for-each (cut ##sys#repl-print-hook <> ##sys#standard-output) xs)
+ (when (pair? (cdr xs))
+ (##sys#print
+ (string-append "; " (##sys#number->string (length xs)) " values\n")
+ #f ##sys#standard-output)))))
+
+ (let ((stdin ##sys#standard-input)
+ (stdout ##sys#standard-output)
+ (stderr ##sys#standard-error)
+ (ehandler (##sys#error-handler))
+ (rhandler (##sys#reset-handler))
+ (lv #f)
+ (qh ##sys#quit-hook)
+ (uie ##sys#unbound-in-eval))
+
+ (define (saveports)
+ (set! stdin ##sys#standard-input)
+ (set! stdout ##sys#standard-output)
+ (set! stderr ##sys#standard-error))
+
+ (define (resetports)
+ (set! ##sys#standard-input stdin)
+ (set! ##sys#standard-output stdout)
+ (set! ##sys#standard-error stderr))
+
+ (call-with-current-continuation
+ (lambda (k)
+ (##sys#dynamic-wind
+ (lambda ()
+ (set! lv (load-verbose))
+ (set! ##sys#quit-hook (lambda (result) (k result)))
+ (load-verbose #t)
+ (##sys#error-handler
+ (lambda (msg . args)
+ (resetports)
+ (##sys#print "\nError" #f ##sys#standard-error)
+ (when msg
+ (##sys#print ": " #f ##sys#standard-error)
+ (##sys#print msg #f ##sys#standard-error))
+ (if (and (pair? args) (null? (cdr args)))
+ (begin
+ (##sys#print ": " #f ##sys#standard-error)
+ (write-err args))
+ (begin
+ (##sys#write-char-0 #\newline ##sys#standard-error)
+ (write-err args)))
+ (set! ##sys#repl-recent-call-chain
+ (or (and-let* ((lexn ##sys#last-exception) ;XXX not really right
+ ((##sys#structure? lexn 'condition))
+ (a (member '(exn . call-chain) (##sys#slot lexn 2))))
+ (let ((ct (cadr a)))
+ (##sys#really-print-call-chain
+ ##sys#standard-error ct
+ "\n\tCall history:\n")
+ ct))
+ (print-call-chain ##sys#standard-error)))
+ (flush-output ##sys#standard-error))))
+ (lambda ()
+ (let loop ()
+ (saveports)
+ (call-with-current-continuation
+ (lambda (c)
+ (##sys#reset-handler
+ (lambda ()
+ (set! ##sys#read-error-with-line-number #f)
+ (set! ##sys#enable-qualifiers #t)
+ (resetports)
+ (c #f)))))
+ (##sys#read-prompt-hook)
+ (let ((exp ((or ##sys#repl-read-hook read))))
+ (unless (eof-object? exp)
+ (when (eq? #\newline (##sys#peek-char-0 ##sys#standard-input))
+ (##sys#read-char-0 ##sys#standard-input))
+ (foreign-code "C_clear_trace_buffer();")
+ (set! ##sys#unbound-in-eval '())
+ (receive result (evaluator exp)
+ (when (and ##sys#warnings-enabled (pair? ##sys#unbound-in-eval))
+ (let loop ((vars ##sys#unbound-in-eval)
+ (u '()))
+ (cond ((null? vars)
+ (when (pair? u)
+ (##sys#notice
+ "the following toplevel variables are referenced but unbound:\n")
+ (for-each
+ (lambda (v)
+ (##sys#print " " #f ##sys#standard-error)
+ (##sys#print (car v) #t ##sys#standard-error)
+ (when (cdr v)
+ (##sys#print " (in " #f ##sys#standard-error)
+ (##sys#print (cdr v) #t ##sys#standard-error)
+ (##sys#write-char-0 #\) ##sys#standard-error))
+ (##sys#write-char-0 #\newline ##sys#standard-error))
+ u)
+ (##sys#flush-output ##sys#standard-error)))
+ ((or (memq (caar vars) u)
+ (##sys#symbol-has-toplevel-binding? (caar vars)))
+ (loop (cdr vars) u))
+ (else (loop (cdr vars) (cons (car vars) u)))) 9))
+ (write-results result)
+ (loop))))))
+ (lambda ()
+ (load-verbose lv)
+ (set! ##sys#quit-hook qh)
+ (set! ##sys#unbound-in-eval uie)
+ (##sys#error-handler ehandler)
+ (##sys#reset-handler rhandler))))))))))
diff --git a/rules.make b/rules.make
index 3a0e08d8..ad8b8d02 100644
--- a/rules.make
+++ b/rules.make
@@ -36,7 +36,7 @@ VPATH=$(SRCDIR)
SETUP_API_OBJECTS_1 = setup-api setup-download
LIBCHICKEN_SCHEME_OBJECTS_1 = \
- library eval data-structures ports files extras lolevel utils tcp srfi-4 \
+ library eval repl data-structures ports files extras lolevel utils tcp srfi-4 \
$(POSIXFILE) internal irregex scheduler debugger-client \
profiler stub expand modules chicken-syntax chicken-ffi-syntax build-version
LIBCHICKEN_OBJECTS_1 = $(LIBCHICKEN_SCHEME_OBJECTS_1) runtime
@@ -677,6 +677,8 @@ eval.c: eval.scm \
chicken.expand.import.scm \
chicken.foreign.import.scm \
chicken.internal.import.scm
+repl.c: repl.scm \
+ chicken.eval.import.scm
files.c: files.scm \
chicken.data-structures.import.scm \
chicken.extras.import.scm \
@@ -709,6 +711,8 @@ internal.c: $(SRCDIR)internal.scm $(SRCDIR)mini-srfi-1.scm
$(bootstrap-lib) -emit-import-library chicken.internal
eval.c: $(SRCDIR)eval.scm $(SRCDIR)common-declarations.scm $(SRCDIR)mini-srfi-1.scm
$(bootstrap-lib) -emit-import-library chicken.eval
+repl.c: $(SRCDIR)repl.scm $(SRCDIR)common-declarations.scm
+ $(bootstrap-lib) -emit-import-library chicken.repl
expand.c: $(SRCDIR)expand.scm $(SRCDIR)synrules.scm $(SRCDIR)common-declarations.scm
$(bootstrap-lib) -emit-import-library chicken.expand
modules.c: $(SRCDIR)modules.scm $(SRCDIR)common-declarations.scm $(SRCDIR)mini-srfi-1.scm
diff --git a/tests/runtests.sh b/tests/runtests.sh
index 84fa95aa..4756fafe 100755
--- a/tests/runtests.sh
+++ b/tests/runtests.sh
@@ -35,18 +35,24 @@ mkdir -p test-repository
# copy files into test-repository (by hand to avoid calling `chicken-install'):
-for x in setup-api.so setup-api.import.so setup-download.so \
- setup-download.import.so chicken.import.so chicken.lolevel.import.so \
- srfi-4.import.so chicken.data-structures.import.so \
- chicken.ports.import.so chicken.utils.import.so chicken.files.import.so \
- chicken.posix.import.so \
- chicken.extras.import.so \
- chicken.internal.import.so \
- chicken.irregex.import.so \
- chicken.tcp.import.so \
- chicken.foreign.import.so \
- csi.import.so types.db; do
- cp ../$x test-repository
+for x in \
+ chicken.import.so csi.import.so types.db \
+ setup-api.so setup-api.import.so srfi-4.import.so \
+ setup-download.so setup-download.import.so \
+ chicken.data-structures.import.so \
+ chicken.extras.import.so \
+ chicken.files.import.so \
+ chicken.foreign.import.so \
+ chicken.internal.import.so \
+ chicken.irregex.import.so \
+ chicken.lolevel.import.so \
+ chicken.ports.import.so \
+ chicken.posix.import.so \
+ chicken.repl.import.so \
+ chicken.tcp.import.so \
+ chicken.utils.import.so
+do
+ cp ../$x test-repository
done
CHICKEN_REPOSITORY=${TEST_DIR}/test-repository
diff --git a/types.db b/types.db
index c8accdc3..dad70c1b 100644
--- a/types.db
+++ b/types.db
@@ -1236,8 +1236,6 @@
(register-feature! (#(procedure #:clean #:enforce) register-feature! (#!rest symbol) undefined))
(remprop! (#(procedure #:clean #:enforce) remprop! (symbol symbol) undefined))
(rename-file (#(procedure #:clean #:enforce) rename-file (string string) string))
-(chicken.eval#repl (#(procedure #:enforce) chicken.eval#repl (#!optional (procedure (*) . *)) undefined))
-(chicken.eval#repl-prompt (#(procedure #:clean #:enforce) chicken.eval#repl-prompt (#!optional (procedure () string)) procedure))
(chicken.eval#repository-path (#(procedure #:clean) chicken.eval#repository-path (#!optional *) *))
(chicken.eval#require (#(procedure #:clean) chicken.eval#require (#!rest (or string symbol)) undefined))
(reset (procedure reset () noreturn))
@@ -1247,6 +1245,9 @@
(set-finalizer! (#(procedure #:clean #:enforce) set-finalizer! (* (procedure (*) . *)) *))
(set-gc-report! (#(procedure #:clean) set-gc-report! (*) undefined))
+(chicken.repl#repl (#(procedure #:enforce) chicken.repl#repl (#!optional (procedure (*) . *)) undefined))
+(chicken.repl#repl-prompt (#(procedure #:clean #:enforce) chicken.repl#repl-prompt (#!optional (procedure () string)) procedure))
+
(set-parameterized-read-syntax!
(#(procedure #:clean #:enforce) set-parameterized-read-syntax!
(char (or false (procedure (input-port fixnum) . *)))
Trap