added clarification on protect-out docs

This commit is contained in:
John Clements 2010-10-29 12:43:38 -07:00
parent 4542d071d5
commit cbe42caa41
2 changed files with 8 additions and 4 deletions

View File

@ -46,8 +46,9 @@ requires control over the old one).
Control over a module declaration (as opposed to a mere invocation)
enables the reconstruction of syntax objects that contain references
to the module's unexported identifiers. Otherwise, the compiler and
macro expander prevent any reference to an unexported identifier,
to the module's protected and unexported identifiers. Otherwise, the
compiler and macro expander prevent any reference to a protected or
unexported identifier,
unless the reference appears within an expression that was generated
by the module's macros (or, more precisely, a macro from a module
whose declaration inspector controls the invocation of the

View File

@ -837,8 +837,11 @@ follows.
]}
@defsubform[(protect-out provide-spec ...)]{ Like the union of the
@racket[provide-spec]s, except that the exports are protected; see
@secref["modprotect"]. The @racket[provide-spec] must specify only
@racket[provide-spec]s, except that the exports are protected;
requiring modules may refer to these bindings, but may not extract
these bindings from macro expansions or access them via @racket[eval] without
access privileges.
For more details, see @secref["modprotect"]. The @racket[provide-spec] must specify only
bindings that are defined within the exporting module.
@examples[#:eval (syntax-eval)