repl compiles with warnings by default
authorAndy Wingo <wingo@pobox.com>
Sat, 19 Jun 2010 18:07:29 +0000 (20:07 +0200)
committerAndy Wingo <wingo@pobox.com>
Sat, 19 Jun 2010 18:21:22 +0000 (20:21 +0200)
* 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
module/system/repl/common.scm

index f3b0d1b..9e79eb7 100644 (file)
@@ -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)))))
 
index 1b4e2ac..bc3fcaf 100644 (file)
@@ -102,7 +102,8 @@ See <http://www.gnu.org/licenses/lgpl.html>, for more details.")
 (define-record/keywords <repl> 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 <http://www.gnu.org/licenses/lgpl.html>, 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 <http://www.gnu.org/licenses/lgpl.html>, 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)