From 979fbf551d5662bc9ac835c693cf3bfd6396e5a0 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 27 Aug 2020 17:41:02 -0600 Subject: [PATCH] makefile: fix some dependency tracking Add cm-accomplice tracking to the expander extractor, so changes to "rktio.rktl" are picked up for "io". Fix GRacket BC dependencies on rktio. --- racket/src/bc/gracket/gc2/Makefile.in | 2 +- racket/src/expander/run.rkt | 13 +++++++++++++ racket/src/io/host/rktio.rkt | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/racket/src/bc/gracket/gc2/Makefile.in b/racket/src/bc/gracket/gc2/Makefile.in index 05fdad8711..45f46c11e2 100644 --- a/racket/src/bc/gracket/gc2/Makefile.in +++ b/racket/src/bc/gracket/gc2/Makefile.in @@ -94,7 +94,7 @@ wx_mac_LIBS = -framework CoreFoundation GRACKETLINKER = @MZLINKER@ LIBRKTIO = ../../rktio/librktio.@LTA@ -LIBRKTIO_a = $(LIBRKTO) +LIBRKTIO_a = $(LIBRKTIO) LIBRKTIO_la = GRACKETLIBS_a = $(LDLIBS) diff --git a/racket/src/expander/run.rkt b/racket/src/expander/run.rkt index e661127299..d23d7e665a 100644 --- a/racket/src/expander/run.rkt +++ b/racket/src/expander/run.rkt @@ -299,6 +299,9 @@ [else (eval c)])]))]))] [else (orig-load path #f)]))) +(define accomplice (make-log-receiver (current-logger) 'info 'cm-accomplice)) +(struct file-dependency (path module?) #:prefab) + (define orig-resolver (current-module-name-resolver)) (current-module-name-resolver (case-lambda @@ -308,6 +311,16 @@ (define n (resolved-module-path-name p)) (when (and (path? n) cache) (register-dependency! cache n)) + (let loop () + (define vec (sync/timeout 0 accomplice)) + (when vec + (define e (vector-ref vec 2)) + (define v (and (file-dependency? e) + (not (file-dependency-module? e)) + (file-dependency-path e))) + (when (and (path? v) cache) + (register-dependency! cache v)) + (loop))) p])) (define (apply-to-module proc mod-path) diff --git a/racket/src/io/host/rktio.rkt b/racket/src/io/host/rktio.rkt index 7427765288..373563f110 100644 --- a/racket/src/io/host/rktio.rkt +++ b/racket/src/io/host/rktio.rkt @@ -41,7 +41,7 @@ (define-syntax-rule (define-function/errno+step _ _ _ name . _) (define-function () #f name)) -(include "../../rktio/rktio.rktl") ; 1 +(include "../../rktio/rktio.rktl") (define-function () #f rktio_filesize_ref) (define-function () #f rktio_timestamp_ref)