<commit_before>%% Copyright (C) 2010, <NAME>.
%%
%% This software is provided "as is" without warranty of any kind,
%% either expressed or implied, including but not limited to the
%% implied warranties of fitness for a particular purpose.
%%
%% See the LICENSE file for more information.

\chapter{Release Notes}
\label{sec:news}

This chapter lists the user-visible changes in \usdk releases.

\section{\usdk 2.1.1}

\subsection{Fixes}
\begin{itemize}
\item The main loop optimization triggered several issues with Linux and
  Mac OS X in interactive sessions (truncated output, possibly blocked input).
  These issues are fixed on Snow Leopard and Leopard and Linux.
\item Deep overall of the event handling primitives.  Watching an expression
  will succeed in cases where it used to fail.  For instance:

\begin{urbiscript}
at (isdef (myVar))
  echo("var myVar = " + myVar),

myVar;
[00000001:error] !!! lookup failed: myVar

var myVar = 42|;
[00000003] *** var myVar = 42
\end{urbiscript}

  Support for sustained events is fixed too (see \autoref{sec:lang:at}).
\end{itemize}


\subsection{New Features}
\begin{itemize}
\item Pressing \key{C-c} in the \us shell (\samp{urbi -i}) interrupts the
  foreground job, and clears the pending commands.  A second \key{C-c} in a
  row invokes \refSlot[System]{shutdown}, giving a chance to the system to
  shut down properly.  A third \key{C-c} kills
  \command{urbi}/\command{urbi-launch}.  See
  \autoref{sec:tools:urbi:quitting} for more details.
\item Closing the standard input (e.g., by pressing \key{C-d}) in
  interactive sessions shuts down the server.
\item Remote UObjects now support the RTP protocol to exchange value with
  the engine (\autoref{sec:uob:api:rtp}).
\item NotifyChange/access callbacks can now take any type as argument.
  \lstinline|UVar&| still has the previous behavior. For any other type,
  the system will try to convert the value within the UVar to this type.
\item \refSlot[CallMessage]{eval}.
\item \refSlot[Float]{ceil}, \refSlot[Float]{floor}, \refSlot[Float]{isInf},
  \refSlot[Float]{isNan}.
\item \refObject{Traceable}.
\item Improved context (the call stacks) when error are reported.
  Especially when using \refSlot[System]{eval}/\refSlot[System]{load}.
\end{itemize}

\subsection{Documentation}
\begin{itemize}
\item \refSlot[Float]{hex}.
\end{itemize}

\section{\usdk 2.1}
Released on 2010-07-08.

\subsection{Fixes}
\begin{itemize}
\item \refSlot[Lobby]{connectionTag} monitors the jobs launched from the
  lobby, but can no longer kill the lobby itself.
\item \samp{123foo} is no longer accepted as a synonym to \samp{123 foo}.
  As a consequence, in case you were using \lstinline|x = 123cos: 1|,
  convert it to \lstinline|x = 123 cos: 1|.
\item Some old tools that no longer make sense in \usdk 2.0 have been
  removed: \command{umake-engine}, \command{umake-fullengine},
  \command{umake-lib}, \command{umake-remote}.  Instead, use
  \command{umake}, see \autoref{sec:tools:umake}.
\item On Windows \command{urbi-launch} could possibly miss module files to
  load if the extension (\samp{.dll}) was not specified.  One may now
  safely, run \samp{urbi-launch my-module} (instead of \samp{urbi-launch
    my-module.dll} or \samp{urbi-launch my-module.so}) on all the platforms.
\end{itemize}

\subsection{New Features}
\begin{itemize}
\item \refSlot[Regexp]{asPrintable}, \refSlot[Regexp]{asString},<commit_msg>Fill mefyl's release notes for the 2.2 release.<commit_after>%% Copyright (C) 2010, <NAME>.
%%
%% This software is provided "as is" without warranty of any kind,
%% either expressed or implied, including but not limited to the
%% implied warranties of fitness for a particular purpose.
%%
%% See the LICENSE file for more information.

\chapter{Release Notes}
\label{sec:news}

This chapter lists the user-visible changes in \usdk releases.

\section{\usdk 2.2}

\subsection{Fixes}
\begin{itemize}
\item The main loop optimization triggered several issues with Linux and
  Mac OS X in interactive sessions (truncated output, possibly blocked input).
  These issues are fixed on Snow Leopard and Leopard and Linux.
\item Deep overall of the event handling primitives.  Watching an expression
  will succeed in cases where it used to fail.  For instance:

\begin{urbiscript}
at (isdef (myVar))
  echo("var myVar = " + myVar),

myVar;
[00000001:error] !!! lookup failed: myVar

var myVar = 42|;
[00000003] *** var myVar = 42
\end{urbiscript}

  Support for sustained events is fixed too (see \autoref{sec:lang:at}).
\item \refSlot[List]{max} and \refSlot[List]{min} will now report the right
  indexes in error messages.
\item \lstinline|onleave| blocks on lasting events are now run
  asynchronously, as expected.
\item \lstinline|at (expression ~ duration)| is now supported.
\item Fix a bug if emitting an event triggers its unsubscription.
\item Fix printing of \lstinline|Exception.Type| and
  \lstinline|Exception.ArgumentType|.
\item Fix timestamp overflow on Windows after 40 minutes.
\end{itemize}


\subsection{New Features}
\begin{itemize}
\item Pressing \key{C-c} in the \us shell (\samp{urbi -i}) interrupts the
  foreground job, and clears the pending commands.  A second \key{C-c} in a
  row invokes \refSlot[System]{shutdown}, giving a chance to the system to
  shut down properly.  A third \key{C-c} kills
  \command{urbi}/\command{urbi-launch}.  See
  \autoref{sec:tools:urbi:quitting} for more details.
\item Closing the standard input (e.g., by pressing \key{C-d}) in
  interactive sessions shuts down the server.
\item Remote UObjects now support the RTP protocol to exchange value with
  the engine (\autoref{sec:uob:api:rtp}).
\item NotifyChange/access callbacks can now take any type as argument.
  \lstinline|UVar&| still has the previous behavior. For any other type,
  the system will try to convert the value within the UVar to this type.
\item \refSlot[CallMessage]{eval}.
\item \refSlot[Float]{ceil}, \refSlot[Float]{floor}, \refSlot[Float]{isInf},
  \refSlot[Float]{isNan}.
\item \refObject{Traceable}.
\item Improved context (the call stacks) when error are reported.
  Especially when using \refSlot[System]{eval}/\refSlot[System]{load}.
\item \lstinline|at (expression)| --- as opposed to \lstinline|at (event?)| ---
  implementation has been improved: the condition will now be reevaluated even
  if a parameter not directly in the expression (in a subfunction, for
  instance) is modified.

\begin{urbiunchecked}
var x = 0;
function f() { x == 1 };
at (f()) echo("OK");
x = 1;
[00000001] *** OK
\end{urbiunchecked}

\item UVar now have the timestamp of their last assignment.
\item Add of the \lstinline|finally| construct. See \autoref{sec:lang:except:finally}.
\end{itemize}

\subsection{Documentation}
\begin{itemize}
\item \refSlot[Float]{hex}.
\end{itemize}

\section{\usdk 2.1}
Released on 2010-07-08.

\subsection{Fixes}
\begin{itemize}
\item \refSlot[Lobby]{connectionTag} monitors the jobs launched from the
  lobby, but can no longer kill the lobby itself.
\item \samp{123foo} is no longer accepted as a synonym to \samp{123 foo}.
  As a consequence, in case you were using \lstinline|x = 123cos: 1|,
  convert it to \lstinline|x = 123 cos: 1|.
\item Some old tools that no longer make sense in \usdk 2.0 have been
  removed: \command{umake-engine}, \command{umake-fullengine},
  \command{umake-lib}, \command{umake-remote}.  Instead, use
  \command{umake}, see \autoref{sec:tools:umake}.
\item On Windows \command{urbi-launch} could possibly miss module files to
  load if the extension (\samp{.dll}) was not specified.  One may now
  safely, run \samp{urbi-launch my-module} (instead of \samp{urbi-launch
    my-module.dll} or \samp{urbi-launch my-module.so}) on all the platforms.
\end{itemize}

\subsection{New Features}
\begin{itemize}
\item \refSlot[Regexp]{asPrintable}, \refSlot[Regexp]{asString},
{'fraction_non_alphanumeric': 0.11400941595622853, 'fraction_numerical': 0.015269118208423464, 'mean_word_length': 4.3396739130434785, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 5, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7432937', 'n_tokens_mistral': 2593, 'n_tokens_neox': 2495, 'n_words': 945}