Skip to content

Commit

Permalink
update release notes
Browse files Browse the repository at this point in the history
  • Loading branch information
burgerrg committed Nov 14, 2024
1 parent 9831c98 commit ad21251
Showing 1 changed file with 51 additions and 19 deletions.
70 changes: 51 additions & 19 deletions release_notes/release_notes.stex
Original file line number Diff line number Diff line change
Expand Up @@ -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}

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)}

Expand Down

0 comments on commit ad21251

Please sign in to comment.