From 88c509830999e1f2284ecef9afc99e6aca5338bf Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Tue, 14 Aug 2012 10:29:05 -0400 Subject: [PATCH] Move `define-struct/printer` to new file. Avoids runtime dependency on `racket/generic`. original commit: 973da6a50cd0994b69b5b8b7cb1f374786de469f --- collects/typed-racket/rep/rep-utils.rkt | 3 ++- collects/typed-racket/utils/print-struct.rkt | 16 ++++++++++++++++ collects/typed-racket/utils/utils.rkt | 17 ----------------- 3 files changed, 18 insertions(+), 18 deletions(-) create mode 100644 collects/typed-racket/utils/print-struct.rkt diff --git a/collects/typed-racket/rep/rep-utils.rkt b/collects/typed-racket/rep/rep-utils.rkt index d5e5d4c1..bef2b412 100644 --- a/collects/typed-racket/rep/rep-utils.rkt +++ b/collects/typed-racket/rep/rep-utils.rkt @@ -1,5 +1,6 @@ #lang racket/base (require "../utils/utils.rkt" + "../utils/print-struct.rkt" racket/match (contract-req) "free-variance.rkt" @@ -19,7 +20,7 @@ (lazy-require - ("../types/printer.rkt" (print-type print-filter print-object print-pathelem))) + ["../types/printer.rkt" (print-type print-filter print-object print-pathelem)]) (provide == defintern hash-id (for-syntax fold-target)) diff --git a/collects/typed-racket/utils/print-struct.rkt b/collects/typed-racket/utils/print-struct.rkt new file mode 100644 index 00000000..6119e5a9 --- /dev/null +++ b/collects/typed-racket/utils/print-struct.rkt @@ -0,0 +1,16 @@ +#lang racket/base + +(require racket/generic (for-syntax racket/base syntax/parse)) +(provide define-struct/printer) + +(define-syntax (define-struct/printer stx) + (syntax-parse stx + [(form name (flds ...) printer:expr) + #`(define-struct name (flds ...) + #:property prop:custom-print-quotable 'never + ;; Eta expansion so that printer is not evaluated + ;; until needed. + #:methods gen:custom-write + [(define (write-proc v port write?) + (printer v port write?))] + #:transparent)])) diff --git a/collects/typed-racket/utils/utils.rkt b/collects/typed-racket/utils/utils.rkt index f36deb00..70fb0d3b 100644 --- a/collects/typed-racket/utils/utils.rkt +++ b/collects/typed-racket/utils/utils.rkt @@ -7,7 +7,6 @@ at least theoretically. (require (for-syntax racket/base syntax/parse racket/string) racket/require-syntax racket/provide-syntax - racket/generic racket/struct-info "timing.rkt") ;; to move to unstable @@ -20,8 +19,6 @@ at least theoretically. start-timing do-time ;; logging printf/log show-input? - ;; struct printing - define-struct/printer ;; provide macros rep utils typecheck infer env private types) @@ -109,20 +106,6 @@ at least theoretically. #'(log-debug (format fmt . args))]) #'(void))) - -(define-syntax (define-struct/printer stx) - (syntax-parse stx - [(form name (flds ...) printer:expr) - #`(define-struct name (flds ...) - #:property prop:custom-print-quotable 'never - ;; Eta expansion so that printer is not evaluated - ;; until needed. - #:methods gen:custom-write - [(define (write-proc v port write?) - (printer v port write?))] - #:transparent)])) - - ;; turn contracts on and off - off by default for performance. (provide (for-syntax enable-contracts?) provide/cond-contract