annotate doc/manual/manual_devel.tex @ 490:17287342e273

manual: - removed all API description and referred to manual instead, to avoid outdated and/or duplicated doc - cleanups and clarificaions
author Tassilo Philipp
date Sun, 20 Mar 2022 14:26:55 +0100
parents b47168dacba6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 %//////////////////////////////////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 %
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 % Copyright (c) 2007,2009 Daniel Adler <dadler@uni-goettingen.de>,
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 % Tassilo Philipp <tphilipp@potion-studios.com>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 %
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 % Permission to use, copy, modify, and distribute this software for any
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 % purpose with or without fee is hereby granted, provided that the above
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 % copyright notice and this permission notice appear in all copies.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 %
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 % THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 % WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 % MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 % ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 % WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 % ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 % OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 %
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 %//////////////////////////////////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
20 \clearpage
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 \section{Developers}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 \subsection{Noteworthy files in the project root}
76
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
24 \begin{tabular*}{0.75\textwidth}{ll}
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
25 {\tt configure} & pre-make configuration tool (unix-shell) \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
26 {\tt configure.bat} & pre-nmake configuration tool (windows batch) \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
27 {\tt configure.rc} & pre-mk configuration tool (Plan 9's rc) \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
28 {\tt CMakeLists.txt} & top-level project information for CMake \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
29 {\tt Makefile} & GNU/BSD makefile (output of ./configure) \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
30 {\tt Nmakefile} & MS nmake makefile \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
31 {\tt mkfile} & Plan 9 mkfile \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
32 {\tt LICENSE} & license information \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
33 {\tt README} & quickstart doc \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
34 {\tt buildsys/} & build system details and extras \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
35 {\tt doc/} & platform specific readme's and manual \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
36 {\tt dyncall/} & dyncall library source code \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
37 {\tt dyncallback/} & dyncallback library source code \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
38 {\tt dynload/} & dynload library source code \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
39 {\tt test/} & test suites \\
7ca46969e0ad - tweaks in manual, mainly for html generation
cslag
parents: 0
diff changeset
40 \end{tabular*}
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 \subsection{Test suites}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 \begin{description}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47 \item [plain]
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
48 Simple, identity, mostly unary function calls for all supported return types
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
49 and calling conventions. This is not an extensive test suite, but a good place
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
50 to manually test certain cases.
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 \item [plain\_c++]
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
53 Similar to plain, but for C++ thiscalls (in different forms and fashion, with
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
54 aggregates, vararg methots, on x86 with GNU and MS calling convention, etc.).
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 \item [suite]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 All combinations of parameter types and counts are tested on void function
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
58 calls. A Python script ({\tt mkcase.py}) generates the tests up to
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 an upper MAXARG limit.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61 \item [suite\_floats]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62 Based on suite. Test double/float variants with up to 10 arguments.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63
490
17287342e273 manual:
Tassilo Philipp
parents: 467
diff changeset
64 \item [call\_suite\_aggrs]
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
65 Tests passing and returning aggregates by value (struct/union and array members).
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
66 Test cases can be designed in a signature-style format (and random ones generated
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
67 via a Lua script).
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
68
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
69 \item [suite\_x86win32std]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
70 All combinations of parameter types and counts are tested on {\tt \_\_stdcall}
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
71 void function calls. A Python script ({\tt mkcase.py}) generates
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72 the tests up to an upper MAXARG limit. This is a x86/Windows only test.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
73
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
74 \item [suite\_x86win32fast]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
75 All combinations of parameter types and counts are tested on {\tt \_\_fastcall}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
76 (MS or GNU, depending on the build tool) void function calls.
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
77 A Python script ({\tt mkcase.py}) generates the tests up to
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
78 an upper MAXARG limit. This is a x86/Windows only test.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
79
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
80 \item [ellipsis]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
81 All combinations of parameter types and counts are tested on void ellipsis
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
82 (vararg) function calls. A Python script ({\tt mkcase.py}) generates the
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
83 tests up to an upper MAXARG limit.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
84
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
85 \item [suite2]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
86 Designed mass test suite for void function calls.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
87 Tests individual void functions with a varying count of arguments and type.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
88
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
89 \item [suite2\_win32std]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
90 Designed mass test suite for {\tt \_\_stdcall} void function calls.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
91 Tests individual void functions with a varying count of arguments and type.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
92 This is a x86/Windows only test.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
93
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
94 \item [suite2\_win32fast]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
95 Designed mass test suite for {\tt \_\_fastcall} (MS or GNU, depending on the build tool) void function calls.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
96 Tests individual void functions with a varying count of arguments and type.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
97 This is a x86/Windows only test.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
98
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
99 \item [suite3]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
100 All combinations of parameter types integer, long long, float and double and
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
101 counts are tested on void function calls.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
102 A script written in Python ({\tt mkcase.py}) generates the tests up to
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
103 an upper MAXARG limit.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
104 This is a modified version of suite.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
105
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
106 \item [call\_suite]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
107 General purpose test suite combining aspects from all others suites (usually enough for
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
108 testing non-callback calls).
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
109 Test cases can be designed in a signature-style format (and random ones generated
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
110 via a Lua script).
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
111
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
112 \item [callf]
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
113 Tests the \emph{formatted call/arg} \product{dyncall} C API. Tries to cover all uses of
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
114 that API (e.g. calling convention mode switches, aggregates, ...) but is not extensive.
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
115
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
116 \item [malloc\_wx]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
117 Tests \emph{writable and executable memory allocation} used by the
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
118 \product{dyncallback} C API.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
119
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
120 \item [thunk]
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
121 Tests only the \emph{callback} thunks for the \product{dyncallback} C API.
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
122
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
123 \item [callback\_plain]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
124 Simple callback function test (useful for easy debugging of new ports).
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
125
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
126 \item [callback\_suite]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
127 Mass test suite for callback function testing. Uses random function argument
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
128 number and type.
467
b47168dacba6 manual:
Tassilo Philipp
parents: 76
diff changeset
129 A Lua script the tests up to a given number of calls and type combinations.
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
130
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
131 \item [resolv\_self]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
132 Test for dynload library to resolve symbols from application image itself.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
133
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
134 \end{description}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
135