From 4977e6bd6cfe1f155bfa41743d707e369bf76051 Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Mon, 23 Nov 2009 18:53:13 +0000 Subject: [PATCH] Switch off unsafe operations for now, better to turn it on after the code was used for a while. svn: r17008 --- collects/scheme/private/sort.ss | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/collects/scheme/private/sort.ss b/collects/scheme/private/sort.ss index 68a7e2fa4f..387560366c 100644 --- a/collects/scheme/private/sort.ss +++ b/collects/scheme/private/sort.ss @@ -24,14 +24,16 @@ doing these checks. |# -(#%require (rename '#%unsafe i+ unsafe-fx+) - (rename '#%unsafe i- unsafe-fx-) - (rename '#%unsafe i= unsafe-fx=) - (rename '#%unsafe i< unsafe-fx<) - (rename '#%unsafe i<= unsafe-fx<=) - (rename '#%unsafe i>> unsafe-fxrshift) - (rename '#%unsafe vref unsafe-vector-ref) - (rename '#%unsafe vset! unsafe-vector-set!)) +;; This code works with unsafe operations, but don't use it for a while to +;; catch potential problems. +;; (#%require (rename '#%unsafe i+ unsafe-fx+) +;; (rename '#%unsafe i- unsafe-fx-) +;; (rename '#%unsafe i= unsafe-fx=) +;; (rename '#%unsafe i< unsafe-fx<) +;; (rename '#%unsafe i<= unsafe-fx<=) +;; (rename '#%unsafe i>> unsafe-fxrshift) +;; (rename '#%unsafe vref unsafe-vector-ref) +;; (rename '#%unsafe vset! unsafe-vector-set!)) (define sort (let () @@ -40,6 +42,15 @@ doing these checks. [(dr (foo . pattern) template) (define-syntax foo (syntax-rules () [(_ . pattern) template]))])) +(define-syntax-rule (i+ x y) (+ x y)) +(define-syntax-rule (i- x y) (- x y)) +(define-syntax-rule (i= x y) (= x y)) +(define-syntax-rule (i< x y) (< x y)) +(define-syntax-rule (i<= x y) (<= x y)) +(define-syntax-rule (i>> x y) (arithmetic-shift x (- y))) +(define-syntax-rule (vref v i) (vector-ref v i)) +(define-syntax-rule (vset! v i x) (vector-set! v i x)) + (define-syntax-rule (sort-internal-body v *> n 1)] [n/2+ (i- n n/2-)]) (define-syntax-rule (