>>19
You have failed to explain which features have "covered it in shit". So lets go through the changes then
The empty list is now required to count as true.
Already the case in most implementations, compatible with IEEE Scheme and it quite frankly makes a lot of sense.
The classification of features as essential or inessential has been removed. There are now three classes of built-in procedures: primitive, library, and optional.
This is really a report change rather than a scheme change.
Programs are allowed to redefine built-in procedures. Doing so will not change the behavior of other built-in procedures.
Admittedly R4RS did not forbid this, it left such behaviour unspecified.
Port has been added to the list of disjoint types.
Did any implementation actually make use of the facility to have ports be another type, say string? I don't think they did. A disjoint type makes sense.
The macro appendix has been removed. High-level macros are now part of the main body of the report. The rewrite rules for derived expressions have been replaced with macro definitions. There are no reserved identifiers.
I could conceivably see why you would disagree with this, if you are in favour of define-macro, but it was already an appendix and moving into the main body of the report improves portability.
Multiple-value returns, eval, and dynamic-wind have been added.
OK, I'm sure this is where your beef lies, that is assuming you actually know what you are talking about. Multiple value returns are very useful, but IMO could be better expressed if you made all continuations take n arguments (where n >= 0). Dynamic wind is also useful, and like r5rs continuations, completely expressible with r4rs continuations, but as was pointed out previously, redefining call/cc would result in unspecified behaviour, and not necessarily what you would want.
Regarding the change in identifier syntax allowing '@' characters: this was done specifically in order to allow internet email addresses (a new concept since R4) to be represented as symbols.
This one was a mistake in light of the use of ,@ for unquote and I believe it is forbidden by R6RS.
R5 dropped the requirement for 'load', 'with-input-from-file', 'with-output-to-file', 'transcript-on', 'transcript-off'
If it were me, I'd drop 'transcript-on' and 'transcript-off' altogether. Maybe also load, it's really not necessary. I'd keep 'with-input-from-file' and 'with-output-to-file', because they are actually useful.
So there are all the changes, courtesy of the schemepunks wiki and the r5rs report. If actually have the ability to justify your statement, please do so.