From 8a00308ad5edb804115ec0b5531a6e3447c21196 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 31 Jul 2011 04:34:09 -0600 Subject: [PATCH] add `lib' to `setup/infotab' exports and fix up documentation, which didn't mentioned the allowed `require' form --- collects/scribblings/raco/info.scrbl | 27 +++++++++++++++++++++++---- collects/setup/infotab.rkt | 3 ++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/collects/scribblings/raco/info.scrbl b/collects/scribblings/raco/info.scrbl index 0940bebca3..67bbbce0bb 100644 --- a/collects/scribblings/raco/info.scrbl +++ b/collects/scribblings/raco/info.scrbl @@ -1,8 +1,16 @@ #lang scribble/doc @(require scribble/manual - (for-label scheme + (for-label (except-in racket require) string-constants - setup/getinfo)) + setup/getinfo + (only-in setup/infotab require))) + +@(begin + (define-syntax-rule (define-racket-require id) + (begin + (require (for-label (only-in racket require))) + (define id @racket[require]))) + (define-racket-require racket:require)) @title[#:tag "info.rkt"]{@filepath{info.rkt} File Format} @@ -24,15 +32,17 @@ grammar of @racket[_info-module]: string-append path->string build-path collection-path system-library-subpath - string-constant) + require string-constant) [info-module (module info intotab-mod-path - (define id info-expr) + decl ...)] [intotab-mod-path setup/infotab (lib "setup/infotab.ss") (lib "setup/infotab.rkt") (lib "infotab.rkt" "setup") (lib "infotab.ss" "setup")] +[decl (define id info-expr) + (require allowed-path)] [info-expr (quote datum) (quasiquote datum) (info-primitive info-expr ...) @@ -46,6 +56,10 @@ grammar of @racket[_info-module]: string-append path->string build-path collection-path system-library-subpath] +[allowed-path (lib "string-constant.ss" "string-constants") + (lib "string-constants/string-constant.ss") + string-constants/string-constant + string-constants] ] For example, the following declaration could be the @filepath{info.rkt} @@ -65,3 +79,8 @@ As illustrated in this example, an @filepath{info.rkt} file can use language. See also @racket[get-info] from @racketmodname[setup/getinfo]. + +@defform[(require module-path)]{ + +Like @|racket:require|, but constrained to @racket[_allowed-path] as +shown in the grammar above.} diff --git a/collects/setup/infotab.rkt b/collects/setup/infotab.rkt index 09714287b9..ca1229b2c5 100644 --- a/collects/setup/infotab.rkt +++ b/collects/setup/infotab.rkt @@ -64,4 +64,5 @@ string-append path->string build-path collection-path system-library-subpath - (rename-out [limited-require require])) + (rename-out [limited-require require]) + lib)