<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.

\documentclass[openright,twoside,11pt]{book}
  \usepackage{gostai-documentation}
  \usepackage{config}
  \usepackage{lipsum}  % to provide "filler" text

\title{Urbi Documentation Sandbox}
\subtitle{Version \VcsDescription}
\author{Gostai}

\begin{document}

\maketitle

This document is meant to be used to toy with \LaTeX{}.

\tableofcontents
\part{First Part}

\chapter{First Chapter}

This is the first chapter.

\begin{urbiscript}
1+2;
[00048238] 3
"foo";
[00048238] "foo"
\end{urbiscript}

Another example.

\begin{shell}[style=varInString]
$ export PATH="something:\var{urbi-root}/bin:$PATH"
\end{shell}%$

\begin{urbiunchecked}[style=varInString]
"for \var{foo}" * (1+2);
[00048238] wrong
\end{urbiunchecked}

Last example.

\begin{urbiassert}
1+2 == 3;
\end{urbiassert}

% \release{Release}{Date}
% -----------------------
\newcommand{\release}[2]{%
  \marginpar{%
    \includegraphics[width=\marginparwidth]{figs/urbi-sdk/#1/cube}

    #2.
  }%
  Released on #2.
}

\section{\usdk 2.5}
\release{2.5}{2010-11-xx}

\subsection{New Features}
\begin{itemize}
\item More types of empty statements are warned about.  For instance \urbi
  used to accept silently \lstinline|if (foo);|.  It now warns about the empty
  body, and recommends writing \lstinline|if (foo) {};|.
\end{itemize}

\section{\usdk 2.4}
\release{2.4}{2010-11-xx}

\subsection{New Features}
\begin{itemize}
\item More types of empty statements are warned about.  For instance \urbi
  used to accept silently \lstinline|if (foo);|.  It now warns about the empty
  body, and recommends writing \lstinline|if (foo) {};|.
\end{itemize}

\section{\usdk 2.3}
\release{2.3}{2010-11-xx}

\subsection{New Features}
\begin{itemize}
\item More types of empty statements are warned about.  For instance \urbi
  used to accept silently \lstinline|if (foo);|.  It now warns about the empty
  body, and recommends writing \lstinline|if (foo) {};|.
\end{itemize}


\sectionObject{Bar}

\begin{urbiscriptapi}
\item[bar] This is Bar.bar.
\item[foo](<x>) This is Bar.foo with arguments.
\item[set](<key>, <value>) Map \var{key} to \var{value} and return \this so
  that invocations to \lstinline|set| can be chained.  The possibly existing
  previous mapping is overridden.
\item \lstinline|I do it myself|
\item beware (not to catch the first word)
\item|slot[foo][bar]| a slot
\item|fun[foo][bar]|(<var>) a function
\item[argMax](<fun> = a < b function LPAREN a, b RPAREN LBRACE a < b RBRACE)%
  The index of the (leftmost) ``largest'' member based on the comparison
  function \var{fun}.
\begin{urbiassert}
           [1].argMax == 0;
        [1, 2].argMax == 1;
     [1, 2, 2].argMax == 1;
        [2, 1].argMax == 0;
[2, -1, 3, -4].argMax == 2;

[2, -1, 3, -4].argMax (function (a, b) { a.abs < b.abs }) == 3;
\end{urbiassert}

\end{urbiscriptapi}

\sectionObject{Foo}

\begin{urbiscriptapi}
\item[bar] This is Foo.bar.
\item[foo] This is Foo.foo.
\end{urbiscriptapi}

\section{Second Section}

\begin{urbiunchecked}[escapeinside=<>]
#<Été>;
[00048238:error] !!! invalid character: `#'
[00048239:error] !!! invalid character: `\xc3'
[00048239:error] !!! invalid character: `\x89'
[00048239:error] !!! invalid character: `\xc3'
[00048239:error] !!! invalid character: `\xa9'
\end{urbiunchecked}

\chapter{Second Chapter}

This is the second chapter.
<commit_msg>sandbox: remove failed experiment.<commit_after>%% Copyright (C) 2010, Gostai S.A.S.
%%
%% 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.

\documentclass[openright,twoside,11pt]{book}
  \usepackage{gostai-documentation}
  \usepackage{config}
  \usepackage{lipsum}  % to provide "filler" text

\title{Urbi Documentation Sandbox}
\subtitle{Version \VcsDescription}
\author{Gostai}

\begin{document}

\maketitle

This document is meant to be used to toy with \LaTeX{}.

\tableofcontents
\part{First Part}

\chapter{First Chapter}

This is the first chapter.

\begin{urbiscript}
1+2;
[00048238] 3
"foo";
[00048238] "foo"
\end{urbiscript}

Another example.

\begin{shell}[style=varInString]
$ export PATH="something:\var{urbi-root}/bin:$PATH"
\end{shell}%$

\begin{urbiunchecked}[style=varInString]
"for \var{foo}" * (1+2);
[00048238] wrong
\end{urbiunchecked}

Last example.

\begin{urbiassert}
1+2 == 3;
\end{urbiassert}

% \release{Release}{Date}
% -----------------------
\newcommand{\release}[2]{%
  \marginpar{%
    \includegraphics[width=\marginparwidth]{figs/urbi-sdk/#1/cube}

    #2.
  }%
  Released on #2.
}

\section{\usdk 2.5}
\release{2.5}{2010-11-xx}

\subsection{New Features}
\begin{itemize}
\item More types of empty statements are warned about.  For instance \urbi
  used to accept silently \lstinline|if (foo);|.  It now warns about the empty
  body, and recommends writing \lstinline|if (foo) {};|.
\end{itemize}

\section{\usdk 2.4}
\release{2.4}{2010-11-xx}

\subsection{New Features}
\begin{itemize}
\item More types of empty statements are warned about.  For instance \urbi
  used to accept silently \lstinline|if (foo);|.  It now warns about the empty
  body, and recommends writing \lstinline|if (foo) {};|.
\end{itemize}

\section{\usdk 2.3}
\release{2.3}{2010-11-xx}

\subsection{New Features}
\begin{itemize}
\item More types of empty statements are warned about.  For instance \urbi
  used to accept silently \lstinline|if (foo);|.  It now warns about the empty
  body, and recommends writing \lstinline|if (foo) {};|.
\end{itemize}


\sectionObject{Bar}

\begin{urbiscriptapi}
\item[bar] This is Bar.bar.
\item[foo](<x>) This is Bar.foo with arguments.
\item[set](<key>, <value>) Map \var{key} to \var{value} and return \this so
  that invocations to \lstinline|set| can be chained.  The possibly existing
  previous mapping is overridden.
\item \lstinline|I do it myself|
\item beware (not to catch the first word)
\item|slot[foo][bar]| a slot
\item|fun[foo][bar]|(<var>) a function
\end{urbiscriptapi}

\sectionObject{Foo}

\begin{urbiscriptapi}
\item[bar] This is Foo.bar.
\item[foo] This is Foo.foo.
\end{urbiscriptapi}

\section{Second Section}

\begin{urbiunchecked}[escapeinside=<>]
#<Été>;
[00048238:error] !!! invalid character: `#'
[00048239:error] !!! invalid character: `\xc3'
[00048239:error] !!! invalid character: `\x89'
[00048239:error] !!! invalid character: `\xc3'
[00048239:error] !!! invalid character: `\xa9'
\end{urbiunchecked}

\chapter{Second Chapter}

This is the second chapter.

{'fraction_non_alphanumeric': 0.15807962529274006, 'fraction_numerical': 0.03747072599531616, 'mean_word_length': 4.3010085337470905, 'pattern_counts': {'":': 0, '<': 20, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, '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': '7207621', 'n_tokens_mistral': 2632, 'n_tokens_neox': 2450, 'n_words': 702}