Mercurial > pub > dyncall > dyncall
comparison doc/manual/manual_overview.tex @ 299:1fa2427dae49
- changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
author | Tassilo Philipp |
---|---|
date | Sat, 19 May 2018 18:25:29 +0200 |
parents | aa0d2536a4eb |
children | 24fe46874d4a |
comparison
equal
deleted
inserted
replaced
298:b69f328cdfe6 | 299:1fa2427dae49 |
---|---|
150 platform, yellow a platform that might work (but is untested) and red a platform | 150 platform, yellow a platform that might work (but is untested) and red a platform |
151 that is currently unsupported. Gray cells are combinations that don't exist | 151 that is currently unsupported. Gray cells are combinations that don't exist |
152 at the time of writing, or that are not taken into account.\\ | 152 at the time of writing, or that are not taken into account.\\ |
153 Light green cells mark complete feature support, as in dyncall and dyncallback. Dark green means basic support but lacking features (e.g. dyncall support, but not dyncallback). | 153 Light green cells mark complete feature support, as in dyncall and dyncallback. Dark green means basic support but lacking features (e.g. dyncall support, but not dyncallback). |
154 Please note that a green cell (even a light-green one) doesn't imply that all existing calling conventions/features/build tools are supported for that platform (but the most | 154 Please note that a green cell (even a light-green one) doesn't imply that all existing calling conventions/features/build tools are supported for that platform (but the most |
155 important). | 155 important). The rightmost column gives a brief info about calling convention support or other notes. |
156 For detailed info about a platform's support consult the calling convention appendix. | 156 For detailed info about a platform's support consult the calling convention appendix. |
157 | 157 |
158 % OLD support matrix | |
159 %\begin{table}[h] | |
160 %\begin{tabular}{r|*{3}{c!{\color{gray2}\vrule}}*{4}{c!{\color{gray2}\vrule}}*{11}{c!{\color{gray2}\vrule}}} | |
161 % & \ninety{\bf Alpha} & \ninety{\bf ARM} & \ninety{\bf ARM64} & \multicolumn{2}{c!{\color{gray2}\vrule}}{\ninety{\bf MIPS}} & \multicolumn{2}{c!{\color{gray2}\vrule}}{\ninety{\bf MIPS64}} & \ninety{\bf SuperH} & \ninety{\bf PowerPC} & \ninety{\bf PowerPC64} & \ninety{\bf m68k} & \ninety{\bf m88k} & \ninety{\bf x86} & \ninety{\bf x64} & \ninety{\bf Itanium} & \ninety{\bf SPARC} & \ninety{\bf SPARC64} & \ninety{\bf RISC-V} \\ | |
162 % & & & & \ninety{\tiny EB} & \ninety{\tiny EL} & \ninety{\tiny EB} & \ninety{\tiny EL} & & & & & & & & & & & \\ | |
163 %\hline | |
164 %{\bf Windows family} & \marknotx & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknimp & \marknotx & \marknotx & \marknotx \\ | |
165 %{\bf Linux} & \marknimp & \markcmpl & \markcmpl & \markcmpl & \markunkn & \markunkn & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknimp & \marknimp & \markcmpl & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknimp \\ | |
166 %{\bf macOS / iOS / Darwin} & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markunkn & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx \\ | |
167 %{\bf FreeBSD} & \marknimp & \markcmpl & \markcmpl & \markunkn & \markunkn & \markunkn & \markunkn & \marknotx & \markimpl & \markcmpl & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknimp & \marknotx & \markcmpl & \marknimp \\ | |
168 %{\bf NetBSD} & \marknimp & \markcmpl & \marknotx & \markunkn & \markcmpl & \markunkn & \markunkn & \marknimp & \markimpl & \marknotx & \marknimp & \marknimp & \markcmpl & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknimp \\ | |
169 %{\bf OpenBSD} & \marknimp & \markcmpl & \markunkn & \markunkn & \markunkn & \markcmpl & \markunkn & \marknimp & \markunkn & \marknotx & \marknimp & \marknimp & \markcmpl & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknotx \\ | |
170 %{\bf DragonFlyBSD} & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx \\ | |
171 %{\bf Solaris / SunOS} & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \markcmpl & \markimpl & \marknotx \\ | |
172 %{\bf Plan 9 / 9front} & \marknimp & \marknimp & \marknotx & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \marknotx & \markcmpl & \marknimp & \marknotx & \marknimp & \marknotx & \marknotx \\ | |
173 %{\bf Haiku / BeOS} & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\ | |
174 %{\bf Minix} & \marknotx & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\ | |
175 %{\bf Playstation Portable} & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\ | |
176 %{\bf Nintendo DS} & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\ | |
177 %\end{tabular} | |
178 %\caption{Supported platforms}% | |
179 %\end{table} | |
180 | |
181 \newcommand{\OSwinfam} {\ninety{Windows family} } | |
182 \newcommand{\OSlinux} {\ninety{Linux} } | |
183 \newcommand{\OSdarwin} {\ninety{macOS / iOS / Darwin}} | |
184 \newcommand{\OSfreebsd}{\ninety{FreeBSD} } | |
185 \newcommand{\OSnetbsd} {\ninety{NetBSD} } | |
186 \newcommand{\OSopenbsd}{\ninety{OpenBSD} } | |
187 \newcommand{\OSdflybsd}{\ninety{DragonFlyBSD} } | |
188 \newcommand{\OSsunos} {\ninety{Solaris / SunOS} } | |
189 \newcommand{\OSplanN} {\ninety{Plan 9 / 9front} } | |
190 \newcommand{\OSbeos} {\ninety{Haiku / BeOS} } | |
191 \newcommand{\OSminix} {\ninety{Minix} } | |
192 \newcommand{\OSpsp} {\ninety{Playstation Portable}} | |
193 \newcommand{\OSnds} {\ninety{Nintendo DS} } | |
194 | |
195 % also include hardfloat/softfloat @@@ | |
158 \begin{table}[h] | 196 \begin{table}[h] |
159 \begin{tabular}{r|*{3}{c!{\color{gray2}\vrule}}*{4}{c!{\color{gray2}\vrule}}*{11}{c!{\color{gray2}\vrule}}} | 197 \begin{tabular}{r>{\rule{0pt}{2.5ex}\tiny}l*{12}{c!{\color{gray3}\vrule}}c>{\tiny}l} |
160 & \ninety{\bf Alpha} & \ninety{\bf ARM} & \ninety{\bf ARM64} & \multicolumn{2}{c!{\color{gray2}\vrule}}{\ninety{\bf MIPS}} & \multicolumn{2}{c!{\color{gray2}\vrule}}{\ninety{\bf MIPS64}} & \ninety{\bf SuperH} & \ninety{\bf PowerPC} & \ninety{\bf PowerPC64} & \ninety{\bf m68k} & \ninety{\bf m88k} & \ninety{\bf x86} & \ninety{\bf x64} & \ninety{\bf Itanium} & \ninety{\bf SPARC} & \ninety{\bf SPARC64} & \ninety{\bf RISC-V} \\ | 198 & & \OSwinfam & \OSlinux & \OSdarwin & \OSfreebsd & \OSnetbsd & \OSopenbsd & \OSdflybsd & \OSsunos & \OSplanN & \OSbeos & \OSminix & \OSpsp & \OSnds \\%& \\ |
161 % also include hardfloat, here@@@ | 199 \arrayrulecolor{gray3} |
162 & & & & \ninety{\tiny EB} & \ninety{\tiny EL} & \ninety{\tiny EB} & \ninety{\tiny EL} & & & & & & & & & & & \\ | 200 Alpha & & \marknotx & \marknimp & \marknotx & \marknimp & \marknimp & \marknimp & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\ |
163 \hline | 201 \hline |
164 {\bf Windows family} & \marknotx & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknimp & \marknotx & \marknotx & \marknotx \\ | 202 ARM & & \markunkn & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknimp & \marknotx & \markunkn & \marknotx & \markcmpl \\%& atpcs (arm \& thumb), eabi (arm \& thumb), armhf\\ |
165 {\bf Linux} & \marknimp & \markcmpl & \markcmpl & \markcmpl & \markunkn & \markunkn & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknimp & \marknimp & \markcmpl & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknimp \\ | 203 \hline |
166 {\bf macOS / iOS / Darwin} & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markunkn & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx \\ | 204 ARM64 & & \marknotx & \markcmpl & \markcmpl & \markcmpl & \marknotx & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& aapcs64, apple\\ |
167 {\bf FreeBSD} & \marknimp & \markcmpl & \markcmpl & \markunkn & \markunkn & \markunkn & \markunkn & \marknotx & \markimpl & \markcmpl & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknimp & \marknotx & \markcmpl & \marknimp \\ | 205 \hline |
168 {\bf NetBSD} & \marknimp & \markcmpl & \marknotx & \markunkn & \markcmpl & \markunkn & \markunkn & \marknimp & \markimpl & \marknotx & \marknimp & \marknimp & \markcmpl & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknimp \\ | 206 \multirow{2}{*}{MIPS} & EB & \marknotx & \markcmpl & \marknotx & \markcmpl & \markunkn & \markunkn & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx \\%& \multirow{2}{*}{o32, n32, eabi / only hardfloat support} \\ |
169 {\bf OpenBSD} & \marknimp & \markcmpl & \markunkn & \markunkn & \markunkn & \markcmpl & \markunkn & \marknimp & \markunkn & \marknotx & \marknimp & \marknimp & \markcmpl & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknotx \\ | 207 \hhline{*{1}{|~}*{14}{|-}} |
170 {\bf DragonFlyBSD} & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx \\ | 208 & EL & \marknotx & \markunkn & \marknotx & \markcmpl & \markcmpl & \markunkn & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \markcmpl & \marknotx \\%& \\ |
171 {\bf Solaris / SunOS} & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \markcmpl & \markimpl & \marknotx \\ | 209 \hline |
172 {\bf Plan 9 / 9front} & \marknimp & \marknimp & \marknotx & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \marknotx & \markcmpl & \marknimp & \marknotx & \marknimp & \marknotx & \marknotx \\ | 210 \multirow{2}{*}{MIPS64} & EB & \marknotx & \markunkn & \marknotx & \markcmpl & \markunkn & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \multirow{2}{*}{n64 / only hardfloat support} \\ |
173 {\bf Haiku / BeOS} & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\ | 211 \hhline{*{1}{|~}*{14}{|-}} |
174 {\bf Minix} & \marknotx & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\ | 212 & EL & \marknotx & \markcmpl & \marknotx & \markcmpl & \markunkn & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\ |
175 {\bf Playstation Portable} & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\ | 213 \hline |
176 {\bf Nintendo DS} & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\ | 214 SuperH & & \marknotx & \marknimp & \marknotx & \marknotx & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\ |
215 \hline | |
216 PowerPC & & \marknotx & \markcmpl & \markcmpl & \markimpl & \markimpl & \markunkn & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx \\%& apple, sysv\\ | |
217 \hline | |
218 PowerPC64 & & \marknotx & \markcmpl & \markunkn & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& elf\\ | |
219 \hline | |
220 m68k & & \marknotx & \marknimp & \marknotx & \marknotx & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\ | |
221 \hline | |
222 m88k & & \marknotx & \marknimp & \marknotx & \marknotx & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\ | |
223 \hline | |
224 x86 & & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \marknotx & \marknotx \\%& cdecl, stdcall, fastcall (MS \& GNU), thiscall (MS \& GNU), plan9 \\ | |
225 \hline | |
226 x64 & & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx \\%& ms, sysv\\ | |
227 \hline | |
228 Itanium & & \marknimp & \marknimp & \marknotx & \marknimp & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\ | |
229 \hline | |
230 SPARC & & \marknotx & \markcmpl & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \markcmpl & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx \\%& v7, v8\\ | |
231 \hline | |
232 SPARC64 & & \marknotx & \markcmpl & \marknotx & \markcmpl & \markcmpl & \markcmpl & \marknotx & \markimpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& v9 \\ | |
233 \hline | |
234 RISC-V & & \marknotx & \marknimp & \marknotx & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\ | |
235 | |
177 \end{tabular} | 236 \end{tabular} |
178 \caption{Supported platforms}% | 237 \caption{Supported platforms}% |
179 \end{table} | 238 \end{table} |
239 | |
180 | 240 |
181 \subsection{Build Requirements} | 241 \subsection{Build Requirements} |
182 | 242 |
183 The library needs at least a c99 compiler with additional support for anonymous | 243 The library needs at least a c99 compiler with additional support for anonymous |
184 structs/unions (which were introduced officially in c11). Given that those are | 244 structs/unions (which were introduced officially in c11). Given that those are |