The Racket repository
![]() 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. |
||
---|---|---|
pkgs | ||
racket | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
INSTALL.txt | ||
Makefile | ||
README.txt |
This is the source code for the main Racket distribution. See "INSTALL.txt" for information on building Racket. License ------- Racket Copyright (c) 2010-2013 PLT Design Inc. Racket is distributed under the GNU Lesser General Public License (LGPL). This means that you can link Racket into proprietary applications, provided you follow the rules stated in the LGPL. You can also modify Racket; if you distribute a modified version, you must distribute it under the terms of the LGPL, which in particular means that you must release the source code for the modified software. See doc/release-notes/COPYING_LESSER.txt for more information.