[racket] Rules For Compiling code that will use dynamic-places with RACO

From: Galler (lzgaller at optonline.net)
Date: Fri Jul 5 02:54:25 EDT 2013

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



Posted on the users mailing list.