From 729c0d4025c0fdb2d0bbec5e61f1f6dabedbff06 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Thu, 22 Nov 2018 23:15:12 -0500 Subject: [PATCH] Add check for CPS prims --- scheme/cyclone/cps-opt-local-var-redux.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scheme/cyclone/cps-opt-local-var-redux.scm b/scheme/cyclone/cps-opt-local-var-redux.scm index 57591e6b..78bcd59b 100644 --- a/scheme/cyclone/cps-opt-local-var-redux.scm +++ b/scheme/cyclone/cps-opt-local-var-redux.scm @@ -107,6 +107,12 @@ (scan (if->else exp) fail?)) ((app? exp) (cond +;;; TODO: may need to check for prim:cont? and abort accordingly +;; check out code generated for scheme/cyclone/util.sld WRT symbol->string +;; cannot proceed with this since by definition these functions require CPS + ((and (prim? (car exp)) + (prim:cont? (car exp))) + (return #f)) ((and (equal? (car exp) sym) (not fail?)) (map (lambda (e) (scan e fail?)) (cdr exp))) ;; Sym is OK, skip