1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-23 20:05:32 +02:00

$throw is a new kind of CPS term

* module/language/cps.scm ($throw): New term type that doesn't have a
  continuation.  Adapt all callers.  Remove now-unneeded
  "prune-bailouts" pass.
This commit is contained in:
Andy Wingo 2018-01-03 18:25:42 +01:00
parent de5c81b1d1
commit ad55ee83c3
26 changed files with 145 additions and 148 deletions

View file

@ -614,6 +614,9 @@ the LABELS that are clobbered by the effects of LABEL."
;; what nonlocal predecessors of the handler do, so we
;; conservatively assume &all-effects.
&all-effects)
(($ $kargs names syms ($ $throw))
;; A reachable "throw" term can never be elided.
&all-effects)
(($ $kreceive arity kargs)
(match arity
(($ $arity _ () #f () #f) &type-check)