summaryrefslogtreecommitdiff
path: root/module/system/repl/command.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/system/repl/command.scm')
-rw-r--r--module/system/repl/command.scm17
1 files changed, 16 insertions, 1 deletions
diff --git a/module/system/repl/command.scm b/module/system/repl/command.scm
index a2f2a6f84..3fead7cac 100644
--- a/module/system/repl/command.scm
+++ b/module/system/repl/command.scm
@@ -53,6 +53,7 @@
(module (module m) (import use) (load l) (reload re) (binding b) (in))
(language (language L))
(compile (compile c) (compile-file cc)
+ (expand exp) (optimize opt)
(disassemble x) (disassemble-file xx))
(profile (time t) (profile pr) (trace tr))
(debug (backtrace bt) (up) (down) (frame fr)
@@ -459,6 +460,20 @@ Generate compiled code."
Compile a file."
(compile-file (->string file) #:opts opts))
+(define-meta-command (expand repl (form))
+ "expand EXP
+Expand any macros in a form."
+ (let ((x (repl-expand repl (repl-parse repl form))))
+ (run-hook before-print-hook x)
+ (pp x)))
+
+(define-meta-command (optimize repl (form))
+ "optimize EXP
+Run the optimizer on a piece of code and print the result."
+ (let ((x (repl-optimize repl (repl-parse repl form))))
+ (run-hook before-print-hook x)
+ (pp x)))
+
(define (guile:disassemble x)
((@ (language assembly disassemble) disassemble) x))
@@ -514,7 +529,7 @@ Trace execution."
;; FIXME: doc options, or somehow deal with them better
(apply call-with-trace
(repl-prepare-eval-thunk repl (repl-parse repl form))
- opts))
+ (cons* #:width (terminal-width) opts)))
;;;