From 49c4d9272fe081f6d91fcab7e59d9333fb524091 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 23 Aug 2015 10:58:04 -0600 Subject: [PATCH] change `let/cc` and `let/ec` macros back to `call/cc` and `call/ec` When `call/cc` and `call/ec` were moved out of `#%kernel`, the `let/cc` and `let/ec` macros changed to refer to `call-with-current-continuation` and `call-with-escape-continuation`. Move `call/cc` and `call/ec` again and restore the macros, so that matching on the expansion of the macros (e.g,. in the web server's language that looks for `call/cc`) work as before. --- racket/collects/racket/private/define-et-al.rkt | 6 ++++-- racket/collects/racket/private/more-scheme.rkt | 5 ++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/racket/collects/racket/private/define-et-al.rkt b/racket/collects/racket/private/define-et-al.rkt index fea6207fc0..4f617c9d79 100644 --- a/racket/collects/racket/private/define-et-al.rkt +++ b/racket/collects/racket/private/define-et-al.rkt @@ -71,6 +71,8 @@ "bad syntax" x))))) + (define-values (call/ec) call-with-escape-continuation) + (-define-syntax let/ec (lambda (code) (let ([l (syntax->list code)]) @@ -81,7 +83,7 @@ [exprs (stx-cdr (stx-cdr code))]) (datum->syntax (quote-syntax here) - `(call-with-escape-continuation (lambda (,var) ,@(stx->list exprs))) + `(call/ec (lambda (,var) ,@(stx->list exprs))) code)) (raise-syntax-error #f @@ -198,4 +200,4 @@ (syntax-local-introduce super-id)) result)))))))))) - (#%provide -define -define-syntax when unless let/ec -define-struct)) + (#%provide -define -define-syntax when unless call/ec let/ec -define-struct)) diff --git a/racket/collects/racket/private/more-scheme.rkt b/racket/collects/racket/private/more-scheme.rkt index b1511ce779..8284abdd7e 100644 --- a/racket/collects/racket/private/more-scheme.rkt +++ b/racket/collects/racket/private/more-scheme.rkt @@ -300,13 +300,12 @@ (set! id temp) ...)))]))) (define-values (call/cc) call-with-current-continuation) - (define-values (call/ec) call-with-escape-continuation) (define-syntax let/cc (lambda (stx) (syntax-case stx () [(_ var body1 body ...) - (syntax/loc stx (call-with-current-continuation (lambda (var) body1 body ...)))]))) + (syntax/loc stx (call/cc (lambda (var) body1 body ...)))]))) (define-syntax fluid-let (lambda (stx) @@ -389,6 +388,6 @@ (rename break-paramz? break-parameterization?) with-handlers with-handlers* call-with-exception-handler set!-values - let/cc call/cc call/ec fluid-let time + let/cc call/cc fluid-let time log-fatal log-error log-warning log-info log-debug define-logger hash-ref! hash-has-key? hash-update hash-update!))