Moved unstable/cce/require-provide to unstable/require.

This commit is contained in:
Carl Eastlund 2010-05-30 12:43:01 -04:00
parent 7131198974
commit f6a190d3f3
10 changed files with 16 additions and 78 deletions

View File

@ -2,7 +2,7 @@
(require (for-syntax unstable/planet-syntax)
unstable/planet-syntax
"require-provide.ss")
unstable/require)
(define-syntax (this-package-version-symbol stx)
(syntax-case stx ()

View File

@ -12,7 +12,6 @@
@include-section["set.scrbl"]
@include-section["require-provide.scrbl"]
@include-section["planet.scrbl"]
@include-section["debug.scrbl"]

View File

@ -12,7 +12,7 @@
This module provides tools relating to @|PLaneT| packages. In addition to the
binding described below, it provides @scheme[define-planet-package] and
@scheme[this-package-in] from @schememodname[unstable/cce/require-provide], and
@scheme[this-package-in] from @schememodname[unstable/require], and
@scheme[make-planet-path], @scheme[syntax-source-planet-package],
@scheme[syntax-source-planet-package-owner],
@scheme[syntax-source-planet-package-name],

View File

@ -13,7 +13,7 @@ This module provides tools for Scribble documentation; specifically, of
@|PLaneT| packages. In addition to the bindings described below, this module
provides @scheme[this-package-version-symbol] from
@schememodname[unstable/cce/planet], @scheme[this-package-in] from
@schememodname[unstable/cce/require-provide], and
@schememodname[unstable/require], and
@scheme[make-scribble-evaluator] and @scheme[make-scribble-module-evaluator]
from @schememodname[unstable/sandbox].

View File

@ -2,7 +2,7 @@
(require scheme/pretty
srfi/67
"../require-provide.ss")
unstable/require)
(require/provide schemeunit schemeunit/text-ui)

View File

@ -3,7 +3,6 @@
(require "checks.ss"
"test-debug.ss"
"test-planet.ss"
"test-require-provide.ss"
"test-scribble.ss"
"test-set.ss")
@ -11,6 +10,5 @@
(test-suite "scheme.plt"
debug-suite
planet-suite
require-provide-suite
scribble-suite
set-suite))

View File

@ -1,9 +0,0 @@
#lang scheme
(require "checks.ss"
"../require-provide.ss")
(provide require-provide-suite)
(define require-provide-suite
(test-suite "require-provide.ss"))

View File

@ -1,8 +1,8 @@
#lang scheme
#lang racket
(require (for-syntax scheme/match
scheme/require-transform
scheme/provide-transform
(require (for-syntax racket/match
racket/require-transform
racket/provide-transform
syntax/parse
unstable/planet-syntax)
unstable/define)
@ -125,35 +125,7 @@
src-sym)))
orig-stx)]))
;; (do-local-require rename spec ...)
;; Lifts (require spec ...) to the (module) top level, and makes the imported
;; bindings available in the current context via a renaming macro.
(define-syntax (do-local-require stx)
(syntax-parse stx
[(_ rename:id spec:expr ...)
(let*-values ([(imports sources)
(expand-import
(datum->syntax
stx
(list* #'only-meta-in 0 (syntax->list #'(spec ...)))
stx))]
[(names) (map import-local-id imports)]
[(reqd-names)
(let ([ctx (syntax-local-get-shadower (datum->syntax #f (gensym)))])
(map (lambda (n) (datum->syntax ctx (syntax-e n) n)) names))]
[(renamed-imports) (map rename-import imports reqd-names)]
[(raw-specs) (map import->raw-require-spec renamed-imports)]
[(lifts) (map syntax-local-lift-require raw-specs reqd-names)])
(with-syntax ([(name ...) names]
[(lifted ...) lifts])
(syntax/loc stx (rename [name lifted] ...))))]))
(define-syntax-rule (local-require spec ...)
(do-local-require define-renamings spec ...))
(provide require/provide
do-local-require
local-require
quote-require
define-planet-package
define-collection

View File

@ -1,15 +1,11 @@
#lang scribble/doc
@(require scribble/manual
scribble/eval
"../scribble.ss"
"eval.ss")
@(require (for-label scheme unstable/cce/require-provide))
#lang scribble/manual
@(require scribble/eval "utils.rkt" (for-label racket unstable/require))
@title[#:style 'quiet #:tag "cce-require-provide"]{Require and Provide}
@title{Requiring Modules}
@defmodule[unstable/cce/require-provide]
@defmodule[unstable/require]
This module provides tools for managing the imports and exports of modules.
This module provides tools for importing from modules.
@defform[(require/provide module-path ...)]{
@ -27,31 +23,12 @@ Re-exports all bindings provided by each @scheme[module-path]. Equivalent to:
Produces the names exported by the @scheme[require-spec]s as a list of symbols.
@examples[
#:eval (evaluator 'unstable/cce/require-provide)
(quote-require scheme/bool scheme/function)
#:eval (eval/require 'unstable/require)
(quote-require racket/bool racket/function)
]
}
@defform[(local-require require-spec ...)]{
This form performs a require into a local definition context. It achieves this
by lifting a @scheme[#%require] form to the top level and introducing the
bindings locally with rename transformers. For many purposes this is the same
as a regular @scheme[require]; however, only bindings for the current phase are
made available, and all names are introduced as syntax bindings even if the
exported identifiers included value bindings.
}
@defform[(do-local-require rename require-spec ...)]{
This form generalizes @scheme[do-local-require] to use an arbitrary macro
@scheme[rename] (of the same syntactic form as @scheme[define-renamings]) to
introduce local bindings.
}
@defform[(define-planet-package name package)]{
Defines a shortcut @scheme[name] for importing modules from planet package

View File

@ -87,6 +87,7 @@ Keep documentation and tests up to date.
@include-section["pretty.scrbl"]
@include-section["queue.scrbl"]
@include-section["regexp.scrbl"]
@include-section["require.scrbl"]
@include-section["sandbox.scrbl"]
@include-section["srcloc.scrbl"]
@include-section["string.scrbl"]