commit 5ea3b5388fbe1fe9263ef1181c0a2d5f531bdfba
parent 1b97ffb119b17b47bacf0bad60565e24acf534b6
Author: Suzanne Soy <ligo@suzanne.soy>
Date: Sun, 4 Apr 2021 05:18:44 +0100
Revert "ok debug"
This reverts commit 31774109871f443c8e4f5dcc92f708e6dbcbbd8b.
Diffstat:
3 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/8-0/racket/collects/syntax/parse/private/parse.rkt b/8-0/racket/collects/syntax/parse/private/parse.rkt
@@ -435,7 +435,12 @@ Conventions:
((body-sequence)
(syntax-case rest ()
[(e0 e ...)
- #'(let () e0 e ...)]
+ ;; Should we use a shadower (works on the whole file, unhygienically),
+ ;; or use the context of the syntax-parse identifier?
+ (let ([the-#%intdef-begin (datum->syntax #'ctx '#%intdef-begin)])
+ (if (syntax-local-value the-#%intdef-begin (λ () #f)) ;; Defined as a macro
+ #`(let () (#,the-#%intdef-begin e0 e ...))
+ #'(let () e0 e ...)))]
[_ (raise-syntax-error #f "expected non-empty clause body"
#'ctx clause)]))
(else
diff --git a/8-0/racket/collects/syntax/parse/private/residual.rkt b/8-0/racket/collects/syntax/parse/private/residual.rkt
@@ -10,7 +10,7 @@
(require (for-syntax racket/private/sc syntax/parse/private/residual-ct))
(provide (for-syntax (all-from-out syntax/parse/private/residual-ct)))
-(require racket/private/template)
+(require "../../case/template.rkt")
(provide (for-syntax attribute-mapping attribute-mapping?))
;; ============================================================
@@ -18,7 +18,9 @@
(require "runtime-progress.rkt"
"3d-stx.rkt"
- syntax/stx)
+ auto-syntax-e
+ syntax/stx
+ stxparse-info/current-pvars)
(provide (all-from-out "runtime-progress.rkt")
diff --git a/8-0/racket/collects/syntax/parse/private/runtime.rkt b/8-0/racket/collects/syntax/parse/private/runtime.rkt
@@ -1,11 +1,13 @@
#lang racket/base
(require racket/stxparam
stxparse-info/parse/private/residual ;; keep abs. path
+ stxparse-info/current-pvars
(for-syntax racket/base
racket/list
syntax/kerncase
syntax/strip-context
racket/private/sc
+ auto-syntax-e/utils
racket/syntax
syntax/parse/private/rep-data))
@@ -111,9 +113,10 @@ residual.rkt.
...)
([(vtmp) value] ...)
(letrec-syntaxes+values
- ([(name) (make-syntax-mapping 'depth (quote-syntax stmp))] ...)
+ ([(name) (make-auto-pvar 'depth (quote-syntax stmp))] ...)
()
- . body))))]))
+ (with-pvars (name ...)
+ . body)))))]))
;; (let-attributes* (([id num] ...) (expr ...)) expr) : expr
;; Special case: empty attrs need not match number of value exprs.
@@ -147,8 +150,9 @@ residual.rkt.
(attribute-mapping (quote-syntax vtmp) 'name 'depth
(if 'syntax? #f (quote-syntax check-attr-value))))
...
- (define-syntax name (make-syntax-mapping 'depth (quote-syntax stmp)))
- ...)))]))
+ (define-syntax name (make-auto-pvar 'depth (quote-syntax stmp)))
+ ...
+ (define-pvars name ...))))]))
(define-syntax-rule (phase-of-enclosing-module)
(variable-reference->module-base-phase