diff options
Diffstat (limited to 'module/system/repl/command.scm')
-rw-r--r-- | module/system/repl/command.scm | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/module/system/repl/command.scm b/module/system/repl/command.scm index a2f2a6f84..e27ca9a30 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)) |