Left one dependency broken: "drracket" currently depends on "htdp" for
a test. That needs to be fixed by removing the dependency (moving the
test to "htdp?), instead of changing the declared dependencies.
The new `--no-pkg-deps' or `-K' flag skips the check.
If a module in package X refers to a module in package Y, check that
package X declares a dependency on Y. Note that package X must
specifically depend on Y --- not another package that at the moment
happens to declare a dependency on Y.
A new "base" package represents the content of the core (so that, if
the core shrinks, a new "base2" can represent the smaller core).
Most every package now needs a dependency on "base".
Sometimes, it makes sense for X to access Y when X declares a
dependency on Z, because Z promises to always depend on Y. For
example, the "gui" package is defined to combne "gui-lib" and
"gui-doc", so it's appropriate to use the modules of "gui-lib" when
depending on "gui". A package's "info.rkt" can therefore define
`implies' as a subset of the dependencies listed in `deps', which
means that depending on the package implies a dependency on the listed
packages. (It's even possible for packages to mutually imply each
other, which is why the dependency checking code ends up with a
union-find.)
Dependency checking distinguishes between run-time dependencies and
build-time dependencies: anything listed in a ".dep" file is a build
dependency, at least. To imply a run-time dependency, a reference must
appear in a bytecode file's imports, and not in a subdirectory or
submodule that would be pruned for a binary package.
The `--fix-pkg-deps' flag attempts to automatically fix package
dependency declarations (i.e., modify a package's "info.rkt" file)
based on inferred dependencies.
The "-lib" in "compatbility-lib" is meant to mean "no documentation"
-- and, more to the point, no dependency on documentation infrastructure.
Move later to a "compatibility-doc" package.
This reverts commit acce2d27d1.
There are a number of formerly-exported identifiers that are now
no longer exported:
provide/contract-transformer?
true-provide/contract
replace-provide/contract-transformer-positive-blame
make-provide/contract-transformer
These are internal bindings that should probably never have been
exported. (They weren't documented.)
There are two currently-exported identifiers that were not
exported before:
blame-update
contract-continuation-mark-key
The first comes because mzlib/contract re-exports
racket/contract/combinator and blame-update is a new export there (for
option contracts). The other is less clear and may be hidden
(it is also new to racket/contract).
The problem with allowing `(require string-constants)' in an
"info.rkt" file is that "string-constants-lib" is a package that might
not be installed. Removing it allows any "info.rkt" file to be loaded
with just the core.
Strings constants were used for `textbook-pls' and
`drscheme-language-positions' entries. To enable access to string
constants for those specifications, DrRacket now recognizes
`get-textbook-pls' and `get-drscheme-language-positions' as
module path plus symbol specifications.
Also, fix up conflict checking in `raco pkg install' so that ".zo"
files without source do not count as provided modules unless an
"info.rkt" declares `assume-virtual-sources' (which is where we
got into trouble, again, with `string-constants'), making it
consistent with the way that `raco setup' removes ".zo" files.
Use `PKGS' with the top-level makefile to select packages for
a development-mode build. The default is "main-distribution",
which includes all packages in "pkgs".
Making them "etc"-relative intercts badly with redirecting
a configuration to override just a few values --- such as
the links path, which is what `make core' needs.
* Clarified bogosity of toplevel .gitignore (and other such files)
* Removed "doc/" in the toplevel file -- looks like this was some broken
leftover, and it's dangerous for at least "scribble/doc" (which
contains code).
* Collapse more common patterns into worksp instead of in each file.
* Use a trailing "/" for directories.
* racket/lib/collects/pkg/.gitignore looks like a leftover that is no
longer needed.