
https://racket.slack.com/archives/C06V96CKX/p1527090366000047 I didn’t know about that either.
The docs say: > (contract-exercise val …+) → void? > val : any/c And I thought it’s weird you can’t specify “fuel” i.e. attempts.
I go to the source and it is: (define (contract-exercise #:fuel [fuel 10] v1 . vs)
...
So I guess the docs just need to be updated — unless this is intended to be undocumented?

is it possible to dynamic-require
a submodule? I tried to use submod
in a dynamic-require
expression and am getting a misuse of submod due to not being within a require
or provide
error. The documentation led me to believe it would be possible since a submod
expression is a valid module-path entity according to require
’s grammar and dynamic-require
’s documented interface.

@abmclin sounds like you’re missing a quote

ok, let me see where I need to put in quote

To clarify Sam’s point, you want something like (dynamic-require '(submod a b) 'x)
.

ok that worked, thanks!

dynamic-require
is a function, not a macro, so writing (submod a b)
as a bare argument will try to apply submod
as a function.

ahh I see, that is clear now

@lexi.lambda btw thanks for helping track down release regressions

feel free to just edit the main issue descriptions

Okay, I will. I was mostly just curious about the rackjure test failure, which seemed like low-hanging fruit to diagnose.

not saying you have to do more (though it’s certainly helpful), just that if you do you can just edit directly

Understood! I was about to do so and just noticed you already had.

do you feel the dynamic-require
documentation would benefit from adding clarifying notes about its behavior as a function as opposed to syntax? My intuition about its behavior was informed by require
and provide
being syntax so I tripped right over dynamic-require
’s subtle difference. Also @lexi.lambda’s clarification was what allowed me to finally understand the reason for double quote
used for module’s identifier in the documentation’s examples, e.g.
> (module a racket/base (displayln "hello"))
> (dynamic-require ''a #f)
The reason (please correct me if I’m wrong!) is because dynamic-require
being a function evaluates its arguments, so 'a
is not enough since it results in a
which isn’t a valid module path. So instead passing ''a
results in 'a
which is a valid (quote id)
module path.
I think the reasoning is obscure enough it would be helpful to add something to the effect to the docs.

I’d be happy to submit a P.R. if you’re fine with adding notes

Yes, some additional clarification (and maybe a submod example) would be good