[plt-scheme] 301.16
MzScheme and MrEd are now version 301.16 in the SVN repository trunk.
This is most of the last step that I promised in the 301.15
announcement:
http://list.cs.brown.edu/pipermail/plt-scheme/2006-May/013023.html
Changes:
* Under Unix, when you create a executable with `mzc --[gui-]exe',
the resulting executable is a wrapper for MzScheme or MrEd, instead
of a copy of the MzScheme of MrEd executable.
This change may seem like a step backward, because it makes the
generated executable dependent on another executable. However, this
change is consistent with the fact that generated Windows and Mac OS
X executables are dependent on shared libraries --- as are Unix
executables when built with --enable-shared.
To get the old behavior back, use mzc's new --orig-exe flag, but
probably you want the next bullet, instead...
* Added a new mode to the mzc: --exe-dir. Given a target directory and
one or more executables generated with --[gui-]exe, it combines the
executables with any needed DLLs, frameworks, or shared libraries,
so that the resulting package can be moved to any machine.
For Windows, executables are put directly into the package
directory, and DLLs go into a "lib" sub-directory.
For Mac OS X, MrEd executables go into the package directory,
MzScheme executables go into a "bin" subdirectory, and frameworks go
into a "lib" sub-directory. As a special case, if the package has a
single MrEd executable, then the "lib" directory is hidden inside
the application bundle.
For Unix, executables go into a "bin" subdirectory, shared libraries
(if any) go into a "lib" subdirectory, and the wrapped executables
are placed into a "lib/plt" subdirectory with version-specific
names. This is consistent with FHS, and it means that packages can
be safely unpacked into, say, /usr/local.
The package also has a "collects" directory that is used as the main
"collects" for the packaged executables. Currently, the "collects"
directory is empty, but mzc will soon let you supply directories to
populate the package's "collects" directory. In particular, you'll
be able to package multiple executables that share collection-based
libraries.
The "collects" directory is in "lib/plt/<X>", where "<X>" is the
name of the first packaged executable (sans suffix). Again, the
"<X>" means that packages with potentially colliding collections can
be safely unpacked in the standard place.
The Scheme interface to the new functionality is in
"distribute.ss" from the "setup" collection.
* An executable created with --[gui-]exe ignores PLTCOLLECTS and the
user-specific "collects" directory, because an executable packaged
for separate distribution shouldn't act like part of a PLT Scheme
installation. To get the old behavior back, use --ccf -U.
* Added `use-user-specific-search-path' and a -U command-line flag to
MzScheme/MrEd. These are used in the implementation of the previous
bullet.
* `system-type' now accepts an optional symbol argument --- one of
'os, 'machine, or 'link --- instead of an optional boolean.
Matthew