<div dir="ltr">  Awesome.  Thanks for the answers everyone.  I&#39;m probably going to end up doing a namespace-require on the arbitrary code within a new namespace and then use eval to test any macros within it.<br><br>Cody<br>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Feb 1, 2013 at 7:29 AM, Ryan Culpepper <span dir="ltr">&lt;<a href="mailto:ryanc@ccs.neu.edu" target="_blank">ryanc@ccs.neu.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The answer is roughly &quot;that is not possible&quot;. In general, the meaning of a macro cannot be represented by a run-time value (but see below), so if you want to do something reflection-based with macros, you probably need to change your design to deal with terms (represented by syntax objects) instead of values.<br>

<br>
Actually, it does make sense to talk about the run-time value that corresponds to a macro in the case of identifier macros---macros that can be used like variables. For example, if you use &#39;contract-out&#39; to provide a variable &#39;f&#39; with a contract, it actually creates an auxiliary identifier macro and provides that as &#39;f&#39;. The expansion of the provided &#39;f&#39; macro fills in the negative blame part of the contract with the module where the expansion occurred and applies the contract to the original &#39;f&#39; variable.<br>

<br>
That&#39;s the situation handled by the extension of &#39;dynamic-require&#39; to macros. So doing<br>
<br>
  (dynamic-require mod macro-name)<br>
<br>
is approximately the same as<br>
<br>
  (parameterize ((current-namespace (make-empty-base-namespace)))<br>
    (namespace-require mod)<br>
    (eval macro-name))<br>
<br>
(except that it uses &#39;namespace-attach-module&#39; instead of just &#39;namespace-require&#39;). If &#39;macro-name&#39; happens to be a macro that acts like a variable, then &#39;eval&#39; produces a value. Otherwise, if it&#39;s something like &#39;define&#39; or &#39;match&#39; or &#39;for/list&#39;, you get an error, and it&#39;s exactly the same error you would get if you wrote something like<br>

<br>
  #lang racket<br>
  for/list<br>
<br>
What to do next depends on what you want to do with the macros.<br>
<br>
Ryan<div class="im"><br>
<br>
<br>
On 02/01/2013 02:57 AM, Dan Grossman wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<br>
Cody and I would love an answer to this question from 1.5 months ago if<br>
anybody can point us in the right direction and/or ask us to clarify the<br>
question.  Or if the answer is &quot;that is not possible&quot; then we&#39;ll do<br>
something else.<br>
<br>
Much thanks!<br>
<br>
--Dan<br>
<br>
On Mon, Dec 17, 2012 at 9:20 PM, Cody Schroeder &lt;<a href="mailto:codeblack08@gmail.com" target="_blank">codeblack08@gmail.com</a><br></div><div class="im">
&lt;mailto:<a href="mailto:codeblack08@gmail.com" target="_blank">codeblack08@gmail.com</a>&gt;<u></u>&gt; wrote:<br>
<br>
       I&#39;m in a position that I would like to use dynamic-require<br></div>
    &lt;<a href="http://docs.racket-lang.org/reference/Module_Names_and_Loading.html#(def._((quote._~23~25kernel)._dynamic-require))" target="_blank">http://docs.racket-lang.org/<u></u>reference/Module_Names_and_<u></u>Loading.html#(def._((quote._~<u></u>23~25kernel)._dynamic-require)<u></u>)</a>&gt; to<div class="im">
<br>
    gain access to all of the provides in a module.  This is quite<br>
    straightforward for normal procedures, but I also want this to<br>
    include syntax.  However, I get this error when trying to<br>
    dynamically require the blah macro from my test module:<br>
<br>
    (dynamic-require &quot;test.rkt&quot; &#39;blah)<br>
    blah: use does not match pattern: (blah body) in: blah<br>
<br>
       From the spec, it says that &quot;If the module exports provided as<br>
    syntax, then a use of the binding is expanded and evaluated in a<br>
    fresh namespace to which the module is attached&quot; when using<br>
    dynamic-require.  I don&#39;t understand how it&#39;s being used, though.<br>
<br>
       Is there a way to use dynamic-require how I want?  Is there a<br>
    better way?<br></div><div class="im">
    Cody<br>
<br>
    ____________________<br>
       Racket Users list:<br>
    <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/<u></u>users</a><br>
<br>
<br>
<br>
<br>
____________________<br>
   Racket Users list:<br>
   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/<u></u>users</a><br>
<br>
</div></blockquote>
<br>
</blockquote></div><br></div>