pytron-kit 0.3.12__py3-none-macosx_11_0_universal2.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 (419) hide show
  1. pytron/__init__.py +112 -0
  2. pytron/application.py +562 -0
  3. pytron/apputils/__init__.py +0 -0
  4. pytron/apputils/chrome_ipc.py +203 -0
  5. pytron/apputils/codegen.py +261 -0
  6. pytron/apputils/config.py +303 -0
  7. pytron/apputils/deadmansswitch.py +47 -0
  8. pytron/apputils/extras.py +76 -0
  9. pytron/apputils/native.py +148 -0
  10. pytron/apputils/shell.py +73 -0
  11. pytron/apputils/windows.py +286 -0
  12. pytron/cli.py +384 -0
  13. pytron/commands/__init__.py +0 -0
  14. pytron/commands/android.py +28 -0
  15. pytron/commands/build.py +26 -0
  16. pytron/commands/doctor.py +221 -0
  17. pytron/commands/engine.py +23 -0
  18. pytron/commands/frontend.py +60 -0
  19. pytron/commands/harvest.py +112 -0
  20. pytron/commands/helpers.py +239 -0
  21. pytron/commands/info.py +50 -0
  22. pytron/commands/init.py +521 -0
  23. pytron/commands/install.py +294 -0
  24. pytron/commands/login.py +130 -0
  25. pytron/commands/package.py +228 -0
  26. pytron/commands/plugin.py +442 -0
  27. pytron/commands/run.py +312 -0
  28. pytron/commands/scan.py +210 -0
  29. pytron/commands/show.py +23 -0
  30. pytron/commands/uninstall.py +150 -0
  31. pytron/commands/utils.py +42 -0
  32. pytron/commands/workflow.py +95 -0
  33. pytron/console.py +133 -0
  34. pytron/core.py +18 -0
  35. pytron/dependencies/WebView2Loader.dll +0 -0
  36. pytron/dependencies/__init__.py +1 -0
  37. pytron/dependencies/pytron_native.so +0 -0
  38. pytron/engines/chrome/adapter.py +445 -0
  39. pytron/engines/chrome/engine.py +576 -0
  40. pytron/engines/chrome/forge.py +147 -0
  41. pytron/engines/chrome/shell/package.json +8 -0
  42. pytron/engines/chrome/shell/preload.js +12 -0
  43. pytron/engines/chrome/shell/shell.js +534 -0
  44. pytron/exceptions.py +36 -0
  45. pytron/inspector.py +201 -0
  46. pytron/inspector_ui.py +512 -0
  47. pytron/installer/Installation.nsi +236 -0
  48. pytron/installer/header.bmp +0 -0
  49. pytron/installer/pytron.ico +0 -0
  50. pytron/installer/sidebar.bmp +0 -0
  51. pytron/llms.md +98 -0
  52. pytron/manifests/README.md +29 -0
  53. pytron/manifests/windows-utf8.manifest +44 -0
  54. pytron/menu.py +128 -0
  55. pytron/nsis-setup.exe +0 -0
  56. pytron/pack/__init__.py +0 -0
  57. pytron/pack/assets.py +131 -0
  58. pytron/pack/compilers.py +289 -0
  59. pytron/pack/crystal.py +297 -0
  60. pytron/pack/graph.py +377 -0
  61. pytron/pack/inference.py +157 -0
  62. pytron/pack/installers.py +402 -0
  63. pytron/pack/introspect.py +357 -0
  64. pytron/pack/metadata.py +213 -0
  65. pytron/pack/modules.py +618 -0
  66. pytron/pack/nuitka.py +108 -0
  67. pytron/pack/pipeline.py +107 -0
  68. pytron/pack/pyinstaller.py +176 -0
  69. pytron/pack/rust_engine.py +273 -0
  70. pytron/pack/secure.py +309 -0
  71. pytron/pack/secure_loader/bin/pytron_rust_bootloader +0 -0
  72. pytron/pack/secure_loader/icon.ico +0 -0
  73. pytron/pack/utils.py +110 -0
  74. pytron/pack/virtual_root.py +124 -0
  75. pytron/platforms/__init__.py +0 -0
  76. pytron/platforms/android/__init__.py +3 -0
  77. pytron/platforms/android/android.py +103 -0
  78. pytron/platforms/android/builder.py +736 -0
  79. pytron/platforms/android/ops/build.py +79 -0
  80. pytron/platforms/android/ops/init.py +63 -0
  81. pytron/platforms/android/ops/run.py +79 -0
  82. pytron/platforms/android/ops/sync.py +770 -0
  83. pytron/platforms/android/ops/utils.py +8 -0
  84. pytron/platforms/android/shell/README.md +30 -0
  85. pytron/platforms/android/shell/app/build.gradle +64 -0
  86. pytron/platforms/android/shell/app/src/main/AndroidManifest.xml +29 -0
  87. pytron/platforms/android/shell/app/src/main/assets/python/main.py +86 -0
  88. pytron/platforms/android/shell/app/src/main/assets/python/python314.zip +0 -0
  89. pytron/platforms/android/shell/app/src/main/cpp/CMakeLists.txt +25 -0
  90. pytron/platforms/android/shell/app/src/main/cpp/include/Python.h +155 -0
  91. pytron/platforms/android/shell/app/src/main/cpp/include/abstract.h +915 -0
  92. pytron/platforms/android/shell/app/src/main/cpp/include/audit.h +30 -0
  93. pytron/platforms/android/shell/app/src/main/cpp/include/bltinmodule.h +14 -0
  94. pytron/platforms/android/shell/app/src/main/cpp/include/boolobject.h +54 -0
  95. pytron/platforms/android/shell/app/src/main/cpp/include/bytearrayobject.h +44 -0
  96. pytron/platforms/android/shell/app/src/main/cpp/include/bytesobject.h +66 -0
  97. pytron/platforms/android/shell/app/src/main/cpp/include/ceval.h +145 -0
  98. pytron/platforms/android/shell/app/src/main/cpp/include/codecs.h +176 -0
  99. pytron/platforms/android/shell/app/src/main/cpp/include/compile.h +22 -0
  100. pytron/platforms/android/shell/app/src/main/cpp/include/complexobject.h +30 -0
  101. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/abstract.h +104 -0
  102. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/audit.h +8 -0
  103. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/bytearrayobject.h +38 -0
  104. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/bytesobject.h +42 -0
  105. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/cellobject.h +50 -0
  106. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/ceval.h +43 -0
  107. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/classobject.h +71 -0
  108. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/code.h +340 -0
  109. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/compile.h +50 -0
  110. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/complexobject.h +33 -0
  111. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/context.h +107 -0
  112. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/critical_section.h +154 -0
  113. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/descrobject.h +62 -0
  114. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/dictobject.h +105 -0
  115. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/fileobject.h +16 -0
  116. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/fileutils.h +16 -0
  117. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/floatobject.h +27 -0
  118. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/frameobject.h +35 -0
  119. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/funcobject.h +185 -0
  120. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/genobject.h +56 -0
  121. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/import.h +30 -0
  122. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/initconfig.h +334 -0
  123. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/listobject.h +53 -0
  124. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/lock.h +74 -0
  125. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/longintrepr.h +184 -0
  126. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/longobject.h +89 -0
  127. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/memoryobject.h +50 -0
  128. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/methodobject.h +66 -0
  129. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/modsupport.h +26 -0
  130. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/monitoring.h +269 -0
  131. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/object.h +493 -0
  132. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/objimpl.h +104 -0
  133. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/odictobject.h +43 -0
  134. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/picklebufobject.h +31 -0
  135. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pthread_stubs.h +105 -0
  136. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic.h +614 -0
  137. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_gcc.h +615 -0
  138. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_msc.h +1197 -0
  139. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_std.h +1112 -0
  140. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyctype.h +39 -0
  141. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pydebug.h +38 -0
  142. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyerrors.h +132 -0
  143. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyfpe.h +15 -0
  144. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyframe.h +45 -0
  145. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyhash.h +54 -0
  146. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pylifecycle.h +89 -0
  147. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pymem.h +84 -0
  148. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pystate.h +275 -0
  149. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pystats.h +194 -0
  150. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pythonrun.h +96 -0
  151. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pythread.h +43 -0
  152. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pytime.h +27 -0
  153. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/setobject.h +71 -0
  154. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/traceback.h +13 -0
  155. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/tracemalloc.h +32 -0
  156. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/tupleobject.h +40 -0
  157. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/unicodeobject.h +773 -0
  158. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/warnings.h +20 -0
  159. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/weakrefobject.h +66 -0
  160. pytron/platforms/android/shell/app/src/main/cpp/include/critical_section.h +16 -0
  161. pytron/platforms/android/shell/app/src/main/cpp/include/datetime.h +267 -0
  162. pytron/platforms/android/shell/app/src/main/cpp/include/descrobject.h +100 -0
  163. pytron/platforms/android/shell/app/src/main/cpp/include/dictobject.h +108 -0
  164. pytron/platforms/android/shell/app/src/main/cpp/include/dynamic_annotations.h +499 -0
  165. pytron/platforms/android/shell/app/src/main/cpp/include/enumobject.h +17 -0
  166. pytron/platforms/android/shell/app/src/main/cpp/include/errcode.h +45 -0
  167. pytron/platforms/android/shell/app/src/main/cpp/include/exports.h +105 -0
  168. pytron/platforms/android/shell/app/src/main/cpp/include/fileobject.h +41 -0
  169. pytron/platforms/android/shell/app/src/main/cpp/include/fileutils.h +62 -0
  170. pytron/platforms/android/shell/app/src/main/cpp/include/floatobject.h +54 -0
  171. pytron/platforms/android/shell/app/src/main/cpp/include/frameobject.h +20 -0
  172. pytron/platforms/android/shell/app/src/main/cpp/include/genericaliasobject.h +14 -0
  173. pytron/platforms/android/shell/app/src/main/cpp/include/import.h +103 -0
  174. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/atomic.h +392 -0
  175. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/internal.h +969 -0
  176. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/prim.h +329 -0
  177. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/track.h +147 -0
  178. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/types.h +721 -0
  179. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc.h +565 -0
  180. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_abstract.h +61 -0
  181. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_asdl.h +112 -0
  182. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ast.h +945 -0
  183. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ast_state.h +271 -0
  184. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_atexit.h +31 -0
  185. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_audit.h +35 -0
  186. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_backoff.h +133 -0
  187. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bitutils.h +186 -0
  188. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_blocks_output_buffer.h +321 -0
  189. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_brc.h +73 -0
  190. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bytes_methods.h +82 -0
  191. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bytesobject.h +149 -0
  192. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_c_array.h +39 -0
  193. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_call.h +206 -0
  194. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_capsule.h +17 -0
  195. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_cell.h +75 -0
  196. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ceval.h +390 -0
  197. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ceval_state.h +48 -0
  198. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_code.h +671 -0
  199. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_codecs.h +76 -0
  200. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_compile.h +230 -0
  201. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_complexobject.h +34 -0
  202. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_condvar.h +93 -0
  203. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_context.h +59 -0
  204. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_critical_section.h +237 -0
  205. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_crossinterp.h +406 -0
  206. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_crossinterp_data_registry.h +41 -0
  207. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_debug_offsets.h +379 -0
  208. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_descrobject.h +28 -0
  209. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dict.h +410 -0
  210. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dict_state.h +28 -0
  211. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dtoa.h +40 -0
  212. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_emscripten_signal.h +30 -0
  213. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_emscripten_trampoline.h +70 -0
  214. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_exceptions.h +40 -0
  215. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_faulthandler.h +100 -0
  216. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_fileutils.h +320 -0
  217. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_fileutils_windows.h +98 -0
  218. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_floatobject.h +49 -0
  219. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_flowgraph.h +47 -0
  220. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_format.h +27 -0
  221. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_frame.h +61 -0
  222. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_freelist.h +111 -0
  223. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_freelist_state.h +70 -0
  224. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_function.h +53 -0
  225. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_gc.h +378 -0
  226. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_genobject.h +43 -0
  227. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_getopt.h +22 -0
  228. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_gil.h +66 -0
  229. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_objects.h +34 -0
  230. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_objects_fini_generated.h +1592 -0
  231. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_strings.h +854 -0
  232. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_hamt.h +113 -0
  233. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_hashtable.h +150 -0
  234. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_import.h +141 -0
  235. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_importdl.h +139 -0
  236. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_index_pool.h +36 -0
  237. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_initconfig.h +197 -0
  238. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_instruction_sequence.h +83 -0
  239. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_instruments.h +127 -0
  240. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interp.h +109 -0
  241. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interp_structs.h +977 -0
  242. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpframe.h +401 -0
  243. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpframe_structs.h +95 -0
  244. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpolation.h +26 -0
  245. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_intrinsics.h +51 -0
  246. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_jit.h +29 -0
  247. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_list.h +81 -0
  248. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_llist.h +106 -0
  249. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_lock.h +236 -0
  250. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_long.h +319 -0
  251. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_magic_number.h +305 -0
  252. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_memoryobject.h +20 -0
  253. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_mimalloc.h +69 -0
  254. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_modsupport.h +99 -0
  255. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_moduleobject.h +62 -0
  256. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_namespace.h +21 -0
  257. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object.h +1029 -0
  258. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_alloc.h +71 -0
  259. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_deferred.h +32 -0
  260. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_stack.h +95 -0
  261. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_state.h +49 -0
  262. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_obmalloc.h +702 -0
  263. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_obmalloc_init.h +66 -0
  264. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_opcode_metadata.h +2117 -0
  265. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_opcode_utils.h +90 -0
  266. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_optimizer.h +318 -0
  267. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_parking_lot.h +97 -0
  268. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_parser.h +78 -0
  269. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pathconfig.h +26 -0
  270. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyarena.h +68 -0
  271. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyatomic_ft_wrappers.h +174 -0
  272. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pybuffer.h +21 -0
  273. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyerrors.h +213 -0
  274. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyhash.h +91 -0
  275. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pylifecycle.h +136 -0
  276. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymath.h +205 -0
  277. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymem.h +145 -0
  278. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymem_init.h +103 -0
  279. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pystate.h +339 -0
  280. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pystats.h +21 -0
  281. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pythonrun.h +68 -0
  282. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pythread.h +172 -0
  283. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_qsbr.h +172 -0
  284. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_range.h +21 -0
  285. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime.h +63 -0
  286. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_init.h +239 -0
  287. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_init_generated.h +1589 -0
  288. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_structs.h +310 -0
  289. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_semaphore.h +67 -0
  290. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_setobject.h +41 -0
  291. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_signal.h +108 -0
  292. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_sliceobject.h +20 -0
  293. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_stackref.h +791 -0
  294. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_stats.h +97 -0
  295. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_strhex.h +39 -0
  296. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_structs.h +88 -0
  297. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_structseq.h +40 -0
  298. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_symtable.h +201 -0
  299. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_sysmodule.h +32 -0
  300. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_template.h +26 -0
  301. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_time.h +334 -0
  302. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_token.h +110 -0
  303. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_traceback.h +111 -0
  304. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tracemalloc.h +164 -0
  305. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tstate.h +88 -0
  306. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tuple.h +75 -0
  307. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typedefs.h +18 -0
  308. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typeobject.h +155 -0
  309. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typevarobject.h +28 -0
  310. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ucnhash.h +36 -0
  311. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unicodeobject.h +308 -0
  312. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unicodeobject_generated.h +3132 -0
  313. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unionobject.h +26 -0
  314. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uniqueid.h +57 -0
  315. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uop_ids.h +335 -0
  316. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uop_metadata.h +1204 -0
  317. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_warnings.h +21 -0
  318. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_weakref.h +133 -0
  319. pytron/platforms/android/shell/app/src/main/cpp/include/intrcheck.h +23 -0
  320. pytron/platforms/android/shell/app/src/main/cpp/include/iterobject.h +24 -0
  321. pytron/platforms/android/shell/app/src/main/cpp/include/listobject.h +55 -0
  322. pytron/platforms/android/shell/app/src/main/cpp/include/lock.h +16 -0
  323. pytron/platforms/android/shell/app/src/main/cpp/include/longobject.h +178 -0
  324. pytron/platforms/android/shell/app/src/main/cpp/include/marshal.h +31 -0
  325. pytron/platforms/android/shell/app/src/main/cpp/include/memoryobject.h +34 -0
  326. pytron/platforms/android/shell/app/src/main/cpp/include/methodobject.h +146 -0
  327. pytron/platforms/android/shell/app/src/main/cpp/include/modsupport.h +146 -0
  328. pytron/platforms/android/shell/app/src/main/cpp/include/moduleobject.h +122 -0
  329. pytron/platforms/android/shell/app/src/main/cpp/include/monitoring.h +18 -0
  330. pytron/platforms/android/shell/app/src/main/cpp/include/object.h +828 -0
  331. pytron/platforms/android/shell/app/src/main/cpp/include/objimpl.h +211 -0
  332. pytron/platforms/android/shell/app/src/main/cpp/include/opcode.h +43 -0
  333. pytron/platforms/android/shell/app/src/main/cpp/include/opcode_ids.h +259 -0
  334. pytron/platforms/android/shell/app/src/main/cpp/include/osdefs.h +57 -0
  335. pytron/platforms/android/shell/app/src/main/cpp/include/osmodule.h +17 -0
  336. pytron/platforms/android/shell/app/src/main/cpp/include/patchlevel.h +49 -0
  337. pytron/platforms/android/shell/app/src/main/cpp/include/py_curses.h +117 -0
  338. pytron/platforms/android/shell/app/src/main/cpp/include/pyatomic.h +16 -0
  339. pytron/platforms/android/shell/app/src/main/cpp/include/pybuffer.h +145 -0
  340. pytron/platforms/android/shell/app/src/main/cpp/include/pycapsule.h +58 -0
  341. pytron/platforms/android/shell/app/src/main/cpp/include/pyconfig.h +2088 -0
  342. pytron/platforms/android/shell/app/src/main/cpp/include/pydtrace.h +59 -0
  343. pytron/platforms/android/shell/app/src/main/cpp/include/pyerrors.h +335 -0
  344. pytron/platforms/android/shell/app/src/main/cpp/include/pyexpat.h +62 -0
  345. pytron/platforms/android/shell/app/src/main/cpp/include/pyframe.h +26 -0
  346. pytron/platforms/android/shell/app/src/main/cpp/include/pyhash.h +59 -0
  347. pytron/platforms/android/shell/app/src/main/cpp/include/pylifecycle.h +80 -0
  348. pytron/platforms/android/shell/app/src/main/cpp/include/pymacconfig.h +91 -0
  349. pytron/platforms/android/shell/app/src/main/cpp/include/pymacro.h +243 -0
  350. pytron/platforms/android/shell/app/src/main/cpp/include/pymath.h +65 -0
  351. pytron/platforms/android/shell/app/src/main/cpp/include/pymem.h +110 -0
  352. pytron/platforms/android/shell/app/src/main/cpp/include/pyport.h +710 -0
  353. pytron/platforms/android/shell/app/src/main/cpp/include/pystate.h +132 -0
  354. pytron/platforms/android/shell/app/src/main/cpp/include/pystats.h +28 -0
  355. pytron/platforms/android/shell/app/src/main/cpp/include/pystrcmp.h +23 -0
  356. pytron/platforms/android/shell/app/src/main/cpp/include/pystrtod.h +37 -0
  357. pytron/platforms/android/shell/app/src/main/cpp/include/pythonrun.h +42 -0
  358. pytron/platforms/android/shell/app/src/main/cpp/include/pythread.h +131 -0
  359. pytron/platforms/android/shell/app/src/main/cpp/include/pytypedefs.h +30 -0
  360. pytron/platforms/android/shell/app/src/main/cpp/include/rangeobject.h +27 -0
  361. pytron/platforms/android/shell/app/src/main/cpp/include/refcount.h +555 -0
  362. pytron/platforms/android/shell/app/src/main/cpp/include/setobject.h +49 -0
  363. pytron/platforms/android/shell/app/src/main/cpp/include/sliceobject.h +69 -0
  364. pytron/platforms/android/shell/app/src/main/cpp/include/structmember.h +56 -0
  365. pytron/platforms/android/shell/app/src/main/cpp/include/structseq.h +46 -0
  366. pytron/platforms/android/shell/app/src/main/cpp/include/sysmodule.h +27 -0
  367. pytron/platforms/android/shell/app/src/main/cpp/include/traceback.h +26 -0
  368. pytron/platforms/android/shell/app/src/main/cpp/include/tupleobject.h +46 -0
  369. pytron/platforms/android/shell/app/src/main/cpp/include/typeslots.h +96 -0
  370. pytron/platforms/android/shell/app/src/main/cpp/include/unicodeobject.h +1029 -0
  371. pytron/platforms/android/shell/app/src/main/cpp/include/warnings.h +45 -0
  372. pytron/platforms/android/shell/app/src/main/cpp/include/weakrefobject.h +46 -0
  373. pytron/platforms/android/shell/app/src/main/cpp/pytron_bridge.cpp +224 -0
  374. pytron/platforms/android/shell/app/src/main/java/com/pytron/shell/MainActivity.kt +208 -0
  375. pytron/platforms/android/shell/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  376. pytron/platforms/android/shell/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  377. pytron/platforms/android/shell/build.gradle +11 -0
  378. pytron/platforms/android/shell/gradle/wrapper/gradle-wrapper.jar +0 -0
  379. pytron/platforms/android/shell/gradle/wrapper/gradle-wrapper.properties +5 -0
  380. pytron/platforms/android/shell/gradle.properties +2 -0
  381. pytron/platforms/android/shell/gradlew.bat +85 -0
  382. pytron/platforms/android/shell/settings.gradle +16 -0
  383. pytron/platforms/darwin.py +82 -0
  384. pytron/platforms/darwin_ops/libs.py +31 -0
  385. pytron/platforms/darwin_ops/system.py +182 -0
  386. pytron/platforms/darwin_ops/utils.py +85 -0
  387. pytron/platforms/darwin_ops/webview.py +5 -0
  388. pytron/platforms/darwin_ops/window.py +102 -0
  389. pytron/platforms/interface.py +152 -0
  390. pytron/platforms/linux.py +82 -0
  391. pytron/platforms/linux_ops/libs.py +49 -0
  392. pytron/platforms/linux_ops/system.py +316 -0
  393. pytron/platforms/linux_ops/utils.py +19 -0
  394. pytron/platforms/linux_ops/webview.py +5 -0
  395. pytron/platforms/linux_ops/window.py +115 -0
  396. pytron/platforms/windows.py +136 -0
  397. pytron/platforms/windows_ops/__init__.py +0 -0
  398. pytron/platforms/windows_ops/constants.py +126 -0
  399. pytron/platforms/windows_ops/system.py +518 -0
  400. pytron/platforms/windows_ops/utils.py +3 -0
  401. pytron/platforms/windows_ops/webview.py +5 -0
  402. pytron/platforms/windows_ops/window.py +361 -0
  403. pytron/plugin.py +467 -0
  404. pytron/rcedit-x64.exe +0 -0
  405. pytron/router.py +146 -0
  406. pytron/serializer.py +240 -0
  407. pytron/shortcuts.py +279 -0
  408. pytron/state.py +76 -0
  409. pytron/tray.py +399 -0
  410. pytron/updater.py +181 -0
  411. pytron/utf8_hook.py +112 -0
  412. pytron/utils.py +44 -0
  413. pytron/webview.py +722 -0
  414. pytron_kit-0.3.12.dist-info/METADATA +131 -0
  415. pytron_kit-0.3.12.dist-info/RECORD +419 -0
  416. pytron_kit-0.3.12.dist-info/WHEEL +5 -0
  417. pytron_kit-0.3.12.dist-info/entry_points.txt +2 -0
  418. pytron_kit-0.3.12.dist-info/licenses/LICENSE +201 -0
  419. pytron_kit-0.3.12.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1112 @@
1
+ // This is the implementation of Python atomic operations using C++11 or C11
2
+ // atomics. Note that the pyatomic_gcc.h implementation is preferred for GCC
3
+ // compatible compilers, even if they support C++11 atomics.
4
+
5
+ #ifndef Py_ATOMIC_STD_H
6
+ # error "this header file must not be included directly"
7
+ #endif
8
+
9
+ #ifdef __cplusplus
10
+ extern "C++" {
11
+ # include <atomic>
12
+ }
13
+ # define _Py_USING_STD using namespace std
14
+ # define _Atomic(tp) atomic<tp>
15
+ #else
16
+ # define _Py_USING_STD
17
+ # include <stdatomic.h>
18
+ #endif
19
+
20
+
21
+ // --- _Py_atomic_add --------------------------------------------------------
22
+
23
+ static inline int
24
+ _Py_atomic_add_int(int *obj, int value)
25
+ {
26
+ _Py_USING_STD;
27
+ return atomic_fetch_add((_Atomic(int)*)obj, value);
28
+ }
29
+
30
+ static inline int8_t
31
+ _Py_atomic_add_int8(int8_t *obj, int8_t value)
32
+ {
33
+ _Py_USING_STD;
34
+ return atomic_fetch_add((_Atomic(int8_t)*)obj, value);
35
+ }
36
+
37
+ static inline int16_t
38
+ _Py_atomic_add_int16(int16_t *obj, int16_t value)
39
+ {
40
+ _Py_USING_STD;
41
+ return atomic_fetch_add((_Atomic(int16_t)*)obj, value);
42
+ }
43
+
44
+ static inline int32_t
45
+ _Py_atomic_add_int32(int32_t *obj, int32_t value)
46
+ {
47
+ _Py_USING_STD;
48
+ return atomic_fetch_add((_Atomic(int32_t)*)obj, value);
49
+ }
50
+
51
+ static inline int64_t
52
+ _Py_atomic_add_int64(int64_t *obj, int64_t value)
53
+ {
54
+ _Py_USING_STD;
55
+ return atomic_fetch_add((_Atomic(int64_t)*)obj, value);
56
+ }
57
+
58
+ static inline intptr_t
59
+ _Py_atomic_add_intptr(intptr_t *obj, intptr_t value)
60
+ {
61
+ _Py_USING_STD;
62
+ return atomic_fetch_add((_Atomic(intptr_t)*)obj, value);
63
+ }
64
+
65
+ static inline unsigned int
66
+ _Py_atomic_add_uint(unsigned int *obj, unsigned int value)
67
+ {
68
+ _Py_USING_STD;
69
+ return atomic_fetch_add((_Atomic(unsigned int)*)obj, value);
70
+ }
71
+
72
+ static inline uint8_t
73
+ _Py_atomic_add_uint8(uint8_t *obj, uint8_t value)
74
+ {
75
+ _Py_USING_STD;
76
+ return atomic_fetch_add((_Atomic(uint8_t)*)obj, value);
77
+ }
78
+
79
+ static inline uint16_t
80
+ _Py_atomic_add_uint16(uint16_t *obj, uint16_t value)
81
+ {
82
+ _Py_USING_STD;
83
+ return atomic_fetch_add((_Atomic(uint16_t)*)obj, value);
84
+ }
85
+
86
+ static inline uint32_t
87
+ _Py_atomic_add_uint32(uint32_t *obj, uint32_t value)
88
+ {
89
+ _Py_USING_STD;
90
+ return atomic_fetch_add((_Atomic(uint32_t)*)obj, value);
91
+ }
92
+
93
+ static inline uint64_t
94
+ _Py_atomic_add_uint64(uint64_t *obj, uint64_t value)
95
+ {
96
+ _Py_USING_STD;
97
+ return atomic_fetch_add((_Atomic(uint64_t)*)obj, value);
98
+ }
99
+
100
+ static inline uintptr_t
101
+ _Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value)
102
+ {
103
+ _Py_USING_STD;
104
+ return atomic_fetch_add((_Atomic(uintptr_t)*)obj, value);
105
+ }
106
+
107
+ static inline Py_ssize_t
108
+ _Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value)
109
+ {
110
+ _Py_USING_STD;
111
+ return atomic_fetch_add((_Atomic(Py_ssize_t)*)obj, value);
112
+ }
113
+
114
+
115
+ // --- _Py_atomic_compare_exchange -------------------------------------------
116
+
117
+ static inline int
118
+ _Py_atomic_compare_exchange_int(int *obj, int *expected, int desired)
119
+ {
120
+ _Py_USING_STD;
121
+ return atomic_compare_exchange_strong((_Atomic(int)*)obj,
122
+ expected, desired);
123
+ }
124
+
125
+ static inline int
126
+ _Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected, int8_t desired)
127
+ {
128
+ _Py_USING_STD;
129
+ return atomic_compare_exchange_strong((_Atomic(int8_t)*)obj,
130
+ expected, desired);
131
+ }
132
+
133
+ static inline int
134
+ _Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected, int16_t desired)
135
+ {
136
+ _Py_USING_STD;
137
+ return atomic_compare_exchange_strong((_Atomic(int16_t)*)obj,
138
+ expected, desired);
139
+ }
140
+
141
+ static inline int
142
+ _Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected, int32_t desired)
143
+ {
144
+ _Py_USING_STD;
145
+ return atomic_compare_exchange_strong((_Atomic(int32_t)*)obj,
146
+ expected, desired);
147
+ }
148
+
149
+ static inline int
150
+ _Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected, int64_t desired)
151
+ {
152
+ _Py_USING_STD;
153
+ return atomic_compare_exchange_strong((_Atomic(int64_t)*)obj,
154
+ expected, desired);
155
+ }
156
+
157
+ static inline int
158
+ _Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected, intptr_t desired)
159
+ {
160
+ _Py_USING_STD;
161
+ return atomic_compare_exchange_strong((_Atomic(intptr_t)*)obj,
162
+ expected, desired);
163
+ }
164
+
165
+ static inline int
166
+ _Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int *expected, unsigned int desired)
167
+ {
168
+ _Py_USING_STD;
169
+ return atomic_compare_exchange_strong((_Atomic(unsigned int)*)obj,
170
+ expected, desired);
171
+ }
172
+
173
+ static inline int
174
+ _Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected, uint8_t desired)
175
+ {
176
+ _Py_USING_STD;
177
+ return atomic_compare_exchange_strong((_Atomic(uint8_t)*)obj,
178
+ expected, desired);
179
+ }
180
+
181
+ static inline int
182
+ _Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected, uint16_t desired)
183
+ {
184
+ _Py_USING_STD;
185
+ return atomic_compare_exchange_strong((_Atomic(uint16_t)*)obj,
186
+ expected, desired);
187
+ }
188
+
189
+ static inline int
190
+ _Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected, uint32_t desired)
191
+ {
192
+ _Py_USING_STD;
193
+ return atomic_compare_exchange_strong((_Atomic(uint32_t)*)obj,
194
+ expected, desired);
195
+ }
196
+
197
+ static inline int
198
+ _Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected, uint64_t desired)
199
+ {
200
+ _Py_USING_STD;
201
+ return atomic_compare_exchange_strong((_Atomic(uint64_t)*)obj,
202
+ expected, desired);
203
+ }
204
+
205
+ static inline int
206
+ _Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected, uintptr_t desired)
207
+ {
208
+ _Py_USING_STD;
209
+ return atomic_compare_exchange_strong((_Atomic(uintptr_t)*)obj,
210
+ expected, desired);
211
+ }
212
+
213
+ static inline int
214
+ _Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected, Py_ssize_t desired)
215
+ {
216
+ _Py_USING_STD;
217
+ return atomic_compare_exchange_strong((_Atomic(Py_ssize_t)*)obj,
218
+ expected, desired);
219
+ }
220
+
221
+ static inline int
222
+ _Py_atomic_compare_exchange_ptr(void *obj, void *expected, void *desired)
223
+ {
224
+ _Py_USING_STD;
225
+ return atomic_compare_exchange_strong((_Atomic(void *)*)obj,
226
+ (void **)expected, desired);
227
+ }
228
+
229
+
230
+ // --- _Py_atomic_exchange ---------------------------------------------------
231
+
232
+ static inline int
233
+ _Py_atomic_exchange_int(int *obj, int value)
234
+ {
235
+ _Py_USING_STD;
236
+ return atomic_exchange((_Atomic(int)*)obj, value);
237
+ }
238
+
239
+ static inline int8_t
240
+ _Py_atomic_exchange_int8(int8_t *obj, int8_t value)
241
+ {
242
+ _Py_USING_STD;
243
+ return atomic_exchange((_Atomic(int8_t)*)obj, value);
244
+ }
245
+
246
+ static inline int16_t
247
+ _Py_atomic_exchange_int16(int16_t *obj, int16_t value)
248
+ {
249
+ _Py_USING_STD;
250
+ return atomic_exchange((_Atomic(int16_t)*)obj, value);
251
+ }
252
+
253
+ static inline int32_t
254
+ _Py_atomic_exchange_int32(int32_t *obj, int32_t value)
255
+ {
256
+ _Py_USING_STD;
257
+ return atomic_exchange((_Atomic(int32_t)*)obj, value);
258
+ }
259
+
260
+ static inline int64_t
261
+ _Py_atomic_exchange_int64(int64_t *obj, int64_t value)
262
+ {
263
+ _Py_USING_STD;
264
+ return atomic_exchange((_Atomic(int64_t)*)obj, value);
265
+ }
266
+
267
+ static inline intptr_t
268
+ _Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value)
269
+ {
270
+ _Py_USING_STD;
271
+ return atomic_exchange((_Atomic(intptr_t)*)obj, value);
272
+ }
273
+
274
+ static inline unsigned int
275
+ _Py_atomic_exchange_uint(unsigned int *obj, unsigned int value)
276
+ {
277
+ _Py_USING_STD;
278
+ return atomic_exchange((_Atomic(unsigned int)*)obj, value);
279
+ }
280
+
281
+ static inline uint8_t
282
+ _Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value)
283
+ {
284
+ _Py_USING_STD;
285
+ return atomic_exchange((_Atomic(uint8_t)*)obj, value);
286
+ }
287
+
288
+ static inline uint16_t
289
+ _Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value)
290
+ {
291
+ _Py_USING_STD;
292
+ return atomic_exchange((_Atomic(uint16_t)*)obj, value);
293
+ }
294
+
295
+ static inline uint32_t
296
+ _Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value)
297
+ {
298
+ _Py_USING_STD;
299
+ return atomic_exchange((_Atomic(uint32_t)*)obj, value);
300
+ }
301
+
302
+ static inline uint64_t
303
+ _Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value)
304
+ {
305
+ _Py_USING_STD;
306
+ return atomic_exchange((_Atomic(uint64_t)*)obj, value);
307
+ }
308
+
309
+ static inline uintptr_t
310
+ _Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value)
311
+ {
312
+ _Py_USING_STD;
313
+ return atomic_exchange((_Atomic(uintptr_t)*)obj, value);
314
+ }
315
+
316
+ static inline Py_ssize_t
317
+ _Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value)
318
+ {
319
+ _Py_USING_STD;
320
+ return atomic_exchange((_Atomic(Py_ssize_t)*)obj, value);
321
+ }
322
+
323
+ static inline void*
324
+ _Py_atomic_exchange_ptr(void *obj, void *value)
325
+ {
326
+ _Py_USING_STD;
327
+ return atomic_exchange((_Atomic(void *)*)obj, value);
328
+ }
329
+
330
+
331
+ // --- _Py_atomic_and --------------------------------------------------------
332
+
333
+ static inline uint8_t
334
+ _Py_atomic_and_uint8(uint8_t *obj, uint8_t value)
335
+ {
336
+ _Py_USING_STD;
337
+ return atomic_fetch_and((_Atomic(uint8_t)*)obj, value);
338
+ }
339
+
340
+ static inline uint16_t
341
+ _Py_atomic_and_uint16(uint16_t *obj, uint16_t value)
342
+ {
343
+ _Py_USING_STD;
344
+ return atomic_fetch_and((_Atomic(uint16_t)*)obj, value);
345
+ }
346
+
347
+ static inline uint32_t
348
+ _Py_atomic_and_uint32(uint32_t *obj, uint32_t value)
349
+ {
350
+ _Py_USING_STD;
351
+ return atomic_fetch_and((_Atomic(uint32_t)*)obj, value);
352
+ }
353
+
354
+ static inline uint64_t
355
+ _Py_atomic_and_uint64(uint64_t *obj, uint64_t value)
356
+ {
357
+ _Py_USING_STD;
358
+ return atomic_fetch_and((_Atomic(uint64_t)*)obj, value);
359
+ }
360
+
361
+ static inline uintptr_t
362
+ _Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value)
363
+ {
364
+ _Py_USING_STD;
365
+ return atomic_fetch_and((_Atomic(uintptr_t)*)obj, value);
366
+ }
367
+
368
+
369
+ // --- _Py_atomic_or ---------------------------------------------------------
370
+
371
+ static inline uint8_t
372
+ _Py_atomic_or_uint8(uint8_t *obj, uint8_t value)
373
+ {
374
+ _Py_USING_STD;
375
+ return atomic_fetch_or((_Atomic(uint8_t)*)obj, value);
376
+ }
377
+
378
+ static inline uint16_t
379
+ _Py_atomic_or_uint16(uint16_t *obj, uint16_t value)
380
+ {
381
+ _Py_USING_STD;
382
+ return atomic_fetch_or((_Atomic(uint16_t)*)obj, value);
383
+ }
384
+
385
+ static inline uint32_t
386
+ _Py_atomic_or_uint32(uint32_t *obj, uint32_t value)
387
+ {
388
+ _Py_USING_STD;
389
+ return atomic_fetch_or((_Atomic(uint32_t)*)obj, value);
390
+ }
391
+
392
+ static inline uint64_t
393
+ _Py_atomic_or_uint64(uint64_t *obj, uint64_t value)
394
+ {
395
+ _Py_USING_STD;
396
+ return atomic_fetch_or((_Atomic(uint64_t)*)obj, value);
397
+ }
398
+
399
+ static inline uintptr_t
400
+ _Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value)
401
+ {
402
+ _Py_USING_STD;
403
+ return atomic_fetch_or((_Atomic(uintptr_t)*)obj, value);
404
+ }
405
+
406
+
407
+ // --- _Py_atomic_load -------------------------------------------------------
408
+
409
+ static inline int
410
+ _Py_atomic_load_int(const int *obj)
411
+ {
412
+ _Py_USING_STD;
413
+ return atomic_load((const _Atomic(int)*)obj);
414
+ }
415
+
416
+ static inline int8_t
417
+ _Py_atomic_load_int8(const int8_t *obj)
418
+ {
419
+ _Py_USING_STD;
420
+ return atomic_load((const _Atomic(int8_t)*)obj);
421
+ }
422
+
423
+ static inline int16_t
424
+ _Py_atomic_load_int16(const int16_t *obj)
425
+ {
426
+ _Py_USING_STD;
427
+ return atomic_load((const _Atomic(int16_t)*)obj);
428
+ }
429
+
430
+ static inline int32_t
431
+ _Py_atomic_load_int32(const int32_t *obj)
432
+ {
433
+ _Py_USING_STD;
434
+ return atomic_load((const _Atomic(int32_t)*)obj);
435
+ }
436
+
437
+ static inline int64_t
438
+ _Py_atomic_load_int64(const int64_t *obj)
439
+ {
440
+ _Py_USING_STD;
441
+ return atomic_load((const _Atomic(int64_t)*)obj);
442
+ }
443
+
444
+ static inline intptr_t
445
+ _Py_atomic_load_intptr(const intptr_t *obj)
446
+ {
447
+ _Py_USING_STD;
448
+ return atomic_load((const _Atomic(intptr_t)*)obj);
449
+ }
450
+
451
+ static inline uint8_t
452
+ _Py_atomic_load_uint8(const uint8_t *obj)
453
+ {
454
+ _Py_USING_STD;
455
+ return atomic_load((const _Atomic(uint8_t)*)obj);
456
+ }
457
+
458
+ static inline uint16_t
459
+ _Py_atomic_load_uint16(const uint16_t *obj)
460
+ {
461
+ _Py_USING_STD;
462
+ return atomic_load((const _Atomic(uint32_t)*)obj);
463
+ }
464
+
465
+ static inline uint32_t
466
+ _Py_atomic_load_uint32(const uint32_t *obj)
467
+ {
468
+ _Py_USING_STD;
469
+ return atomic_load((const _Atomic(uint32_t)*)obj);
470
+ }
471
+
472
+ static inline uint64_t
473
+ _Py_atomic_load_uint64(const uint64_t *obj)
474
+ {
475
+ _Py_USING_STD;
476
+ return atomic_load((const _Atomic(uint64_t)*)obj);
477
+ }
478
+
479
+ static inline uintptr_t
480
+ _Py_atomic_load_uintptr(const uintptr_t *obj)
481
+ {
482
+ _Py_USING_STD;
483
+ return atomic_load((const _Atomic(uintptr_t)*)obj);
484
+ }
485
+
486
+ static inline unsigned int
487
+ _Py_atomic_load_uint(const unsigned int *obj)
488
+ {
489
+ _Py_USING_STD;
490
+ return atomic_load((const _Atomic(unsigned int)*)obj);
491
+ }
492
+
493
+ static inline Py_ssize_t
494
+ _Py_atomic_load_ssize(const Py_ssize_t *obj)
495
+ {
496
+ _Py_USING_STD;
497
+ return atomic_load((const _Atomic(Py_ssize_t)*)obj);
498
+ }
499
+
500
+ static inline void*
501
+ _Py_atomic_load_ptr(const void *obj)
502
+ {
503
+ _Py_USING_STD;
504
+ return atomic_load((const _Atomic(void*)*)obj);
505
+ }
506
+
507
+
508
+ // --- _Py_atomic_load_relaxed -----------------------------------------------
509
+
510
+ static inline int
511
+ _Py_atomic_load_int_relaxed(const int *obj)
512
+ {
513
+ _Py_USING_STD;
514
+ return atomic_load_explicit((const _Atomic(int)*)obj,
515
+ memory_order_relaxed);
516
+ }
517
+
518
+ static inline char
519
+ _Py_atomic_load_char_relaxed(const char *obj)
520
+ {
521
+ _Py_USING_STD;
522
+ return atomic_load_explicit((const _Atomic(char)*)obj,
523
+ memory_order_relaxed);
524
+ }
525
+
526
+ static inline unsigned char
527
+ _Py_atomic_load_uchar_relaxed(const unsigned char *obj)
528
+ {
529
+ _Py_USING_STD;
530
+ return atomic_load_explicit((const _Atomic(unsigned char)*)obj,
531
+ memory_order_relaxed);
532
+ }
533
+
534
+ static inline short
535
+ _Py_atomic_load_short_relaxed(const short *obj)
536
+ {
537
+ _Py_USING_STD;
538
+ return atomic_load_explicit((const _Atomic(short)*)obj,
539
+ memory_order_relaxed);
540
+ }
541
+
542
+ static inline unsigned short
543
+ _Py_atomic_load_ushort_relaxed(const unsigned short *obj)
544
+ {
545
+ _Py_USING_STD;
546
+ return atomic_load_explicit((const _Atomic(unsigned short)*)obj,
547
+ memory_order_relaxed);
548
+ }
549
+
550
+ static inline long
551
+ _Py_atomic_load_long_relaxed(const long *obj)
552
+ {
553
+ _Py_USING_STD;
554
+ return atomic_load_explicit((const _Atomic(long)*)obj,
555
+ memory_order_relaxed);
556
+ }
557
+
558
+ static inline float
559
+ _Py_atomic_load_float_relaxed(const float *obj)
560
+ {
561
+ _Py_USING_STD;
562
+ return atomic_load_explicit((const _Atomic(float)*)obj,
563
+ memory_order_relaxed);
564
+ }
565
+
566
+ static inline double
567
+ _Py_atomic_load_double_relaxed(const double *obj)
568
+ {
569
+ _Py_USING_STD;
570
+ return atomic_load_explicit((const _Atomic(double)*)obj,
571
+ memory_order_relaxed);
572
+ }
573
+
574
+ static inline int8_t
575
+ _Py_atomic_load_int8_relaxed(const int8_t *obj)
576
+ {
577
+ _Py_USING_STD;
578
+ return atomic_load_explicit((const _Atomic(int8_t)*)obj,
579
+ memory_order_relaxed);
580
+ }
581
+
582
+ static inline int16_t
583
+ _Py_atomic_load_int16_relaxed(const int16_t *obj)
584
+ {
585
+ _Py_USING_STD;
586
+ return atomic_load_explicit((const _Atomic(int16_t)*)obj,
587
+ memory_order_relaxed);
588
+ }
589
+
590
+ static inline int32_t
591
+ _Py_atomic_load_int32_relaxed(const int32_t *obj)
592
+ {
593
+ _Py_USING_STD;
594
+ return atomic_load_explicit((const _Atomic(int32_t)*)obj,
595
+ memory_order_relaxed);
596
+ }
597
+
598
+ static inline int64_t
599
+ _Py_atomic_load_int64_relaxed(const int64_t *obj)
600
+ {
601
+ _Py_USING_STD;
602
+ return atomic_load_explicit((const _Atomic(int64_t)*)obj,
603
+ memory_order_relaxed);
604
+ }
605
+
606
+ static inline intptr_t
607
+ _Py_atomic_load_intptr_relaxed(const intptr_t *obj)
608
+ {
609
+ _Py_USING_STD;
610
+ return atomic_load_explicit((const _Atomic(intptr_t)*)obj,
611
+ memory_order_relaxed);
612
+ }
613
+
614
+ static inline uint8_t
615
+ _Py_atomic_load_uint8_relaxed(const uint8_t *obj)
616
+ {
617
+ _Py_USING_STD;
618
+ return atomic_load_explicit((const _Atomic(uint8_t)*)obj,
619
+ memory_order_relaxed);
620
+ }
621
+
622
+ static inline uint16_t
623
+ _Py_atomic_load_uint16_relaxed(const uint16_t *obj)
624
+ {
625
+ _Py_USING_STD;
626
+ return atomic_load_explicit((const _Atomic(uint16_t)*)obj,
627
+ memory_order_relaxed);
628
+ }
629
+
630
+ static inline uint32_t
631
+ _Py_atomic_load_uint32_relaxed(const uint32_t *obj)
632
+ {
633
+ _Py_USING_STD;
634
+ return atomic_load_explicit((const _Atomic(uint32_t)*)obj,
635
+ memory_order_relaxed);
636
+ }
637
+
638
+ static inline uint64_t
639
+ _Py_atomic_load_uint64_relaxed(const uint64_t *obj)
640
+ {
641
+ _Py_USING_STD;
642
+ return atomic_load_explicit((const _Atomic(uint64_t)*)obj,
643
+ memory_order_relaxed);
644
+ }
645
+
646
+ static inline uintptr_t
647
+ _Py_atomic_load_uintptr_relaxed(const uintptr_t *obj)
648
+ {
649
+ _Py_USING_STD;
650
+ return atomic_load_explicit((const _Atomic(uintptr_t)*)obj,
651
+ memory_order_relaxed);
652
+ }
653
+
654
+ static inline unsigned int
655
+ _Py_atomic_load_uint_relaxed(const unsigned int *obj)
656
+ {
657
+ _Py_USING_STD;
658
+ return atomic_load_explicit((const _Atomic(unsigned int)*)obj,
659
+ memory_order_relaxed);
660
+ }
661
+
662
+ static inline Py_ssize_t
663
+ _Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj)
664
+ {
665
+ _Py_USING_STD;
666
+ return atomic_load_explicit((const _Atomic(Py_ssize_t)*)obj,
667
+ memory_order_relaxed);
668
+ }
669
+
670
+ static inline void*
671
+ _Py_atomic_load_ptr_relaxed(const void *obj)
672
+ {
673
+ _Py_USING_STD;
674
+ return atomic_load_explicit((const _Atomic(void*)*)obj,
675
+ memory_order_relaxed);
676
+ }
677
+
678
+ static inline unsigned long long
679
+ _Py_atomic_load_ullong_relaxed(const unsigned long long *obj)
680
+ {
681
+ _Py_USING_STD;
682
+ return atomic_load_explicit((const _Atomic(unsigned long long)*)obj,
683
+ memory_order_relaxed);
684
+ }
685
+
686
+ static inline long long
687
+ _Py_atomic_load_llong_relaxed(const long long *obj)
688
+ {
689
+ _Py_USING_STD;
690
+ return atomic_load_explicit((const _Atomic(long long)*)obj,
691
+ memory_order_relaxed);
692
+ }
693
+
694
+
695
+ // --- _Py_atomic_store ------------------------------------------------------
696
+
697
+ static inline void
698
+ _Py_atomic_store_int(int *obj, int value)
699
+ {
700
+ _Py_USING_STD;
701
+ atomic_store((_Atomic(int)*)obj, value);
702
+ }
703
+
704
+ static inline void
705
+ _Py_atomic_store_int8(int8_t *obj, int8_t value)
706
+ {
707
+ _Py_USING_STD;
708
+ atomic_store((_Atomic(int8_t)*)obj, value);
709
+ }
710
+
711
+ static inline void
712
+ _Py_atomic_store_int16(int16_t *obj, int16_t value)
713
+ {
714
+ _Py_USING_STD;
715
+ atomic_store((_Atomic(int16_t)*)obj, value);
716
+ }
717
+
718
+ static inline void
719
+ _Py_atomic_store_int32(int32_t *obj, int32_t value)
720
+ {
721
+ _Py_USING_STD;
722
+ atomic_store((_Atomic(int32_t)*)obj, value);
723
+ }
724
+
725
+ static inline void
726
+ _Py_atomic_store_int64(int64_t *obj, int64_t value)
727
+ {
728
+ _Py_USING_STD;
729
+ atomic_store((_Atomic(int64_t)*)obj, value);
730
+ }
731
+
732
+ static inline void
733
+ _Py_atomic_store_intptr(intptr_t *obj, intptr_t value)
734
+ {
735
+ _Py_USING_STD;
736
+ atomic_store((_Atomic(intptr_t)*)obj, value);
737
+ }
738
+
739
+ static inline void
740
+ _Py_atomic_store_uint8(uint8_t *obj, uint8_t value)
741
+ {
742
+ _Py_USING_STD;
743
+ atomic_store((_Atomic(uint8_t)*)obj, value);
744
+ }
745
+
746
+ static inline void
747
+ _Py_atomic_store_uint16(uint16_t *obj, uint16_t value)
748
+ {
749
+ _Py_USING_STD;
750
+ atomic_store((_Atomic(uint16_t)*)obj, value);
751
+ }
752
+
753
+ static inline void
754
+ _Py_atomic_store_uint32(uint32_t *obj, uint32_t value)
755
+ {
756
+ _Py_USING_STD;
757
+ atomic_store((_Atomic(uint32_t)*)obj, value);
758
+ }
759
+
760
+ static inline void
761
+ _Py_atomic_store_uint64(uint64_t *obj, uint64_t value)
762
+ {
763
+ _Py_USING_STD;
764
+ atomic_store((_Atomic(uint64_t)*)obj, value);
765
+ }
766
+
767
+ static inline void
768
+ _Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value)
769
+ {
770
+ _Py_USING_STD;
771
+ atomic_store((_Atomic(uintptr_t)*)obj, value);
772
+ }
773
+
774
+ static inline void
775
+ _Py_atomic_store_uint(unsigned int *obj, unsigned int value)
776
+ {
777
+ _Py_USING_STD;
778
+ atomic_store((_Atomic(unsigned int)*)obj, value);
779
+ }
780
+
781
+ static inline void
782
+ _Py_atomic_store_ptr(void *obj, void *value)
783
+ {
784
+ _Py_USING_STD;
785
+ atomic_store((_Atomic(void*)*)obj, value);
786
+ }
787
+
788
+ static inline void
789
+ _Py_atomic_store_ssize(Py_ssize_t *obj, Py_ssize_t value)
790
+ {
791
+ _Py_USING_STD;
792
+ atomic_store((_Atomic(Py_ssize_t)*)obj, value);
793
+ }
794
+
795
+
796
+ // --- _Py_atomic_store_relaxed ----------------------------------------------
797
+
798
+ static inline void
799
+ _Py_atomic_store_int_relaxed(int *obj, int value)
800
+ {
801
+ _Py_USING_STD;
802
+ atomic_store_explicit((_Atomic(int)*)obj, value,
803
+ memory_order_relaxed);
804
+ }
805
+
806
+ static inline void
807
+ _Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value)
808
+ {
809
+ _Py_USING_STD;
810
+ atomic_store_explicit((_Atomic(int8_t)*)obj, value,
811
+ memory_order_relaxed);
812
+ }
813
+
814
+ static inline void
815
+ _Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value)
816
+ {
817
+ _Py_USING_STD;
818
+ atomic_store_explicit((_Atomic(int16_t)*)obj, value,
819
+ memory_order_relaxed);
820
+ }
821
+
822
+ static inline void
823
+ _Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value)
824
+ {
825
+ _Py_USING_STD;
826
+ atomic_store_explicit((_Atomic(int32_t)*)obj, value,
827
+ memory_order_relaxed);
828
+ }
829
+
830
+ static inline void
831
+ _Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value)
832
+ {
833
+ _Py_USING_STD;
834
+ atomic_store_explicit((_Atomic(int64_t)*)obj, value,
835
+ memory_order_relaxed);
836
+ }
837
+
838
+ static inline void
839
+ _Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value)
840
+ {
841
+ _Py_USING_STD;
842
+ atomic_store_explicit((_Atomic(intptr_t)*)obj, value,
843
+ memory_order_relaxed);
844
+ }
845
+
846
+ static inline void
847
+ _Py_atomic_store_uint8_relaxed(uint8_t *obj, uint8_t value)
848
+ {
849
+ _Py_USING_STD;
850
+ atomic_store_explicit((_Atomic(uint8_t)*)obj, value,
851
+ memory_order_relaxed);
852
+ }
853
+
854
+ static inline void
855
+ _Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value)
856
+ {
857
+ _Py_USING_STD;
858
+ atomic_store_explicit((_Atomic(uint16_t)*)obj, value,
859
+ memory_order_relaxed);
860
+ }
861
+
862
+ static inline void
863
+ _Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value)
864
+ {
865
+ _Py_USING_STD;
866
+ atomic_store_explicit((_Atomic(uint32_t)*)obj, value,
867
+ memory_order_relaxed);
868
+ }
869
+
870
+ static inline void
871
+ _Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value)
872
+ {
873
+ _Py_USING_STD;
874
+ atomic_store_explicit((_Atomic(uint64_t)*)obj, value,
875
+ memory_order_relaxed);
876
+ }
877
+
878
+ static inline void
879
+ _Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value)
880
+ {
881
+ _Py_USING_STD;
882
+ atomic_store_explicit((_Atomic(uintptr_t)*)obj, value,
883
+ memory_order_relaxed);
884
+ }
885
+
886
+ static inline void
887
+ _Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int value)
888
+ {
889
+ _Py_USING_STD;
890
+ atomic_store_explicit((_Atomic(unsigned int)*)obj, value,
891
+ memory_order_relaxed);
892
+ }
893
+
894
+ static inline void
895
+ _Py_atomic_store_ptr_relaxed(void *obj, void *value)
896
+ {
897
+ _Py_USING_STD;
898
+ atomic_store_explicit((_Atomic(void*)*)obj, value,
899
+ memory_order_relaxed);
900
+ }
901
+
902
+ static inline void
903
+ _Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value)
904
+ {
905
+ _Py_USING_STD;
906
+ atomic_store_explicit((_Atomic(Py_ssize_t)*)obj, value,
907
+ memory_order_relaxed);
908
+ }
909
+
910
+ static inline void
911
+ _Py_atomic_store_ullong_relaxed(unsigned long long *obj,
912
+ unsigned long long value)
913
+ {
914
+ _Py_USING_STD;
915
+ atomic_store_explicit((_Atomic(unsigned long long)*)obj, value,
916
+ memory_order_relaxed);
917
+ }
918
+
919
+ static inline void
920
+ _Py_atomic_store_char_relaxed(char *obj, char value)
921
+ {
922
+ _Py_USING_STD;
923
+ atomic_store_explicit((_Atomic(char)*)obj, value,
924
+ memory_order_relaxed);
925
+ }
926
+
927
+ static inline void
928
+ _Py_atomic_store_uchar_relaxed(unsigned char *obj, unsigned char value)
929
+ {
930
+ _Py_USING_STD;
931
+ atomic_store_explicit((_Atomic(unsigned char)*)obj, value,
932
+ memory_order_relaxed);
933
+ }
934
+
935
+ static inline void
936
+ _Py_atomic_store_short_relaxed(short *obj, short value)
937
+ {
938
+ _Py_USING_STD;
939
+ atomic_store_explicit((_Atomic(short)*)obj, value,
940
+ memory_order_relaxed);
941
+ }
942
+
943
+ static inline void
944
+ _Py_atomic_store_ushort_relaxed(unsigned short *obj, unsigned short value)
945
+ {
946
+ _Py_USING_STD;
947
+ atomic_store_explicit((_Atomic(unsigned short)*)obj, value,
948
+ memory_order_relaxed);
949
+ }
950
+
951
+ static inline void
952
+ _Py_atomic_store_long_relaxed(long *obj, long value)
953
+ {
954
+ _Py_USING_STD;
955
+ atomic_store_explicit((_Atomic(long)*)obj, value,
956
+ memory_order_relaxed);
957
+ }
958
+
959
+ static inline void
960
+ _Py_atomic_store_float_relaxed(float *obj, float value)
961
+ {
962
+ _Py_USING_STD;
963
+ atomic_store_explicit((_Atomic(float)*)obj, value,
964
+ memory_order_relaxed);
965
+ }
966
+
967
+ static inline void
968
+ _Py_atomic_store_double_relaxed(double *obj, double value)
969
+ {
970
+ _Py_USING_STD;
971
+ atomic_store_explicit((_Atomic(double)*)obj, value,
972
+ memory_order_relaxed);
973
+ }
974
+
975
+ static inline void
976
+ _Py_atomic_store_llong_relaxed(long long *obj, long long value)
977
+ {
978
+ _Py_USING_STD;
979
+ atomic_store_explicit((_Atomic(long long)*)obj, value,
980
+ memory_order_relaxed);
981
+ }
982
+
983
+
984
+ // --- _Py_atomic_load_ptr_acquire / _Py_atomic_store_ptr_release ------------
985
+
986
+ static inline void *
987
+ _Py_atomic_load_ptr_acquire(const void *obj)
988
+ {
989
+ _Py_USING_STD;
990
+ return atomic_load_explicit((const _Atomic(void*)*)obj,
991
+ memory_order_acquire);
992
+ }
993
+
994
+ static inline uintptr_t
995
+ _Py_atomic_load_uintptr_acquire(const uintptr_t *obj)
996
+ {
997
+ _Py_USING_STD;
998
+ return atomic_load_explicit((const _Atomic(uintptr_t)*)obj,
999
+ memory_order_acquire);
1000
+ }
1001
+
1002
+ static inline void
1003
+ _Py_atomic_store_ptr_release(void *obj, void *value)
1004
+ {
1005
+ _Py_USING_STD;
1006
+ atomic_store_explicit((_Atomic(void*)*)obj, value,
1007
+ memory_order_release);
1008
+ }
1009
+
1010
+ static inline void
1011
+ _Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value)
1012
+ {
1013
+ _Py_USING_STD;
1014
+ atomic_store_explicit((_Atomic(uintptr_t)*)obj, value,
1015
+ memory_order_release);
1016
+ }
1017
+
1018
+ static inline void
1019
+ _Py_atomic_store_int_release(int *obj, int value)
1020
+ {
1021
+ _Py_USING_STD;
1022
+ atomic_store_explicit((_Atomic(int)*)obj, value,
1023
+ memory_order_release);
1024
+ }
1025
+
1026
+ static inline void
1027
+ _Py_atomic_store_uint_release(unsigned int *obj, unsigned int value)
1028
+ {
1029
+ _Py_USING_STD;
1030
+ atomic_store_explicit((_Atomic(unsigned int)*)obj, value,
1031
+ memory_order_release);
1032
+ }
1033
+
1034
+ static inline void
1035
+ _Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value)
1036
+ {
1037
+ _Py_USING_STD;
1038
+ atomic_store_explicit((_Atomic(Py_ssize_t)*)obj, value,
1039
+ memory_order_release);
1040
+ }
1041
+
1042
+ static inline int
1043
+ _Py_atomic_load_int_acquire(const int *obj)
1044
+ {
1045
+ _Py_USING_STD;
1046
+ return atomic_load_explicit((const _Atomic(int)*)obj,
1047
+ memory_order_acquire);
1048
+ }
1049
+
1050
+ static inline void
1051
+ _Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value)
1052
+ {
1053
+ _Py_USING_STD;
1054
+ atomic_store_explicit((_Atomic(uint32_t)*)obj, value,
1055
+ memory_order_release);
1056
+ }
1057
+
1058
+ static inline void
1059
+ _Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value)
1060
+ {
1061
+ _Py_USING_STD;
1062
+ atomic_store_explicit((_Atomic(uint64_t)*)obj, value,
1063
+ memory_order_release);
1064
+ }
1065
+
1066
+ static inline uint64_t
1067
+ _Py_atomic_load_uint64_acquire(const uint64_t *obj)
1068
+ {
1069
+ _Py_USING_STD;
1070
+ return atomic_load_explicit((const _Atomic(uint64_t)*)obj,
1071
+ memory_order_acquire);
1072
+ }
1073
+
1074
+ static inline uint32_t
1075
+ _Py_atomic_load_uint32_acquire(const uint32_t *obj)
1076
+ {
1077
+ _Py_USING_STD;
1078
+ return atomic_load_explicit((const _Atomic(uint32_t)*)obj,
1079
+ memory_order_acquire);
1080
+ }
1081
+
1082
+ static inline Py_ssize_t
1083
+ _Py_atomic_load_ssize_acquire(const Py_ssize_t *obj)
1084
+ {
1085
+ _Py_USING_STD;
1086
+ return atomic_load_explicit((const _Atomic(Py_ssize_t)*)obj,
1087
+ memory_order_acquire);
1088
+ }
1089
+
1090
+
1091
+ // --- _Py_atomic_fence ------------------------------------------------------
1092
+
1093
+ static inline void
1094
+ _Py_atomic_fence_seq_cst(void)
1095
+ {
1096
+ _Py_USING_STD;
1097
+ atomic_thread_fence(memory_order_seq_cst);
1098
+ }
1099
+
1100
+ static inline void
1101
+ _Py_atomic_fence_acquire(void)
1102
+ {
1103
+ _Py_USING_STD;
1104
+ atomic_thread_fence(memory_order_acquire);
1105
+ }
1106
+
1107
+ static inline void
1108
+ _Py_atomic_fence_release(void)
1109
+ {
1110
+ _Py_USING_STD;
1111
+ atomic_thread_fence(memory_order_release);
1112
+ }