From 67ca9edbecdd9316f9fa80753b64f9babe6f75f9 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 26 Jul 2017 19:02:31 -0400 Subject: [PATCH] WIP --- scheme/cyclone/cps-optimizations.sld | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/scheme/cyclone/cps-optimizations.sld b/scheme/cyclone/cps-optimizations.sld index 371da631..7c094e1d 100644 --- a/scheme/cyclone/cps-optimizations.sld +++ b/scheme/cyclone/cps-optimizations.sld @@ -62,6 +62,19 @@ adbf:side-effects adbf:set-side-effects! ) (begin + (define + *contract-env* + (let ((env (create-environment '() '()))) + (eval '(define Cyc-fast-plus +) env) + (eval '(define Cyc-fast-sub -) env) + (eval '(define Cyc-fast-mul *) env) + (eval '(define Cyc-fast-div /) env) + (eval '(define Cyc-fast-eq =) env) + (eval '(define Cyc-fast-gt >) env) + (eval '(define Cyc-fast-lt <) env) + (eval '(define Cyc-fast-gte >=) env) + (eval '(define Cyc-fast-lte <=) env) + env)) (define *adb* (make-hash-table)) (define (adb:get-db) *adb*) (define (adb:clear!) @@ -709,8 +722,7 @@ (precompute-prim-app? result)) (with-handler (lambda (err) result) - ;; TODO: not good enough does not handler Cyc-fast-plus and friends - (eval result)) + (eval result *contract-env*)) result)) )))) (else