Per Felix and Peter's recent proposal.

Cheers,

Evan
>From f71c345c32a965d98b103e70e68981848aef16dc Mon Sep 17 00:00:00 2001
From: Evan Hanson <ev...@foldling.org>
Date: Wed, 26 Jul 2017 08:17:47 +1200
Subject: [PATCH] Move `quit' into (chicken repl)

---
 chicken.import.scm |  1 -
 library.scm        |  2 --
 repl.scm           | 11 +++++++----
 types.db           |  3 +--
 4 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/chicken.import.scm b/chicken.import.scm
index 7b0600a4..4b1da7ae 100644
--- a/chicken.import.scm
+++ b/chicken.import.scm
@@ -161,7 +161,6 @@
    program-name
    promise?
    put!
-   quit
    quotient&modulo
    quotient&remainder
    ratnum?
diff --git a/library.scm b/library.scm
index 7f0d60ad..6a00479e 100644
--- a/library.scm
+++ b/library.scm
@@ -238,8 +238,6 @@ EOF
 
 (define (exit #!optional (code 0)) ((##sys#exit-handler) code))
 (define (reset) ((##sys#reset-handler)))
-(define (##sys#quit-hook result) ((##sys#exit-handler) 0))
-(define (quit #!optional result) (##sys#quit-hook result))
 (define (##sys#debug-mode?) (##core#inline "C_i_debug_modep"))
 
 (define (error . args)
diff --git a/repl.scm b/repl.scm
index 980cc4b4..66383dc5 100644
--- a/repl.scm
+++ b/repl.scm
@@ -30,7 +30,7 @@
   (not inline ##sys#repl-read-hook ##sys#repl-print-hook ##sys#read-prompt-hook))
 
 (module chicken.repl
-  (repl repl-prompt)
+  (quit repl repl-prompt)
 
 (import scheme
 	chicken
@@ -47,6 +47,9 @@
   (##sys#with-print-length-limit ##sys#repl-print-length-limit (cut ##sys#print x #t port))
   (##sys#write-char-0 #\newline port))
 
+(define (quit-hook result) (exit))
+(define (quit #!optional result) (quit-hook result))
+
 (define repl-prompt
   (make-parameter (lambda () "#;> ")))
 
@@ -86,7 +89,7 @@
 	    (ehandler (##sys#error-handler))
 	    (rhandler (##sys#reset-handler))
 	    (lv #f)
-	    (qh ##sys#quit-hook)
+	    (qh quit-hook)
 	    (uie ##sys#unbound-in-eval))
 
 	(define (saveports)
@@ -104,7 +107,7 @@
 	   (##sys#dynamic-wind
 	    (lambda ()
 	      (set! lv (load-verbose))
-	      (set! ##sys#quit-hook (lambda (result) (k result)))
+	      (set! quit-hook (lambda (result) (k result)))
 	      (load-verbose #t)
 	      (##sys#error-handler
 	       (lambda (msg . args)
@@ -176,7 +179,7 @@
 		      (loop))))))
 	    (lambda ()
 	      (load-verbose lv)
-	      (set! ##sys#quit-hook qh)
+	      (set! quit-hook qh)
 	      (set! ##sys#unbound-in-eval uie)
 	      (##sys#error-handler ehandler)
 	      (##sys#reset-handler rhandler))))))))))
diff --git a/types.db b/types.db
index 2b2fb1cc..6e403d25 100644
--- a/types.db
+++ b/types.db
@@ -1288,8 +1288,6 @@
       ((symbol symbol *)
        (##core#inline_allocate ("C_a_i_putprop" 8) #(1) #(2) #(3))))
 
-(quit (procedure quit (#!optional *) noreturn))
-
 (remprop! (#(procedure #:clean #:enforce) remprop! (symbol symbol) undefined))
 (rename-file (#(procedure #:clean #:enforce) rename-file (string string) string))
 (reset (procedure reset () noreturn))
@@ -1307,6 +1305,7 @@
 
 (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))
+(chicken.repl#quit (procedure chicken.repl#quit (#!optional *) noreturn))
 
 (set-port-name! (#(procedure #:clean #:enforce) set-port-name! (port string) undefined)
 		((port string) (##sys#setslot #(1) '3 #(2))))
-- 
2.11.0

_______________________________________________
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to