view doc/manual/manual_devel.tex @ 357:d982a00c2177

- PPC64 asm syntax fix, specifying explicitly comparison mode for cmpi (newer toolchains complain, older ones took optional field of instruction which happened to be same value)
author Tassilo Philipp
date Tue, 25 Feb 2020 18:16:13 +0100
parents 7ca46969e0ad
children b47168dacba6
line wrap: on
line source

%//////////////////////////////////////////////////////////////////////////////
%
% Copyright (c) 2007,2009 Daniel Adler <dadler@uni-goettingen.de>, 
%                         Tassilo Philipp <tphilipp@potion-studios.com>
%
% Permission to use, copy, modify, and distribute this software for any
% purpose with or without fee is hereby granted, provided that the above
% copyright notice and this permission notice appear in all copies.
%
% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
%
%//////////////////////////////////////////////////////////////////////////////

\newpage
\section{Developers}

\subsection{Noteworthy files in the project root}
\begin{tabular*}{0.75\textwidth}{ll}
{\tt configure}      & pre-make configuration tool (unix-shell)     \\
{\tt configure.bat}  & pre-nmake configuration tool (windows batch) \\
{\tt configure.rc}   & pre-mk configuration tool (Plan 9's rc)      \\
{\tt CMakeLists.txt} & top-level project information for CMake      \\
{\tt Makefile}       & GNU/BSD makefile (output of ./configure)     \\
{\tt Nmakefile}      & MS nmake makefile                            \\
{\tt mkfile}         & Plan 9 mkfile                                \\
{\tt LICENSE}        & license information                          \\
{\tt README}         & quickstart doc                               \\
{\tt buildsys/}      & build system details and extras              \\
{\tt doc/}           & platform specific readme's and manual        \\
{\tt dyncall/}       & dyncall library source code                  \\
{\tt dyncallback/}   & dyncallback library source code              \\
{\tt dynload/}       & dynload library source code                  \\
{\tt test/}          & test suites                                  \\
\end{tabular*}


\subsection{Test suites}

\begin{description}

\item [plain] 
Simple, identity, unary function calls for all supported return types and
calling conventions.

\item [plain\_c++] 
Similar to plain, but for C++ thiscalls (GNU and MS calling convention).

\item [suite] 
All combinations of parameter types and counts are tested on void function
calls. A script written in Python ({\tt mkcase.py}) generates the tests up to
an upper MAXARG limit.

\item [suite\_floats]
Based on suite. Test double/float variants with up to 10 arguments.

\item [suite\_x86win32std] 
All combinations of parameter types and counts are tested on {\tt \_\_stdcall}
void function calls. A script written in Python ({\tt mkcase.py}) generates
the tests up to an upper MAXARG limit. This is a x86/Windows only test.

\item [suite\_x86win32fast] 
All combinations of parameter types and counts are tested on {\tt \_\_fastcall}
(MS or GNU, depending on the build tool) void function calls.
A script written in Python ({\tt mkcase.py}) generates the tests up to
an upper MAXARG limit. This is a x86/Windows only test.

\item [ellipsis]
All combinations of parameter types and counts are tested on void ellipsis 
function calls. A script written in Python ({\tt mkcase.py}) generates the 
tests up to an upper MAXARG limit.

\item [suite2]
Designed mass test suite for void function calls.
Tests individual void functions with a varying count of arguments and type.

\item [suite2\_win32std]
Designed mass test suite for {\tt \_\_stdcall} void function calls.
Tests individual void functions with a varying count of arguments and type.
This is a x86/Windows only test.

\item [suite2\_win32fast]
Designed mass test suite for {\tt \_\_fastcall} (MS or GNU, depending on the build tool) void function calls.
Tests individual void functions with a varying count of arguments and type.
This is a x86/Windows only test.

\item [suite3]
All combinations of parameter types integer, long long, float and double and
counts are tested on void function calls.
A script written in Python ({\tt mkcase.py}) generates the tests up to
an upper MAXARG limit.
This is a modified version of suite.

\item [call\_suite]
General purpose test suite combining aspects from all others suites (usually enough for
testing non-callback calls).
A script written in Lua generates the tests.

\item [callf]
Tests the \emph{formatted call} \product{dyncall} C API.

\item [malloc\_wx]
Tests \emph{writable and executable memory allocation} used by the
\product{dyncallback} C API.

\item [thunk]
Tests \emph{callbacks} for the \product{dyncallback} C API.

\item [callback\_plain]
Simple callback function test (useful for easy debugging of new ports).

\item [callback\_suite]
Mass test suite for callback function testing. Uses random function argument
number and type.
A script written in Lua generates the tests up to a given number of calls and
type combinations.

\item [resolv\_self]
Test for dynload library to resolve symbols from application image itself.

\end{description}