From 58428d6c7992a4113149b5007a609fa88cd4d0ae Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 29 May 2008 20:51:27 +0000 Subject: [PATCH] doc and release-note corrections svn: r10024 --- collects/r5rs/r5rs.scrbl | 7 +++-- doc/release-notes/mzscheme/MzScheme_4.txt | 32 +++++++++++------------ 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/collects/r5rs/r5rs.scrbl b/collects/r5rs/r5rs.scrbl index 375f64d2d9..fb36a9caaf 100644 --- a/collects/r5rs/r5rs.scrbl +++ b/collects/r5rs/r5rs.scrbl @@ -81,10 +81,9 @@ loaded, if it exists. The file is the same as the file reported by example, under Unix, the file is @filepath{~/.pltr5rsrc}. By default, @exec{plt-r5rs} departs from @|r5rs| conformance in one -crucial way: the initial bindings of primitives correspond to module -imports into the top-level environment, instead of variable bindings. -This difference is visible if the name of a primitive is redefined at -the top level. Use the @as-index{@DFlag{no-prim}} command-line +crucial way: the names of pre-defined functions cannot be redefined at +the top level. This restriction enables better run-time +performance. Use the @as-index{@DFlag{no-prim}} command-line flag---before a file to load, if any---to obtain the standard behavior for primitive bindings (at the cost of performance). diff --git a/doc/release-notes/mzscheme/MzScheme_4.txt b/doc/release-notes/mzscheme/MzScheme_4.txt index 9b133ba10e..cbd47025c2 100644 --- a/doc/release-notes/mzscheme/MzScheme_4.txt +++ b/doc/release-notes/mzscheme/MzScheme_4.txt @@ -113,15 +113,15 @@ changes: considered real (or rational), and +inf.0, -inf.0, and +nan.0 are no longer considered rational (or integers). - - In fully expanded code, `#%datum' expands to `quote'. When using - the `mzscheme' language, beware that `if' in expansions is the `if' - of `scheme/base'. When using the `scheme/base' language, beware - that `lambda' and `#%app' expand to `#%plain-lambda' and - `#%plain-app' (which are also the `lambda' and `#%app' of the - `mzscheme' language). The `require' and `provide' forms expand to - `#%require' and `#%provide'. Finally, beware that `#%datum' in - `scheme/base' is different than in `mzscheme' (because the former - disallows unquoted keywords as expressions). + - In fully expanded code, `#%datum' expands to `quote'. Even when + using the `mzscheme' language, beware that `if' in fully expanded + code is the `if' of `scheme/base'. When using the `scheme/base' + language, beware that `lambda' and `#%app' expand to + `#%plain-lambda' and `#%plain-app' (which are also `lambda' and + `#%app' of the `mzscheme' language). The `require' and `provide' + forms expand to `#%require' and `#%provide'. Finally, beware that + `#%datum' in `scheme/base' is different than in `mzscheme' (because + the former disallows unquoted keywords as expressions). - The naming convention for compiled files has changed to preserve the original file suffix. For example, the bytecode version of @@ -155,16 +155,16 @@ changes: Porting Advice ====================================================================== -The best approach to moving to v4 depends on the kind of code that +The best approach to moving to v4.0 depends on the kind of code that you're working with. Non-module Programs ------------------- -If the prgram is not in a module, then the best start is to put it -into one. The module system is there help manage code across multiple -dialects of Scheme, so staying outside of modules while upgrading -means that you're ignoring the main upgrade tool. +If the program is not in a module, then the best start is to put it +into one. The module system's job is to manage code across multiple +dialects of Scheme, so staying outside of the module system while +upgrading means that you're ignoring the main upgrade tool. The module notation is much lighter than before, so putting old code into a module may be as easy as adding `#lang scheme' to the beginning @@ -181,7 +181,7 @@ Modules Using the `mzscheme' Language ------------------------------------- If the program is (now) in a `mzscheme' module, then it might work -fine as-is. The bindings of the `mzscheme' module in v3 and v4 are +fine as-is. The bindings of the `mzscheme' module in v372 and v4.0 are mostly the same, with two main caveats: * Pairs are immutable in the new `mzscheme'. @@ -205,7 +205,7 @@ mostly the same, with two main caveats: keyword-consuming functions from those libraries are difficult to use in `mzscheme' without explicitly importing and using `#%app' from `scheme/base'. Fortunately, keyword arguments were - infrequently used in PLT libraries before v4. + infrequently used in PLT libraries before v4.0. If these sorts of problems start to give you trouble, or if the relevant code is likely to be useful for a long time, then you're