[plt-scheme] 369.10

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Thu Apr 19 21:37:31 EDT 2007

MzScheme and MrEd are now version 369.10 in the SVN repository trunk.

If you use `this-expression-source-directory' anywhere in your code,
consider switching to the new `define-runtime-path' form that is
provided by the new `(lib "runtime-path.ss")'. The new form is probably
a little easier to use. More importantly, it's better for generating
executables and distributions.

Changes in Executable and Distrbution Creation
----------------------------------------------

The new `define-runtime-path' forms expose run-time paths to
executable- and distribution-making machinery, such as DrScheme's
"Create Executable" menu item or `mzc --exe[-dir]'. That way, the
run-time files can be properly accessed by the executable and
eventually included in a distribution.

For example, since the "plot" collection now uses `define-runtime-path'
to access its shared libraries and font files, you can create and
distribute a stand-alone executable that uses PLT Plot. Similarly,
under Windows, a stand-alone executable using the "openssl" collection
is automatically packaged with the "libeay" and "ssleay" DLLs that are
included with the PLT distribution.

In addition to `define-runtime-path' support, modules that are
implemented as extensions (i.e., in C) are now correctly handled when
making executables and distributions.  As with other run-time files, the
extension is referenced from its original location in an executable,
but then packaged up with the executable in a distribution.

For example, executables and distributions using MysterX under Windows
should work now. The `mxmain' module, which is implemented in C as an
extension, now gets included in a distribution.


Executable creation for HtDP-language programs remains broken at the
moment, but we're working on that. Also, executable creation still
doesn't work with graphical sources that have no direct text analogue
(such as source using image constants); that one is unlikely to be
fixed before the next official release, although things like XML and
comment boxes have worked since v369.6.


Other Changes
--------------

 * `this-expression-source-directory' works better with modules that
   are not installed in the main PLT collection tree; bytecode for a
   module using `this-expression-source-directory' can be moved, and
   the reported path at run-time corresponds to the new location
   instead of the old one. Still, the most likely reason to move
   bytecode is to include it in an executable, so `define-runtime-path'
   is a more complete solution.

 * Added `parameterize*'.

 * Added `module-path-index-resolve'. This primitive is related to the
   improvement of `this-expression-source-directory' and the new
   `define-runtime-path' forms.


Matthew



Posted on the users mailing list.