From 0c8711a650c3648c647706cc9ffff92c7d217368 Mon Sep 17 00:00:00 2001 From: Ryan Culpepper Date: Thu, 14 Dec 2017 12:04:38 +0100 Subject: [PATCH] syntax/parse: use lazy-require-syntax --- .../syntax/parse/private/parse-aux.rkt | 21 ------- racket/collects/syntax/parse/private/sc.rkt | 59 +++++-------------- 2 files changed, 15 insertions(+), 65 deletions(-) delete mode 100644 racket/collects/syntax/parse/private/parse-aux.rkt diff --git a/racket/collects/syntax/parse/private/parse-aux.rkt b/racket/collects/syntax/parse/private/parse-aux.rkt deleted file mode 100644 index 2c0b2d5080..0000000000 --- a/racket/collects/syntax/parse/private/parse-aux.rkt +++ /dev/null @@ -1,21 +0,0 @@ -#lang racket/base -(require (for-template "parse.rkt")) -(provide id:define-syntax-class - id:define-splicing-syntax-class - id:define-integrable-syntax-class - id:syntax-parse - id:syntax-parser - id:define/syntax-parse - id:syntax-parser/template - id:parser/rhs - id:define-eh-alternative-set) - -(define (id:define-syntax-class) #'define-syntax-class) -(define (id:define-splicing-syntax-class) #'define-splicing-syntax-class) -(define (id:define-integrable-syntax-class) #'define-integrable-syntax-class) -(define (id:syntax-parse) #'syntax-parse) -(define (id:syntax-parser) #'syntax-parser) -(define (id:define/syntax-parse) #'define/syntax-parse) -(define (id:syntax-parser/template) #'syntax-parser/template) -(define (id:parser/rhs) #'parser/rhs) -(define (id:define-eh-alternative-set) #'define-eh-alternative-set) diff --git a/racket/collects/syntax/parse/private/sc.rkt b/racket/collects/syntax/parse/private/sc.rkt index ae0022ba48..4fca6ec406 100644 --- a/racket/collects/syntax/parse/private/sc.rkt +++ b/racket/collects/syntax/parse/private/sc.rkt @@ -1,6 +1,5 @@ #lang racket/base -(require (for-syntax racket/base - racket/lazy-require) +(require racket/lazy-require "keywords.rkt") ;; keep and keep as abs. path -- lazy-loaded macros produce references to this @@ -8,25 +7,20 @@ ;; (so for consistency etc, require absolutely from all modules) (require syntax/parse/private/residual) -(begin-for-syntax - (lazy-require - ;; load macro transformers lazily via identifier - ;; This module path must also be absolute (not sure why, - ;; but it definitely breaks on relative module path). - [syntax/parse/private/parse-aux - (id:define-syntax-class - id:define-splicing-syntax-class - id:define-integrable-syntax-class - id:syntax-parse - id:syntax-parser - id:define/syntax-parse - id:syntax-parser/template - id:parser/rhs - id:define-eh-alternative-set)])) -;; FIXME: workaround for phase>0 bug in racket/runtime-path (and thus lazy-require) -;; Without this, dependencies don't get collected. -(require racket/runtime-path (for-meta 2 '#%kernel)) -(define-runtime-module-path-index _unused_ 'syntax/parse/private/parse-aux) +(lazy-require-syntax + ;; load macro transformers lazily via identifier + ;; This module path must also be absolute (not sure why, + ;; but it definitely breaks on relative module path). + [syntax/parse/private/parse + (define-syntax-class + define-splicing-syntax-class + define-integrable-syntax-class + syntax-parse + syntax-parser + define/syntax-parse + syntax-parser/template + parser/rhs + define-eh-alternative-set)]) (provide define-syntax-class define-splicing-syntax-class @@ -45,26 +39,3 @@ syntax-parser/template parser/rhs define-eh-alternative-set) - -(define-syntaxes (define-syntax-class - define-splicing-syntax-class - define-integrable-syntax-class - syntax-parse - syntax-parser - define/syntax-parse - syntax-parser/template - parser/rhs - define-eh-alternative-set) - (let ([tx (lambda (get-id) - (lambda (stx) - ((syntax-local-value (get-id)) stx)))]) - (values - (tx id:define-syntax-class) - (tx id:define-splicing-syntax-class) - (tx id:define-integrable-syntax-class) - (tx id:syntax-parse) - (tx id:syntax-parser) - (tx id:define/syntax-parse) - (tx id:syntax-parser/template) - (tx id:parser/rhs) - (tx id:define-eh-alternative-set))))