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 e66e61040d
commit 65c4ca03b8
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 ;; triggers for code evaluated at the top-level, for example from the
;; REPL or when loading a file. ;; REPL or when loading a file.
(define-macro (eval-case exp env) (define-macro (eval-case . exp)
`(begin (let ((env #t)) ; XXX TODO: get current-env from eval-apply
(define (toplevel-env? env) `(begin
(or (not (pair? env)) (not (pair? (car env))))) (define (toplevel-env? env)
(define (syntax) (or (not (pair? env)) (not (pair? (car env)))))
(error "syntax error in eval-case")) (define (syntax)
(let loop ((clauses (cdr ',exp))) (error "syntax error in eval-case"))
(cond (let loop ((clauses ',exp))
((null? clauses) (cond
#f) ((null? clauses)
((not (list? (car clauses))) #f)
(syntax)) ((not (list? (car clauses)))
((eq? 'else (caar clauses)) (syntax))
(or (null? (cdr clauses)) ((eq? 'else (caar clauses))
(syntax)) (or (null? (cdr clauses))
(cons 'begin (cdar clauses))) (syntax))
((not (list? (caar clauses))) (cons 'begin (cdar clauses)))
(syntax)) ((not (list? (caar clauses)))
((and (toplevel-env? ,env) (syntax))
(memq 'load-toplevel (caar clauses))) ((and (toplevel-env? ,env)
(cons 'begin (cdar clauses))) (memq 'load-toplevel (caar clauses)))
(else (cons 'begin (cdar clauses)))
(loop (cdr clauses))))))) (else
(loop (cdr clauses))))))))
@ -2005,10 +2006,14 @@
(force-output cep) (force-output cep)
(throw 'abort key))) (throw 'abort key)))
(define core:exit exit)
(define (quit . args) (define (quit . args)
(apply throw '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 () ;;(define has-shown-backtrace-hint? #f) Defined by scm_init_backtrace ()
@ -2282,7 +2287,7 @@
compiled-args) compiled-args)
(cddr args)))))) (cddr args))))))
;; (defmacro define-module args ;; (define-macro (define-module . args)
;; `(eval-case ;; `(eval-case
;; ((load-toplevel) ;; ((load-toplevel)
;; (let ((m (process-define-module ;; (let ((m (process-define-module
@ -2469,6 +2474,9 @@
;; (else ;; (else
;; (error "re-export can only be used at the top level")))) ;; (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 ;; (defmacro export-syntax names
;; `(export ,@names)) ;; `(export ,@names))