From: Matthew Flatt <mflatt@cs.utah.edu> To: plt-scheme@list.cs.brown.edu Subject: [plt-scheme] 369.4 Date: Fri, 12 Jan 2007 15:15:03 +0800 MzScheme and MrEd are now version 369.4 in the SVN repository trunk. The main change is in MzScheme’s memory management. The 3m variant of MzScheme, MrEd, DrScheme, etc. is now the default: * The executables formerly known as "MzScheme3m", "MrEd3m", "DrScheme3m", etc. (and which weren’t included in a standard distribution) are now called "MzScheme", "MrEd", "DrScheme", etc. * The executables formerly known as "MzScheme", "MrEd", "DrScheme", etc. are now "MzSchemeCGC", "MrEdCGC", "DrSchemeCGC", etc., and they aren’t included in a standard distribution. Whether this is a small change or a big change depends on how you use DrScheme. If you just write Scheme code, then all you should notice is improved memory use, and maybe a change in run-time performance (usually either a small negative change or a large positive change, depending on how much allocation is involved). If you connect C code or foreign libraries to PLT Scheme, then you may have to learn about MzScheme’s memory-management variants; see "Inside PLT MzScheme". For more information about "3m" versus "CGC" (the old default), see http://list.cs.brown.edu/pipermail/plt-scheme/2006-June/013801.html It may takes us a few days to get nightly builds online with these changes. The "Full" nightly build will include CGC binaries as well as 3m binaries. When you build from source under Unix and Mac OS X, you can build CGC binaries --- with a "cgc" suffix for executables --- with `make cgc’; install with `make install-cgc’. Use `make both’ and `make install-both’ to build and install both variants. Libraries keep their old names; only executable names change with this version. If you really need the old organization (unsuffixed CGC executables and optional, suffixed 3m executables), configure with --enable-cgcdefault, but that’s a last resort. When you run the 3m variant of mzc, then mzc now works in 3m mode by default. Similarly, when you run the CGC veriant of mzc, then mzc works in CGC mode by default. A new --cgc flag enables CGC mode even when running the 3m variant of mzc, and the --3m flag works like always. Executable-generating tools determine which suffix convention you’re using automatically, at least if you’re using the standard one (no suffix for 3m, "CGC" for CGC) or the old one ("3m" suffix for 3m, no suffix for CGC). If you want a different suffix convention, you can manually rename the MzScheme and MrEd executables and change "config.ss" in the "config" collection, but I doubt that anyone will ever try that. Other changes: * Changed `system-type’ to accept ’gc and ’so-suffix flags. The result for the former is either ’3m or ’cgc. * Changed launcher, embedding, and compilation libraries to support ’cgc as a variant, and removed ’normal as a variant. The default is the result of `(system-type ’gc)’. * Changed `path->directory-path’, `simplify-path’, and `split-path’ to include a trailing path separator, even when the result would be a directory syntactically without it. For example, `(path->string (path->directory-path "."))’ produces "./". * Changed `simplify-path’ for Windows paths to replace "/" with "\\". * Changed `current-directory’ to apply `path->directory-path’ to a given path. Matthew