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) Control over a module declaration (as opposed to a mere invocation)
enables the reconstruction of syntax objects that contain references enables the reconstruction of syntax objects that contain references
to the module's unexported identifiers. Otherwise, the compiler and to the module's protected and unexported identifiers. Otherwise, the
macro expander prevent any reference to an unexported identifier, compiler and macro expander prevent any reference to a protected or
unexported identifier,
unless the reference appears within an expression that was generated unless the reference appears within an expression that was generated
by the module's macros (or, more precisely, a macro from a module by the module's macros (or, more precisely, a macro from a module
whose declaration inspector controls the invocation of the 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 @defsubform[(protect-out provide-spec ...)]{ Like the union of the
@racket[provide-spec]s, except that the exports are protected; see @racket[provide-spec]s, except that the exports are protected;
@secref["modprotect"]. The @racket[provide-spec] must specify only 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. bindings that are defined within the exporting module.
@examples[#:eval (syntax-eval) @examples[#:eval (syntax-eval)