From de4352d8fcf00442d6436d3910da8c03c195da5d Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 20 Aug 2008 13:37:57 +0000 Subject: [PATCH] avoid depending on the message text for a cm-accomplice event svn: r11355 --- collects/compiler/cm-accomplice.ss | 5 ++++- collects/compiler/cm.ss | 7 ++++--- collects/scribblings/mzc/make.scrbl | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/collects/compiler/cm-accomplice.ss b/collects/compiler/cm-accomplice.ss index efc6925f68..f4f241b6e3 100644 --- a/collects/compiler/cm-accomplice.ss +++ b/collects/compiler/cm-accomplice.ss @@ -4,4 +4,7 @@ (define (register-external-file f) (unless (and (path? f) (complete-path? f)) (raise-type-error 'register-external-file "complete path" f)) - (log-message (current-logger) 'info "compilation dependency" f)) + (log-message (current-logger) + 'info + (format "file dependency: ~s" f) + `#s(file-dependency ,f))) diff --git a/collects/compiler/cm.ss b/collects/compiler/cm.ss index 6209068116..169ff4e0d5 100644 --- a/collects/compiler/cm.ss +++ b/collects/compiler/cm.ss @@ -112,6 +112,7 @@ (define-struct ext-reader-guard (proc prev) #:property prop:procedure (struct-field-index proc)) +(define-struct file-dependency (path) #:prefab) (define (compile-zo* mode path read-src-syntax zo-name) ;; External dependencies registered through reader guard and accomplice-logged events: @@ -136,9 +137,9 @@ (cond [(eq? (vector-ref l 2) done-key) 'done] [(and (eq? (vector-ref l 0) 'info) - (equal? "compilation dependency" (vector-ref l 1)) - (path? (vector-ref l 2))) - (external-dep! (vector-ref l 2)) + (file-dependency? (vector-ref l 2)) + (path? (file-dependency-path (vector-ref l 2)))) + (external-dep! (file-dependency-path (vector-ref l 2))) (loop)] [else (log-message orig-log (vector-ref l 0) (vector-ref l 1) (vector-ref l 2)) diff --git a/collects/scribblings/mzc/make.scrbl b/collects/scribblings/mzc/make.scrbl index e840184905..ec5540c413 100644 --- a/collects/scribblings/mzc/make.scrbl +++ b/collects/scribblings/mzc/make.scrbl @@ -250,8 +250,8 @@ A parameter for a procedure of one argument that is called to report @defproc[(register-external-file [file (and path? complete-path?)]) void?]{ Logs a message (see @scheme[log-message]) at level @scheme['info]. The -message is @scheme["compilation dependency"], and the data associated -with the message is @scheme[file]. +message data is a @schemeidfont{file-dependency} prefab structure type +with one field whose value is @scheme[file]. A compilation manager implemented by @schememodname[compiler/cm] looks for such messages to register an external dependency. The compilation