From 113add26acb8b8802721925428a2119fc93b95e1 Mon Sep 17 00:00:00 2001 From: Abdulaziz Ghuloum Date: Sat, 1 Dec 2007 22:32:19 -0500 Subject: [PATCH] Improved error reports in records.procedural as per Derick Eddington's suggestions and removed the record-name check for non-generative records. --- doc/ikarus-scheme-users-guide.pdf | Bin 257166 -> 256665 bytes doc/ikarus-scheme-users-guide.tex | 2 +- scheme/ikarus.records.procedural.ss | 11 ++- scheme/ikarus.sort.ss | 113 +++++++++++++++------------- scheme/last-revision | 2 +- scheme/pass-specify-rep-primops.ss | 13 ++-- 6 files changed, 73 insertions(+), 68 deletions(-) diff --git a/doc/ikarus-scheme-users-guide.pdf b/doc/ikarus-scheme-users-guide.pdf index 419139a3b220d202fcefab3f4cdd38e27253bcfd..9bf9fcd46b773cb2eaa475908e736156cfa1c377 100644 GIT binary patch delta 23142 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%0Dt1 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 (lambda (rtd) (unless - (and (eqv? name (rtd-name rtd)) + (and ; must not check name! + ; (eqv? name (rtd-name rtd)) (eqv? parent (rtd-parent rtd)) (eqv? sealed? (rtd-sealed? rtd)) (eqv? opaque? (rtd-opaque? rtd)) diff --git a/scheme/ikarus.sort.ss b/scheme/ikarus.sort.ss index 0ff7bfa..0535442 100644 --- a/scheme/ikarus.sort.ss +++ b/scheme/ikarus.sort.ss @@ -20,65 +20,68 @@ (ikarus system $fx) (except (ikarus) list-sort vector-sort vector-sort!)) - - (define (merge1 list v) (vector-length v)))) (define (vector-sort! list v) (vector-length v))]) (unless (null? ls) - (vector-set! v i (car ls)) - (f (fx+ i 1) v (cdr ls))))) + ($vector-set! v i ($car ls)) + (f ($fx+ i 1) v ($cdr ls))))) ) diff --git a/scheme/last-revision b/scheme/last-revision index d94081a..378d4b1 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1160 +1162 diff --git a/scheme/pass-specify-rep-primops.ss b/scheme/pass-specify-rep-primops.ss index ec02df4..c6366df 100644 --- a/scheme/pass-specify-rep-primops.ss +++ b/scheme/pass-specify-rep-primops.ss @@ -60,19 +60,20 @@ (dirty-vector-set addr))] [else (dirty-vector-set addr)])) -(define (mem-assign v x i) + +(define (slow-mem-assign v x i) (with-tmp ([t (prm 'int+ x (K i))]) (make-seq (prm 'mset t (K 0) (T v)) (dirty-vector-set t)))) -(define (smart-mem-assign what v x i) - (struct-case what +(define (mem-assign v x i) + (struct-case v [(constant t) (if (or (fixnum? t) (immediate? t)) - (prm 'mset x (K i) v) - (mem-assign v x i))] - [else (mem-assign v x i)])) + (prm 'mset x (K i) (T v)) + (slow-mem-assign v x i))] + [else (slow-mem-assign v x i)])) (define (align-code unknown-amt known-amt) (prm 'sll