~ 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