From 35d70eccaca513c49cac29ca8b46262be725644a Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Sat, 19 Jun 2010 20:07:29 +0200 Subject: [PATCH] repl compiles with warnings by default * module/system/repl/command.scm (compile): Remove the bitrotten options. * module/system/repl/common.scm (repl-default-options): Add 'compile-options option. (repl-compile-options): Accessor for compile-options. (repl-compile): Use repl-compile-options. (repl-eval): Adapt to repl-compile interface change. --- module/system/repl/command.scm | 13 +++---------- module/system/repl/common.scm | 20 +++++++++++--------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/module/system/repl/command.scm b/module/system/repl/command.scm index f3b0d1bbf..9e79eb7f0 100644 --- a/module/system/repl/command.scm +++ b/module/system/repl/command.scm @@ -333,17 +333,10 @@ Change languages." ;;; Compile commands ;;; -(define-meta-command (compile repl (form) . opts) +(define-meta-command (compile repl (form)) "compile FORM -Generate compiled code. - - -e Stop after expanding syntax/macro - -t Stop after translating into GHIL - -c Stop after generating GLIL - - -O Enable optimization - -D Add debug information" - (let ((x (apply repl-compile repl (repl-parse repl form) opts))) +Generate compiled code." + (let ((x (repl-compile repl (repl-parse repl form)))) (cond ((objcode? x) (guile:disassemble x)) (else (repl-print repl x))))) diff --git a/module/system/repl/common.scm b/module/system/repl/common.scm index 1b4e2aca0..bc3fcaf69 100644 --- a/module/system/repl/common.scm +++ b/module/system/repl/common.scm @@ -102,7 +102,8 @@ See , for more details.") (define-record/keywords language options tm-stats gc-stats) (define repl-default-options - '((trace . #f) + '((compile-options . (#:warnings (unbound-variable arity-mismatch))) + (trace . #f) (interp . #f))) (define %make-repl make-repl) @@ -132,13 +133,14 @@ See , for more details.") ((language-reader (repl-language repl)) (current-input-port) (current-module))) -(define (repl-compile repl form . opts) - (let ((to (lookup-language (cond ((memq #:e opts) 'scheme) - ((memq #:t opts) 'ghil) - ((memq #:c opts) 'glil) - (else 'objcode)))) - (from (repl-language repl))) - (compile form #:from from #:to to #:opts opts #:env (current-module)))) +(define (repl-compile-options repl) + (repl-option-ref repl 'compile-options)) + +(define (repl-compile repl form) + (let ((from (repl-language repl)) + (opts (repl-compile-options repl))) + (compile form #:from from #:to 'objcode #:opts opts + #:env (current-module)))) (define (repl-parse repl form) (let ((parser (language-parser (repl-language repl)))) @@ -150,7 +152,7 @@ See , for more details.") (or (null? (language-compilers (repl-language repl))) (assq-ref (repl-options repl) 'interp))) (lambda () (eval form (current-module))) - (make-program (repl-compile repl form '()))))) + (make-program (repl-compile repl form))))) (% (thunk)))) (define (repl-print repl val)