annotate doc/manual/manual_devel.tex @ 0:3e629dc19168

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:24:28 +0100
parents
children 7ca46969e0ad
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
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 \newpage
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}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 \begin{verbatim}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25 configure -- pre-make configuration tool (unix-shell)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26 configure.bat -- pre-nmake configuration tool (windows batch)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27 configure.rc -- pre-mk configuration tool (Plan 9's rc)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 CMakeLists.txt-- top-level project information for CMake
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29 Makefile -- GNU/BSD makefile (output of ./configure)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 Nmakefile -- MS nmake makefile
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 mkfile -- Plan 9 mkfile
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 LICENSE -- license information
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 README -- quickstart doc
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34 buildsys/ -- build system details and extras
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35 doc/ -- platform specific readme's and manual
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 dyncall/ -- dyncall library source code
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 dyncallback/ -- dyncallback library source code
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 dynload/ -- dynload library source code
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 test/ -- test suites
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40 \end{verbatim}
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]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 Simple, identity, unary function calls for all supported return types and
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49 calling conventions.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51 \item [plain\_c++]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 Similar to plain, but for C++ thiscalls (GNU and MS calling convention).
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 \item [suite]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 All combinations of parameter types and counts are tested on void function
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 calls. A script written in Python ({\tt mkcase.py}) generates the tests up to
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 an upper MAXARG limit.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 \item [suite\_floats]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60 Based on suite. Test double/float variants with up to 10 arguments.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62 \item [suite\_x86win32std]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63 All combinations of parameter types and counts are tested on {\tt \_\_stdcall}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64 void function calls. A script written in Python ({\tt mkcase.py}) generates
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65 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
66
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
67 \item [suite\_x86win32fast]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
68 All combinations of parameter types and counts are tested on {\tt \_\_fastcall}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
69 (MS or GNU, depending on the build tool) void function calls.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
70 A script written in Python ({\tt mkcase.py}) generates the tests up to
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
71 an upper MAXARG limit. This is a x86/Windows only test.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
73 \item [ellipsis]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
74 All combinations of parameter types and counts are tested on void ellipsis
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
75 function calls. A script written in Python ({\tt mkcase.py}) generates the
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
76 tests up to an upper MAXARG limit.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
77
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
78 \item [suite2]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
79 Designed mass test suite for void function calls.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
80 Tests individual void functions with a varying count of arguments and type.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
81
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
82 \item [suite2\_win32std]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
83 Designed mass test suite for {\tt \_\_stdcall} void function calls.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
84 Tests individual void functions with a varying count of arguments and type.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
85 This is a x86/Windows only test.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
86
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
87 \item [suite2\_win32fast]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
88 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
89 Tests individual void functions with a varying count of arguments and type.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
90 This is a x86/Windows only test.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
91
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
92 \item [suite3]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
93 All combinations of parameter types integer, long long, float and double and
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
94 counts are tested on void function calls.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
95 A script written in Python ({\tt mkcase.py}) generates the tests up to
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
96 an upper MAXARG limit.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
97 This is a modified version of suite.
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 [call\_suite]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
100 General purpose test suite combining aspects from all others suites (usually enough for
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
101 testing non-callback calls).
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
102 A script written in Lua generates the tests.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
103
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
104 \item [callf]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
105 Tests the \emph{formatted call} \product{dyncall} C API.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
106
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
107 \item [malloc\_wx]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
108 Tests \emph{writable and executable memory allocation} used by the
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
109 \product{dyncallback} C API.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
110
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
111 \item [thunk]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
112 Tests \emph{callbacks} for the \product{dyncallback} C API.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
113
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
114 \item [callback\_plain]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
115 Simple callback function test (useful for easy debugging of new ports).
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
116
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
117 \item [callback\_suite]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
118 Mass test suite for callback function testing. Uses random function argument
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
119 number and type.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
120 A script written in Lua generates the tests up to a given number of calls and
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
121 type combinations.
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 [resolv\_self]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
124 Test for dynload library to resolve symbols from application image itself.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
125
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
126 \end{description}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
127