summaryrefslogtreecommitdiff
path: root/module/language/glil.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-02-19 15:30:34 +0100
committerAndy Wingo <wingo@pobox.com>2010-02-19 15:30:34 +0100
commitea6b18e82f3ac2122d07c80bc0f320ea839a25b6 (patch)
treecd5e3c02694e73a2453b1cc9d06f160580c5c92f /module/language/glil.scm
parentf5b1f76af492f3c398527ee040e8bf09fc438a9a (diff)
downloadguile-ea6b18e82f3ac2122d07c80bc0f320ea839a25b6.tar.gz
prompt handlers are always inline
* libguile/control.h (SCM_F_PROMPT_INLINE, SCM_PROMPT_INLINE_P): Remove; prompts always have "inline" handlers now. * libguile/control.c (scm_c_make_prompt): Remove inline_handler_p arg. * libguile/vm-i-system.c (prompt): * module/language/assembly/decompile-bytecode.scm (decode-load-program): * module/language/assembly/compile-bytecode.scm (write-bytecode): Adapt to prompt changes. * module/language/glil.scm (make-glil-prompt, glil-prompt-inline?): Remove inline? flag. (parse-glil, unparse-glil): * module/language/glil/compile-assembly.scm (glil->assembly): Adapt to <glil-prompt> change. * module/language/tree-il/compile-glil.scm (flatten): Require the handler of a <prompt> to be a lambda-case. * module/language/tree-il/primitives.scm (*primitive-expand-table*): Ensure that the handler of a <prompt> is a lambda-case. * module/language/tree-il/inline.scm (inline!): Simplify a degenerate case: (lambda args (apply (lambda ...) args)) => (lambda ...).
Diffstat (limited to 'module/language/glil.scm')
-rw-r--r--module/language/glil.scm13
1 files changed, 6 insertions, 7 deletions
diff --git a/module/language/glil.scm b/module/language/glil.scm
index 1874c80ab..9c238547d 100644
--- a/module/language/glil.scm
+++ b/module/language/glil.scm
@@ -75,8 +75,7 @@
<glil-mv-call> make-glil-mv-call glil-mv-call?
glil-mv-call-nargs glil-mv-call-ra
- <glil-prompt> make-glil-prompt glil-prompt?
- glil-prompt-label glil-prompt-inline? glil-prompt-escape-only?
+ <glil-prompt> make-glil-prompt glil-prompt? glil-prompt-label glil-prompt-escape-only?
parse-glil unparse-glil))
@@ -105,7 +104,7 @@
(<glil-branch> inst label)
(<glil-call> inst nargs)
(<glil-mv-call> nargs ra)
- (<glil-prompt> label inline? escape-only?))
+ (<glil-prompt> label escape-only?))
@@ -133,8 +132,8 @@
((branch ,inst ,label) (make-glil-branch inst label))
((call ,inst ,nargs) (make-glil-call inst nargs))
((mv-call ,nargs ,ra) (make-glil-mv-call nargs ra))
- ((prompt ,label ,inline? ,escape-only?)
- (make-glil-prompt label inline? escape-only?))
+ ((prompt ,label ,escape-only?)
+ (make-glil-prompt label escape-only?))
(else (error "invalid glil" x))))
(define (unparse-glil glil)
@@ -167,5 +166,5 @@
((<glil-branch> inst label) `(branch ,inst ,label))
((<glil-call> inst nargs) `(call ,inst ,nargs))
((<glil-mv-call> nargs ra) `(mv-call ,nargs ,ra))
- ((<glil-prompt> label inline? escape-only?)
- `(prompt ,label ,inline? escape-only?))))
+ ((<glil-prompt> label escape-only?)
+ `(prompt ,label escape-only?))))