1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-15 08:10:17 +02:00

simplify primitives.scm for dynwind

* module/language/tree-il/primitives.scm (*primitive-expand-table*):
  Remove a dynwind hack, as we have a good inliner now.
This commit is contained in:
Andy Wingo 2011-11-09 16:44:59 +01:00
parent 8ee0b28b4d
commit acdf4fcc05

View file

@ -473,36 +473,19 @@
'dynamic-wind 'dynamic-wind
(case-lambda (case-lambda
((src pre thunk post) ((src pre thunk post)
;; Here we will make concessions to the fact that our inliner is (let ((PRE (gensym " pre"))
;; lame, and add a hack. (THUNK (gensym " thunk"))
(cond (POST (gensym " post")))
((lambda? thunk) (make-let
(let ((PRE (gensym " pre")) src
(POST (gensym " post"))) '(pre thunk post)
(make-let (list PRE THUNK POST)
src (list pre thunk post)
'(pre post) (make-dynwind
(list PRE POST) src
(list pre post) (make-lexical-ref #f 'pre PRE)
(make-dynwind (make-application #f (make-lexical-ref #f 'thunk THUNK) '())
src (make-lexical-ref #f 'post POST)))))
(make-lexical-ref #f 'pre PRE)
(make-application #f thunk '())
(make-lexical-ref #f 'post POST)))))
(else
(let ((PRE (gensym " pre"))
(THUNK (gensym " thunk"))
(POST (gensym " post")))
(make-let
src
'(pre thunk post)
(list PRE THUNK POST)
(list pre thunk post)
(make-dynwind
src
(make-lexical-ref #f 'pre PRE)
(make-application #f (make-lexical-ref #f 'thunk THUNK) '())
(make-lexical-ref #f 'post POST)))))))
(else #f))) (else #f)))
(hashq-set! *primitive-expand-table* (hashq-set! *primitive-expand-table*