koffi 2.1.0-beta.2 → 2.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/ChangeLog.md +2 -2
  2. package/build/qemu/2.1.0-beta.3/koffi_darwin_arm64.tar.gz +0 -0
  3. package/build/qemu/2.1.0-beta.3/koffi_darwin_x64.tar.gz +0 -0
  4. package/build/qemu/2.1.0-beta.3/koffi_freebsd_arm64.tar.gz +0 -0
  5. package/build/qemu/2.1.0-beta.3/koffi_freebsd_ia32.tar.gz +0 -0
  6. package/build/qemu/2.1.0-beta.3/koffi_freebsd_x64.tar.gz +0 -0
  7. package/build/qemu/2.1.0-beta.3/koffi_linux_arm32hf.tar.gz +0 -0
  8. package/build/qemu/2.1.0-beta.3/koffi_linux_arm64.tar.gz +0 -0
  9. package/build/qemu/2.1.0-beta.3/koffi_linux_ia32.tar.gz +0 -0
  10. package/build/qemu/2.1.0-beta.3/koffi_linux_riscv64hf64.tar.gz +0 -0
  11. package/build/qemu/2.1.0-beta.3/koffi_linux_x64.tar.gz +0 -0
  12. package/build/qemu/2.1.0-beta.3/koffi_openbsd_ia32.tar.gz +0 -0
  13. package/build/qemu/2.1.0-beta.3/koffi_openbsd_x64.tar.gz +0 -0
  14. package/build/qemu/2.1.0-beta.3/koffi_win32_arm64.tar.gz +0 -0
  15. package/build/qemu/2.1.0-beta.3/koffi_win32_ia32.tar.gz +0 -0
  16. package/build/qemu/2.1.0-beta.3/koffi_win32_x64.tar.gz +0 -0
  17. package/doc/Makefile +1 -1
  18. package/doc/conf.py +5 -0
  19. package/doc/dist/doctrees/changes.doctree +0 -0
  20. package/doc/dist/doctrees/environment.pickle +0 -0
  21. package/doc/dist/doctrees/functions.doctree +0 -0
  22. package/doc/dist/doctrees/index.doctree +0 -0
  23. package/doc/dist/doctrees/types.doctree +0 -0
  24. package/doc/dist/html/.buildinfo +4 -0
  25. package/doc/dist/html/_sources/benchmarks.md.txt +137 -0
  26. package/doc/dist/html/_sources/changes.md.txt +161 -0
  27. package/doc/dist/html/_sources/contribute.md.txt +127 -0
  28. package/doc/dist/html/_sources/functions.md.txt +421 -0
  29. package/doc/dist/html/_sources/index.rst.txt +39 -0
  30. package/doc/dist/html/_sources/memory.md.txt +32 -0
  31. package/doc/dist/html/_sources/platforms.md.txt +31 -0
  32. package/doc/dist/html/_sources/start.md.txt +100 -0
  33. package/doc/dist/html/_sources/types.md.txt +541 -0
  34. package/doc/dist/html/_static/_sphinx_javascript_frameworks_compat.js +134 -0
  35. package/doc/dist/html/_static/basic.css +932 -0
  36. package/doc/dist/html/_static/bench_linux.png +0 -0
  37. package/doc/dist/html/_static/bench_windows.png +0 -0
  38. package/doc/dist/html/_static/custom.css +22 -0
  39. package/doc/dist/html/_static/debug.css +69 -0
  40. package/doc/dist/html/_static/doctools.js +264 -0
  41. package/doc/dist/html/_static/documentation_options.js +14 -0
  42. package/doc/dist/html/_static/file.png +0 -0
  43. package/doc/dist/html/_static/jquery-3.6.0.js +10881 -0
  44. package/doc/dist/html/_static/jquery.js +2 -0
  45. package/doc/dist/html/_static/language_data.js +199 -0
  46. package/doc/dist/html/_static/minus.png +0 -0
  47. package/doc/dist/html/_static/perf_linux_20220623.png +0 -0
  48. package/doc/dist/html/_static/perf_linux_20220623_2.png +0 -0
  49. package/doc/dist/html/_static/perf_windows_20220623.png +0 -0
  50. package/doc/dist/html/_static/perf_windows_20220623_2.png +0 -0
  51. package/doc/dist/html/_static/plus.png +0 -0
  52. package/doc/dist/html/_static/pygments.css +252 -0
  53. package/doc/dist/html/_static/scripts/furo-extensions.js +0 -0
  54. package/doc/dist/html/_static/scripts/furo.js +3 -0
  55. package/doc/dist/html/_static/scripts/furo.js.LICENSE.txt +7 -0
  56. package/doc/dist/html/_static/scripts/furo.js.map +1 -0
  57. package/doc/dist/html/_static/searchtools.js +531 -0
  58. package/doc/dist/html/_static/skeleton.css +296 -0
  59. package/doc/dist/html/_static/styles/furo-extensions.css +2 -0
  60. package/doc/dist/html/_static/styles/furo-extensions.css.map +1 -0
  61. package/doc/dist/html/_static/styles/furo.css +2 -0
  62. package/doc/dist/html/_static/styles/furo.css.map +1 -0
  63. package/doc/dist/html/_static/underscore-1.13.1.js +2042 -0
  64. package/doc/dist/html/_static/underscore.js +6 -0
  65. package/doc/dist/html/benchmarks.html +571 -0
  66. package/doc/dist/html/changes.html +686 -0
  67. package/doc/dist/html/contribute.html +403 -0
  68. package/doc/dist/html/functions.html +718 -0
  69. package/doc/dist/html/genindex.html +253 -0
  70. package/doc/dist/html/index.html +359 -0
  71. package/doc/dist/html/memory.html +346 -0
  72. package/doc/dist/html/objects.inv +0 -0
  73. package/doc/dist/html/platforms.html +371 -0
  74. package/doc/dist/html/search.html +261 -0
  75. package/doc/dist/html/searchindex.js +1 -0
  76. package/doc/dist/html/start.html +384 -0
  77. package/doc/dist/html/types.html +1061 -0
  78. package/doc/make.bat +1 -1
  79. package/doc/templates/badges.html +1 -1
  80. package/doc/types.md +2 -0
  81. package/package.json +2 -1
  82. package/src/abi_arm32.cc +142 -200
  83. package/src/abi_arm64.cc +113 -122
  84. package/src/abi_riscv64.cc +76 -92
  85. package/src/abi_x64_sysv.cc +76 -92
  86. package/src/abi_x64_win.cc +76 -92
  87. package/src/abi_x86.cc +128 -164
  88. package/test/misc.c +43 -0
  89. package/test/sync.js +81 -0
  90. package/build/qemu/2.1.0-beta.2/koffi_darwin_arm64.tar.gz +0 -0
  91. package/build/qemu/2.1.0-beta.2/koffi_darwin_x64.tar.gz +0 -0
  92. package/build/qemu/2.1.0-beta.2/koffi_freebsd_arm64.tar.gz +0 -0
  93. package/build/qemu/2.1.0-beta.2/koffi_freebsd_ia32.tar.gz +0 -0
  94. package/build/qemu/2.1.0-beta.2/koffi_freebsd_x64.tar.gz +0 -0
  95. package/build/qemu/2.1.0-beta.2/koffi_linux_arm32hf.tar.gz +0 -0
  96. package/build/qemu/2.1.0-beta.2/koffi_linux_arm64.tar.gz +0 -0
  97. package/build/qemu/2.1.0-beta.2/koffi_linux_ia32.tar.gz +0 -0
  98. package/build/qemu/2.1.0-beta.2/koffi_linux_riscv64hf64.tar.gz +0 -0
  99. package/build/qemu/2.1.0-beta.2/koffi_linux_x64.tar.gz +0 -0
  100. package/build/qemu/2.1.0-beta.2/koffi_openbsd_ia32.tar.gz +0 -0
  101. package/build/qemu/2.1.0-beta.2/koffi_openbsd_x64.tar.gz +0 -0
  102. package/build/qemu/2.1.0-beta.2/koffi_win32_arm64.tar.gz +0 -0
  103. package/build/qemu/2.1.0-beta.2/koffi_win32_ia32.tar.gz +0 -0
  104. package/build/qemu/2.1.0-beta.2/koffi_win32_x64.tar.gz +0 -0
@@ -0,0 +1,22 @@
1
+ /* This program is free software: you can redistribute it and/or modify
2
+ it under the terms of the GNU Affero General Public License as published by
3
+ the Free Software Foundation, either version 3 of the License, or
4
+ (at your option) any later version.
5
+
6
+ This program is distributed in the hope that it will be useful,
7
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
8
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9
+ GNU Affero General Public License for more details.
10
+
11
+ You should have received a copy of the GNU Affero General Public License
12
+ along with this program. If not, see https://www.gnu.org/licenses/. */
13
+
14
+ aside.footnote {
15
+ display: flex;
16
+ margin-top: 6px;
17
+ }
18
+
19
+ aside.footnote > p {
20
+ margin: 0;
21
+ margin-left: 1rem;
22
+ }
@@ -0,0 +1,69 @@
1
+ /*
2
+ This CSS file should be overridden by the theme authors. It's
3
+ meant for debugging and developing the skeleton that this theme provides.
4
+ */
5
+ body {
6
+ font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
7
+ "Apple Color Emoji", "Segoe UI Emoji";
8
+ background: lavender;
9
+ }
10
+ .sb-announcement {
11
+ background: rgb(131, 131, 131);
12
+ }
13
+ .sb-announcement__inner {
14
+ background: black;
15
+ color: white;
16
+ }
17
+ .sb-header {
18
+ background: lightskyblue;
19
+ }
20
+ .sb-header__inner {
21
+ background: royalblue;
22
+ color: white;
23
+ }
24
+ .sb-header-secondary {
25
+ background: lightcyan;
26
+ }
27
+ .sb-header-secondary__inner {
28
+ background: cornflowerblue;
29
+ color: white;
30
+ }
31
+ .sb-sidebar-primary {
32
+ background: lightgreen;
33
+ }
34
+ .sb-main {
35
+ background: blanchedalmond;
36
+ }
37
+ .sb-main__inner {
38
+ background: antiquewhite;
39
+ }
40
+ .sb-header-article {
41
+ background: lightsteelblue;
42
+ }
43
+ .sb-article-container {
44
+ background: snow;
45
+ }
46
+ .sb-article-main {
47
+ background: white;
48
+ }
49
+ .sb-footer-article {
50
+ background: lightpink;
51
+ }
52
+ .sb-sidebar-secondary {
53
+ background: lightgoldenrodyellow;
54
+ }
55
+ .sb-footer-content {
56
+ background: plum;
57
+ }
58
+ .sb-footer-content__inner {
59
+ background: palevioletred;
60
+ }
61
+ .sb-footer {
62
+ background: pink;
63
+ }
64
+ .sb-footer__inner {
65
+ background: salmon;
66
+ }
67
+ [role="main"] {
68
+ background: white;
69
+ }
@@ -0,0 +1,264 @@
1
+ /*
2
+ * doctools.js
3
+ * ~~~~~~~~~~~
4
+ *
5
+ * Base JavaScript utilities for all Sphinx HTML documentation.
6
+ *
7
+ * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
8
+ * :license: BSD, see LICENSE for details.
9
+ *
10
+ */
11
+ "use strict";
12
+
13
+ const _ready = (callback) => {
14
+ if (document.readyState !== "loading") {
15
+ callback();
16
+ } else {
17
+ document.addEventListener("DOMContentLoaded", callback);
18
+ }
19
+ };
20
+
21
+ /**
22
+ * highlight a given string on a node by wrapping it in
23
+ * span elements with the given class name.
24
+ */
25
+ const _highlight = (node, addItems, text, className) => {
26
+ if (node.nodeType === Node.TEXT_NODE) {
27
+ const val = node.nodeValue;
28
+ const parent = node.parentNode;
29
+ const pos = val.toLowerCase().indexOf(text);
30
+ if (
31
+ pos >= 0 &&
32
+ !parent.classList.contains(className) &&
33
+ !parent.classList.contains("nohighlight")
34
+ ) {
35
+ let span;
36
+
37
+ const closestNode = parent.closest("body, svg, foreignObject");
38
+ const isInSVG = closestNode && closestNode.matches("svg");
39
+ if (isInSVG) {
40
+ span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
41
+ } else {
42
+ span = document.createElement("span");
43
+ span.classList.add(className);
44
+ }
45
+
46
+ span.appendChild(document.createTextNode(val.substr(pos, text.length)));
47
+ parent.insertBefore(
48
+ span,
49
+ parent.insertBefore(
50
+ document.createTextNode(val.substr(pos + text.length)),
51
+ node.nextSibling
52
+ )
53
+ );
54
+ node.nodeValue = val.substr(0, pos);
55
+
56
+ if (isInSVG) {
57
+ const rect = document.createElementNS(
58
+ "http://www.w3.org/2000/svg",
59
+ "rect"
60
+ );
61
+ const bbox = parent.getBBox();
62
+ rect.x.baseVal.value = bbox.x;
63
+ rect.y.baseVal.value = bbox.y;
64
+ rect.width.baseVal.value = bbox.width;
65
+ rect.height.baseVal.value = bbox.height;
66
+ rect.setAttribute("class", className);
67
+ addItems.push({ parent: parent, target: rect });
68
+ }
69
+ }
70
+ } else if (node.matches && !node.matches("button, select, textarea")) {
71
+ node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
72
+ }
73
+ };
74
+ const _highlightText = (thisNode, text, className) => {
75
+ let addItems = [];
76
+ _highlight(thisNode, addItems, text, className);
77
+ addItems.forEach((obj) =>
78
+ obj.parent.insertAdjacentElement("beforebegin", obj.target)
79
+ );
80
+ };
81
+
82
+ /**
83
+ * Small JavaScript module for the documentation.
84
+ */
85
+ const Documentation = {
86
+ init: () => {
87
+ Documentation.highlightSearchWords();
88
+ Documentation.initDomainIndexTable();
89
+ Documentation.initOnKeyListeners();
90
+ },
91
+
92
+ /**
93
+ * i18n support
94
+ */
95
+ TRANSLATIONS: {},
96
+ PLURAL_EXPR: (n) => (n === 1 ? 0 : 1),
97
+ LOCALE: "unknown",
98
+
99
+ // gettext and ngettext don't access this so that the functions
100
+ // can safely bound to a different name (_ = Documentation.gettext)
101
+ gettext: (string) => {
102
+ const translated = Documentation.TRANSLATIONS[string];
103
+ switch (typeof translated) {
104
+ case "undefined":
105
+ return string; // no translation
106
+ case "string":
107
+ return translated; // translation exists
108
+ default:
109
+ return translated[0]; // (singular, plural) translation tuple exists
110
+ }
111
+ },
112
+
113
+ ngettext: (singular, plural, n) => {
114
+ const translated = Documentation.TRANSLATIONS[singular];
115
+ if (typeof translated !== "undefined")
116
+ return translated[Documentation.PLURAL_EXPR(n)];
117
+ return n === 1 ? singular : plural;
118
+ },
119
+
120
+ addTranslations: (catalog) => {
121
+ Object.assign(Documentation.TRANSLATIONS, catalog.messages);
122
+ Documentation.PLURAL_EXPR = new Function(
123
+ "n",
124
+ `return (${catalog.plural_expr})`
125
+ );
126
+ Documentation.LOCALE = catalog.locale;
127
+ },
128
+
129
+ /**
130
+ * highlight the search words provided in the url in the text
131
+ */
132
+ highlightSearchWords: () => {
133
+ const highlight =
134
+ new URLSearchParams(window.location.search).get("highlight") || "";
135
+ const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
136
+ if (terms.length === 0) return; // nothing to do
137
+
138
+ // There should never be more than one element matching "div.body"
139
+ const divBody = document.querySelectorAll("div.body");
140
+ const body = divBody.length ? divBody[0] : document.querySelector("body");
141
+ window.setTimeout(() => {
142
+ terms.forEach((term) => _highlightText(body, term, "highlighted"));
143
+ }, 10);
144
+
145
+ const searchBox = document.getElementById("searchbox");
146
+ if (searchBox === null) return;
147
+ searchBox.appendChild(
148
+ document
149
+ .createRange()
150
+ .createContextualFragment(
151
+ '<p class="highlight-link">' +
152
+ '<a href="javascript:Documentation.hideSearchWords()">' +
153
+ Documentation.gettext("Hide Search Matches") +
154
+ "</a></p>"
155
+ )
156
+ );
157
+ },
158
+
159
+ /**
160
+ * helper function to hide the search marks again
161
+ */
162
+ hideSearchWords: () => {
163
+ document
164
+ .querySelectorAll("#searchbox .highlight-link")
165
+ .forEach((el) => el.remove());
166
+ document
167
+ .querySelectorAll("span.highlighted")
168
+ .forEach((el) => el.classList.remove("highlighted"));
169
+ const url = new URL(window.location);
170
+ url.searchParams.delete("highlight");
171
+ window.history.replaceState({}, "", url);
172
+ },
173
+
174
+ /**
175
+ * helper function to focus on search bar
176
+ */
177
+ focusSearchBar: () => {
178
+ document.querySelectorAll("input[name=q]")[0]?.focus();
179
+ },
180
+
181
+ /**
182
+ * Initialise the domain index toggle buttons
183
+ */
184
+ initDomainIndexTable: () => {
185
+ const toggler = (el) => {
186
+ const idNumber = el.id.substr(7);
187
+ const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
188
+ if (el.src.substr(-9) === "minus.png") {
189
+ el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`;
190
+ toggledRows.forEach((el) => (el.style.display = "none"));
191
+ } else {
192
+ el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
193
+ toggledRows.forEach((el) => (el.style.display = ""));
194
+ }
195
+ };
196
+
197
+ const togglerElements = document.querySelectorAll("img.toggler");
198
+ togglerElements.forEach((el) =>
199
+ el.addEventListener("click", (event) => toggler(event.currentTarget))
200
+ );
201
+ togglerElements.forEach((el) => (el.style.display = ""));
202
+ if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
203
+ },
204
+
205
+ initOnKeyListeners: () => {
206
+ // only install a listener if it is really needed
207
+ if (
208
+ !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
209
+ !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
210
+ )
211
+ return;
212
+
213
+ const blacklistedElements = new Set([
214
+ "TEXTAREA",
215
+ "INPUT",
216
+ "SELECT",
217
+ "BUTTON",
218
+ ]);
219
+ document.addEventListener("keydown", (event) => {
220
+ if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements
221
+ if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys
222
+
223
+ if (!event.shiftKey) {
224
+ switch (event.key) {
225
+ case "ArrowLeft":
226
+ if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
227
+
228
+ const prevLink = document.querySelector('link[rel="prev"]');
229
+ if (prevLink && prevLink.href) {
230
+ window.location.href = prevLink.href;
231
+ event.preventDefault();
232
+ }
233
+ break;
234
+ case "ArrowRight":
235
+ if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
236
+
237
+ const nextLink = document.querySelector('link[rel="next"]');
238
+ if (nextLink && nextLink.href) {
239
+ window.location.href = nextLink.href;
240
+ event.preventDefault();
241
+ }
242
+ break;
243
+ case "Escape":
244
+ if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
245
+ Documentation.hideSearchWords();
246
+ event.preventDefault();
247
+ }
248
+ }
249
+
250
+ // some keyboard layouts may need Shift to get /
251
+ switch (event.key) {
252
+ case "/":
253
+ if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
254
+ Documentation.focusSearchBar();
255
+ event.preventDefault();
256
+ }
257
+ });
258
+ },
259
+ };
260
+
261
+ // quick alias for translations
262
+ const _ = Documentation.gettext;
263
+
264
+ _ready(Documentation.init);
@@ -0,0 +1,14 @@
1
+ var DOCUMENTATION_OPTIONS = {
2
+ URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
3
+ VERSION: '',
4
+ LANGUAGE: 'en',
5
+ COLLAPSE_INDEX: false,
6
+ BUILDER: 'html',
7
+ FILE_SUFFIX: '.html',
8
+ LINK_SUFFIX: '',
9
+ HAS_SOURCE: true,
10
+ SOURCELINK_SUFFIX: '.txt',
11
+ NAVIGATION_WITH_KEYS: false,
12
+ SHOW_SEARCH_SUMMARY: true,
13
+ ENABLE_SEARCH_SHORTCUTS: false,
14
+ };
Binary file