From 5ea3b5388fbe1fe9263ef1181c0a2d5f531bdfba Mon Sep 17 00:00:00 2001 From: Suzanne Soy Date: Sun, 4 Apr 2021 05:18:44 +0100 Subject: [PATCH] Revert "ok debug" This reverts commit 31774109871f443c8e4f5dcc92f708e6dbcbbd8b. --- 8-0/racket/collects/syntax/parse/private/parse.rkt | 7 ++++++- .../collects/syntax/parse/private/residual.rkt | 6 ++++-- 8-0/racket/collects/syntax/parse/private/runtime.rkt | 12 ++++++++---- 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 index e14cc3a..7e5c61d 100644 --- 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 index 75f1453..1c78afe 100644 --- 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 index 41b3214..90d7ea8 100644 --- 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