mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-17 09:10:22 +02:00
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 ...).
This commit is contained in:
parent
f5b1f76af4
commit
ea6b18e82f
10 changed files with 78 additions and 99 deletions
|
@ -20,14 +20,12 @@
|
|||
#define SCM_CONTROL_H
|
||||
|
||||
|
||||
#define SCM_F_PROMPT_INLINE 0x1
|
||||
#define SCM_F_PROMPT_ESCAPE 0x2
|
||||
#define SCM_F_PROMPT_ESCAPE 0x1
|
||||
|
||||
#define SCM_PROMPT_P(x) (!SCM_IMP (x) && SCM_TYP7(x) == scm_tc7_prompt)
|
||||
#define SCM_PROMPT_FLAGS(x) (SCM_CELL_WORD ((x), 0) >> 8)
|
||||
#define SCM_PROMPT_INLINE_P(x) (SCM_PROMPT_FLAGS (x) & SCM_F_PROMPT_INLINE)
|
||||
#define SCM_PROMPT_ESCAPE_P(x) (SCM_PROMPT_FLAGS (x) & SCM_F_PROMPT_ESCAPE)
|
||||
#define SCM_PROMPT_TAG(x) (SCM_CELL_OBJECT ((x), 1)
|
||||
#define SCM_PROMPT_TAG(x) (SCM_CELL_OBJECT ((x), 1))
|
||||
#define SCM_PROMPT_REGISTERS(x) ((struct scm_prompt_registers*)SCM_CELL_WORD ((x), 2))
|
||||
#define SCM_PROMPT_DYNENV(x) (SCM_CELL_OBJECT ((x), 3))
|
||||
#define SCM_PROMPT_HANDLER(x) (SCM_CELL_OBJECT ((x), 4))
|
||||
|
@ -44,7 +42,6 @@ struct scm_prompt_registers
|
|||
|
||||
|
||||
SCM_INTERNAL SCM scm_c_make_prompt (SCM vm, SCM k, SCM handler,
|
||||
scm_t_uint8 inline_handler_p,
|
||||
scm_t_uint8 escape_only_p);
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue