Commit Graph

1077 Commits

Author SHA1 Message Date
Matthew Flatt
9b4940d6a6 fix build on version change 2013-07-01 10:53:04 -06:00
Matthew Flatt
b12cdecb9f fixup for mzscheme' -> racket/base' conversion 2013-07-01 10:49:07 -06:00
Sam Tobin-Hochstadt
d54c1e4e49 Remove most uses of mzscheme in the core.
Remaining are:
 - parts of unit200 that Matthew plans to remove.
 - the `mzscheme` implementation itself.

The implementation of `mzscheme` has been moved
to the `mzscheme` collection (from the `racket` and
`scheme` collections). The `scheme/mzscheme`
language, which was undocumented, has been removed.

This is slightly backwards-incompatible, because
the `xform` handling of precompiled headers now
evaluates code in a `racket/base`-like namespace,
instead of in a `mzscheme`-like namespace.
2013-07-01 12:08:42 -04:00
Sam Tobin-Hochstadt
d0a0e31abc Fix uses of 'mzscheme' in comments. 2013-07-01 11:27:14 -04:00
Sam Tobin-Hochstadt
9f31b8bb30 Copy many fewer files for xform. 2013-07-01 11:27:14 -04:00
Robby Findler
d412afa426 removed unused variable 2013-06-29 10:33:37 -05:00
Matthew Flatt
04d5d9bd55 raco setup: add package-dependency checking
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.
2013-06-29 06:51:18 -06:00
Matthew Flatt
336d6ebc09 ditto on build repair (missed two places) 2013-06-29 06:19:09 -06:00
Matthew Flatt
0fdc7ec1a1 build repair for case that "etc" does not exist 2013-06-28 08:32:33 -06:00
Matthew Flatt
d450ee9707 link development-mode packages in a separate pkg database
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".
2013-06-27 21:52:23 -06:00
Sam Tobin-Hochstadt
5ec754803e Fix some mzlib references. 2013-06-27 23:13:46 -04:00
Asumu Takikawa
42b5cfe8b2 Use racket/cmdline instead of mzlib/cmdline
This should fix the build
2013-06-27 22:17:15 -04:00
Matthew Flatt
53d68e2149 switch "config.rktd" dirs back to "collects"-relative
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.
2013-06-27 17:04:16 -06:00
Matthew Flatt
a5ce399dcf .gitignore fixups 2013-06-27 07:52:28 -06:00
Matthew Flatt
dc11090f6b repair interaction of taints and submodule expansion 2013-06-26 12:59:44 -07:00
Eli Barzilay
555c300c72 .gitignore cleanups
* 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.
2013-06-26 00:52:01 -04:00
Matthew Flatt
1ee88e2721 links file and pkg directrory location and search paths in "config.rktd"
Allow the location of the installation-specific "links.rktd" file to
be specified in "config.rktd", and also allow extra link files to
be provided.

Allow the same for package directories.

The main file/directory in each case corresponds to the file/directory
that can be modified by an installation-scope install. Extra files
or directories in a search path supports constant links and libraries
that are shared across installations --- like "/usr/lib" versus "/lib".
2013-06-25 22:46:23 +02:00
Matthew Flatt
2aed2138a6 raco link: "user" versus "shared" links
By default, `raco link' is now more like `raco pkg' in terms of scope,
and version-specific information doesn't pile up in a user's "links.rktd"
file.
2013-06-25 22:46:23 +02:00
Matthew Flatt
e51ac9cc61 fix `local-transformer-expand' with 'top-level context 2013-06-25 11:02:10 +02:00
Matthew Flatt
208c7d23a6 detect changes to "links.rktd" by content instead of timestamp
The 1-second granularity of filesystem timestamps is not
good enough to deetct changes to the file --- especially
when `raco pkg' installs links and runs `raco setup' (in
the same Rcket process), in which case a newly installed link
might not be detected.

The longer-term repair is probably to add file-changed
events to Racket (based on `inotify' and similar interfaces
provided by OSes).
2013-06-21 13:16:03 -06:00
Matthew Flatt
2ff05e2dda win32: fix destination of COPYING files in build 2013-06-20 07:21:46 -06:00
Matthew Flatt
fc79d744d1 win32: make "doc" dir for core install 2013-06-20 06:41:09 -06:00
Matthew Flatt
fa6f56fcb1 move release notes in appropriate packages
A collection declares release notes with a `release-notes' field in
"info.rkt".

The "doc" directory is now populated exclusively by generated content,
instead of having a static "release-notes" directory (and a "keep-dirs.rktd"
file to record the static directories).
2013-06-19 21:01:52 -06:00
Matthew Flatt
2e781d32f7 mzcom: set mzobj interface version to bogus value, for now
MzCOM and its build process need some sort of overhaul, but
it's on the backburner for now.
2013-06-19 21:01:52 -06:00
Matthew Flatt
8f2b08d0f5 win32: fix `win32-in-place' target on existing tree 2013-06-19 21:01:51 -06:00
Matthew Flatt
a3c7be1a9c win32: fix version info in executables
Also, remove the need for a cron job that patches the version
number in resource and manifest files.
2013-06-19 11:20:03 -06:00
Matthew Flatt
b2ebb0a28b reorganize into core plus packages
The "racket" directory contains a pared-back version of the
repository, roughly.

The "pkgs" directory everything else in the repository, but
organized into packages.
2013-06-19 09:01:37 -06:00