typenative 0.1.2 → 0.2.0

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 (504) hide show
  1. package/.gitattributes +1 -0
  2. package/.github/workflows/ci.yml +1 -1
  3. package/.github/workflows/npm-publish-github-packages.yml +1 -1
  4. package/CHANGELOG.md +247 -0
  5. package/CONTRIBUTION.md +1 -1
  6. package/README.md +30 -21
  7. package/bin/cli.js +3 -1
  8. package/bin/go/bridge.js +919 -0
  9. package/bin/go/convert.js +238 -0
  10. package/bin/go/metadata.js +211 -0
  11. package/bin/go/overrides.js +68 -0
  12. package/bin/go/stdlib.generated.js +175 -0
  13. package/bin/index.js +98 -6
  14. package/bin/main.js +4 -1
  15. package/bin/node/assert.js +344 -0
  16. package/bin/node/async_hooks.js +273 -0
  17. package/bin/node/buffer.js +765 -0
  18. package/bin/node/child_process.js +600 -0
  19. package/bin/node/cluster.js +1002 -0
  20. package/bin/node/console.js +121 -0
  21. package/bin/node/core.js +111 -0
  22. package/bin/node/crypto.js +414 -0
  23. package/bin/node/crypto_keys.js +2685 -0
  24. package/bin/node/dgram.js +388 -0
  25. package/bin/node/diagnostics_channel.js +534 -0
  26. package/bin/node/dns.js +635 -0
  27. package/bin/node/events.js +743 -0
  28. package/bin/node/fetch.js +737 -0
  29. package/bin/node/fs.js +998 -0
  30. package/bin/node/http.js +1500 -0
  31. package/bin/node/http2.js +688 -0
  32. package/bin/node/net.js +1143 -0
  33. package/bin/node/os.js +257 -0
  34. package/bin/node/path.js +758 -0
  35. package/bin/node/process.js +316 -0
  36. package/bin/node/punycode.js +195 -0
  37. package/bin/node/querystring.js +143 -0
  38. package/bin/node/readline.js +299 -0
  39. package/bin/node/registry.js +161 -0
  40. package/bin/node/sqlite.js +1142 -0
  41. package/bin/node/stream.js +1221 -0
  42. package/bin/node/stream_web.js +2259 -0
  43. package/bin/node/string_decoder.js +101 -0
  44. package/bin/node/system_extra.js +661 -0
  45. package/bin/node/test.js +1068 -0
  46. package/bin/node/timers.js +250 -0
  47. package/bin/node/tls.js +719 -0
  48. package/bin/node/url.js +861 -0
  49. package/bin/node/util.js +1311 -0
  50. package/bin/node/util_extra.js +599 -0
  51. package/bin/node/worker_threads.js +745 -0
  52. package/bin/node/zlib.js +263 -0
  53. package/bin/parse-native.js +3 -2
  54. package/bin/parse-node.js +18 -2
  55. package/bin/transpiler.js +3529 -597
  56. package/bin/version.js +2 -0
  57. package/conformance.md +724 -258
  58. package/govendor/github.com/ncruces/go-sqlite3/LICENSE +21 -0
  59. package/govendor/github.com/ncruces/go-sqlite3/README.md +121 -0
  60. package/govendor/github.com/ncruces/go-sqlite3/backup.go +132 -0
  61. package/govendor/github.com/ncruces/go-sqlite3/blob.go +266 -0
  62. package/govendor/github.com/ncruces/go-sqlite3/config.go +397 -0
  63. package/govendor/github.com/ncruces/go-sqlite3/conn.go +540 -0
  64. package/govendor/github.com/ncruces/go-sqlite3/conn_127.go +93 -0
  65. package/govendor/github.com/ncruces/go-sqlite3/const.go +436 -0
  66. package/govendor/github.com/ncruces/go-sqlite3/context.go +222 -0
  67. package/govendor/github.com/ncruces/go-sqlite3/error.go +182 -0
  68. package/govendor/github.com/ncruces/go-sqlite3/ext.go +153 -0
  69. package/govendor/github.com/ncruces/go-sqlite3/func.go +309 -0
  70. package/govendor/github.com/ncruces/go-sqlite3/go.mod +3 -0
  71. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk.go +29 -0
  72. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_other.go +13 -0
  73. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_unix.go +57 -0
  74. package/govendor/github.com/ncruces/go-sqlite3/internal/errutil/error.go +41 -0
  75. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/alloc.go +128 -0
  76. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/const.go +122 -0
  77. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/error.go +77 -0
  78. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem.go +116 -0
  79. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_other.go +34 -0
  80. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_unix.go +87 -0
  81. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_windows.go +149 -0
  82. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_unix.go +80 -0
  83. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_windows.go +129 -0
  84. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/sys_windows.go +60 -0
  85. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap.go +82 -0
  86. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_sys.go +113 -0
  87. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_vfs.go +181 -0
  88. package/govendor/github.com/ncruces/go-sqlite3/internal/testenv/env.go +55 -0
  89. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json.go +54 -0
  90. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json_v2.go +54 -0
  91. package/govendor/github.com/ncruces/go-sqlite3/internal/util/math.go +29 -0
  92. package/govendor/github.com/ncruces/go-sqlite3/internal/util/page.go +5 -0
  93. package/govendor/github.com/ncruces/go-sqlite3/internal/util/parse.go +142 -0
  94. package/govendor/github.com/ncruces/go-sqlite3/internal/util/pointer.go +3 -0
  95. package/govendor/github.com/ncruces/go-sqlite3/internal/util/reflect.go +10 -0
  96. package/govendor/github.com/ncruces/go-sqlite3/json.go +100 -0
  97. package/govendor/github.com/ncruces/go-sqlite3/json_v2.go +116 -0
  98. package/govendor/github.com/ncruces/go-sqlite3/pointer.go +13 -0
  99. package/govendor/github.com/ncruces/go-sqlite3/quote.go +140 -0
  100. package/govendor/github.com/ncruces/go-sqlite3/stmt.go +692 -0
  101. package/govendor/github.com/ncruces/go-sqlite3/time.go +360 -0
  102. package/govendor/github.com/ncruces/go-sqlite3/txn.go +374 -0
  103. package/govendor/github.com/ncruces/go-sqlite3/value.go +212 -0
  104. package/govendor/github.com/ncruces/go-sqlite3/vfs/README.md +133 -0
  105. package/govendor/github.com/ncruces/go-sqlite3/vfs/api.go +239 -0
  106. package/govendor/github.com/ncruces/go-sqlite3/vfs/cksm.go +143 -0
  107. package/govendor/github.com/ncruces/go-sqlite3/vfs/const.go +256 -0
  108. package/govendor/github.com/ncruces/go-sqlite3/vfs/file.go +260 -0
  109. package/govendor/github.com/ncruces/go-sqlite3/vfs/filename.go +187 -0
  110. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock.go +128 -0
  111. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock_other.go +23 -0
  112. package/govendor/github.com/ncruces/go-sqlite3/vfs/map.go +63 -0
  113. package/govendor/github.com/ncruces/go-sqlite3/vfs/map_other.go +13 -0
  114. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_bsd.go +110 -0
  115. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_darwin.go +131 -0
  116. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_dotlk.go +140 -0
  117. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_f2fs_linux.go +56 -0
  118. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_linux.go +117 -0
  119. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_ofd.go +59 -0
  120. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std.go +50 -0
  121. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_alloc.go +19 -0
  122. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_atomic.go +9 -0
  123. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_rw.go +13 -0
  124. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_sync.go +9 -0
  125. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_temp.go +16 -0
  126. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go +108 -0
  127. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_windows.go +180 -0
  128. package/govendor/github.com/ncruces/go-sqlite3/vfs/registry.go +48 -0
  129. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm.go +26 -0
  130. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_bsd.go +258 -0
  131. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_copy.go +90 -0
  132. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_dotlk.go +168 -0
  133. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_memlk.go +52 -0
  134. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_ofd.go +185 -0
  135. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_other.go +21 -0
  136. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_windows.go +124 -0
  137. package/govendor/github.com/ncruces/go-sqlite3/vfs/vfs.go +455 -0
  138. package/govendor/github.com/ncruces/go-sqlite3/vtab.go +677 -0
  139. package/govendor/github.com/ncruces/go-sqlite3/wrap.go +48 -0
  140. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/LICENSE +18 -0
  141. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/README.md +11 -0
  142. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/go.mod +3 -0
  143. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/libc.go +215 -0
  144. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.dat +0 -0
  145. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.go +157903 -0
  146. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/tools.sh +38 -0
  147. package/govendor/github.com/ncruces/julianday/LICENSE +21 -0
  148. package/govendor/github.com/ncruces/julianday/README.md +9 -0
  149. package/govendor/github.com/ncruces/julianday/go.mod +3 -0
  150. package/govendor/github.com/ncruces/julianday/julianday.go +124 -0
  151. package/govendor/golang.org/x/sys/LICENSE +27 -0
  152. package/govendor/golang.org/x/sys/PATENTS +22 -0
  153. package/govendor/golang.org/x/sys/go.mod +3 -0
  154. package/govendor/golang.org/x/sys/unix/README.md +184 -0
  155. package/govendor/golang.org/x/sys/unix/affinity_linux.go +189 -0
  156. package/govendor/golang.org/x/sys/unix/aliases.go +13 -0
  157. package/govendor/golang.org/x/sys/unix/asm_aix_ppc64.s +17 -0
  158. package/govendor/golang.org/x/sys/unix/asm_bsd_386.s +27 -0
  159. package/govendor/golang.org/x/sys/unix/asm_bsd_amd64.s +27 -0
  160. package/govendor/golang.org/x/sys/unix/asm_bsd_arm.s +27 -0
  161. package/govendor/golang.org/x/sys/unix/asm_bsd_arm64.s +27 -0
  162. package/govendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +29 -0
  163. package/govendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +27 -0
  164. package/govendor/golang.org/x/sys/unix/asm_linux_386.s +65 -0
  165. package/govendor/golang.org/x/sys/unix/asm_linux_amd64.s +57 -0
  166. package/govendor/golang.org/x/sys/unix/asm_linux_arm.s +56 -0
  167. package/govendor/golang.org/x/sys/unix/asm_linux_arm64.s +50 -0
  168. package/govendor/golang.org/x/sys/unix/asm_linux_loong64.s +51 -0
  169. package/govendor/golang.org/x/sys/unix/asm_linux_mips64x.s +54 -0
  170. package/govendor/golang.org/x/sys/unix/asm_linux_mipsx.s +52 -0
  171. package/govendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +42 -0
  172. package/govendor/golang.org/x/sys/unix/asm_linux_riscv64.s +47 -0
  173. package/govendor/golang.org/x/sys/unix/asm_linux_s390x.s +54 -0
  174. package/govendor/golang.org/x/sys/unix/asm_openbsd_mips64.s +29 -0
  175. package/govendor/golang.org/x/sys/unix/asm_solaris_amd64.s +17 -0
  176. package/govendor/golang.org/x/sys/unix/asm_zos_s390x.s +382 -0
  177. package/govendor/golang.org/x/sys/unix/auxv.go +36 -0
  178. package/govendor/golang.org/x/sys/unix/auxv_unsupported.go +13 -0
  179. package/govendor/golang.org/x/sys/unix/bluetooth_linux.go +36 -0
  180. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.go +657 -0
  181. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.s +192 -0
  182. package/govendor/golang.org/x/sys/unix/cap_freebsd.go +195 -0
  183. package/govendor/golang.org/x/sys/unix/constants.go +13 -0
  184. package/govendor/golang.org/x/sys/unix/dev_aix_ppc.go +26 -0
  185. package/govendor/golang.org/x/sys/unix/dev_aix_ppc64.go +28 -0
  186. package/govendor/golang.org/x/sys/unix/dev_darwin.go +24 -0
  187. package/govendor/golang.org/x/sys/unix/dev_dragonfly.go +30 -0
  188. package/govendor/golang.org/x/sys/unix/dev_freebsd.go +30 -0
  189. package/govendor/golang.org/x/sys/unix/dev_linux.go +42 -0
  190. package/govendor/golang.org/x/sys/unix/dev_netbsd.go +29 -0
  191. package/govendor/golang.org/x/sys/unix/dev_openbsd.go +29 -0
  192. package/govendor/golang.org/x/sys/unix/dev_zos.go +28 -0
  193. package/govendor/golang.org/x/sys/unix/dirent.go +102 -0
  194. package/govendor/golang.org/x/sys/unix/endian_big.go +9 -0
  195. package/govendor/golang.org/x/sys/unix/endian_little.go +9 -0
  196. package/govendor/golang.org/x/sys/unix/env_unix.go +31 -0
  197. package/govendor/golang.org/x/sys/unix/fcntl.go +36 -0
  198. package/govendor/golang.org/x/sys/unix/fcntl_darwin.go +24 -0
  199. package/govendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +13 -0
  200. package/govendor/golang.org/x/sys/unix/fdset.go +27 -0
  201. package/govendor/golang.org/x/sys/unix/gccgo.go +59 -0
  202. package/govendor/golang.org/x/sys/unix/gccgo_c.c +44 -0
  203. package/govendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +20 -0
  204. package/govendor/golang.org/x/sys/unix/ifreq_linux.go +145 -0
  205. package/govendor/golang.org/x/sys/unix/ioctl_linux.go +341 -0
  206. package/govendor/golang.org/x/sys/unix/ioctl_signed.go +74 -0
  207. package/govendor/golang.org/x/sys/unix/ioctl_unsigned.go +74 -0
  208. package/govendor/golang.org/x/sys/unix/ioctl_zos.go +71 -0
  209. package/govendor/golang.org/x/sys/unix/mkall.sh +250 -0
  210. package/govendor/golang.org/x/sys/unix/mkerrors.sh +807 -0
  211. package/govendor/golang.org/x/sys/unix/mmap_nomremap.go +13 -0
  212. package/govendor/golang.org/x/sys/unix/mremap.go +57 -0
  213. package/govendor/golang.org/x/sys/unix/pagesize_unix.go +15 -0
  214. package/govendor/golang.org/x/sys/unix/pledge_openbsd.go +111 -0
  215. package/govendor/golang.org/x/sys/unix/ptrace_darwin.go +11 -0
  216. package/govendor/golang.org/x/sys/unix/ptrace_ios.go +11 -0
  217. package/govendor/golang.org/x/sys/unix/race.go +30 -0
  218. package/govendor/golang.org/x/sys/unix/race0.go +25 -0
  219. package/govendor/golang.org/x/sys/unix/readdirent_getdents.go +12 -0
  220. package/govendor/golang.org/x/sys/unix/readdirent_getdirentries.go +19 -0
  221. package/govendor/golang.org/x/sys/unix/readv_unix.go +103 -0
  222. package/govendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +16 -0
  223. package/govendor/golang.org/x/sys/unix/sockcmsg_linux.go +85 -0
  224. package/govendor/golang.org/x/sys/unix/sockcmsg_unix.go +106 -0
  225. package/govendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +46 -0
  226. package/govendor/golang.org/x/sys/unix/sockcmsg_zos.go +58 -0
  227. package/govendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +75 -0
  228. package/govendor/golang.org/x/sys/unix/syscall.go +86 -0
  229. package/govendor/golang.org/x/sys/unix/syscall_aix.go +582 -0
  230. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc.go +52 -0
  231. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +83 -0
  232. package/govendor/golang.org/x/sys/unix/syscall_bsd.go +609 -0
  233. package/govendor/golang.org/x/sys/unix/syscall_darwin.go +711 -0
  234. package/govendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +50 -0
  235. package/govendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +50 -0
  236. package/govendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +26 -0
  237. package/govendor/golang.org/x/sys/unix/syscall_dragonfly.go +359 -0
  238. package/govendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +56 -0
  239. package/govendor/golang.org/x/sys/unix/syscall_freebsd.go +455 -0
  240. package/govendor/golang.org/x/sys/unix/syscall_freebsd_386.go +64 -0
  241. package/govendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +64 -0
  242. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +60 -0
  243. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +60 -0
  244. package/govendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +60 -0
  245. package/govendor/golang.org/x/sys/unix/syscall_hurd.go +30 -0
  246. package/govendor/golang.org/x/sys/unix/syscall_hurd_386.go +28 -0
  247. package/govendor/golang.org/x/sys/unix/syscall_illumos.go +78 -0
  248. package/govendor/golang.org/x/sys/unix/syscall_linux.go +2574 -0
  249. package/govendor/golang.org/x/sys/unix/syscall_linux_386.go +313 -0
  250. package/govendor/golang.org/x/sys/unix/syscall_linux_alarm.go +12 -0
  251. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64.go +144 -0
  252. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +12 -0
  253. package/govendor/golang.org/x/sys/unix/syscall_linux_arm.go +218 -0
  254. package/govendor/golang.org/x/sys/unix/syscall_linux_arm64.go +188 -0
  255. package/govendor/golang.org/x/sys/unix/syscall_linux_gc.go +14 -0
  256. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +16 -0
  257. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +13 -0
  258. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +30 -0
  259. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +20 -0
  260. package/govendor/golang.org/x/sys/unix/syscall_linux_loong64.go +220 -0
  261. package/govendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +187 -0
  262. package/govendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +173 -0
  263. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc.go +203 -0
  264. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +114 -0
  265. package/govendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +193 -0
  266. package/govendor/golang.org/x/sys/unix/syscall_linux_s390x.go +295 -0
  267. package/govendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +111 -0
  268. package/govendor/golang.org/x/sys/unix/syscall_netbsd.go +388 -0
  269. package/govendor/golang.org/x/sys/unix/syscall_netbsd_386.go +37 -0
  270. package/govendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +37 -0
  271. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +37 -0
  272. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +37 -0
  273. package/govendor/golang.org/x/sys/unix/syscall_openbsd.go +346 -0
  274. package/govendor/golang.org/x/sys/unix/syscall_openbsd_386.go +41 -0
  275. package/govendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +41 -0
  276. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +41 -0
  277. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +41 -0
  278. package/govendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +26 -0
  279. package/govendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +39 -0
  280. package/govendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +41 -0
  281. package/govendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +41 -0
  282. package/govendor/golang.org/x/sys/unix/syscall_solaris.go +1183 -0
  283. package/govendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +27 -0
  284. package/govendor/golang.org/x/sys/unix/syscall_unix.go +619 -0
  285. package/govendor/golang.org/x/sys/unix/syscall_unix_gc.go +14 -0
  286. package/govendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +22 -0
  287. package/govendor/golang.org/x/sys/unix/syscall_zos_s390x.go +3213 -0
  288. package/govendor/golang.org/x/sys/unix/sysvshm_linux.go +20 -0
  289. package/govendor/golang.org/x/sys/unix/sysvshm_unix.go +51 -0
  290. package/govendor/golang.org/x/sys/unix/sysvshm_unix_other.go +13 -0
  291. package/govendor/golang.org/x/sys/unix/timestruct.go +76 -0
  292. package/govendor/golang.org/x/sys/unix/unveil_openbsd.go +51 -0
  293. package/govendor/golang.org/x/sys/unix/vgetrandom_linux.go +13 -0
  294. package/govendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +11 -0
  295. package/govendor/golang.org/x/sys/unix/xattr_bsd.go +280 -0
  296. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +1384 -0
  297. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +1385 -0
  298. package/govendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +1922 -0
  299. package/govendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +1922 -0
  300. package/govendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +1737 -0
  301. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +2042 -0
  302. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +2039 -0
  303. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +2033 -0
  304. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +2033 -0
  305. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +2147 -0
  306. package/govendor/golang.org/x/sys/unix/zerrors_linux.go +4209 -0
  307. package/govendor/golang.org/x/sys/unix/zerrors_linux_386.go +882 -0
  308. package/govendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +882 -0
  309. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm.go +887 -0
  310. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +884 -0
  311. package/govendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +874 -0
  312. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips.go +888 -0
  313. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +888 -0
  314. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +888 -0
  315. package/govendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +888 -0
  316. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +940 -0
  317. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +944 -0
  318. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +944 -0
  319. package/govendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +884 -0
  320. package/govendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +943 -0
  321. package/govendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +992 -0
  322. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +1779 -0
  323. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +1769 -0
  324. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +1758 -0
  325. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +1769 -0
  326. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +1905 -0
  327. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +1905 -0
  328. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +1905 -0
  329. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +1905 -0
  330. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +1905 -0
  331. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +1904 -0
  332. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +1903 -0
  333. package/govendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +1556 -0
  334. package/govendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +990 -0
  335. package/govendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +40 -0
  336. package/govendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +17 -0
  337. package/govendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +49 -0
  338. package/govendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +49 -0
  339. package/govendor/golang.org/x/sys/unix/zptrace_x86_linux.go +79 -0
  340. package/govendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +364 -0
  341. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +1461 -0
  342. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +1420 -0
  343. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +1188 -0
  344. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +1069 -0
  345. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +2728 -0
  346. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +799 -0
  347. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +2728 -0
  348. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +799 -0
  349. package/govendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +1666 -0
  350. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +1886 -0
  351. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +1886 -0
  352. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +1886 -0
  353. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +1886 -0
  354. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +1886 -0
  355. package/govendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +101 -0
  356. package/govendor/golang.org/x/sys/unix/zsyscall_linux.go +2267 -0
  357. package/govendor/golang.org/x/sys/unix/zsyscall_linux_386.go +469 -0
  358. package/govendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +636 -0
  359. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +584 -0
  360. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +535 -0
  361. package/govendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +469 -0
  362. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +636 -0
  363. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +630 -0
  364. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +619 -0
  365. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +636 -0
  366. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +641 -0
  367. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +687 -0
  368. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +687 -0
  369. package/govendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +531 -0
  370. package/govendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +478 -0
  371. package/govendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +631 -0
  372. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +1848 -0
  373. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +1848 -0
  374. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +1848 -0
  375. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +1848 -0
  376. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +2407 -0
  377. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +719 -0
  378. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +2407 -0
  379. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +719 -0
  380. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +2407 -0
  381. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +719 -0
  382. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +2407 -0
  383. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +719 -0
  384. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +2407 -0
  385. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +719 -0
  386. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +2407 -0
  387. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +862 -0
  388. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +2407 -0
  389. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +719 -0
  390. package/govendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +2217 -0
  391. package/govendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +3458 -0
  392. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +280 -0
  393. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +280 -0
  394. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +280 -0
  395. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +280 -0
  396. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +280 -0
  397. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +280 -0
  398. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +281 -0
  399. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +439 -0
  400. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +437 -0
  401. package/govendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +316 -0
  402. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +393 -0
  403. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +393 -0
  404. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +393 -0
  405. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +393 -0
  406. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +393 -0
  407. package/govendor/golang.org/x/sys/unix/zsysnum_linux_386.go +470 -0
  408. package/govendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +394 -0
  409. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +434 -0
  410. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +337 -0
  411. package/govendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +334 -0
  412. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +454 -0
  413. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +384 -0
  414. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +384 -0
  415. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +454 -0
  416. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +461 -0
  417. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +433 -0
  418. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +433 -0
  419. package/govendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +338 -0
  420. package/govendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +399 -0
  421. package/govendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +413 -0
  422. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +274 -0
  423. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +274 -0
  424. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +274 -0
  425. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +274 -0
  426. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +219 -0
  427. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +219 -0
  428. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +219 -0
  429. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +218 -0
  430. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +221 -0
  431. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go +217 -0
  432. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +218 -0
  433. package/govendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +2852 -0
  434. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +353 -0
  435. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +357 -0
  436. package/govendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +878 -0
  437. package/govendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +878 -0
  438. package/govendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +473 -0
  439. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +651 -0
  440. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +656 -0
  441. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +642 -0
  442. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +636 -0
  443. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +638 -0
  444. package/govendor/golang.org/x/sys/unix/ztypes_linux.go +6547 -0
  445. package/govendor/golang.org/x/sys/unix/ztypes_linux_386.go +747 -0
  446. package/govendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +761 -0
  447. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm.go +741 -0
  448. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +740 -0
  449. package/govendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +741 -0
  450. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips.go +746 -0
  451. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +743 -0
  452. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +743 -0
  453. package/govendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +746 -0
  454. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +754 -0
  455. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +749 -0
  456. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +749 -0
  457. package/govendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +828 -0
  458. package/govendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +763 -0
  459. package/govendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +744 -0
  460. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +585 -0
  461. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +593 -0
  462. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +590 -0
  463. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +593 -0
  464. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +568 -0
  465. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +568 -0
  466. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +575 -0
  467. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +568 -0
  468. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +568 -0
  469. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +570 -0
  470. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +570 -0
  471. package/govendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +516 -0
  472. package/govendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +552 -0
  473. package/govendor/golang.org/x/sys/windows/aliases.go +13 -0
  474. package/govendor/golang.org/x/sys/windows/dll_windows.go +380 -0
  475. package/govendor/golang.org/x/sys/windows/env_windows.go +57 -0
  476. package/govendor/golang.org/x/sys/windows/eventlog.go +20 -0
  477. package/govendor/golang.org/x/sys/windows/exec_windows.go +248 -0
  478. package/govendor/golang.org/x/sys/windows/memory_windows.go +48 -0
  479. package/govendor/golang.org/x/sys/windows/mkerrors.bash +70 -0
  480. package/govendor/golang.org/x/sys/windows/mkknownfolderids.bash +27 -0
  481. package/govendor/golang.org/x/sys/windows/mksyscall.go +9 -0
  482. package/govendor/golang.org/x/sys/windows/race.go +30 -0
  483. package/govendor/golang.org/x/sys/windows/race0.go +25 -0
  484. package/govendor/golang.org/x/sys/windows/security_windows.go +1537 -0
  485. package/govendor/golang.org/x/sys/windows/service.go +257 -0
  486. package/govendor/golang.org/x/sys/windows/setupapi_windows.go +1425 -0
  487. package/govendor/golang.org/x/sys/windows/str.go +22 -0
  488. package/govendor/golang.org/x/sys/windows/syscall.go +104 -0
  489. package/govendor/golang.org/x/sys/windows/syscall_windows.go +1952 -0
  490. package/govendor/golang.org/x/sys/windows/types_windows.go +4058 -0
  491. package/govendor/golang.org/x/sys/windows/types_windows_386.go +35 -0
  492. package/govendor/golang.org/x/sys/windows/types_windows_amd64.go +34 -0
  493. package/govendor/golang.org/x/sys/windows/types_windows_arm.go +35 -0
  494. package/govendor/golang.org/x/sys/windows/types_windows_arm64.go +34 -0
  495. package/govendor/golang.org/x/sys/windows/zerrors_windows.go +9468 -0
  496. package/govendor/golang.org/x/sys/windows/zknownfolderids_windows.go +149 -0
  497. package/govendor/golang.org/x/sys/windows/zsyscall_windows.go +4828 -0
  498. package/govendor/manifest.txt +7 -0
  499. package/package.json +6 -1
  500. package/tsparser/main.go +37 -3
  501. package/tsparser/tsparser.exe +2 -2
  502. package/types/typenative-go.d.ts +15159 -5
  503. package/types/typenative-npm.d.ts +2637 -30
  504. package/types/typenative.d.ts +1092 -56
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ cd -P -- "$(dirname -- "$0")"
5
+
6
+ if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
7
+ WASI_SDK="x86_64-windows"
8
+ BINARYEN="x86_64-windows"
9
+ elif [[ "$OSTYPE" == "linux"* ]]; then
10
+ if [[ "$(uname -m)" == "x86_64" ]]; then
11
+ WASI_SDK="x86_64-linux"
12
+ BINARYEN="x86_64-linux"
13
+ else
14
+ WASI_SDK="arm64-linux"
15
+ BINARYEN="aarch64-linux"
16
+ fi
17
+ elif [[ "$OSTYPE" == "darwin"* ]]; then
18
+ if [[ "$(uname -m)" == "x86_64" ]]; then
19
+ WASI_SDK="x86_64-macos"
20
+ BINARYEN="x86_64-macos"
21
+ else
22
+ WASI_SDK="arm64-macos"
23
+ BINARYEN="arm64-macos"
24
+ fi
25
+ fi
26
+
27
+ WASI_SDK="https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-34/wasi-sdk-34.0-$WASI_SDK.tar.gz"
28
+ BINARYEN="https://github.com/WebAssembly/binaryen/releases/download/version_133/binaryen-version_133-$BINARYEN.tar.gz"
29
+
30
+ # Download tools
31
+ rm -rf "tools/"
32
+ mkdir -p "tools/"
33
+ curl -#L "$WASI_SDK" | tar xzC "tools/" &
34
+ curl -#L "$BINARYEN" | tar xzC "tools/" &
35
+ wait
36
+
37
+ mv "tools/wasi-sdk"* "tools/wasi-sdk"
38
+ mv "tools/binaryen"* "tools/binaryen"
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Nuno Cruces
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,9 @@
1
+ # Julian Day calculator
2
+
3
+ [![Go Reference](https://pkg.go.dev/badge/image)](https://pkg.go.dev/github.com/ncruces/julianday)
4
+ [![Go Report](https://goreportcard.com/badge/github.com/ncruces/julianday)](https://goreportcard.com/report/github.com/ncruces/julianday)
5
+ [![Go Coverage](https://github.com/ncruces/julianday/wiki/coverage.svg)](https://raw.githack.com/wiki/ncruces/julianday/coverage.html)
6
+
7
+ https://en.wikipedia.org/wiki/Julian_day
8
+
9
+ Compatible with [SQLite](https://www.sqlite.org/lang_datefunc.html).
@@ -0,0 +1,3 @@
1
+ module github.com/ncruces/julianday
2
+
3
+ go 1.17
@@ -0,0 +1,124 @@
1
+ // Package julianday provides Time to Julian day conversions.
2
+ package julianday
3
+
4
+ import (
5
+ "bytes"
6
+ "errors"
7
+ "math"
8
+ "strconv"
9
+ "time"
10
+ )
11
+
12
+ const secs_per_day = 86_400
13
+ const nsec_per_sec = 1_000_000_000
14
+ const nsec_per_day = nsec_per_sec * secs_per_day
15
+ const epoch_days = 2_440_587
16
+ const epoch_secs = secs_per_day / 2
17
+
18
+ func jd(t time.Time) (day, nsec int64) {
19
+ sec := t.Unix()
20
+ // guaranteed not to overflow
21
+ day, sec = sec/secs_per_day+epoch_days, sec%secs_per_day+epoch_secs
22
+ return day, sec*nsec_per_sec + int64(t.Nanosecond())
23
+ }
24
+
25
+ // Date returns the Julian day number for t,
26
+ // and the nanosecond offset within that day,
27
+ // in the range [0, 86399999999999].
28
+ func Date(t time.Time) (day, nsec int64) {
29
+ day, nsec = jd(t)
30
+ switch {
31
+ case nsec < 0:
32
+ day -= 1
33
+ nsec += nsec_per_day
34
+ case nsec >= nsec_per_day:
35
+ day += 1
36
+ nsec -= nsec_per_day
37
+ }
38
+ return day, nsec
39
+ }
40
+
41
+ // Float returns the Julian date for t as a float64.
42
+ //
43
+ // In the XXI century, this has submillisecond precision.
44
+ func Float(t time.Time) float64 {
45
+ day, nsec := jd(t)
46
+ // converting day and nsec to float64 is exact
47
+ return float64(day) + float64(nsec)/nsec_per_day
48
+ }
49
+
50
+ // Format returns the Julian date for t as a string.
51
+ //
52
+ // This has nanosecond precision.
53
+ func Format(t time.Time) string {
54
+ var buf [32]byte
55
+ return string(AppendFormat(buf[:0], t))
56
+ }
57
+
58
+ // AppendFormat is like Format but appends the textual representation to dst
59
+ // and returns the extended buffer.
60
+ func AppendFormat(dst []byte, t time.Time) []byte {
61
+ day, nsec := Date(t)
62
+ if day < 0 && nsec != 0 {
63
+ dst = append(dst, '-')
64
+ day = ^day
65
+ nsec = nsec_per_day - nsec
66
+ }
67
+ var buf [20]byte
68
+ dst = strconv.AppendInt(dst, day, 10)
69
+ frac := strconv.AppendFloat(buf[:0], float64(nsec)/nsec_per_day, 'f', 15, 64)
70
+ return append(dst, bytes.TrimRight(frac[1:], ".0")...)
71
+ }
72
+
73
+ // Time returns the UTC Time corresponding to the Julian day number
74
+ // and nanosecond offset within that day.
75
+ // Not all day values have a corresponding time value.
76
+ func Time(day, nsec int64) time.Time {
77
+ return time.Unix((day-epoch_days)*secs_per_day-epoch_secs, nsec).UTC()
78
+ }
79
+
80
+ // FloatTime returns the UTC Time corresponding to a Julian date.
81
+ // Not all date values have a corresponding time value.
82
+ //
83
+ // In the XXI century, this has submillisecond precision.
84
+ func FloatTime(date float64) time.Time {
85
+ day, frac := math.Modf(date)
86
+ nsec := math.Floor(frac * nsec_per_day)
87
+ return Time(int64(day), int64(nsec))
88
+ }
89
+
90
+ // Parse parses a formatted Julian date and returns the UTC Time it represents.
91
+ //
92
+ // This has nanosecond precision.
93
+ func Parse(s string) (time.Time, error) {
94
+ digits := 0
95
+ dot := len(s)
96
+ for i, b := range []byte(s) {
97
+ if '0' <= b && b <= '9' {
98
+ digits++
99
+ continue
100
+ }
101
+ if b == '.' && i < dot {
102
+ dot = i
103
+ continue
104
+ }
105
+ if (b == '+' || b == '-') && i == 0 {
106
+ continue
107
+ }
108
+ return time.Time{}, errors.New("julianday: invalid syntax")
109
+ }
110
+ if digits == 0 {
111
+ return time.Time{}, errors.New("julianday: invalid syntax")
112
+ }
113
+
114
+ day, err := strconv.ParseInt(s[:dot], 10, 64)
115
+ if err != nil && dot > 0 {
116
+ return time.Time{}, errors.New("julianday: value out of range")
117
+ }
118
+ frac, _ := strconv.ParseFloat(s[dot:], 64)
119
+ nsec := int64(math.Round(frac * nsec_per_day))
120
+ if s[0] == '-' {
121
+ nsec = -nsec
122
+ }
123
+ return Time(day, nsec), nil
124
+ }
@@ -0,0 +1,27 @@
1
+ Copyright 2009 The Go Authors.
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions are
5
+ met:
6
+
7
+ * Redistributions of source code must retain the above copyright
8
+ notice, this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above
10
+ copyright notice, this list of conditions and the following disclaimer
11
+ in the documentation and/or other materials provided with the
12
+ distribution.
13
+ * Neither the name of Google LLC nor the names of its
14
+ contributors may be used to endorse or promote products derived from
15
+ this software without specific prior written permission.
16
+
17
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,22 @@
1
+ Additional IP Rights Grant (Patents)
2
+
3
+ "This implementation" means the copyrightable works distributed by
4
+ Google as part of the Go project.
5
+
6
+ Google hereby grants to You a perpetual, worldwide, non-exclusive,
7
+ no-charge, royalty-free, irrevocable (except as stated in this section)
8
+ patent license to make, have made, use, offer to sell, sell, import,
9
+ transfer and otherwise run, modify and propagate the contents of this
10
+ implementation of Go, where such license applies only to those patent
11
+ claims, both currently owned or controlled by Google and acquired in
12
+ the future, licensable by Google that are necessarily infringed by this
13
+ implementation of Go. This grant does not include claims that would be
14
+ infringed only as a consequence of further modification of this
15
+ implementation. If you or your agent or exclusive licensee institute or
16
+ order or agree to the institution of patent litigation against any
17
+ entity (including a cross-claim or counterclaim in a lawsuit) alleging
18
+ that this implementation of Go or any code incorporated within this
19
+ implementation of Go constitutes direct or contributory patent
20
+ infringement, or inducement of patent infringement, then any patent
21
+ rights granted to you under this License for this implementation of Go
22
+ shall terminate as of the date such litigation is filed.
@@ -0,0 +1,3 @@
1
+ module golang.org/x/sys
2
+
3
+ go 1.26.0
@@ -0,0 +1,184 @@
1
+ # Building `sys/unix`
2
+
3
+ The sys/unix package provides access to the raw system call interface of the
4
+ underlying operating system. See: https://godoc.org/golang.org/x/sys/unix
5
+
6
+ Porting Go to a new architecture/OS combination or adding syscalls, types, or
7
+ constants to an existing architecture/OS pair requires some manual effort;
8
+ however, there are tools that automate much of the process.
9
+
10
+ ## Build Systems
11
+
12
+ There are currently two ways we generate the necessary files. We are currently
13
+ migrating the build system to use containers so the builds are reproducible.
14
+ This is being done on an OS-by-OS basis. Please update this documentation as
15
+ components of the build system change.
16
+
17
+ ### Old Build System (currently for `GOOS != "linux"`)
18
+
19
+ The old build system generates the Go files based on the C header files
20
+ present on your system. This means that files
21
+ for a given GOOS/GOARCH pair must be generated on a system with that OS and
22
+ architecture. This also means that the generated code can differ from system
23
+ to system, based on differences in the header files.
24
+
25
+ To avoid this, if you are using the old build system, only generate the Go
26
+ files on an installation with unmodified header files. It is also important to
27
+ keep track of which version of the OS the files were generated from (ex.
28
+ Darwin 14 vs Darwin 15). This makes it easier to track the progress of changes
29
+ and have each OS upgrade correspond to a single change.
30
+
31
+ To build the files for your current OS and architecture, make sure GOOS and
32
+ GOARCH are set correctly and run `mkall.sh`. This will generate the files for
33
+ your specific system. Running `mkall.sh -n` shows the commands that will be run.
34
+
35
+ Requirements: bash, go
36
+
37
+ ### New Build System (currently for `GOOS == "linux"`)
38
+
39
+ The new build system uses a Docker container to generate the go files directly
40
+ from source checkouts of the kernel and various system libraries. This means
41
+ that on any platform that supports Docker, all the files using the new build
42
+ system can be generated at once, and generated files will not change based on
43
+ what the person running the scripts has installed on their computer.
44
+
45
+ The OS specific files for the new build system are located in the `${GOOS}`
46
+ directory, and the build is coordinated by the `${GOOS}/mkall.go` program. When
47
+ the kernel or system library updates, modify the Dockerfile at
48
+ `${GOOS}/Dockerfile` to checkout the new release of the source.
49
+
50
+ To build all the files under the new build system, you must be on an amd64/Linux
51
+ system and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will
52
+ then generate all of the files for all of the GOOS/GOARCH pairs in the new build
53
+ system. Running `mkall.sh -n` shows the commands that will be run.
54
+
55
+ Requirements: bash, go, docker
56
+
57
+ ## Component files
58
+
59
+ This section describes the various files used in the code generation process.
60
+ It also contains instructions on how to modify these files to add a new
61
+ architecture/OS or to add additional syscalls, types, or constants. Note that
62
+ if you are using the new build system, the scripts/programs cannot be called normally.
63
+ They must be called from within the docker container.
64
+
65
+ ### asm files
66
+
67
+ The hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system
68
+ call dispatch. There are three entry points:
69
+ ```
70
+ func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
71
+ func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
72
+ func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
73
+ ```
74
+ The first and second are the standard ones; they differ only in how many
75
+ arguments can be passed to the kernel. The third is for low-level use by the
76
+ ForkExec wrapper. Unlike the first two, it does not call into the scheduler to
77
+ let it know that a system call is running.
78
+
79
+ When porting Go to a new architecture/OS, this file must be implemented for
80
+ each GOOS/GOARCH pair.
81
+
82
+ ### mksysnum
83
+
84
+ Mksysnum is a Go program located at `${GOOS}/mksysnum.go` (or `mksysnum_${GOOS}.go`
85
+ for the old system). This program takes in a list of header files containing the
86
+ syscall number declarations and parses them to produce the corresponding list of
87
+ Go numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated
88
+ constants.
89
+
90
+ Adding new syscall numbers is mostly done by running the build on a sufficiently
91
+ new installation of the target OS (or updating the source checkouts for the
92
+ new build system). However, depending on the OS, you may need to update the
93
+ parsing in mksysnum.
94
+
95
+ ### mksyscall.go
96
+
97
+ The `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are
98
+ hand-written Go files which implement system calls (for unix, the specific OS,
99
+ or the specific OS/Architecture pair respectively) that need special handling
100
+ and list `//sys` comments giving prototypes for ones that can be generated.
101
+
102
+ The mksyscall.go program takes the `//sys` and `//sysnb` comments and converts
103
+ them into syscalls. This requires the name of the prototype in the comment to
104
+ match a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function
105
+ prototype can be exported (capitalized) or not.
106
+
107
+ Adding a new syscall often just requires adding a new `//sys` function prototype
108
+ with the desired arguments and a capitalized name so it is exported. However, if
109
+ you want the interface to the syscall to be different, often one will make an
110
+ unexported `//sys` prototype, and then write a custom wrapper in
111
+ `syscall_${GOOS}.go`.
112
+
113
+ ### types files
114
+
115
+ For each OS, there is a hand-written Go file at `${GOOS}/types.go` (or
116
+ `types_${GOOS}.go` on the old system). This file includes standard C headers and
117
+ creates Go type aliases to the corresponding C types. The file is then fed
118
+ through godef to get the Go compatible definitions. Finally, the generated code
119
+ is fed though mkpost.go to format the code correctly and remove any hidden or
120
+ private identifiers. This cleaned-up code is written to
121
+ `ztypes_${GOOS}_${GOARCH}.go`.
122
+
123
+ The hardest part about preparing this file is figuring out which headers to
124
+ include and which symbols need to be `#define`d to get the actual data
125
+ structures that pass through to the kernel system calls. Some C libraries
126
+ preset alternate versions for binary compatibility and translate them on the
127
+ way in and out of system calls, but there is almost always a `#define` that can
128
+ get the real ones.
129
+ See `types_darwin.go` and `linux/types.go` for examples.
130
+
131
+ To add a new type, add in the necessary include statement at the top of the
132
+ file (if it is not already there) and add in a type alias line. Note that if
133
+ your type is significantly different on different architectures, you may need
134
+ some `#if/#elif` macros in your include statements.
135
+
136
+ ### mkerrors.sh
137
+
138
+ This script is used to generate the system's various constants. This doesn't
139
+ just include the error numbers and error strings, but also the signal numbers
140
+ and a wide variety of miscellaneous constants. The constants come from the list
141
+ of include files in the `includes_${uname}` variable. A regex then picks out
142
+ the desired `#define` statements, and generates the corresponding Go constants.
143
+ The error numbers and strings are generated from `#include <errno.h>`, and the
144
+ signal numbers and strings are generated from `#include <signal.h>`. All of
145
+ these constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program,
146
+ `_errors.c`, which prints out all the constants.
147
+
148
+ To add a constant, add the header that includes it to the appropriate variable.
149
+ Then, edit the regex (if necessary) to match the desired constant. Avoid making
150
+ the regex too broad to avoid matching unintended constants.
151
+
152
+ ### internal/mkmerge
153
+
154
+ This program is used to extract duplicate const, func, and type declarations
155
+ from the generated architecture-specific files listed below, and merge these
156
+ into a common file for each OS.
157
+
158
+ The merge is performed in the following steps:
159
+ 1. Construct the set of common code that is identical in all architecture-specific files.
160
+ 2. Write this common code to the merged file.
161
+ 3. Remove the common code from all architecture-specific files.
162
+
163
+
164
+ ## Generated files
165
+
166
+ ### `zerrors_${GOOS}_${GOARCH}.go`
167
+
168
+ A file containing all of the system's generated error numbers, error strings,
169
+ signal numbers, and constants. Generated by `mkerrors.sh` (see above).
170
+
171
+ ### `zsyscall_${GOOS}_${GOARCH}.go`
172
+
173
+ A file containing all the generated syscalls for a specific GOOS and GOARCH.
174
+ Generated by `mksyscall.go` (see above).
175
+
176
+ ### `zsysnum_${GOOS}_${GOARCH}.go`
177
+
178
+ A list of numeric constants for all the syscall number of the specific GOOS
179
+ and GOARCH. Generated by mksysnum (see above).
180
+
181
+ ### `ztypes_${GOOS}_${GOARCH}.go`
182
+
183
+ A file containing Go types for passing into (or returning from) syscalls.
184
+ Generated by godefs and the types file (see above).
@@ -0,0 +1,189 @@
1
+ // Copyright 2018 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ // CPU affinity functions
6
+
7
+ package unix
8
+
9
+ import (
10
+ "math/bits"
11
+ "unsafe"
12
+ )
13
+
14
+ const cpuSetSize = _CPU_SETSIZE / _NCPUBITS
15
+
16
+ // CPUSet represents a bit mask of CPUs, to be used with [SchedGetaffinity], [SchedSetaffinity],
17
+ // and [SetMemPolicy].
18
+ //
19
+ // Note this type can only represent CPU IDs 0 through 1023.
20
+ // Use [CPUSetDynamic]/[NewCPUSet] instead to avoid this limit.
21
+ type CPUSet [cpuSetSize]cpuMask
22
+
23
+ // CPUSetDynamic represents a bit mask of CPUs, to be used with [SchedGetaffinityDynamic],
24
+ // [SchedSetaffinityDynamic], and [SetMemPolicyDynamic]. Use [NewCPUSet] to allocate.
25
+ type CPUSetDynamic []cpuMask
26
+
27
+ func schedAffinity(trap uintptr, pid int, size uintptr, ptr unsafe.Pointer) error {
28
+ _, _, e := RawSyscall(trap, uintptr(pid), uintptr(size), uintptr(ptr))
29
+ if e != 0 {
30
+ return errnoErr(e)
31
+ }
32
+ return nil
33
+ }
34
+
35
+ // SchedGetaffinity gets the CPU affinity mask of the thread specified by pid.
36
+ // If pid is 0 the calling thread is used.
37
+ func SchedGetaffinity(pid int, set *CPUSet) error {
38
+ return schedAffinity(SYS_SCHED_GETAFFINITY, pid, unsafe.Sizeof(*set), unsafe.Pointer(set))
39
+ }
40
+
41
+ // SchedSetaffinity sets the CPU affinity mask of the thread specified by pid.
42
+ // If pid is 0 the calling thread is used.
43
+ func SchedSetaffinity(pid int, set *CPUSet) error {
44
+ return schedAffinity(SYS_SCHED_SETAFFINITY, pid, unsafe.Sizeof(*set), unsafe.Pointer(set))
45
+ }
46
+
47
+ // Zero clears the set s, so that it contains no CPUs.
48
+ func (s *CPUSet) Zero() {
49
+ clear(s[:])
50
+ }
51
+
52
+ // Fill adds all possible CPU bits to the set s. On Linux, [SchedSetaffinity]
53
+ // will silently ignore any invalid CPU bits in [CPUSet] so this is an
54
+ // efficient way of resetting the CPU affinity of a process.
55
+ func (s *CPUSet) Fill() {
56
+ cpuMaskFill(s[:])
57
+ }
58
+
59
+ func cpuBitsIndex(cpu int) int {
60
+ return cpu / _NCPUBITS
61
+ }
62
+
63
+ func cpuBitsMask(cpu int) cpuMask {
64
+ return cpuMask(1 << (uint(cpu) % _NCPUBITS))
65
+ }
66
+
67
+ func cpuMaskFill(s []cpuMask) {
68
+ for i := range s {
69
+ s[i] = ^cpuMask(0)
70
+ }
71
+ }
72
+
73
+ func cpuMaskSet(s []cpuMask, cpu int) {
74
+ i := cpuBitsIndex(cpu)
75
+ if i < len(s) {
76
+ s[i] |= cpuBitsMask(cpu)
77
+ }
78
+ }
79
+
80
+ func cpuMaskClear(s []cpuMask, cpu int) {
81
+ i := cpuBitsIndex(cpu)
82
+ if i < len(s) {
83
+ s[i] &^= cpuBitsMask(cpu)
84
+ }
85
+ }
86
+
87
+ func cpuMaskIsSet(s []cpuMask, cpu int) bool {
88
+ i := cpuBitsIndex(cpu)
89
+ if i < len(s) {
90
+ return s[i]&cpuBitsMask(cpu) != 0
91
+ }
92
+ return false
93
+ }
94
+
95
+ func cpuMaskCount(s []cpuMask) int {
96
+ c := 0
97
+ for _, b := range s {
98
+ c += bits.OnesCount64(uint64(b))
99
+ }
100
+ return c
101
+ }
102
+
103
+ // Set adds cpu to the set s. If cpu is out of bounds for s, no action is taken.
104
+ func (s *CPUSet) Set(cpu int) {
105
+ cpuMaskSet(s[:], cpu)
106
+ }
107
+
108
+ // Clear removes cpu from the set s. If cpu is out of bounds for s, no action is taken.
109
+ func (s *CPUSet) Clear(cpu int) {
110
+ cpuMaskClear(s[:], cpu)
111
+ }
112
+
113
+ // IsSet reports whether cpu is in the set s.
114
+ func (s *CPUSet) IsSet(cpu int) bool {
115
+ return cpuMaskIsSet(s[:], cpu)
116
+ }
117
+
118
+ // Count returns the number of CPUs in the set s.
119
+ func (s *CPUSet) Count() int {
120
+ return cpuMaskCount(s[:])
121
+ }
122
+
123
+ // NewCPUSet creates a CPU affinity mask capable of representing CPU IDs
124
+ // up to maxCPU (exclusive).
125
+ func NewCPUSet(maxCPU int) CPUSetDynamic {
126
+ numMasks := (maxCPU + _NCPUBITS - 1) / _NCPUBITS
127
+ if numMasks == 0 {
128
+ numMasks = 1
129
+ }
130
+ return make(CPUSetDynamic, numMasks)
131
+ }
132
+
133
+ // Zero clears the set s, so that it contains no CPUs.
134
+ func (s CPUSetDynamic) Zero() {
135
+ clear(s)
136
+ }
137
+
138
+ // Fill adds all possible CPU bits to the set s. On Linux, [SchedSetaffinityDynamic]
139
+ // will silently ignore any invalid CPU bits in [CPUSetDynamic] so this is an
140
+ // efficient way of resetting the CPU affinity of a process.
141
+ func (s CPUSetDynamic) Fill() {
142
+ cpuMaskFill(s)
143
+ }
144
+
145
+ // Set adds cpu to the set s. If cpu is out of bounds for s, no action is taken.
146
+ func (s CPUSetDynamic) Set(cpu int) {
147
+ cpuMaskSet(s, cpu)
148
+ }
149
+
150
+ // Clear removes cpu from the set s. If cpu is out of bounds for s, no action is taken.
151
+ func (s CPUSetDynamic) Clear(cpu int) {
152
+ cpuMaskClear(s, cpu)
153
+ }
154
+
155
+ // IsSet reports whether cpu is in the set s.
156
+ func (s CPUSetDynamic) IsSet(cpu int) bool {
157
+ return cpuMaskIsSet(s, cpu)
158
+ }
159
+
160
+ // Count returns the number of CPUs in the set s.
161
+ func (s CPUSetDynamic) Count() int {
162
+ return cpuMaskCount(s)
163
+ }
164
+
165
+ func (s CPUSetDynamic) size() uintptr {
166
+ return uintptr(len(s)) * unsafe.Sizeof(cpuMask(0))
167
+ }
168
+
169
+ func (s CPUSetDynamic) pointer() unsafe.Pointer {
170
+ if len(s) == 0 {
171
+ return nil
172
+ }
173
+ return unsafe.Pointer(&s[0])
174
+ }
175
+
176
+ // SchedGetaffinityDynamic gets the CPU affinity mask of the thread specified by pid.
177
+ // If pid is 0 the calling thread is used.
178
+ //
179
+ // If the set is smaller than the size of the affinity mask used by the kernel,
180
+ // [EINVAL] is returned.
181
+ func SchedGetaffinityDynamic(pid int, set CPUSetDynamic) error {
182
+ return schedAffinity(SYS_SCHED_GETAFFINITY, pid, set.size(), set.pointer())
183
+ }
184
+
185
+ // SchedSetaffinityDynamic sets the CPU affinity mask of the thread specified by pid.
186
+ // If pid is 0 the calling thread is used.
187
+ func SchedSetaffinityDynamic(pid int, set CPUSetDynamic) error {
188
+ return schedAffinity(SYS_SCHED_SETAFFINITY, pid, set.size(), set.pointer())
189
+ }
@@ -0,0 +1,13 @@
1
+ // Copyright 2018 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
6
+
7
+ package unix
8
+
9
+ import "syscall"
10
+
11
+ type Signal = syscall.Signal
12
+ type Errno = syscall.Errno
13
+ type SysProcAttr = syscall.SysProcAttr
@@ -0,0 +1,17 @@
1
+ // Copyright 2018 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ //go:build gc
6
+
7
+ #include "textflag.h"
8
+
9
+ //
10
+ // System calls for ppc64, AIX are implemented in runtime/syscall_aix.go
11
+ //
12
+
13
+ TEXT ·syscall6(SB),NOSPLIT,$0-88
14
+ JMP syscall·syscall6(SB)
15
+
16
+ TEXT ·rawSyscall6(SB),NOSPLIT,$0-88
17
+ JMP syscall·rawSyscall6(SB)