[racket] Marking dependencies on dynamically required modules.

From: Eric Dobson (eric.n.dobson at gmail.com)
Date: Wed Mar 20 01:29:00 EDT 2013

I have two files a.rkt and b.rkt, a.rkt dynamically requires b.rkt at
syntax time.

a.rkt:
#lang racket
(require (for-syntax compiler/cm-accomplice))

(define-syntax (go stx)
  (dynamic-require "b.rkt" #f)
  #''success)

(go)

b.rkt:
#lang racket

(when #f
  (error 'this-might-break))

If I compile a.rkt with raco make, and then change b.rkt's #f to #t,
and run a.rkt it prints success. If I then delete a.rkt's compiled
version and recompile, it raises the error.

I want to be able to declare that a.rkt depends on b.rkt.

It looks like compiler/cm-accomplice was meant to solve this, but it
requires complete paths, and it seems like that would prevent the
bytecode from being machine independent. Is this actually a problem,
or do the paths only affect the .dep files and so distributing
compiled versions wouldn't be affected?

Posted on the users mailing list.