From 2cf4a03d4ea67906073bb062c814c470eba57101 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 1 Dec 2013 08:09:07 -0700 Subject: [PATCH] move `setup/xref` from "scribble-lib" to "racket-index" The `setup/xref` library conceptually belongs in "racket-index", and moving the library avoids a cross-package use of a private module. Merge to v6.0 (cherry picked from commit d37e910169622364a10cdd34f00ade99ee216a77) --- pkgs/games/info.rkt | 1 + pkgs/gui-pkgs/gui-lib/framework/private/text.rkt | 14 ++++++++++---- pkgs/plt-services/info.rkt | 3 ++- .../racket-index/setup/private/doc-path.rkt | 0 pkgs/racket-pkgs/racket-index/setup/scribble.rkt | 2 +- .../racket-index}/setup/xref.rkt | 8 ++++---- pkgs/racket-pkgs/racket-test/info.rkt | 3 ++- pkgs/scribble-pkgs/scribble-doc/info.rkt | 3 ++- .../scribblings/scribble/running.scrbl | 2 ++ pkgs/scribble-pkgs/scribble-lib/info.rkt | 3 ++- 10 files changed, 26 insertions(+), 13 deletions(-) rename racket/collects/setup/private/path-utils.rkt => pkgs/racket-pkgs/racket-index/setup/private/doc-path.rkt (100%) rename pkgs/{scribble-pkgs/scribble-lib => racket-pkgs/racket-index}/setup/xref.rkt (98%) diff --git a/pkgs/games/info.rkt b/pkgs/games/info.rkt index fa9c0c2607..7d9624a9f5 100644 --- a/pkgs/games/info.rkt +++ b/pkgs/games/info.rkt @@ -14,6 +14,7 @@ "htdp-lib" "math-lib" "scribble-lib" + "racket-index" "sgl" "srfi-lib" "string-constants-lib")) diff --git a/pkgs/gui-pkgs/gui-lib/framework/private/text.rkt b/pkgs/gui-pkgs/gui-lib/framework/private/text.rkt index b99c9cff25..59c3237298 100644 --- a/pkgs/gui-pkgs/gui-lib/framework/private/text.rkt +++ b/pkgs/gui-pkgs/gui-lib/framework/private/text.rkt @@ -16,8 +16,7 @@ "coroutine.rkt" data/queue) -(require setup/xref - scribble/xref +(require scribble/xref scribble/manual-struct) (import mred^ @@ -4024,8 +4023,15 @@ designates the character that triggers autocompletion (let* ([sym->mpi (λ (mp) (module-path-index-resolve (module-path-index-join mp #f)))] [manual-mpis (and manuals (map sym->mpi manuals))]) - (unless xref - (set! xref (load-collections-xref))) + (unless xref + (let ([load-collections-xref + ;; Make the dependency on `setup/xref' indirect, so that a + ;; GUI does not depend on having documentation installed: + (with-handlers ([exn:missing-module? (lambda (exn) + (lambda () + (load-xref null)))]) + (dynamic-require 'setup/xref 'load-collections-xref))]) + (set! xref (load-collections-xref)))) (let ([ht (make-hash)]) (for-each diff --git a/pkgs/plt-services/info.rkt b/pkgs/plt-services/info.rkt index d530f2e458..254e4b8bb9 100644 --- a/pkgs/plt-services/info.rkt +++ b/pkgs/plt-services/info.rkt @@ -6,7 +6,8 @@ (define collection 'multi) -(define deps '(;; "Fake" dependencies to make them included +(define deps '("racket-index" + ;; "Fake" dependencies to make them included ;; in a default build: "main-distribution-test" "distro-build" diff --git a/racket/collects/setup/private/path-utils.rkt b/pkgs/racket-pkgs/racket-index/setup/private/doc-path.rkt similarity index 100% rename from racket/collects/setup/private/path-utils.rkt rename to pkgs/racket-pkgs/racket-index/setup/private/doc-path.rkt diff --git a/pkgs/racket-pkgs/racket-index/setup/scribble.rkt b/pkgs/racket-pkgs/racket-index/setup/scribble.rkt index f77ebdc4c6..081f24023f 100644 --- a/pkgs/racket-pkgs/racket-index/setup/scribble.rkt +++ b/pkgs/racket-pkgs/racket-index/setup/scribble.rkt @@ -3,7 +3,7 @@ (require setup/getinfo setup/dirs setup/path-to-relative - setup/private/path-utils + "private/doc-path.rkt" setup/collects setup/main-doc setup/parallel-do diff --git a/pkgs/scribble-pkgs/scribble-lib/setup/xref.rkt b/pkgs/racket-pkgs/racket-index/setup/xref.rkt similarity index 98% rename from pkgs/scribble-pkgs/scribble-lib/setup/xref.rkt rename to pkgs/racket-pkgs/racket-index/setup/xref.rkt index 0bbac8bc86..0d20cd6780 100644 --- a/pkgs/scribble-pkgs/scribble-lib/setup/xref.rkt +++ b/pkgs/racket-pkgs/racket-index/setup/xref.rkt @@ -1,12 +1,12 @@ -#lang scheme/base +#lang racket/base (require scribble/xref - scheme/fasl - scheme/path + racket/fasl + racket/path racket/promise setup/dirs setup/getinfo - setup/private/path-utils + "private/doc-path.rkt" setup/doc-db) (provide load-collections-xref diff --git a/pkgs/racket-pkgs/racket-test/info.rkt b/pkgs/racket-pkgs/racket-test/info.rkt index 37db1387d3..c6b627fd13 100644 --- a/pkgs/racket-pkgs/racket-test/info.rkt +++ b/pkgs/racket-pkgs/racket-test/info.rkt @@ -27,7 +27,8 @@ ;; for random testing: "redex-lib")) -(define build-deps '("scheme-lib" +(define build-deps '("racket-index" + "scheme-lib" "srfi-lite-lib" "base" "data-lib")) diff --git a/pkgs/scribble-pkgs/scribble-doc/info.rkt b/pkgs/scribble-pkgs/scribble-doc/info.rkt index 0b3c5a551d..a0e2c53b3c 100644 --- a/pkgs/scribble-pkgs/scribble-doc/info.rkt +++ b/pkgs/scribble-pkgs/scribble-doc/info.rkt @@ -2,7 +2,8 @@ (define collection 'multi) -(define build-deps '("mzscheme-doc" +(define build-deps '("racket-index" + "mzscheme-doc" "net-doc" "scheme-lib" "draw-doc" diff --git a/pkgs/scribble-pkgs/scribble-doc/scribblings/scribble/running.scrbl b/pkgs/scribble-pkgs/scribble-doc/scribblings/scribble/running.scrbl index e58091820d..8f31300ca7 100644 --- a/pkgs/scribble-pkgs/scribble-doc/scribblings/scribble/running.scrbl +++ b/pkgs/scribble-pkgs/scribble-doc/scribblings/scribble/running.scrbl @@ -126,6 +126,8 @@ information for all installed documentation, so renders @filepath{mine.scrbl} to @filepath{mine.html} with cross-reference links to the Racket installation's documentation. +(The @filepath{racket-index} package must be installed to use +@PFlag{m}/@DPFlag{main-xref-in}.) The @DPFlag{xref-in} flag loads cross-reference information by calling a specified module's function. The @racketmodname[setup/xref] module diff --git a/pkgs/scribble-pkgs/scribble-lib/info.rkt b/pkgs/scribble-pkgs/scribble-lib/info.rkt index 27de3c8d97..c1fb2d35d9 100644 --- a/pkgs/scribble-pkgs/scribble-lib/info.rkt +++ b/pkgs/scribble-pkgs/scribble-lib/info.rkt @@ -2,7 +2,8 @@ (define collection 'multi) -(define deps '("scheme-lib" +(define deps '("racket-index" + "scheme-lib" "base" "compatibility-lib" "scribble-text-lib"