[racket] Rules For Compiling code that will use dynamic-places with RACO
Here's what I determined.
RULES For Compiling code that will use dynamic-places with RACO
Racket: 5.3.5
O/S Windows XP sp3
terminology:
worker = module that will run in the new virtual machine
parent = module calling the dynamic-place procedure
1. In the worker module explicitly use the (module modname racket....) form
and not the #lang special form
The use of #lang form generates collection-not-found errors on compilation.
This occurs even if the #lang form is identical in both
parent and worker
2. Any user-files required by the worker also had to obey RULE 1
3. USE ++lib option (ie. raco exe ++lib ffi/com for) for any libraries
uniquely required by the worker module and its own requires
Alternatively, require the library in the parent, and this step is unnecessary.
Examples:
raco exe ++lib ffi/com ++lib compatibility/defmacro parent.rkt
would compile a parent with a worker which required both ffi/com and
compatibility/defmacro