Hi all,

The attached patch completes (chicken repl) as per the proposal Felix
and I sent to chicken-hackers a while ago.

Cheers,
Peter
From 3b66ad41b5caa4a60702e907434e06627d09d2b9 Mon Sep 17 00:00:00 2001
From: Peter Bex <pe...@more-magic.net>
Date: Sun, 13 Aug 2017 13:13:38 +0200
Subject: [PATCH] Move reset and reset-handler to (chicken repl)

---
 chicken.import.scm |  2 --
 library.scm        | 11 ++++-------
 repl.scm           |  5 ++++-
 types.db           |  4 ++--
 4 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/chicken.import.scm b/chicken.import.scm
index a812d0d9..b59dcfe7 100644
--- a/chicken.import.scm
+++ b/chicken.import.scm
@@ -159,8 +159,6 @@
    rename-file
    (repository-path . chicken.platform#repository-path)
    (require . chicken.load#require)
-   reset
-   reset-handler
    return-to-host
    reverse-list->string
    set-port-name!
diff --git a/library.scm b/library.scm
index 07bebe1f..4f8d7c83 100644
--- a/library.scm
+++ b/library.scm
@@ -237,7 +237,6 @@ EOF
 ;;; System routines:
 
 (define (exit #!optional (code 0)) ((##sys#exit-handler) code))
-(define (reset) ((##sys#reset-handler)))
 (define (##sys#debug-mode?) (##core#inline "C_i_debug_modep"))
 
 (define (error . args)
@@ -4455,11 +4454,6 @@ EOF
 
 ;;; Default handlers
 
-(define reset-handler 
-  (make-parameter 
-   (lambda ()
-     ((##sys#exit-handler) _ex_software)) ) )
-
 (define exit-in-progress #f)
 
 (define exit-handler
@@ -4478,8 +4472,11 @@ EOF
      (##sys#cleanup-before-exit) ) ) )
 
 (define ##sys#exit-handler exit-handler)
-(define ##sys#reset-handler reset-handler)
 (define ##sys#implicit-exit-handler implicit-exit-handler)
+(define ##sys#reset-handler ; Exposed by chicken.repl
+  (make-parameter
+   (lambda ()
+     ((##sys#exit-handler) _ex_software))))
 
 (define force-finalizers (make-parameter #t))
 
diff --git a/repl.scm b/repl.scm
index 66383dc5..b86da83a 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
-  (quit repl repl-prompt)
+  (quit repl repl-prompt reset reset-handler)
 
 (import scheme
 	chicken
@@ -50,6 +50,9 @@
 (define (quit-hook result) (exit))
 (define (quit #!optional result) (quit-hook result))
 
+(define reset-handler ##sys#reset-handler)
+(define (reset) ((reset-handler)))
+
 (define repl-prompt
   (make-parameter (lambda () "#;> ")))
 
diff --git a/types.db b/types.db
index e62c82db..be42b13b 100644
--- a/types.db
+++ b/types.db
@@ -1293,8 +1293,6 @@
               (((struct promise)) #(1)))
 
 (rename-file (#(procedure #:clean #:enforce) rename-file (string string) string))
-(reset (procedure reset () noreturn))
-(reset-handler (#(procedure #:clean #:enforce) reset-handler (#!optional (procedure () . *)) procedure))
 (return-to-host (procedure return-to-host () . *))
 (reverse-list->string (#(procedure #:clean #:enforce) reverse-list->string ((list-of char)) string))
 
@@ -1308,6 +1306,8 @@
 
 (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#reset (procedure chicken.repl#reset () noreturn))
+(chicken.repl#reset-handler (#(procedure #:clean #:enforce) chicken.repl#reset-handler (#!optional (procedure () . *)) procedure))
 (chicken.repl#quit (procedure chicken.repl#quit (#!optional *) noreturn))
 
 (set-port-name! (#(procedure #:clean #:enforce) set-port-name! (port string) undefined)
-- 
2.11.0

Attachment: signature.asc
Description: PGP signature

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

Reply via email to