New patches: [unrevert anonymous**20090106190714] { hunk ./matrix.ss 465 (define-syntax matrix-ec (syntax-rules () - ((matrix-ec rrows ccols etc ...) - (let ((rows rrows) - (cols ccols)) - (apply my-matrix rows cols (list-ec etc ...)))))) + ((matrix-ec row-expr col-expr etc ... body) + (apply my-matrix row-expr col-expr (list-ec etc ... body))))) hunk ./matrix.ss 468 -(define-syntax :matrix - (syntax-rules (index) - ((:matrix cc var arg) - (:matrix cc var (index i j) arg)) - ((:matrix cc var (index i j) arg) - (:do cc - (let ((m arg) - (rows #f) - (cols #f)) - (set! rows (matrix-rows m)) - (set! cols (matrix-cols m))) - ((i 0) (j 0)) +(define-generator :matrix + (lambda (stx) + (syntax-case stx (index) + ((:matrix var m-expr) + (syntax/loc stx (:matrix var (index i j) m-expr))) + ((:matrix var (index i j) m-expr) + (syntax/loc stx + (:do + (let ((m m-expr))) + ((rows (matrix-rows m)) + (cols (matrix-cols m)) + (i 0) + (j 0)) (< j cols) hunk ./matrix.ss 482 - (let ((i+1 (+ i 1)) - (j+1 (+ j 1)) - (wrapping? #f) - (var (matrix-ref m i j))) - (set! wrapping? (>= i+1 rows))) + (let ((i+1 (add1 i)) + (j+1 (add1 j)) + (var (matrix-ref m i j)))) #t hunk ./matrix.ss 486 - ((if wrapping? 0 i+1) - (if wrapping? j+1 j)))))) + (rows + cols + (if (>= i+1 rows) 0 i+1) + (if (>= i+1 rows) j+1 j)))))))) (define ptr->matrix make-matrix) (provide* (unsafe ptr->matrix)) } Context: [TAG 1.9 Will M. Farr **20081206175445] [Modified release-notes for version 1.9 Will M. Farr **20081206174956] [Added note to scrbl docs with contact request in case of new library paths. Will M. Farr **20081206174757] [Added Windows search path from David Gray. Will M. Farr **20081206174732] [Added scribblings, COPYING license file, removed old doc.txt. Will M. Farr **20081113060437] [Modified contract on vector-scale to use real? instead of number?. Will M. Farr **20081113060259] [info.ss gets 4.x repo. Will M. Farr **20081112153528] [vector-test.ss goes to #lang scheme. Will M. Farr **20081112153108] [run-tests.ss goes to #lang scheme. Will M. Farr **20081112153032] [matrix.ss goes to #lang scheme. Will M. Farr **20081112152956] [matrix-test.ss goes to #lang scheme Will M. Farr **20081112152746] [all.ss goes to #lang scheme. Will M. Farr **20081112152651] [vector.ss goes to #lang scheme. Will M. Farr **20081112152557] [Removed compiled from darcs repo, fixed bug in vector-test.ss. Will M. Farr **20081112152413] [Started changes for v4. Will M. Farr **20080527204145] [TAG 1.7 Will M. Farr **20080219190152] Patch bundle hash: 328c8b2773fc19e74e5b135478d5d38bc249836d