mes: boot-6: Do not redefine exit as quit.

* mes/module/mes/boot-6.mes (exit): Remove redefinition.
This commit is contained in:
Jan (janneke) Nieuwenhuizen 2020-12-30 11:51:19 +01:00
parent 1897f3a39d
commit e816da9ec3
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
1 changed files with 33 additions and 25 deletions

View File

@ -205,29 +205,30 @@
;; triggers for code evaluated at the top-level, for example from the
;; REPL or when loading a file.
(define-macro (eval-case exp env)
`(begin
(define (toplevel-env? env)
(or (not (pair? env)) (not (pair? (car env)))))
(define (syntax)
(error "syntax error in eval-case"))
(let loop ((clauses (cdr ',exp)))
(cond
((null? clauses)
#f)
((not (list? (car clauses)))
(syntax))
((eq? 'else (caar clauses))
(or (null? (cdr clauses))
(syntax))
(cons 'begin (cdar clauses)))
((not (list? (caar clauses)))
(syntax))
((and (toplevel-env? ,env)
(memq 'load-toplevel (caar clauses)))
(cons 'begin (cdar clauses)))
(else
(loop (cdr clauses)))))))
(define-macro (eval-case . exp)
(let ((env #t)) ; XXX TODO: get current-env from eval-apply
`(begin
(define (toplevel-env? env)
(or (not (pair? env)) (not (pair? (car env)))))
(define (syntax)
(error "syntax error in eval-case"))
(let loop ((clauses ',exp))
(cond
((null? clauses)
#f)
((not (list? (car clauses)))
(syntax))
((eq? 'else (caar clauses))
(or (null? (cdr clauses))
(syntax))
(cons 'begin (cdar clauses)))
((not (list? (caar clauses)))
(syntax))
((and (toplevel-env? ,env)
(memq 'load-toplevel (caar clauses)))
(cons 'begin (cdar clauses)))
(else
(loop (cdr clauses))))))))
@ -2005,10 +2006,14 @@
(force-output cep)
(throw 'abort key)))
(define core:exit exit)
(define (quit . args)
(apply throw 'quit args))
(define exit quit)
;; FIXME: how does Guile exit 0?
;; this gives
;; unhandled exception: error: (("option must be specified with argument:" "main"))
;;(define exit quit)
;;(define has-shown-backtrace-hint? #f) Defined by scm_init_backtrace ()
@ -2282,7 +2287,7 @@
compiled-args)
(cddr args))))))
;; (defmacro define-module args
;; (define-macro (define-module . args)
;; `(eval-case
;; ((load-toplevel)
;; (let ((m (process-define-module
@ -2469,6 +2474,9 @@
;; (else
;; (error "re-export can only be used at the top level"))))
(define-macro (re-export . names)
`(module-re-export! (guile:current-module) ',names))
;; (defmacro export-syntax names
;; `(export ,@names))