~ chicken-core (chicken-5) 7d308b23d624a6b0111058a93887716e823ef73e
commit 7d308b23d624a6b0111058a93887716e823ef73e Author: Peter Bex <peter.bex@xs4all.nl> AuthorDate: Mon Sep 24 21:09:15 2012 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Mon Sep 24 21:43:33 2012 +0200 Wrap remaining 'bare lambda' macro transformers in er-macro-transformer calls, to prevent future breakage when this deprecated feature is actually removed Signed-off-by: felix <felix@call-with-current-continuation.org> diff --git a/srfi-13.scm b/srfi-13.scm index 3dbc2cac..7b161532 100644 --- a/srfi-13.scm +++ b/srfi-13.scm @@ -150,23 +150,24 @@ . body) ) ) ) ) ) (define-syntax let-string-start+end - (lambda (form r c) - (##sys#check-syntax 'let-string-start+end form '(_ _ _ _ _ . _)) - (let ((s-e-r (cadr form)) - (proc (caddr form)) - (s-exp (cadddr form)) - (args-exp (car (cddddr form))) - (body (cdr (cddddr form))) - (%receive (r 'receive)) - (%string-parse-start+end (r 'string-parse-start+end)) - (%string-parse-final-start+end (r 'string-parse-final-start+end))) - (if (pair? (cddr s-e-r)) - `(,%receive (,(caddr s-e-r) ,(car s-e-r) ,(cadr s-e-r)) - (,%string-parse-start+end ,proc ,s-exp ,args-exp) - ,@body) - `(,%receive ,s-e-r - (,%string-parse-final-start+end ,proc ,s-exp ,args-exp) - ,@body) ) ))) + (er-macro-transformer + (lambda (form r c) + (##sys#check-syntax 'let-string-start+end form '(_ _ _ _ _ . _)) + (let ((s-e-r (cadr form)) + (proc (caddr form)) + (s-exp (cadddr form)) + (args-exp (car (cddddr form))) + (body (cdr (cddddr form))) + (%receive (r 'receive)) + (%string-parse-start+end (r 'string-parse-start+end)) + (%string-parse-final-start+end (r 'string-parse-final-start+end))) + (if (pair? (cddr s-e-r)) + `(,%receive (,(caddr s-e-r) ,(car s-e-r) ,(cadr s-e-r)) + (,%string-parse-start+end ,proc ,s-exp ,args-exp) + ,@body) + `(,%receive ,s-e-r + (,%string-parse-final-start+end ,proc ,s-exp ,args-exp) + ,@body) ) )))) ;;; Returns three values: rest start end diff --git a/srfi-69.scm b/srfi-69.scm index 9fba35e6..a36ec891 100644 --- a/srfi-69.scm +++ b/srfi-69.scm @@ -125,19 +125,20 @@ (define-constant flonum-magic 331804471) (define-syntax $flonum-hash - (lambda (form r c) - (let ( (flo (cadr form)) - (_%subbyte (r '%subbyte)) - (_flonum-magic (r 'flonum-magic)) - (_fx+ (r 'fx+)) - (_fx* (r 'fx*)) - (_fxshl (r 'fxshl)) ) - `(,_fx* ,_flonum-magic - ,(let loop ( (idx (fx- (##sys#size 1.0) 1)) ) - (if (fx= 0 idx) - `(,_%subbyte ,flo 0) - `(,_fx+ (,_%subbyte ,flo ,idx) - (,_fxshl ,(loop (fx- idx 1)) 1)) ) ) ) ) ) ) + (er-macro-transformer + (lambda (form r c) + (let ( (flo (cadr form)) + (_%subbyte (r '%subbyte)) + (_flonum-magic (r 'flonum-magic)) + (_fx+ (r 'fx+)) + (_fx* (r 'fx*)) + (_fxshl (r 'fxshl)) ) + `(,_fx* ,_flonum-magic + ,(let loop ( (idx (fx- (##sys#size 1.0) 1)) ) + (if (fx= 0 idx) + `(,_%subbyte ,flo 0) + `(,_fx+ (,_%subbyte ,flo ,idx) + (,_fxshl ,(loop (fx- idx 1)) 1)) ) ) ) ) )) ) (define (##sys#number-hash-hook obj rnd) (*equal?-hash obj rnd) ) diff --git a/tests/module-tests.scm b/tests/module-tests.scm index 928046a0..6d7bd1c8 100644 --- a/tests/module-tests.scm +++ b/tests/module-tests.scm @@ -281,8 +281,9 @@ (module m29 * (import chicken scheme) (define-syntax m29-baz - (lambda _ - ''foo))) + (er-macro-transformer + (lambda _ + ''foo)))) (module m30 * (import chicken scheme)Trap