On Oct 5, 2010, at 3:25 PM, Ryan Culpepper wrote: > I seem to have mangled my response right before sending it. Here it is again, > hopefully straightened out. > > On 10/05/2010 03:59 PM, John Clements wrote: >> A couple of weeks ago, you showed me the trick that rackunit uses to allow >> single-instantiation of a modules. I'm now trying to do this >> for a planet package, and it looks like I have to change the required module >> from being a relative to being an absolute path. That is: >> >> (require (prefix-in drlink: private/drracket-link)) > > I assume (hope) you meant > (require (prefix-in drlink: "private/drracket-link.rkt")) > > for the relative require.
yes, of course. My mistake. >> must become >> >> (require (prefix-in drlink: (planet "drracket-link.rkt" ("clements" >> "rsound.plt") "private"))) >> >> This works, but seems extremely fragile. Does it make sense to you that >> this would be required? Without it, I get the error below: > > From what I recall, the call to namespace-module-attach must use the correct > absolute module path, but the require can be relative. I confirmed that > that's how the last PLaneT version of schemeunit that included the tool > (version (2 12)) did it. > > It looks like you're using a PLaneT development link. Perhaps that's the > source of the problem? > > How about dropping the following code into drracket-link.rkt so it prints out > its (absolute) resolved module path when it gets required from the tool. > > (eprintf "drracket-link.rkt = ~s\n" > (resolved-module-path-name > (variable-reference->resolved-module-path > (#%variable-reference)))) wait... isn't that part of the error message I attached earlier? Viz: namespace-attach-module: unknown module (in the source namespace): #<resolved-module-path:"/Users/clements/clements/planet-collects/rsound/private/drracket-link.rkt"> === context === /Users/clements/plt/collects/drracket/private/rep.rkt:1660:6: initialize-console method in ...cket/private/rep.rkt:508:4 /Users/clements/plt/collects/drracket/private/unit.rkt:4755:4: create-new-drscheme-frame /Users/clements/plt/collects/drracket/private/main.rkt:663:0: make-basic /Users/clements/plt/collects/drracket/tool-lib.rkt: [running body] /Users/clements/plt/collects/drracket/private/drracket-normal.rkt: [running body] /Users/clements/plt/collects/drracket/drracket.rkt: [running body] John > ;; -- > > Another thing to consider, if you're going to be distributing this code via > PLaneT, is that users will have to restart DrRacket after installing the > package so the tool can take effect. > > Ryan
smime.p7s
Description: S/MIME cryptographic signature
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev