Cython 3.3.0a1__cp315-cp315-win_amd64.whl

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 (335) hide show
  1. Cython/Build/BuildExecutable.py +156 -0
  2. Cython/Build/Cache.py +199 -0
  3. Cython/Build/Cythonize.py +349 -0
  4. Cython/Build/Dependencies.py +1276 -0
  5. Cython/Build/Distutils.py +1 -0
  6. Cython/Build/Inline.py +467 -0
  7. Cython/Build/IpythonMagic.py +559 -0
  8. Cython/Build/SharedModule.py +84 -0
  9. Cython/Build/Tests/TestCyCache.py +195 -0
  10. Cython/Build/Tests/TestCythonizeArgsParser.py +480 -0
  11. Cython/Build/Tests/TestDependencies.py +133 -0
  12. Cython/Build/Tests/TestInline.py +177 -0
  13. Cython/Build/Tests/TestIpythonMagic.py +303 -0
  14. Cython/Build/Tests/TestRecythonize.py +212 -0
  15. Cython/Build/Tests/TestStripLiterals.py +155 -0
  16. Cython/Build/Tests/__init__.py +1 -0
  17. Cython/Build/__init__.py +11 -0
  18. Cython/CodeWriter.py +815 -0
  19. Cython/Compiler/AnalysedTreeTransforms.py +97 -0
  20. Cython/Compiler/Annotate.py +328 -0
  21. Cython/Compiler/AutoDocTransforms.py +320 -0
  22. Cython/Compiler/Buffer.py +680 -0
  23. Cython/Compiler/Builtin.py +997 -0
  24. Cython/Compiler/CmdLine.py +263 -0
  25. Cython/Compiler/Code.cp315-win_amd64.pyd +0 -0
  26. Cython/Compiler/Code.pxd +152 -0
  27. Cython/Compiler/Code.py +3907 -0
  28. Cython/Compiler/CodeGeneration.py +33 -0
  29. Cython/Compiler/CythonScope.py +194 -0
  30. Cython/Compiler/Dataclass.py +890 -0
  31. Cython/Compiler/DebugFlags.py +24 -0
  32. Cython/Compiler/Errors.py +310 -0
  33. Cython/Compiler/ExprNodes.py +15983 -0
  34. Cython/Compiler/FlowControl.cp315-win_amd64.pyd +0 -0
  35. Cython/Compiler/FlowControl.pxd +99 -0
  36. Cython/Compiler/FlowControl.py +1571 -0
  37. Cython/Compiler/FusedNode.cp315-win_amd64.pyd +0 -0
  38. Cython/Compiler/FusedNode.py +976 -0
  39. Cython/Compiler/Future.py +16 -0
  40. Cython/Compiler/Interpreter.py +57 -0
  41. Cython/Compiler/Lexicon.py +422 -0
  42. Cython/Compiler/LineTable.cp315-win_amd64.pyd +0 -0
  43. Cython/Compiler/LineTable.py +114 -0
  44. Cython/Compiler/Main.py +856 -0
  45. Cython/Compiler/MatchCaseNodes.py +2197 -0
  46. Cython/Compiler/MemoryView.py +930 -0
  47. Cython/Compiler/ModuleNode.py +4517 -0
  48. Cython/Compiler/Naming.py +367 -0
  49. Cython/Compiler/Nodes.py +10941 -0
  50. Cython/Compiler/Optimize.py +5455 -0
  51. Cython/Compiler/Options.py +838 -0
  52. Cython/Compiler/ParseTreeTransforms.pxd +79 -0
  53. Cython/Compiler/ParseTreeTransforms.py +4744 -0
  54. Cython/Compiler/Parsing.cp315-win_amd64.pyd +0 -0
  55. Cython/Compiler/Parsing.pxd +9 -0
  56. Cython/Compiler/Parsing.py +4792 -0
  57. Cython/Compiler/Pipeline.py +439 -0
  58. Cython/Compiler/PyrexTypes.py +6111 -0
  59. Cython/Compiler/Pythran.py +232 -0
  60. Cython/Compiler/Scanning.cp315-win_amd64.pyd +0 -0
  61. Cython/Compiler/Scanning.pxd +70 -0
  62. Cython/Compiler/Scanning.py +720 -0
  63. Cython/Compiler/StringEncoding.py +297 -0
  64. Cython/Compiler/Symtab.py +3092 -0
  65. Cython/Compiler/Tests/TestBuffer.py +105 -0
  66. Cython/Compiler/Tests/TestBuiltin.py +117 -0
  67. Cython/Compiler/Tests/TestCmdLine.py +587 -0
  68. Cython/Compiler/Tests/TestCode.py +145 -0
  69. Cython/Compiler/Tests/TestFlowControl.py +65 -0
  70. Cython/Compiler/Tests/TestGrammar.py +202 -0
  71. Cython/Compiler/Tests/TestMemView.py +71 -0
  72. Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
  73. Cython/Compiler/Tests/TestScanning.py +132 -0
  74. Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
  75. Cython/Compiler/Tests/TestStringEncoding.py +20 -0
  76. Cython/Compiler/Tests/TestTreeFragment.py +63 -0
  77. Cython/Compiler/Tests/TestTreePath.py +103 -0
  78. Cython/Compiler/Tests/TestTypes.py +118 -0
  79. Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
  80. Cython/Compiler/Tests/TestVisitor.py +61 -0
  81. Cython/Compiler/Tests/Utils.py +36 -0
  82. Cython/Compiler/Tests/__init__.py +1 -0
  83. Cython/Compiler/TreeFragment.py +278 -0
  84. Cython/Compiler/TreePath.py +303 -0
  85. Cython/Compiler/TypeInference.py +611 -0
  86. Cython/Compiler/TypeSlots.py +1329 -0
  87. Cython/Compiler/UFuncs.py +311 -0
  88. Cython/Compiler/UtilNodes.py +413 -0
  89. Cython/Compiler/UtilityCode.py +348 -0
  90. Cython/Compiler/Version.py +8 -0
  91. Cython/Compiler/Visitor.cp315-win_amd64.pyd +0 -0
  92. Cython/Compiler/Visitor.pxd +53 -0
  93. Cython/Compiler/Visitor.py +864 -0
  94. Cython/Compiler/__init__.py +1 -0
  95. Cython/Coverage.py +448 -0
  96. Cython/Debugger/Cygdb.py +177 -0
  97. Cython/Debugger/DebugWriter.py +82 -0
  98. Cython/Debugger/Tests/TestLibCython.py +280 -0
  99. Cython/Debugger/Tests/__init__.py +1 -0
  100. Cython/Debugger/Tests/cfuncs.c +8 -0
  101. Cython/Debugger/Tests/codefile +49 -0
  102. Cython/Debugger/Tests/test_libcython_in_gdb.py +580 -0
  103. Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
  104. Cython/Debugger/__init__.py +1 -0
  105. Cython/Debugger/libcython.py +1548 -0
  106. Cython/Debugger/libpython.py +2821 -0
  107. Cython/Debugging.py +20 -0
  108. Cython/Distutils/__init__.py +2 -0
  109. Cython/Distutils/build_ext.py +139 -0
  110. Cython/Distutils/extension.py +96 -0
  111. Cython/Distutils/old_build_ext.py +351 -0
  112. Cython/Includes/cpython/__init__.pxd +173 -0
  113. Cython/Includes/cpython/array.pxd +152 -0
  114. Cython/Includes/cpython/bool.pxd +37 -0
  115. Cython/Includes/cpython/buffer.pxd +112 -0
  116. Cython/Includes/cpython/bytearray.pxd +33 -0
  117. Cython/Includes/cpython/bytes.pxd +200 -0
  118. Cython/Includes/cpython/cellobject.pxd +35 -0
  119. Cython/Includes/cpython/ceval.pxd +8 -0
  120. Cython/Includes/cpython/codecs.pxd +121 -0
  121. Cython/Includes/cpython/complex.pxd +60 -0
  122. Cython/Includes/cpython/contextvars.pxd +145 -0
  123. Cython/Includes/cpython/conversion.pxd +36 -0
  124. Cython/Includes/cpython/datetime.pxd +395 -0
  125. Cython/Includes/cpython/descr.pxd +26 -0
  126. Cython/Includes/cpython/dict.pxd +268 -0
  127. Cython/Includes/cpython/exc.pxd +263 -0
  128. Cython/Includes/cpython/fileobject.pxd +57 -0
  129. Cython/Includes/cpython/float.pxd +56 -0
  130. Cython/Includes/cpython/frozendict.pxd +37 -0
  131. Cython/Includes/cpython/function.pxd +65 -0
  132. Cython/Includes/cpython/genobject.pxd +25 -0
  133. Cython/Includes/cpython/getargs.pxd +12 -0
  134. Cython/Includes/cpython/instance.pxd +25 -0
  135. Cython/Includes/cpython/iterator.pxd +36 -0
  136. Cython/Includes/cpython/iterobject.pxd +24 -0
  137. Cython/Includes/cpython/list.pxd +144 -0
  138. Cython/Includes/cpython/long.pxd +180 -0
  139. Cython/Includes/cpython/longintrepr.pxd +14 -0
  140. Cython/Includes/cpython/mapping.pxd +63 -0
  141. Cython/Includes/cpython/marshal.pxd +66 -0
  142. Cython/Includes/cpython/mem.pxd +120 -0
  143. Cython/Includes/cpython/memoryview.pxd +50 -0
  144. Cython/Includes/cpython/method.pxd +49 -0
  145. Cython/Includes/cpython/module.pxd +208 -0
  146. Cython/Includes/cpython/number.pxd +258 -0
  147. Cython/Includes/cpython/object.pxd +430 -0
  148. Cython/Includes/cpython/pycapsule.pxd +143 -0
  149. Cython/Includes/cpython/pylifecycle.pxd +68 -0
  150. Cython/Includes/cpython/pyport.pxd +8 -0
  151. Cython/Includes/cpython/pystate.pxd +95 -0
  152. Cython/Includes/cpython/pythread.pxd +53 -0
  153. Cython/Includes/cpython/ref.pxd +141 -0
  154. Cython/Includes/cpython/sentinel.pxd +17 -0
  155. Cython/Includes/cpython/sequence.pxd +134 -0
  156. Cython/Includes/cpython/set.pxd +119 -0
  157. Cython/Includes/cpython/slice.pxd +70 -0
  158. Cython/Includes/cpython/time.pxd +129 -0
  159. Cython/Includes/cpython/tuple.pxd +72 -0
  160. Cython/Includes/cpython/type.pxd +146 -0
  161. Cython/Includes/cpython/unicode.pxd +639 -0
  162. Cython/Includes/cpython/version.pxd +32 -0
  163. Cython/Includes/cpython/weakref.pxd +78 -0
  164. Cython/Includes/libc/__init__.pxd +1 -0
  165. Cython/Includes/libc/complex.pxd +35 -0
  166. Cython/Includes/libc/errno.pxd +127 -0
  167. Cython/Includes/libc/float.pxd +43 -0
  168. Cython/Includes/libc/limits.pxd +28 -0
  169. Cython/Includes/libc/locale.pxd +46 -0
  170. Cython/Includes/libc/math.pxd +209 -0
  171. Cython/Includes/libc/setjmp.pxd +10 -0
  172. Cython/Includes/libc/signal.pxd +64 -0
  173. Cython/Includes/libc/stddef.pxd +9 -0
  174. Cython/Includes/libc/stdint.pxd +105 -0
  175. Cython/Includes/libc/stdio.pxd +80 -0
  176. Cython/Includes/libc/stdlib.pxd +72 -0
  177. Cython/Includes/libc/string.pxd +50 -0
  178. Cython/Includes/libc/threads.pxd +234 -0
  179. Cython/Includes/libc/time.pxd +52 -0
  180. Cython/Includes/libcpp/__init__.pxd +4 -0
  181. Cython/Includes/libcpp/algorithm.pxd +320 -0
  182. Cython/Includes/libcpp/any.pxd +16 -0
  183. Cython/Includes/libcpp/atomic.pxd +59 -0
  184. Cython/Includes/libcpp/barrier.pxd +22 -0
  185. Cython/Includes/libcpp/bit.pxd +29 -0
  186. Cython/Includes/libcpp/cast.pxd +12 -0
  187. Cython/Includes/libcpp/cmath.pxd +518 -0
  188. Cython/Includes/libcpp/complex.pxd +106 -0
  189. Cython/Includes/libcpp/condition_variable.pxd +322 -0
  190. Cython/Includes/libcpp/deque.pxd +165 -0
  191. Cython/Includes/libcpp/exception.pxd +216 -0
  192. Cython/Includes/libcpp/execution.pxd +15 -0
  193. Cython/Includes/libcpp/forward_list.pxd +63 -0
  194. Cython/Includes/libcpp/functional.pxd +26 -0
  195. Cython/Includes/libcpp/future.pxd +103 -0
  196. Cython/Includes/libcpp/iterator.pxd +34 -0
  197. Cython/Includes/libcpp/latch.pxd +17 -0
  198. Cython/Includes/libcpp/limits.pxd +61 -0
  199. Cython/Includes/libcpp/list.pxd +117 -0
  200. Cython/Includes/libcpp/map.pxd +252 -0
  201. Cython/Includes/libcpp/memory.pxd +115 -0
  202. Cython/Includes/libcpp/mutex.pxd +387 -0
  203. Cython/Includes/libcpp/numbers.pxd +15 -0
  204. Cython/Includes/libcpp/numeric.pxd +131 -0
  205. Cython/Includes/libcpp/optional.pxd +34 -0
  206. Cython/Includes/libcpp/pair.pxd +1 -0
  207. Cython/Includes/libcpp/queue.pxd +25 -0
  208. Cython/Includes/libcpp/random.pxd +166 -0
  209. Cython/Includes/libcpp/semaphore.pxd +43 -0
  210. Cython/Includes/libcpp/set.pxd +228 -0
  211. Cython/Includes/libcpp/shared_mutex.pxd +96 -0
  212. Cython/Includes/libcpp/span.pxd +87 -0
  213. Cython/Includes/libcpp/stack.pxd +11 -0
  214. Cython/Includes/libcpp/stop_token.pxd +117 -0
  215. Cython/Includes/libcpp/string.pxd +355 -0
  216. Cython/Includes/libcpp/string_view.pxd +183 -0
  217. Cython/Includes/libcpp/typeindex.pxd +15 -0
  218. Cython/Includes/libcpp/typeinfo.pxd +10 -0
  219. Cython/Includes/libcpp/unordered_map.pxd +193 -0
  220. Cython/Includes/libcpp/unordered_set.pxd +152 -0
  221. Cython/Includes/libcpp/utility.pxd +30 -0
  222. Cython/Includes/libcpp/vector.pxd +186 -0
  223. Cython/Includes/numpy/math.pxd +150 -0
  224. Cython/Includes/openmp.pxd +50 -0
  225. Cython/Includes/posix/__init__.pxd +1 -0
  226. Cython/Includes/posix/dlfcn.pxd +14 -0
  227. Cython/Includes/posix/fcntl.pxd +86 -0
  228. Cython/Includes/posix/ioctl.pxd +4 -0
  229. Cython/Includes/posix/mman.pxd +101 -0
  230. Cython/Includes/posix/resource.pxd +57 -0
  231. Cython/Includes/posix/select.pxd +21 -0
  232. Cython/Includes/posix/signal.pxd +73 -0
  233. Cython/Includes/posix/stat.pxd +98 -0
  234. Cython/Includes/posix/stdio.pxd +37 -0
  235. Cython/Includes/posix/stdlib.pxd +29 -0
  236. Cython/Includes/posix/strings.pxd +9 -0
  237. Cython/Includes/posix/time.pxd +71 -0
  238. Cython/Includes/posix/types.pxd +30 -0
  239. Cython/Includes/posix/uio.pxd +26 -0
  240. Cython/Includes/posix/unistd.pxd +271 -0
  241. Cython/Includes/posix/wait.pxd +38 -0
  242. Cython/LZSS.py +170 -0
  243. Cython/Plex/Actions.cp315-win_amd64.pyd +0 -0
  244. Cython/Plex/Actions.pxd +24 -0
  245. Cython/Plex/Actions.py +119 -0
  246. Cython/Plex/DFA.cp315-win_amd64.pyd +0 -0
  247. Cython/Plex/DFA.pxd +14 -0
  248. Cython/Plex/DFA.py +164 -0
  249. Cython/Plex/Errors.py +48 -0
  250. Cython/Plex/Lexicons.py +178 -0
  251. Cython/Plex/Machines.cp315-win_amd64.pyd +0 -0
  252. Cython/Plex/Machines.pxd +36 -0
  253. Cython/Plex/Machines.py +238 -0
  254. Cython/Plex/Regexps.py +535 -0
  255. Cython/Plex/Scanners.cp315-win_amd64.pyd +0 -0
  256. Cython/Plex/Scanners.pxd +45 -0
  257. Cython/Plex/Scanners.py +328 -0
  258. Cython/Plex/Transitions.cp315-win_amd64.pyd +0 -0
  259. Cython/Plex/Transitions.pxd +14 -0
  260. Cython/Plex/Transitions.py +239 -0
  261. Cython/Plex/__init__.py +34 -0
  262. Cython/Runtime/__init__.py +1 -0
  263. Cython/Runtime/refnanny.cp315-win_amd64.pyd +0 -0
  264. Cython/Runtime/refnanny.pyx +237 -0
  265. Cython/Shadow.py +1167 -0
  266. Cython/StringIOTree.cp315-win_amd64.pyd +0 -0
  267. Cython/StringIOTree.py +169 -0
  268. Cython/Tempita/__init__.py +4 -0
  269. Cython/Tempita/_looper.py +154 -0
  270. Cython/Tempita/_tempita.cp315-win_amd64.pyd +0 -0
  271. Cython/Tempita/_tempita.py +1087 -0
  272. Cython/TestUtils.py +464 -0
  273. Cython/Tests/TestCodeWriter.py +128 -0
  274. Cython/Tests/TestCythonUtils.py +202 -0
  275. Cython/Tests/TestJediTyper.py +223 -0
  276. Cython/Tests/TestShadow.py +110 -0
  277. Cython/Tests/TestStringIOTree.py +68 -0
  278. Cython/Tests/TestTestUtils.py +89 -0
  279. Cython/Tests/__init__.py +1 -0
  280. Cython/Tests/xmlrunner.py +390 -0
  281. Cython/Utility/AsyncGen.c +1073 -0
  282. Cython/Utility/Buffer.c +866 -0
  283. Cython/Utility/BufferFormatFromTypeInfo.pxd +2 -0
  284. Cython/Utility/Builtins.c +933 -0
  285. Cython/Utility/CConvert.pyx +149 -0
  286. Cython/Utility/CMath.c +104 -0
  287. Cython/Utility/CommonStructures.c +244 -0
  288. Cython/Utility/Complex.c +378 -0
  289. Cython/Utility/Coroutine.c +2337 -0
  290. Cython/Utility/CpdefEnums.pyx +107 -0
  291. Cython/Utility/CppConvert.pyx +282 -0
  292. Cython/Utility/CppSupport.cpp +151 -0
  293. Cython/Utility/CythonFunction.c +2072 -0
  294. Cython/Utility/Dataclasses.c +101 -0
  295. Cython/Utility/Embed.c +129 -0
  296. Cython/Utility/Exceptions.c +1038 -0
  297. Cython/Utility/ExtensionTypes.c +1158 -0
  298. Cython/Utility/FunctionArguments.c +1045 -0
  299. Cython/Utility/FusedFunction.pyx +44 -0
  300. Cython/Utility/ImportExport.c +930 -0
  301. Cython/Utility/MatchCase.c +979 -0
  302. Cython/Utility/MatchCase_Cy.pyx +12 -0
  303. Cython/Utility/MemoryView.pxd +108 -0
  304. Cython/Utility/MemoryView.pyx +1499 -0
  305. Cython/Utility/MemoryView_C.c +1056 -0
  306. Cython/Utility/ModuleSetupCode.c +3352 -0
  307. Cython/Utility/NumpyImportArray.c +46 -0
  308. Cython/Utility/ObjectHandling.c +3372 -0
  309. Cython/Utility/Optimize.c +2563 -0
  310. Cython/Utility/Overflow.c +378 -0
  311. Cython/Utility/Profile.c +736 -0
  312. Cython/Utility/StringTools.c +1414 -0
  313. Cython/Utility/Synchronization.c +438 -0
  314. Cython/Utility/TString.c +369 -0
  315. Cython/Utility/TestCyUtilityLoader.pyx +8 -0
  316. Cython/Utility/TestCythonScope.pyx +75 -0
  317. Cython/Utility/TestUtilityLoader.c +12 -0
  318. Cython/Utility/TypeConversion.c +1556 -0
  319. Cython/Utility/UFuncs.pyx +50 -0
  320. Cython/Utility/UFuncs_C.c +89 -0
  321. Cython/Utility/__init__.py +28 -0
  322. Cython/Utility/arrayarray.h +172 -0
  323. Cython/Utils.cp315-win_amd64.pyd +0 -0
  324. Cython/Utils.py +677 -0
  325. Cython/__init__.py +12 -0
  326. Cython/py.typed +0 -0
  327. cython-3.3.0a1.dist-info/METADATA +394 -0
  328. cython-3.3.0a1.dist-info/RECORD +335 -0
  329. cython-3.3.0a1.dist-info/WHEEL +5 -0
  330. cython-3.3.0a1.dist-info/entry_points.txt +4 -0
  331. cython-3.3.0a1.dist-info/top_level.txt +3 -0
  332. cython.py +29 -0
  333. pyximport/__init__.py +4 -0
  334. pyximport/pyxbuild.py +160 -0
  335. pyximport/pyximport.py +482 -0
@@ -0,0 +1,105 @@
1
+ # Longness only used for type promotion.
2
+ # Actual compile time size used for conversions.
3
+
4
+ # 7.18 Integer types <stdint.h>
5
+ cdef extern from "<stdint.h>" nogil:
6
+
7
+ # 7.18.1 Integer types
8
+ # 7.18.1.1 Exact-width integer types
9
+ ctypedef signed char int8_t
10
+ ctypedef signed short int16_t
11
+ ctypedef signed int int32_t
12
+ ctypedef signed long int64_t
13
+ ctypedef unsigned char uint8_t
14
+ ctypedef unsigned short uint16_t
15
+ ctypedef unsigned int uint32_t
16
+ ctypedef unsigned long long uint64_t
17
+ # 7.18.1.2 Minimum-width integer types
18
+ ctypedef signed char int_least8_t
19
+ ctypedef signed short int_least16_t
20
+ ctypedef signed int int_least32_t
21
+ ctypedef signed long int_least64_t
22
+ ctypedef unsigned char uint_least8_t
23
+ ctypedef unsigned short uint_least16_t
24
+ ctypedef unsigned int uint_least32_t
25
+ ctypedef unsigned long long uint_least64_t
26
+ # 7.18.1.3 Fastest minimum-width integer types
27
+ ctypedef signed char int_fast8_t
28
+ ctypedef signed short int_fast16_t
29
+ ctypedef signed int int_fast32_t
30
+ ctypedef signed long int_fast64_t
31
+ ctypedef unsigned char uint_fast8_t
32
+ ctypedef unsigned short uint_fast16_t
33
+ ctypedef unsigned int uint_fast32_t
34
+ ctypedef unsigned long long uint_fast64_t
35
+ # 7.18.1.4 Integer types capable of holding object pointers
36
+ ctypedef ssize_t intptr_t
37
+ ctypedef size_t uintptr_t
38
+ # 7.18.1.5 Greatest-width integer types
39
+ ctypedef signed long long intmax_t
40
+ ctypedef unsigned long long uintmax_t
41
+
42
+ # 7.18.2 Limits of specified-width integer types
43
+ # 7.18.2.1 Limits of exact-width integer types
44
+ int8_t INT8_MIN
45
+ int16_t INT16_MIN
46
+ int32_t INT32_MIN
47
+ int64_t INT64_MIN
48
+ int8_t INT8_MAX
49
+ int16_t INT16_MAX
50
+ int32_t INT32_MAX
51
+ int64_t INT64_MAX
52
+ uint8_t UINT8_MAX
53
+ uint16_t UINT16_MAX
54
+ uint32_t UINT32_MAX
55
+ uint64_t UINT64_MAX
56
+ #7.18.2.2 Limits of minimum-width integer types
57
+ int_least8_t INT_LEAST8_MIN
58
+ int_least16_t INT_LEAST16_MIN
59
+ int_least32_t INT_LEAST32_MIN
60
+ int_least64_t INT_LEAST64_MIN
61
+ int_least8_t INT_LEAST8_MAX
62
+ int_least16_t INT_LEAST16_MAX
63
+ int_least32_t INT_LEAST32_MAX
64
+ int_least64_t INT_LEAST64_MAX
65
+ uint_least8_t UINT_LEAST8_MAX
66
+ uint_least16_t UINT_LEAST16_MAX
67
+ uint_least32_t UINT_LEAST32_MAX
68
+ uint_least64_t UINT_LEAST64_MAX
69
+ #7.18.2.3 Limits of fastest minimum-width integer types
70
+ int_fast8_t INT_FAST8_MIN
71
+ int_fast16_t INT_FAST16_MIN
72
+ int_fast32_t INT_FAST32_MIN
73
+ int_fast64_t INT_FAST64_MIN
74
+ int_fast8_t INT_FAST8_MAX
75
+ int_fast16_t INT_FAST16_MAX
76
+ int_fast32_t INT_FAST32_MAX
77
+ int_fast64_t INT_FAST64_MAX
78
+ uint_fast8_t UINT_FAST8_MAX
79
+ uint_fast16_t UINT_FAST16_MAX
80
+ uint_fast32_t UINT_FAST32_MAX
81
+ uint_fast64_t UINT_FAST64_MAX
82
+ #7.18.2.4 Limits of integer types capable of holding object pointers
83
+ enum: INTPTR_MIN
84
+ enum: INTPTR_MAX
85
+ enum: UINTPTR_MAX
86
+ # 7.18.2.5 Limits of greatest-width integer types
87
+ enum: INTMAX_MAX
88
+ enum: INTMAX_MIN
89
+ enum: UINTMAX_MAX
90
+
91
+ # 7.18.3 Limits of other integer types
92
+ # ptrdiff_t
93
+ enum: PTRDIFF_MIN
94
+ enum: PTRDIFF_MAX
95
+ # sig_atomic_t
96
+ enum: SIG_ATOMIC_MIN
97
+ enum: SIG_ATOMIC_MAX
98
+ # size_t
99
+ size_t SIZE_MAX
100
+ # wchar_t
101
+ enum: WCHAR_MIN
102
+ enum: WCHAR_MAX
103
+ # wint_t
104
+ enum: WINT_MIN
105
+ enum: WINT_MAX
@@ -0,0 +1,80 @@
1
+ # 7.19 Input/output <stdio.h>
2
+
3
+
4
+ # deprecated cimports for backwards compatibility:
5
+ from libc.string cimport const_char, const_void
6
+
7
+
8
+ cdef extern from "<stdio.h>" nogil:
9
+
10
+ ctypedef struct FILE
11
+ cdef FILE *stdin
12
+ cdef FILE *stdout
13
+ cdef FILE *stderr
14
+
15
+ enum: FOPEN_MAX
16
+ enum: FILENAME_MAX
17
+ FILE *fopen (const char *filename, const char *opentype)
18
+ FILE *freopen (const char *filename, const char *opentype, FILE *stream)
19
+ FILE *fdopen (int fdescriptor, const char *opentype)
20
+ int fclose (FILE *stream)
21
+ int remove (const char *filename)
22
+ int rename (const char *oldname, const char *newname)
23
+ FILE *tmpfile ()
24
+
25
+ int remove (const char *pathname)
26
+ int rename (const char *oldpath, const char *newpath)
27
+
28
+ enum: _IOFBF
29
+ enum: _IOLBF
30
+ enum: _IONBF
31
+ int setvbuf (FILE *stream, char *buf, int mode, size_t size)
32
+ enum: BUFSIZ
33
+ void setbuf (FILE *stream, char *buf)
34
+
35
+ size_t fread (void *data, size_t size, size_t count, FILE *stream)
36
+ size_t fwrite (const void *data, size_t size, size_t count, FILE *stream)
37
+ int fflush (FILE *stream)
38
+
39
+ enum: EOF
40
+ void clearerr (FILE *stream)
41
+ int feof (FILE *stream)
42
+ int ferror (FILE *stream)
43
+
44
+ enum: SEEK_SET
45
+ enum: SEEK_CUR
46
+ enum: SEEK_END
47
+ int fseek (FILE *stream, long int offset, int whence)
48
+ void rewind (FILE *stream)
49
+ long int ftell (FILE *stream)
50
+
51
+ ctypedef struct fpos_t
52
+ ctypedef const fpos_t const_fpos_t "const fpos_t"
53
+ int fgetpos (FILE *stream, fpos_t *position)
54
+ int fsetpos (FILE *stream, const fpos_t *position)
55
+
56
+ int scanf (const char *template, ...)
57
+ int sscanf (const char *s, const char *template, ...)
58
+ int fscanf (FILE *stream, const char *template, ...)
59
+
60
+ int printf (const char *template, ...)
61
+ int sprintf (char *s, const char *template, ...)
62
+ int snprintf (char *s, size_t size, const char *template, ...)
63
+ int fprintf (FILE *stream, const char *template, ...)
64
+
65
+ void perror (const char *message)
66
+
67
+ char *gets (char *s)
68
+ char *fgets (char *s, int count, FILE *stream)
69
+ int getchar ()
70
+ int fgetc (FILE *stream)
71
+ int getc (FILE *stream)
72
+ int ungetc (int c, FILE *stream)
73
+
74
+ int puts (const char *s)
75
+ int fputs (const char *s, FILE *stream)
76
+ int putchar (int c)
77
+ int fputc (int c, FILE *stream)
78
+ int putc (int c, FILE *stream)
79
+
80
+ size_t getline(char **lineptr, size_t *n, FILE *stream)
@@ -0,0 +1,72 @@
1
+ # 7.20 General utilities <stdlib.h>
2
+
3
+ # deprecated cimports for backwards compatibility:
4
+ from libc.string cimport const_char, const_void
5
+
6
+
7
+ cdef extern from "<stdlib.h>" nogil:
8
+
9
+ # 7.20.1 Numeric conversion functions
10
+ int atoi (const char *string)
11
+ long atol (const char *string)
12
+ long long atoll (const char *string)
13
+ double atof (const char *string)
14
+ long strtol (const char *string, char **tailptr, int base)
15
+ unsigned long int strtoul (const char *string, char **tailptr, int base)
16
+ long long int strtoll (const char *string, char **tailptr, int base)
17
+ unsigned long long int strtoull (const char *string, char **tailptr, int base)
18
+ float strtof (const char *string, char **tailptr)
19
+ double strtod (const char *string, char **tailptr)
20
+ long double strtold (const char *string, char **tailptr)
21
+
22
+ # 7.20.2 Pseudo-random sequence generation functions
23
+ enum: RAND_MAX
24
+ int rand ()
25
+ void srand (unsigned int seed)
26
+
27
+ # 7.20.3 Memory management functions
28
+ void *calloc (size_t count, size_t eltsize)
29
+ void free (void *ptr)
30
+ void *malloc (size_t size)
31
+ void *realloc (void *ptr, size_t newsize)
32
+
33
+ # 7.20.4 Communication with the environment
34
+ enum: EXIT_FAILURE
35
+ enum: EXIT_SUCCESS
36
+ void exit (int status)
37
+ void _exit (int status)
38
+ int atexit (void (*function) ())
39
+ void abort ()
40
+ char *getenv (const char *name)
41
+ int system (const char *command)
42
+
43
+ #7.20.5 Searching and sorting utilities
44
+ void *bsearch (const void *key, const void *array,
45
+ size_t count, size_t size,
46
+ int (*compare)(const void *, const void *))
47
+ void qsort (void *array, size_t count, size_t size,
48
+ int (*compare)(const void *, const void *))
49
+
50
+ # 7.20.6 Integer arithmetic functions
51
+ int abs (int number)
52
+ long int labs (long int number)
53
+ long long int llabs (long long int number)
54
+ ctypedef struct div_t:
55
+ int quot
56
+ int rem
57
+ div_t div (int numerator, int denominator)
58
+ ctypedef struct ldiv_t:
59
+ long int quot
60
+ long int rem
61
+ ldiv_t ldiv (long int numerator, long int denominator)
62
+ ctypedef struct lldiv_t:
63
+ long long int quot
64
+ long long int rem
65
+ lldiv_t lldiv (long long int numerator, long long int denominator)
66
+
67
+
68
+ # 7.20.7 Multibyte/wide character conversion functions
69
+ # XXX TODO
70
+
71
+ # 7.20.8 Multibyte/wide string conversion functions
72
+ # XXX TODO
@@ -0,0 +1,50 @@
1
+ # 7.21 String handling <string.h>
2
+
3
+ cdef extern from *:
4
+ # deprecated backwards compatibility declarations
5
+ ctypedef const char const_char "const char"
6
+ ctypedef const signed char const_schar "const signed char"
7
+ ctypedef const unsigned char const_uchar "const unsigned char"
8
+ ctypedef const void const_void "const void"
9
+
10
+ cdef extern from "<string.h>" nogil:
11
+
12
+ void *memcpy (void *pto, const void *pfrom, size_t size)
13
+ void *memmove (void *pto, const void *pfrom, size_t size)
14
+ void *memset (void *block, int c, size_t size)
15
+ int memcmp (const void *a1, const void *a2, size_t size)
16
+ void *memchr (const void *block, int c, size_t size)
17
+
18
+ void *memchr (const void *block, int c, size_t size)
19
+ void *memrchr (const void *block, int c, size_t size)
20
+
21
+ size_t strlen (const char *s)
22
+ char *strcpy (char *pto, const char *pfrom)
23
+ char *strncpy (char *pto, const char *pfrom, size_t size)
24
+ char *strdup (const char *s)
25
+ char *strndup (const char *s, size_t size)
26
+ char *strcat (char *pto, const char *pfrom)
27
+ char *strncat (char *pto, const char *pfrom, size_t size)
28
+
29
+ int strcmp (const char *s1, const char *s2)
30
+ int strcasecmp (const char *s1, const char *s2)
31
+ int strncmp (const char *s1, const char *s2, size_t size)
32
+ int strncasecmp (const char *s1, const char *s2, size_t n)
33
+
34
+ int strcoll (const char *s1, const char *s2)
35
+ size_t strxfrm (char *pto, const char *pfrom, size_t size)
36
+
37
+ char *strerror (int errnum)
38
+
39
+ char *strchr (const char *string, int c)
40
+ char *strrchr (const char *string, int c)
41
+
42
+ char *strstr (const char *haystack, const char *needle)
43
+ char *strcasestr (const char *haystack, const char *needle)
44
+
45
+ size_t strcspn (const char *string, const char *stopset)
46
+ size_t strspn (const char *string, const char *set)
47
+ char * strpbrk (const char *string, const char *stopset)
48
+
49
+ char *strtok (char *newstring, const char *delimiters)
50
+ char *strsep (char **string_ptr, const char *delimiter)
@@ -0,0 +1,234 @@
1
+ # cython: preliminary_late_includes_cy28=True
2
+
3
+ from libc.time cimport timespec
4
+
5
+ cdef extern from *:
6
+ """
7
+ #include <string.h>
8
+ #include <threads.h>
9
+ static void __Pyx_once_flag_init(once_flag* flag) {
10
+ once_flag other = ONCE_FLAG_INIT;
11
+ memcpy(flag, &other, sizeof(once_flag));
12
+ }
13
+ """
14
+ void once_flag_init "__Pyx_once_flag_init"(once_flag*)
15
+
16
+ cdef extern from "<threads.h>" nogil:
17
+ ctypedef void (*_once_func_type)() noexcept nogil
18
+
19
+ # Threads
20
+ ctypedef struct thrd_t:
21
+ pass
22
+ # Declare as noexcept because you'll regret trying to throw a Python exception from it
23
+ # and nogil because it's a new thread, so you definitely don't have a Python threadstate yet.
24
+ ctypedef int (*thrd_start_t)(void*) noexcept nogil
25
+
26
+ int thrd_create(thrd_t*, thrd_start_t, void*)
27
+ int thrd_equal(thrd_t lhs, thrd_t rhs)
28
+ thrd_t thrd_current()
29
+ int thrd_sleep(const timespec* duration, timespec* remaining)
30
+ void thrd_yield()
31
+ void thrd_exit(int res)
32
+ void thrd_detach(thrd_t thr)
33
+ # Be very wary of deadlocks if calling thrd_join with the GIL.
34
+ int thrd_join(thrd_t, int *res)
35
+ enum:
36
+ thrd_success
37
+ thrd_nomem
38
+ thrd_timedout
39
+ thrd_busy
40
+ thrd_error
41
+
42
+ # Mutexes.
43
+ # We strongly recommend not calling mtx_lock with the GIL held and being
44
+ # very wary of calling mtx_timed_lock with the GIL (because it will block the GIL until the timeout).
45
+ ctypedef struct mtx_t:
46
+ pass
47
+ int mtx_init(mtx_t* mtx, int type)
48
+ int mtx_lock(mtx_t* mtx) # see py_safe_mutex_lock for GIL-safe version
49
+ int mtx_timed_lock(mtx_t* mtx, const timespec* timepoint)
50
+ int mtx_trylock(mtx_t* mtx)
51
+ int mtx_unlock(mtx_t* mtx)
52
+ void mtx_destroy(mtx_t* mtx)
53
+ enum:
54
+ mtx_plain
55
+ mtx_recursive
56
+ mtx_timed
57
+
58
+ # call once. Potentially this may be hard to use with Cython's code generation
59
+ # (depending on the exact definition of "ONCE_FLAG_INIT").
60
+ # Use the helper function "once_flag_init" to do it non-statically.
61
+ ctypedef struct once_flag:
62
+ pass
63
+ once_flag ONCE_FLAG_INIT
64
+
65
+ # We strongly recommend not calling this with the GIL held.
66
+ # We define some GIL-friendly wrappers for C++ call-once which you can use
67
+ # in these circumstances.
68
+ # py_safe_call_once in this file avoids blocking, but the function
69
+ # must still be nogil.
70
+ void call_once(once_flag* flag, _once_func_type func) noexcept
71
+
72
+ # condition variables
73
+ ctypedef struct cnd_t:
74
+ pass
75
+ int cnd_init(cnd_t*)
76
+ int cnd_signal(cnd_t*)
77
+ int cnd_broadcast(cnd_t*)
78
+ # Be very wary of calling wait/timedwait with the GIL held. Two py_safe_ versions exist.
79
+ int cnd_wait(cnd_t*, mtx_t*)
80
+ int cnd_timedwait(cnd_t*, mtx_t*, const timespec*)
81
+ void cnd_destroy(cnd_t*)
82
+
83
+ # Thread-local storage
84
+ ctypedef struct tss_t:
85
+ pass
86
+ enum:
87
+ TSS_DTOR_ITERATIONS
88
+ ctypedef void (*tss_dtor_t)(void*) noexcept nogil
89
+ int tss_create(tss_t* key, tss_dtor_t destructor)
90
+ void *tss_get(tss_t key)
91
+ int tss_set(tss_t key, void* val)
92
+ void tss_delete(tss_t key)
93
+
94
+
95
+ cdef inline void _dummy_force_utility_code_inclusion() nogil:
96
+ with nogil:
97
+ pass
98
+
99
+ cdef extern from *:
100
+ ctypedef struct py_safe_once_flag "once_flag":
101
+ pass
102
+ py_safe_once_flag PY_SAFE_ONCE_FLAG_INIT "ONCE_FLAG_INIT"
103
+
104
+ cdef extern from *:
105
+ """
106
+ static PyGILState_STATE __pyx_libc_threads_limited_api_ensure_gil() {
107
+ #if CYTHON_COMPILING_IN_LIMITED_API
108
+ if ((__PYX_LIMITED_VERSION_HEX < 0x030d0000) && __Pyx_get_runtime_version() < 0x030d0000) {
109
+ return PyGILState_Ensure();
110
+ }
111
+ #endif
112
+ return PyGILState_LOCKED; // Unused
113
+ }
114
+
115
+ #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
116
+ static void __pyx_libc_threads_limited_api_release_gil(PyGILState_STATE gil_state) {
117
+ if (__Pyx_get_runtime_version() < 0x030d0000)
118
+ PyGILState_Release(gil_state);
119
+ }
120
+ #else
121
+ #define __pyx_libc_threads_limited_api_release_gil(ignore) (void)ignore
122
+ #endif
123
+
124
+ static int __pyx_libc_threads_has_gil() {
125
+ #if CYTHON_COMPILING_IN_LIMITED_API
126
+ if ((__PYX_LIMITED_VERSION_HEX >= 0x030d0000) || __Pyx_get_runtime_version() >= 0x030d0000) {
127
+ // In 3.13+ we can temporarily give up the GIL to find out what the thread state was.
128
+ PyThreadState *ts = PyThreadState_Swap(NULL);
129
+ if (ts) {
130
+ PyThreadState_Swap(ts);
131
+ return 1;
132
+ }
133
+ return 0;
134
+ }
135
+ /* There is no way to know if we have the GIL. Therefore the only
136
+ * thing we can safely do is make absolutely sure that we have it
137
+ * (in __pyx_libc_threads_limited_api_ensure_gil).
138
+ */
139
+ return 1;
140
+ #elif PY_VERSION_HEX >= 0x030d0000
141
+ return PyThreadState_GetUnchecked() != NULL;
142
+ #elif PY_VERSION_HEX >= 0x030C0000
143
+ return _PyThreadState_UncheckedGet() != NULL;
144
+ #else
145
+ return PyGILState_Check();
146
+ #endif
147
+ }
148
+
149
+ static int __pyx_py_safe_mtx_lock_release_lock_reacquire(mtx_t* mutex) {
150
+ // Release the GIL, acquire the lock, then reacquire the GIL.
151
+ // This is safe provided the user never holds the GIL while trying
152
+ // to reacquire the lock (i.e. it's safe provided they always use
153
+ // the py-safe wrappers).
154
+ int result;
155
+ Py_BEGIN_ALLOW_THREADS
156
+ result = mtx_lock(mutex);
157
+ Py_END_ALLOW_THREADS
158
+ return result;
159
+ }
160
+
161
+ static int __pyx_py_safe_mtx_lock_impl(mtx_t* mutex) {
162
+ int lock_result = mtx_trylock(mutex);
163
+ if (lock_result == thrd_busy) {
164
+ return __pyx_py_safe_mtx_lock_release_lock_reacquire(mutex);
165
+ }
166
+ return lock_result;
167
+ }
168
+
169
+ CYTHON_UNUSED static int __pyx_py_safe_mtx_lock(mtx_t* mutex) {
170
+ PyGILState_STATE gil_state = __pyx_libc_threads_limited_api_ensure_gil();
171
+ if (!__pyx_libc_threads_has_gil())
172
+ return mtx_lock(mutex); /* No GIL, no problem */
173
+ int result = __pyx_py_safe_mtx_lock_impl(mutex);
174
+ __pyx_libc_threads_limited_api_release_gil(gil_state);
175
+ return result;
176
+ }
177
+
178
+ CYTHON_UNUSED static int __pyx_py_safe_cnd_wait( cnd_t* cond, mtx_t* mutex) {
179
+ __Pyx_UnknownThreadState thread_state = __Pyx_SaveUnknownThread();
180
+ int result = cnd_wait(cond, mutex);
181
+ if (__Pyx_UnknownThreadStateMayHaveHadGil(thread_state)) {
182
+ int unlock_result, relock_result;
183
+ unlock_result = mtx_unlock(mutex);
184
+ __Pyx_RestoreUnknownThread(thread_state);
185
+ PyGILState_STATE gil_state = __pyx_libc_threads_limited_api_ensure_gil();
186
+ relock_result = __pyx_py_safe_mtx_lock_impl(mutex);
187
+ __pyx_libc_threads_limited_api_release_gil(gil_state);
188
+ return relock_result != thrd_success ? relock_result :
189
+ unlock_result != thrd_success ? unlock_result :
190
+ result;
191
+ } else {
192
+ __Pyx_RestoreUnknownThread(thread_state);
193
+ return result;
194
+ }
195
+ }
196
+
197
+ CYTHON_UNUSED static int __pyx_py_safe_cnd_timedwait(cnd_t* cond, mtx_t* mutex, const struct timespec* time_point) {
198
+ __Pyx_UnknownThreadState thread_state = __Pyx_SaveUnknownThread();
199
+ int result = cnd_timedwait(cond, mutex, time_point);
200
+ if (__Pyx_UnknownThreadStateMayHaveHadGil(thread_state)) {
201
+ int unlock_result, relock_result;
202
+ unlock_result = mtx_unlock(mutex);
203
+ __Pyx_RestoreUnknownThread(thread_state);
204
+ PyGILState_STATE gil_state = __pyx_libc_threads_limited_api_ensure_gil();
205
+ relock_result = __pyx_py_safe_mtx_lock_impl(mutex);
206
+ __pyx_libc_threads_limited_api_release_gil(gil_state);
207
+ return relock_result != thrd_success ? relock_result :
208
+ unlock_result != thrd_success ? unlock_result :
209
+ result;
210
+ } else {
211
+ __Pyx_RestoreUnknownThread(thread_state);
212
+ return result;
213
+ }
214
+ }
215
+
216
+ CYTHON_UNUSED static void __pyx_libc_threads_py_safe_call_once(once_flag* flag, void (*func)(void)) {
217
+ __Pyx_UnknownThreadState thread_state = __Pyx_SaveUnknownThread();
218
+ call_once(flag, func);
219
+ __Pyx_RestoreUnknownThread(thread_state);
220
+ }
221
+ """
222
+ # Acquire the lock without deadlocking on the GIL.
223
+ # At the end, the GIL will be restored to its original state.
224
+ int py_safe_mtx_lock "__pyx_py_safe_mtx_lock"(mtx_t* mutex) nogil
225
+
226
+ # Wait on the condition variable without deadlocking on the GIL.
227
+ # At the end, the GIL will be restored to its original state.
228
+ int py_safe_cnd_wait "__pyx_py_safe_cnd_wait"(cnd_t*, mtx_t*) nogil
229
+ int py_safe_cnd_timedwait "__pyx_py_safe_cnd_timedwait"(cnd_t*, mtx_t*, const timespec*) nogil
230
+
231
+ # call_once making sure not to deadlock on the GIL.
232
+ # The callable must still be nogil though.
233
+ void py_safe_once_flag_init "__Pyx_once_flag_init"(py_safe_once_flag*)
234
+ int py_safe_call_once "__pyx_libc_threads_py_safe_call_once"(py_safe_once_flag* flag, _once_func_type func) nogil
@@ -0,0 +1,52 @@
1
+ # https://en.wikipedia.org/wiki/C_date_and_time_functions
2
+
3
+ from libc.stddef cimport wchar_t
4
+
5
+ cdef extern from "<time.h>" nogil:
6
+ ctypedef long clock_t
7
+ ctypedef long time_t
8
+ struct timespec:
9
+ time_t tv_sec
10
+ long tv_nsec
11
+ enum: TIME_UTC
12
+
13
+ enum: CLOCKS_PER_SEC
14
+ clock_t clock() # CPU time
15
+ time_t time(time_t *) # wall clock time since Unix epoch
16
+
17
+ cdef struct tm:
18
+ int tm_sec
19
+ int tm_min
20
+ int tm_hour
21
+ int tm_mday
22
+ int tm_mon
23
+ int tm_year
24
+ int tm_wday
25
+ int tm_yday
26
+ int tm_isdst
27
+ # GNU specific extensions
28
+ #char *tm_zone
29
+ #long tm_gmtoff
30
+
31
+ int daylight # global state
32
+ long timezone
33
+ char *tzname[2]
34
+ void tzset()
35
+
36
+ char *asctime(const tm *)
37
+ char *asctime_r(const tm *, char *)
38
+ char *ctime(const time_t *)
39
+ char *ctime_r(const time_t *, char *)
40
+ double difftime(time_t, time_t)
41
+ tm *getdate(const char *)
42
+ tm *gmtime(const time_t *)
43
+ tm *gmtime_r(const time_t *, tm *)
44
+ tm *localtime(const time_t *)
45
+ tm *localtime_r(const time_t *, tm *)
46
+ time_t mktime(tm *)
47
+ size_t strftime(char *, size_t, const char *, const tm *)
48
+ size_t wcsftime(wchar_t *str, size_t cnt, const wchar_t *fmt, tm *time)
49
+ int timespec_get(timespec *spec, int base)
50
+
51
+ # POSIX not stdC
52
+ char *strptime(const char *, const char *, tm *)
@@ -0,0 +1,4 @@
1
+ cdef extern from *:
2
+ ctypedef bint bool
3
+ ctypedef void* nullptr_t
4
+ nullptr_t nullptr