From 4d2cef3782ef9365af274a22e1e3b5d3e3014454 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Mon, 20 Mar 2017 18:55:53 -0400 Subject: [PATCH] WIP --- scheme/cyclone/transforms.sld | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/scheme/cyclone/transforms.sld b/scheme/cyclone/transforms.sld index 26bb5d9d..703afda5 100644 --- a/scheme/cyclone/transforms.sld +++ b/scheme/cyclone/transforms.sld @@ -1185,6 +1185,23 @@ (difference fv (built-in-syms))) (list)))))) +TODO: upgrade applicable function calls to inlinable primitives +first case is char=? => Cyc-fast-char-eq (and rest of the family) +(define (inline-applicable-funcs expr) + (define (conv ast) + (cond + ((define? ast) + `(define ,@(map (lambda (a) (conv a)) (cdr ast)))) + ((set!? ast) + `(set! ,@(map (lambda (a) (conv a)) (cdr ast)))) + ((if? ast) + TODO + ((lambda? ast) + ((app? ast) + (else + ast))) + (conv expr)) + ;; ;; Helpers to syntax check primitive calls ;;