diff --git a/release_notes/release_notes.stex b/release_notes/release_notes.stex index 42cdaa6ed..368bc6517 100644 --- a/release_notes/release_notes.stex +++ b/release_notes/release_notes.stex @@ -116,6 +116,15 @@ Online versions of both books can be found at %----------------------------------------------------------------------------- \section{Functionality Changes}\label{section:functionality} +\subsection{Constrain signal delivery to the main thread (10.1.0)} + +Signals are now always delivered to the main Scheme thread to avoid crashes when a signal +is delivered to a thread that may not even be running Scheme. + +\subsection{Improved support for lists in type recovery (10.1.0)} + +The type recovery pass has improved support for lists by classifying pairs as mutable or +immutable. Type recovery is enabled with the \scheme{enable-type-recovery} parameter. \subsection{New machine types for iOS (10.1.0)}\label{section:ios-machine-types} @@ -2755,6 +2764,35 @@ in fasl files does not generally make sense. %----------------------------------------------------------------------------- \section{Bug Fixes}\label{section:bugfixes} +\subsection{Incorrect assembly code for threaded ARMv5 and earlier (10.1.0)} + +A bug that generated incorrect assembly code in threaded mode for ARMv5 and earlier +architectures has been fixed. + +\subsection{Index checks in bytevector-reference procedures (10.1.0)} + +Bugs that caused an invalid memory reference in \scheme{bytevector-reference-ref}, +\scheme{bytevector-reference*-ref}, and \scheme{bytevector-reference-set!} have been +fixed. + +\subsection{Repairs for pb32 foreign interface (10.1.0)} + +Bugs in the handling of callable addresses and 64-bit arguments and results in pb32 when +using libffi have been fixed. + +\subsection{Bytecode endianness handling on s390x, m68k, and hppa (10.1.0)} + +The bytecode endianness on s390x, m68k, and hppa architectures has been fixed. + +\subsection{Error message fixes (10.1.0)} + +A bug where \scheme{flvector} incorrectly reports ``non-flonum found'' errors as +``non-fixnum found'' errors has been fixed. + +Errors for invalid indices in bit operations \scheme{bitwise-bit-set?}, +\scheme{bitwise-copy-bit}, \scheme{logbit?}, \scheme{logbit0}, and \scheme{logbit1} now +report ``invalid bit index'' instead of ``not an exact integer''. + \subsection{\scheme{with-continuation-mark} key and value expressions (10.1.0)} A bug in \scheme{with-continuation-mark} positioned the key and @@ -2785,25 +2823,19 @@ The ``V'' format directive is now recognized in uppercase as well as lowercase. \subsection{Optimization and \scheme{debug-level} $\geq$ 2 (10.1.0)} -Setting \scheme{debug-level} to 2 or higher did not prevent an -error-causing call in nontail position to stay nontail when -\scheme{enable-type-recovery} is \scheme{#t} (the default value). -Furthermore, a tail error-causing call could be made non-tail by -optimizations that aim to expose non-error paths. Those behaviors -moved further from the documented behavior of \scheme{debug-level} -than Chez Scheme version 9.x---but version 9.x was also not consistent -with the documentation due to cp0 conversions such as replacing -\scheme{(let ([x \var{expr}]) x)} with just \var{expr}. - -Instead of guaranteeing any specific behavior, a \scheme{debug-level} -value of 2 or higher is now defined to merely \emph{discourage} -optimizations that affect the continuation structure as revealed by the -inspector, where the goal is to produce more informative stack -backtraces at the point where an exception is raised. The -implementation produces results that are more in line with Chez Scheme -9.x. Meanwhile, continuation marks support predictable and -well-defined reflection on continuations in a way that is compatible -with compiler optimizations. +When \scheme{debug-level} is 2 or higher and \scheme{enable-type-recovery} is \scheme{#t} +(the default), the compiler could move a call to error from non-tail position to tail +position, which eliminates the stack frame and makes debugging more difficult. +Furthermore, the compiler could also move a call to error from tail position to non-tail +position by optimizations that aim to expose non-error paths. + +Instead of guaranteeing any specific behavior, a \scheme{debug-level} value of 2 or higher +is now defined to \emph{discourage} optimizations that affect the continuation structure +as revealed by the inspector, where the goal is to produce more informative stack traces +at the point where an exception is raised. The implementation produces results that are +more consisten with Chez Scheme 9. Meanwhile, continuation marks support predictable and +well-defined reflection on continuations in a way that is compatible with compiler +optimizations. \subsection{Random number generation for large exact integers (10.1.0)}