;;; 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)))))
(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)
((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))))
(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)