proteus-python 2026.7.0__tar.gz

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 (805) hide show
  1. proteus_python-2026.7.0/.clang-format +1 -0
  2. proteus_python-2026.7.0/.clang-tidy +26 -0
  3. proteus_python-2026.7.0/.github/workflows/check-headers.yml +27 -0
  4. proteus_python-2026.7.0/.github/workflows/ci-build-test.yml +184 -0
  5. proteus_python-2026.7.0/.github/workflows/ci-pr-pages.yml +179 -0
  6. proteus_python-2026.7.0/.github/workflows/ci-test-spack.yml +49 -0
  7. proteus_python-2026.7.0/.github/workflows/ci-wheels.yml +572 -0
  8. proteus_python-2026.7.0/.github/workflows/cpp-linter.yml +59 -0
  9. proteus_python-2026.7.0/.github/workflows/deploy-pages-main.yml +47 -0
  10. proteus_python-2026.7.0/.github/workflows/deploy-pages-release.yml +109 -0
  11. proteus_python-2026.7.0/.github/workflows/gh-pages-docs.yml +23 -0
  12. proteus_python-2026.7.0/.gitignore +10 -0
  13. proteus_python-2026.7.0/.gitlab/custom-jobs-and-variables.yml +99 -0
  14. proteus_python-2026.7.0/.gitlab/jobs/matrix-benchmarks.yml +19 -0
  15. proteus_python-2026.7.0/.gitlab/jobs/matrix-integration.yml +44 -0
  16. proteus_python-2026.7.0/.gitlab/jobs/matrix-spack.yml +23 -0
  17. proteus_python-2026.7.0/.gitlab/jobs/matrix.yml +68 -0
  18. proteus_python-2026.7.0/.gitlab/jobs/tioga-benchmarks.yml +20 -0
  19. proteus_python-2026.7.0/.gitlab/jobs/tioga-integration.yml +31 -0
  20. proteus_python-2026.7.0/.gitlab/jobs/tioga-spack.yml +19 -0
  21. proteus_python-2026.7.0/.gitlab/jobs/tioga.yml +64 -0
  22. proteus_python-2026.7.0/.gitlab/jobs/tuolumne-benchmarks.yml +20 -0
  23. proteus_python-2026.7.0/.gitlab/jobs/tuolumne-integration.yml +31 -0
  24. proteus_python-2026.7.0/.gitlab/jobs/tuolumne-spack.yml +19 -0
  25. proteus_python-2026.7.0/.gitlab/jobs/tuolumne.yml +62 -0
  26. proteus_python-2026.7.0/.gitlab/subscribed-pipelines.yml +298 -0
  27. proteus_python-2026.7.0/.gitlab-ci.yml +236 -0
  28. proteus_python-2026.7.0/.pre-commit-config.yaml +16 -0
  29. proteus_python-2026.7.0/CMakeLists.txt +148 -0
  30. proteus_python-2026.7.0/CODE_OF_CONDUCT.md +43 -0
  31. proteus_python-2026.7.0/CONTRIBUTING.md +166 -0
  32. proteus_python-2026.7.0/COPYRIGHT +20 -0
  33. proteus_python-2026.7.0/LICENSE +218 -0
  34. proteus_python-2026.7.0/NOTICE +16 -0
  35. proteus_python-2026.7.0/PKG-INFO +287 -0
  36. proteus_python-2026.7.0/README.md +257 -0
  37. proteus_python-2026.7.0/bindings/python/CMakeLists.txt +95 -0
  38. proteus_python-2026.7.0/bindings/python/CppBindings.cpp +62 -0
  39. proteus_python-2026.7.0/bindings/python/LLVMIRBindings.cpp +43 -0
  40. proteus_python-2026.7.0/bindings/python/MLIRBindings.cpp +43 -0
  41. proteus_python-2026.7.0/bindings/python/PythonBindings.cpp +467 -0
  42. proteus_python-2026.7.0/bindings/python/PythonBindings.h +64 -0
  43. proteus_python-2026.7.0/bindings/python/tests/CMakeLists.txt +107 -0
  44. proteus_python-2026.7.0/bindings/python/tests/gpu_runtime.py +213 -0
  45. proteus_python-2026.7.0/bindings/python/tests/test_backend_loader.py +20 -0
  46. proteus_python-2026.7.0/bindings/python/tests/test_backend_loader_zero_backends.py +29 -0
  47. proteus_python-2026.7.0/bindings/python/tests/test_backend_selection.py +150 -0
  48. proteus_python-2026.7.0/bindings/python/tests/test_gpu_cpp_launch_validation.py +51 -0
  49. proteus_python-2026.7.0/bindings/python/tests/test_gpu_cpp_pointer_validation.py +54 -0
  50. proteus_python-2026.7.0/bindings/python/tests/test_gpu_cpp_smoke.py +28 -0
  51. proteus_python-2026.7.0/bindings/python/tests/test_gpu_mlir_fatal_paths.py +25 -0
  52. proteus_python-2026.7.0/bindings/python/tests/test_gpu_mlir_smoke.py +43 -0
  53. proteus_python-2026.7.0/bindings/python/tests/test_gpu_mlir_validation.py +62 -0
  54. proteus_python-2026.7.0/bindings/python/tests/test_host_cpp_smoke.py +28 -0
  55. proteus_python-2026.7.0/bindings/python/tests/test_host_cpp_validation.py +98 -0
  56. proteus_python-2026.7.0/bindings/python/tests/test_host_llvmir_smoke.py +39 -0
  57. proteus_python-2026.7.0/bindings/python/tests/test_host_llvmir_validation.py +28 -0
  58. proteus_python-2026.7.0/bindings/python/tests/test_invalid_clang_override.py +35 -0
  59. proteus_python-2026.7.0/bindings/python/tests/test_proteus_init_exports.py +54 -0
  60. proteus_python-2026.7.0/bindings/python/tests/test_support.py +99 -0
  61. proteus_python-2026.7.0/bindings/python/tests/test_wheel_layout.py +38 -0
  62. proteus_python-2026.7.0/bindings/python/tests/test_wildcard_import.py +12 -0
  63. proteus_python-2026.7.0/cmake/ProteusFunctions.cmake +30 -0
  64. proteus_python-2026.7.0/cmake/SetupLLVM.cmake +30 -0
  65. proteus_python-2026.7.0/cmake/proteusConfig.cmake.in +49 -0
  66. proteus_python-2026.7.0/codecov.yml +21 -0
  67. proteus_python-2026.7.0/docs/Doxyfile +2930 -0
  68. proteus_python-2026.7.0/docs/assets/proteus-logo-small.png +0 -0
  69. proteus_python-2026.7.0/docs/assets/proteus-logo.png +0 -0
  70. proteus_python-2026.7.0/docs/dev/api.md +1 -0
  71. proteus_python-2026.7.0/docs/dev/concepts.md +184 -0
  72. proteus_python-2026.7.0/docs/dev/optimization-pipeline.md +116 -0
  73. proteus_python-2026.7.0/docs/dev/pr.md +159 -0
  74. proteus_python-2026.7.0/docs/dev/proteus-internals.md +14 -0
  75. proteus_python-2026.7.0/docs/dev/python-wheel.md +478 -0
  76. proteus_python-2026.7.0/docs/dev/runtime-cuda-toolchain.md +118 -0
  77. proteus_python-2026.7.0/docs/dev/runtime-hip-toolchain.md +101 -0
  78. proteus_python-2026.7.0/docs/index.md +15 -0
  79. proteus_python-2026.7.0/docs/mainpage.dox +9 -0
  80. proteus_python-2026.7.0/docs/stylesheets/extra.css +13 -0
  81. proteus_python-2026.7.0/docs/user/annotations.md +172 -0
  82. proteus_python-2026.7.0/docs/user/config.md +32 -0
  83. proteus_python-2026.7.0/docs/user/cpp-frontend.md +173 -0
  84. proteus_python-2026.7.0/docs/user/dsl.md +153 -0
  85. proteus_python-2026.7.0/docs/user/install.md +110 -0
  86. proteus_python-2026.7.0/docs/user/integration.md +73 -0
  87. proteus_python-2026.7.0/docs/user/interface.md +25 -0
  88. proteus_python-2026.7.0/docs/user/llvmir-frontend.md +134 -0
  89. proteus_python-2026.7.0/docs/user/mlir-frontend.md +120 -0
  90. proteus_python-2026.7.0/docs/user/resources.md +17 -0
  91. proteus_python-2026.7.0/include/proteus/AddressSpace.h +20 -0
  92. proteus_python-2026.7.0/include/proteus/CompilerInterfaceTypes.h +112 -0
  93. proteus_python-2026.7.0/include/proteus/CppJitCompilerBackend.h +10 -0
  94. proteus_python-2026.7.0/include/proteus/CppJitModule.h +469 -0
  95. proteus_python-2026.7.0/include/proteus/Error.h +31 -0
  96. proteus_python-2026.7.0/include/proteus/Frontend/Builtins.h +32 -0
  97. proteus_python-2026.7.0/include/proteus/Frontend/CodeBuilder.h +245 -0
  98. proteus_python-2026.7.0/include/proteus/Frontend/Dispatcher.h +129 -0
  99. proteus_python-2026.7.0/include/proteus/Frontend/Func.h +492 -0
  100. proteus_python-2026.7.0/include/proteus/Frontend/IRFunction.h +16 -0
  101. proteus_python-2026.7.0/include/proteus/Frontend/IRType.h +63 -0
  102. proteus_python-2026.7.0/include/proteus/Frontend/IRValue.h +22 -0
  103. proteus_python-2026.7.0/include/proteus/Frontend/LLVMCodeBuilder.h +322 -0
  104. proteus_python-2026.7.0/include/proteus/Frontend/LLVMTypeMap.h +48 -0
  105. proteus_python-2026.7.0/include/proteus/Frontend/LoopNest.h +201 -0
  106. proteus_python-2026.7.0/include/proteus/Frontend/MLIRCodeBuilder.h +134 -0
  107. proteus_python-2026.7.0/include/proteus/Frontend/TargetModel.h +18 -0
  108. proteus_python-2026.7.0/include/proteus/Frontend/TypeMap.h +131 -0
  109. proteus_python-2026.7.0/include/proteus/Frontend/TypeTraits.h +42 -0
  110. proteus_python-2026.7.0/include/proteus/Frontend/Var.h +1130 -0
  111. proteus_python-2026.7.0/include/proteus/Init.h +24 -0
  112. proteus_python-2026.7.0/include/proteus/JitFrontend.h +202 -0
  113. proteus_python-2026.7.0/include/proteus/JitFuncAttribute.h +12 -0
  114. proteus_python-2026.7.0/include/proteus/JitInterface.h +141 -0
  115. proteus_python-2026.7.0/include/proteus/KernelMetadata.h +38 -0
  116. proteus_python-2026.7.0/include/proteus/LLVMIRJitModule.h +144 -0
  117. proteus_python-2026.7.0/include/proteus/MLIRJitModule.h +135 -0
  118. proteus_python-2026.7.0/include/proteus/TimeTracing.h +72 -0
  119. proteus_python-2026.7.0/mkdocs.yml +54 -0
  120. proteus_python-2026.7.0/packaging/python/backend-cuda/README.md +3 -0
  121. proteus_python-2026.7.0/packaging/python/backend-cuda/pyproject.toml +57 -0
  122. proteus_python-2026.7.0/packaging/python/backend-host/README.md +3 -0
  123. proteus_python-2026.7.0/packaging/python/backend-host/pyproject.toml +63 -0
  124. proteus_python-2026.7.0/packaging/python/backend-rocm/README.md +3 -0
  125. proteus_python-2026.7.0/packaging/python/backend-rocm/pyproject.toml +57 -0
  126. proteus_python-2026.7.0/packaging/python/image-scripts/build-llvm-manylinux.sh +70 -0
  127. proteus_python-2026.7.0/packaging/python/image-scripts/build-manylinux-cuda-container.sh +47 -0
  128. proteus_python-2026.7.0/packaging/python/image-scripts/build-manylinux-llvm-container.sh +46 -0
  129. proteus_python-2026.7.0/packaging/python/image-scripts/build-manylinux-rocm-container.sh +47 -0
  130. proteus_python-2026.7.0/packaging/python/image-scripts/manylinux-cuda.Dockerfile +17 -0
  131. proteus_python-2026.7.0/packaging/python/image-scripts/manylinux-llvm.Dockerfile +15 -0
  132. proteus_python-2026.7.0/packaging/python/image-scripts/manylinux-rocm.Dockerfile +25 -0
  133. proteus_python-2026.7.0/packaging/spack/README.md +20 -0
  134. proteus_python-2026.7.0/packaging/spack/packages/proteus/package.py +130 -0
  135. proteus_python-2026.7.0/packaging/spack/repo.yaml +2 -0
  136. proteus_python-2026.7.0/pyproject.toml +12 -0
  137. proteus_python-2026.7.0/python/proteus/__init__.py +83 -0
  138. proteus_python-2026.7.0/python/proteus/_backend.py +181 -0
  139. proteus_python-2026.7.0/python/proteus/_proteus.py +12 -0
  140. proteus_python-2026.7.0/python/proteus_backend/__init__.py +17 -0
  141. proteus_python-2026.7.0/python/proteus_backend_cuda/__init__.py +17 -0
  142. proteus_python-2026.7.0/python/proteus_backend_cuda/_selector.py +60 -0
  143. proteus_python-2026.7.0/python/proteus_backend_cuda/manifest.json.in +10 -0
  144. proteus_python-2026.7.0/python/proteus_backend_host/__init__.py +17 -0
  145. proteus_python-2026.7.0/python/proteus_backend_host/_selector.py +57 -0
  146. proteus_python-2026.7.0/python/proteus_backend_host/manifest.json.in +10 -0
  147. proteus_python-2026.7.0/python/proteus_backend_rocm/__init__.py +17 -0
  148. proteus_python-2026.7.0/python/proteus_backend_rocm/_selector.py +60 -0
  149. proteus_python-2026.7.0/python/proteus_backend_rocm/manifest.json.in +10 -0
  150. proteus_python-2026.7.0/python/proteus_python.egg-info/PKG-INFO +287 -0
  151. proteus_python-2026.7.0/python/proteus_python.egg-info/SOURCES.txt +803 -0
  152. proteus_python-2026.7.0/python/proteus_python.egg-info/dependency_links.txt +1 -0
  153. proteus_python-2026.7.0/python/proteus_python.egg-info/top_level.txt +1 -0
  154. proteus_python-2026.7.0/scripts/build-llvm-lassen.sh +44 -0
  155. proteus_python-2026.7.0/scripts/checks/check-headers.py +27 -0
  156. proteus_python-2026.7.0/scripts/generate_simple_wheel_index.py +352 -0
  157. proteus_python-2026.7.0/scripts/gitlab/ci-build-test.sh +187 -0
  158. proteus_python-2026.7.0/scripts/gitlab/ci-run-benchmarks.sh +191 -0
  159. proteus_python-2026.7.0/scripts/remove_prerelease_mike_docs.py +98 -0
  160. proteus_python-2026.7.0/scripts/setup-cuda.sh +40 -0
  161. proteus_python-2026.7.0/scripts/setup-host.sh +24 -0
  162. proteus_python-2026.7.0/scripts/setup-rocm.sh +27 -0
  163. proteus_python-2026.7.0/setup.cfg +4 -0
  164. proteus_python-2026.7.0/setup.py +37 -0
  165. proteus_python-2026.7.0/src/CMakeLists.txt +2 -0
  166. proteus_python-2026.7.0/src/include/proteus/impl/Caching/MPIHelpers.h +96 -0
  167. proteus_python-2026.7.0/src/include/proteus/impl/Caching/MPILocalLookupCache.h +32 -0
  168. proteus_python-2026.7.0/src/include/proteus/impl/Caching/MPIRemoteLookupCache.h +59 -0
  169. proteus_python-2026.7.0/src/include/proteus/impl/Caching/MPIStorageCache.h +68 -0
  170. proteus_python-2026.7.0/src/include/proteus/impl/Caching/MemoryCache.h +124 -0
  171. proteus_python-2026.7.0/src/include/proteus/impl/Caching/ObjectCache.h +58 -0
  172. proteus_python-2026.7.0/src/include/proteus/impl/Caching/ObjectCacheChain.h +53 -0
  173. proteus_python-2026.7.0/src/include/proteus/impl/Caching/StorageCache.h +58 -0
  174. proteus_python-2026.7.0/src/include/proteus/impl/Cloning.h +563 -0
  175. proteus_python-2026.7.0/src/include/proteus/impl/CompilationTask.h +189 -0
  176. proteus_python-2026.7.0/src/include/proteus/impl/CompiledLibrary.h +42 -0
  177. proteus_python-2026.7.0/src/include/proteus/impl/CompilerAsync.h +179 -0
  178. proteus_python-2026.7.0/src/include/proteus/impl/CompilerInterfaceDevice.h +35 -0
  179. proteus_python-2026.7.0/src/include/proteus/impl/CompilerInterfaceDeviceInternal.h +54 -0
  180. proteus_python-2026.7.0/src/include/proteus/impl/CompilerInterfaceRuntimeConstantInfo.h +266 -0
  181. proteus_python-2026.7.0/src/include/proteus/impl/CompilerSync.h +35 -0
  182. proteus_python-2026.7.0/src/include/proteus/impl/Config.h +450 -0
  183. proteus_python-2026.7.0/src/include/proteus/impl/CoreDevice.h +7 -0
  184. proteus_python-2026.7.0/src/include/proteus/impl/CoreDeviceCUDA.h +125 -0
  185. proteus_python-2026.7.0/src/include/proteus/impl/CoreDeviceHIP.h +77 -0
  186. proteus_python-2026.7.0/src/include/proteus/impl/CoreLLVM.h +330 -0
  187. proteus_python-2026.7.0/src/include/proteus/impl/CoreLLVMCUDA.h +274 -0
  188. proteus_python-2026.7.0/src/include/proteus/impl/CoreLLVMDevice.h +346 -0
  189. proteus_python-2026.7.0/src/include/proteus/impl/CoreLLVMHIP.h +549 -0
  190. proteus_python-2026.7.0/src/include/proteus/impl/Debug.h +29 -0
  191. proteus_python-2026.7.0/src/include/proteus/impl/Frontend/CUDAToolchain.h +19 -0
  192. proteus_python-2026.7.0/src/include/proteus/impl/Frontend/CppJitCompiler.h +86 -0
  193. proteus_python-2026.7.0/src/include/proteus/impl/Frontend/DispatcherCUDA.h +135 -0
  194. proteus_python-2026.7.0/src/include/proteus/impl/Frontend/DispatcherHIP.h +210 -0
  195. proteus_python-2026.7.0/src/include/proteus/impl/Frontend/DispatcherHost.h +107 -0
  196. proteus_python-2026.7.0/src/include/proteus/impl/Frontend/DispatcherHostCUDA.h +33 -0
  197. proteus_python-2026.7.0/src/include/proteus/impl/Frontend/DispatcherHostHIP.h +33 -0
  198. proteus_python-2026.7.0/src/include/proteus/impl/Frontend/HIPToolchain.h +19 -0
  199. proteus_python-2026.7.0/src/include/proteus/impl/Frontend/JitFuncAttribute.h +14 -0
  200. proteus_python-2026.7.0/src/include/proteus/impl/Frontend/MLIRLower.h +42 -0
  201. proteus_python-2026.7.0/src/include/proteus/impl/GlobalVarInfo.h +12 -0
  202. proteus_python-2026.7.0/src/include/proteus/impl/HIPRuntimeAPI.h +44 -0
  203. proteus_python-2026.7.0/src/include/proteus/impl/Hashing.h +192 -0
  204. proteus_python-2026.7.0/src/include/proteus/impl/JitEngine.h +51 -0
  205. proteus_python-2026.7.0/src/include/proteus/impl/JitEngineDevice.h +769 -0
  206. proteus_python-2026.7.0/src/include/proteus/impl/JitEngineDeviceCUDA.h +66 -0
  207. proteus_python-2026.7.0/src/include/proteus/impl/JitEngineDeviceHIP.h +114 -0
  208. proteus_python-2026.7.0/src/include/proteus/impl/JitEngineHost.h +70 -0
  209. proteus_python-2026.7.0/src/include/proteus/impl/JitEngineInfoRegistry.h +103 -0
  210. proteus_python-2026.7.0/src/include/proteus/impl/LLVMIRFunction.h +22 -0
  211. proteus_python-2026.7.0/src/include/proteus/impl/LLVMIRValue.h +21 -0
  212. proteus_python-2026.7.0/src/include/proteus/impl/LambdaRegistry.h +112 -0
  213. proteus_python-2026.7.0/src/include/proteus/impl/Logger.h +66 -0
  214. proteus_python-2026.7.0/src/include/proteus/impl/MLIRIRFunction.h +30 -0
  215. proteus_python-2026.7.0/src/include/proteus/impl/MLIRIRValue.h +24 -0
  216. proteus_python-2026.7.0/src/include/proteus/impl/RuntimeConstantTypeHelpers.h +155 -0
  217. proteus_python-2026.7.0/src/include/proteus/impl/TimeTracingInit.h +43 -0
  218. proteus_python-2026.7.0/src/include/proteus/impl/TransformArgumentSpecialization.h +198 -0
  219. proteus_python-2026.7.0/src/include/proteus/impl/TransformLambdaSpecialization.h +155 -0
  220. proteus_python-2026.7.0/src/include/proteus/impl/TransformSharedArray.h +115 -0
  221. proteus_python-2026.7.0/src/include/proteus/impl/Utils.h +94 -0
  222. proteus_python-2026.7.0/src/include/proteus/impl/UtilsCUDA.h +48 -0
  223. proteus_python-2026.7.0/src/include/proteus/impl/UtilsHIP.h +40 -0
  224. proteus_python-2026.7.0/src/pass/AnnotationHandler.cpp +1361 -0
  225. proteus_python-2026.7.0/src/pass/AnnotationHandler.h +97 -0
  226. proteus_python-2026.7.0/src/pass/CMakeLists.txt +90 -0
  227. proteus_python-2026.7.0/src/pass/Helpers.h +177 -0
  228. proteus_python-2026.7.0/src/pass/ProteusPass.cpp +1641 -0
  229. proteus_python-2026.7.0/src/pass/Types.h +54 -0
  230. proteus_python-2026.7.0/src/runtime/CMakeLists.txt +428 -0
  231. proteus_python-2026.7.0/src/runtime/CUDADriverAPI.cpp +199 -0
  232. proteus_python-2026.7.0/src/runtime/Caching/MPIHelpers.cpp +158 -0
  233. proteus_python-2026.7.0/src/runtime/Caching/MPILocalLookupCache.cpp +34 -0
  234. proteus_python-2026.7.0/src/runtime/Caching/MPIRemoteLookupCache.cpp +240 -0
  235. proteus_python-2026.7.0/src/runtime/Caching/MPIStorageCache.cpp +227 -0
  236. proteus_python-2026.7.0/src/runtime/Caching/ObjectCacheChain.cpp +171 -0
  237. proteus_python-2026.7.0/src/runtime/Caching/StorageCache.cpp +83 -0
  238. proteus_python-2026.7.0/src/runtime/CompiledLibrary.cpp +20 -0
  239. proteus_python-2026.7.0/src/runtime/CompilerInterfaceDevice.cpp +117 -0
  240. proteus_python-2026.7.0/src/runtime/CompilerInterfaceHost.cpp +57 -0
  241. proteus_python-2026.7.0/src/runtime/CompilerInterfaceRuntimeConstantInfo.cpp +54 -0
  242. proteus_python-2026.7.0/src/runtime/Error.cpp +41 -0
  243. proteus_python-2026.7.0/src/runtime/Frontend/Builtins.cpp +76 -0
  244. proteus_python-2026.7.0/src/runtime/Frontend/CUDAToolchain.cpp +253 -0
  245. proteus_python-2026.7.0/src/runtime/Frontend/CppJitCompiler.cpp +183 -0
  246. proteus_python-2026.7.0/src/runtime/Frontend/CppJitCompilerClang.cpp +269 -0
  247. proteus_python-2026.7.0/src/runtime/Frontend/CppJitCompilerNvcc.cpp +241 -0
  248. proteus_python-2026.7.0/src/runtime/Frontend/CppJitModule.cpp +98 -0
  249. proteus_python-2026.7.0/src/runtime/Frontend/Dispatcher.cpp +75 -0
  250. proteus_python-2026.7.0/src/runtime/Frontend/Func.cpp +50 -0
  251. proteus_python-2026.7.0/src/runtime/Frontend/HIPToolchain.cpp +281 -0
  252. proteus_python-2026.7.0/src/runtime/Frontend/JitFrontend.cpp +165 -0
  253. proteus_python-2026.7.0/src/runtime/Frontend/JitFuncAttribute.cpp +60 -0
  254. proteus_python-2026.7.0/src/runtime/Frontend/LLVMCodeBuilder.cpp +1316 -0
  255. proteus_python-2026.7.0/src/runtime/Frontend/LLVMIRJitModule.cpp +142 -0
  256. proteus_python-2026.7.0/src/runtime/Frontend/LLVMTypeMap.cpp +60 -0
  257. proteus_python-2026.7.0/src/runtime/Frontend/MLIRCodeBuilder.cpp +1829 -0
  258. proteus_python-2026.7.0/src/runtime/Frontend/MLIRJitModule.cpp +91 -0
  259. proteus_python-2026.7.0/src/runtime/Frontend/MLIRLower.cpp +584 -0
  260. proteus_python-2026.7.0/src/runtime/Frontend/TargetModel.cpp +55 -0
  261. proteus_python-2026.7.0/src/runtime/Frontend/TypeMap.cpp +136 -0
  262. proteus_python-2026.7.0/src/runtime/HIPRuntimeAPI.cpp +216 -0
  263. proteus_python-2026.7.0/src/runtime/Init.cpp +37 -0
  264. proteus_python-2026.7.0/src/runtime/JitEngine.cpp +49 -0
  265. proteus_python-2026.7.0/src/runtime/JitEngineDeviceCUDA.cpp +181 -0
  266. proteus_python-2026.7.0/src/runtime/JitEngineDeviceHIP.cpp +390 -0
  267. proteus_python-2026.7.0/src/runtime/JitEngineHost.cpp +439 -0
  268. proteus_python-2026.7.0/src/runtime/KernelMetadata.cpp +27 -0
  269. proteus_python-2026.7.0/src/runtime/ProteusCUDARuntimeBuiltins.cpp +39 -0
  270. proteus_python-2026.7.0/src/runtime/TimeTracing.cpp +74 -0
  271. proteus_python-2026.7.0/src/runtime/exports.map +8 -0
  272. proteus_python-2026.7.0/tests/CMakeLists.txt +59 -0
  273. proteus_python-2026.7.0/tests/cpu/CMakeLists.txt +69 -0
  274. proteus_python-2026.7.0/tests/cpu/custom_pipeline.cpp +38 -0
  275. proteus_python-2026.7.0/tests/cpu/daxpy.cpp +60 -0
  276. proteus_python-2026.7.0/tests/cpu/daxpy_annot_long.cpp +57 -0
  277. proteus_python-2026.7.0/tests/cpu/daxpy_annot_mix.cpp +57 -0
  278. proteus_python-2026.7.0/tests/cpu/daxpy_api.cpp +58 -0
  279. proteus_python-2026.7.0/tests/cpu/dynamic_jit_array.cpp +71 -0
  280. proteus_python-2026.7.0/tests/cpu/jit_eh.cpp +42 -0
  281. proteus_python-2026.7.0/tests/cpu/jit_struct.cpp +164 -0
  282. proteus_python-2026.7.0/tests/cpu/lambda.cpp +57 -0
  283. proteus_python-2026.7.0/tests/cpu/lambda_def.cpp +36 -0
  284. proteus_python-2026.7.0/tests/cpu/lambda_multiple.cpp +54 -0
  285. proteus_python-2026.7.0/tests/cpu/lambda_multiple_api.cpp +51 -0
  286. proteus_python-2026.7.0/tests/cpu/lambda_spec_test.cpp +62 -0
  287. proteus_python-2026.7.0/tests/cpu/modify_gvar.cpp +49 -0
  288. proteus_python-2026.7.0/tests/cpu/types.cpp +70 -0
  289. proteus_python-2026.7.0/tests/cpu/types_api.cpp +71 -0
  290. proteus_python-2026.7.0/tests/cpu/types_jit_array.cpp +105 -0
  291. proteus_python-2026.7.0/tests/frontend/CMakeLists.txt +12 -0
  292. proteus_python-2026.7.0/tests/frontend/cpu/CMakeLists.txt +76 -0
  293. proteus_python-2026.7.0/tests/frontend/cpu/add_vectors.cpp +84 -0
  294. proteus_python-2026.7.0/tests/frontend/cpu/add_vectors_runconst.cpp +80 -0
  295. proteus_python-2026.7.0/tests/frontend/cpu/array.cpp +103 -0
  296. proteus_python-2026.7.0/tests/frontend/cpu/convert.cpp +83 -0
  297. proteus_python-2026.7.0/tests/frontend/cpu/cpp_instantiate.cpp +57 -0
  298. proteus_python-2026.7.0/tests/frontend/cpu/cpp_instantiate_extraargs.cpp +43 -0
  299. proteus_python-2026.7.0/tests/frontend/cpu/cpp_same_symbol.cpp +51 -0
  300. proteus_python-2026.7.0/tests/frontend/cpu/cpp_source.cpp +71 -0
  301. proteus_python-2026.7.0/tests/frontend/cpu/cpp_store_handle.cpp +41 -0
  302. proteus_python-2026.7.0/tests/frontend/cpu/external_call.cpp +44 -0
  303. proteus_python-2026.7.0/tests/frontend/cpu/for.cpp +59 -0
  304. proteus_python-2026.7.0/tests/frontend/cpu/for_unroll.cpp +156 -0
  305. proteus_python-2026.7.0/tests/frontend/cpu/functional_blocks.cpp +70 -0
  306. proteus_python-2026.7.0/tests/frontend/cpu/get_address.cpp +72 -0
  307. proteus_python-2026.7.0/tests/frontend/cpu/if.cpp +204 -0
  308. proteus_python-2026.7.0/tests/frontend/cpu/internal_call.cpp +75 -0
  309. proteus_python-2026.7.0/tests/frontend/cpu/intrinsics.cpp +87 -0
  310. proteus_python-2026.7.0/tests/frontend/cpu/loopnest_1d.cpp +143 -0
  311. proteus_python-2026.7.0/tests/frontend/cpu/loopnest_3d.cpp +198 -0
  312. proteus_python-2026.7.0/tests/frontend/cpu/loopnest_3d_uniformtile.cpp +118 -0
  313. proteus_python-2026.7.0/tests/frontend/cpu/min.cpp +67 -0
  314. proteus_python-2026.7.0/tests/frontend/cpu/multi_module.cpp +105 -0
  315. proteus_python-2026.7.0/tests/frontend/cpu/operators.cpp +150 -0
  316. proteus_python-2026.7.0/tests/frontend/cpu/tiled_matmul.cpp +113 -0
  317. proteus_python-2026.7.0/tests/frontend/cpu/tiled_transpose.cpp +133 -0
  318. proteus_python-2026.7.0/tests/frontend/cpu/vars.cpp +230 -0
  319. proteus_python-2026.7.0/tests/frontend/cpu/while.cpp +59 -0
  320. proteus_python-2026.7.0/tests/frontend/gpu/CMakeLists.txt +91 -0
  321. proteus_python-2026.7.0/tests/frontend/gpu/adam.cpp +268 -0
  322. proteus_python-2026.7.0/tests/frontend/gpu/adam_runconst.cpp +272 -0
  323. proteus_python-2026.7.0/tests/frontend/gpu/add_vectors.cpp +118 -0
  324. proteus_python-2026.7.0/tests/frontend/gpu/add_vectors_runconst.cpp +118 -0
  325. proteus_python-2026.7.0/tests/frontend/gpu/atomics.cpp +141 -0
  326. proteus_python-2026.7.0/tests/frontend/gpu/convert.cpp +110 -0
  327. proteus_python-2026.7.0/tests/frontend/gpu/cpp_adam.cpp +207 -0
  328. proteus_python-2026.7.0/tests/frontend/gpu/cpp_device_nvcc.cpp +60 -0
  329. proteus_python-2026.7.0/tests/frontend/gpu/cpp_instantiate.cpp +88 -0
  330. proteus_python-2026.7.0/tests/frontend/gpu/cpp_instantiate_nvcc.cpp +87 -0
  331. proteus_python-2026.7.0/tests/frontend/gpu/cpp_instantiate_nvcc_shmem.cpp +84 -0
  332. proteus_python-2026.7.0/tests/frontend/gpu/cpp_instantiate_shmem.cpp +88 -0
  333. proteus_python-2026.7.0/tests/frontend/gpu/cpp_same_symbol.cpp +64 -0
  334. proteus_python-2026.7.0/tests/frontend/gpu/cpp_source.cpp +56 -0
  335. proteus_python-2026.7.0/tests/frontend/gpu/cpp_store_handle.cpp +58 -0
  336. proteus_python-2026.7.0/tests/frontend/gpu/floydwarshall.cpp +321 -0
  337. proteus_python-2026.7.0/tests/frontend/gpu/for.cpp +79 -0
  338. proteus_python-2026.7.0/tests/frontend/gpu/for_unroll.cpp +98 -0
  339. proteus_python-2026.7.0/tests/frontend/gpu/functional_blocks.cpp +88 -0
  340. proteus_python-2026.7.0/tests/frontend/gpu/get_address.cpp +101 -0
  341. proteus_python-2026.7.0/tests/frontend/gpu/if.cpp +255 -0
  342. proteus_python-2026.7.0/tests/frontend/gpu/internal_call.cpp +94 -0
  343. proteus_python-2026.7.0/tests/frontend/gpu/intrinsics.cpp +125 -0
  344. proteus_python-2026.7.0/tests/frontend/gpu/kernel_2d.cpp +124 -0
  345. proteus_python-2026.7.0/tests/frontend/gpu/kernel_3d.cpp +145 -0
  346. proteus_python-2026.7.0/tests/frontend/gpu/launch_bounds.cpp +46 -0
  347. proteus_python-2026.7.0/tests/frontend/gpu/multi_module.cpp +132 -0
  348. proteus_python-2026.7.0/tests/frontend/gpu/operators.cpp +203 -0
  349. proteus_python-2026.7.0/tests/frontend/gpu/shared_memory.cpp +106 -0
  350. proteus_python-2026.7.0/tests/frontend/gpu/vars.cpp +290 -0
  351. proteus_python-2026.7.0/tests/frontend/gpu/while.cpp +85 -0
  352. proteus_python-2026.7.0/tests/frontend/host_device/CMakeLists.txt +25 -0
  353. proteus_python-2026.7.0/tests/frontend/host_device/cpp_host_device.cpp +112 -0
  354. proteus_python-2026.7.0/tests/frontend/llvmir/CMakeLists.txt +5 -0
  355. proteus_python-2026.7.0/tests/frontend/llvmir/cpu/CMakeLists.txt +55 -0
  356. proteus_python-2026.7.0/tests/frontend/llvmir/cpu/llvmir_jit_module_bitcode.cpp +47 -0
  357. proteus_python-2026.7.0/tests/frontend/llvmir/cpu/llvmir_jit_module_bitcode_input.ll +5 -0
  358. proteus_python-2026.7.0/tests/frontend/llvmir/cpu/llvmir_jit_module_source.cpp +40 -0
  359. proteus_python-2026.7.0/tests/frontend/llvmir/gpu/CMakeLists.txt +73 -0
  360. proteus_python-2026.7.0/tests/frontend/llvmir/gpu/llvmir_gpu_jit_module_bitcode.cpp +70 -0
  361. proteus_python-2026.7.0/tests/frontend/llvmir/gpu/llvmir_gpu_jit_module_bitcode_input.CUDA.ll +10 -0
  362. proteus_python-2026.7.0/tests/frontend/llvmir/gpu/llvmir_gpu_jit_module_bitcode_input.HIP.ll +9 -0
  363. proteus_python-2026.7.0/tests/frontend/llvmir/gpu/llvmir_gpu_jit_module_source.cpp +77 -0
  364. proteus_python-2026.7.0/tests/frontend/mlir/CMakeLists.txt +5 -0
  365. proteus_python-2026.7.0/tests/frontend/mlir/cpu/CMakeLists.txt +76 -0
  366. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_add_vectors.cpp +40 -0
  367. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_add_vectors_runconst.cpp +80 -0
  368. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_array.cpp +51 -0
  369. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_atomics.cpp +44 -0
  370. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_calls.cpp +42 -0
  371. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_casts.cpp +41 -0
  372. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_cmp.cpp +37 -0
  373. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_convert.cpp +83 -0
  374. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_external_call.cpp +44 -0
  375. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_for.cpp +41 -0
  376. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_for_unroll.cpp +156 -0
  377. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_functional_blocks.cpp +70 -0
  378. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_generic_load_store.cpp +66 -0
  379. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_get_address.cpp +76 -0
  380. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_host_jit_execute.cpp +40 -0
  381. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_if.cpp +36 -0
  382. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_int_atomics.cpp +56 -0
  383. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_internal_call.cpp +75 -0
  384. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_intrinsics.cpp +42 -0
  385. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_jit_module_source.cpp +40 -0
  386. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_loopnest_1d.cpp +143 -0
  387. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_loopnest_3d.cpp +198 -0
  388. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_loopnest_3d_uniformtile.cpp +118 -0
  389. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_min.cpp +67 -0
  390. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_multi_module.cpp +105 -0
  391. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_operators.cpp +150 -0
  392. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_pointer_reassign.cpp +37 -0
  393. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_pointer_reassign_dynamic.cpp +41 -0
  394. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_scalar_add.cpp +39 -0
  395. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_tiled_matmul.cpp +113 -0
  396. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_tiled_transpose.cpp +134 -0
  397. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_vars.cpp +230 -0
  398. proteus_python-2026.7.0/tests/frontend/mlir/cpu/mlir_while.cpp +36 -0
  399. proteus_python-2026.7.0/tests/frontend/mlir/gpu/CMakeLists.txt +94 -0
  400. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_adam.cpp +269 -0
  401. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_adam_runconst.cpp +273 -0
  402. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_add_vectors.cpp +117 -0
  403. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_add_vectors_runconst.cpp +118 -0
  404. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_atomics.cpp +145 -0
  405. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_builtins.cpp +51 -0
  406. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_convert.cpp +110 -0
  407. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_device_function_calls.cpp +54 -0
  408. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_floydwarshall.cpp +321 -0
  409. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_for.cpp +79 -0
  410. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_for_unroll.cpp +98 -0
  411. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_functional_blocks.cpp +88 -0
  412. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_get_address.cpp +105 -0
  413. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_if.cpp +255 -0
  414. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_index_lowering.cpp +87 -0
  415. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_internal_call.cpp +94 -0
  416. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_intrinsics.cpp +125 -0
  417. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_jit_module_source.cpp +66 -0
  418. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_kernel_2d.cpp +124 -0
  419. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_kernel_3d.cpp +145 -0
  420. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_kernel_execute.cpp +75 -0
  421. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_kernel_representation.cpp +42 -0
  422. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_launch_bounds.cpp +41 -0
  423. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_multi_module.cpp +132 -0
  424. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_operators.cpp +203 -0
  425. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_shared_memory.cpp +113 -0
  426. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_vars.cpp +291 -0
  427. proteus_python-2026.7.0/tests/frontend/mlir/gpu/mlir_gpu_while.cpp +85 -0
  428. proteus_python-2026.7.0/tests/gpu/CMakeLists.txt +347 -0
  429. proteus_python-2026.7.0/tests/gpu/alias_func.cpp +50 -0
  430. proteus_python-2026.7.0/tests/gpu/alias_gvar.cpp +64 -0
  431. proteus_python-2026.7.0/tests/gpu/block_grid_dim_1d.cpp +111 -0
  432. proteus_python-2026.7.0/tests/gpu/block_grid_dim_2d.cpp +111 -0
  433. proteus_python-2026.7.0/tests/gpu/block_grid_dim_3d.cpp +113 -0
  434. proteus_python-2026.7.0/tests/gpu/builtin_globals.cpp +42 -0
  435. proteus_python-2026.7.0/tests/gpu/daxpy.cpp +72 -0
  436. proteus_python-2026.7.0/tests/gpu/daxpy_api.cpp +72 -0
  437. proteus_python-2026.7.0/tests/gpu/device_func.cpp +4 -0
  438. proteus_python-2026.7.0/tests/gpu/dim_spec_cache_test.cpp +125 -0
  439. proteus_python-2026.7.0/tests/gpu/dynamic_jit_array.cpp +71 -0
  440. proteus_python-2026.7.0/tests/gpu/enable_disable.cpp +42 -0
  441. proteus_python-2026.7.0/tests/gpu/file1_kernel.cpp +35 -0
  442. proteus_python-2026.7.0/tests/gpu/file1_kernel_launcher.cpp +32 -0
  443. proteus_python-2026.7.0/tests/gpu/file2_kernel.cpp +13 -0
  444. proteus_python-2026.7.0/tests/gpu/file2_kernel_launcher.cpp +7 -0
  445. proteus_python-2026.7.0/tests/gpu/force_annotations.cpp +56 -0
  446. proteus_python-2026.7.0/tests/gpu/global_var_register.cpp +72 -0
  447. proteus_python-2026.7.0/tests/gpu/gpu_common.h +51 -0
  448. proteus_python-2026.7.0/tests/gpu/gvar1.cpp +17 -0
  449. proteus_python-2026.7.0/tests/gpu/gvar2.cpp +17 -0
  450. proteus_python-2026.7.0/tests/gpu/gvar_driver.cpp +22 -0
  451. proteus_python-2026.7.0/tests/gpu/indirect_fallthrough.cpp +27 -0
  452. proteus_python-2026.7.0/tests/gpu/indirect_launcher.cpp +37 -0
  453. proteus_python-2026.7.0/tests/gpu/indirect_launcher_arg.cpp +44 -0
  454. proteus_python-2026.7.0/tests/gpu/indirect_launcher_arg_api.cpp +45 -0
  455. proteus_python-2026.7.0/tests/gpu/indirect_launcher_multi.cpp +41 -0
  456. proteus_python-2026.7.0/tests/gpu/indirect_launcher_multi_arg.cpp +42 -0
  457. proteus_python-2026.7.0/tests/gpu/indirect_launcher_multi_arg_api.cpp +44 -0
  458. proteus_python-2026.7.0/tests/gpu/indirect_launcher_tpl_multi.cpp +42 -0
  459. proteus_python-2026.7.0/tests/gpu/indirect_launcher_tpl_multi_arg.cpp +48 -0
  460. proteus_python-2026.7.0/tests/gpu/indirect_launcher_tpl_multi_arg_api.cpp +50 -0
  461. proteus_python-2026.7.0/tests/gpu/inlining_regression.cpp +68 -0
  462. proteus_python-2026.7.0/tests/gpu/jit_struct.cpp +149 -0
  463. proteus_python-2026.7.0/tests/gpu/kernel.cpp +34 -0
  464. proteus_python-2026.7.0/tests/gpu/kernel_args.cpp +34 -0
  465. proteus_python-2026.7.0/tests/gpu/kernel_args_annot_long.cpp +35 -0
  466. proteus_python-2026.7.0/tests/gpu/kernel_args_annot_mix.cpp +35 -0
  467. proteus_python-2026.7.0/tests/gpu/kernel_args_api.cpp +36 -0
  468. proteus_python-2026.7.0/tests/gpu/kernel_cache.cpp +41 -0
  469. proteus_python-2026.7.0/tests/gpu/kernel_calls_func.cpp +34 -0
  470. proteus_python-2026.7.0/tests/gpu/kernel_calls_func_api.cpp +36 -0
  471. proteus_python-2026.7.0/tests/gpu/kernel_calls_func_lib.cpp +36 -0
  472. proteus_python-2026.7.0/tests/gpu/kernel_calls_func_lib_api.cpp +37 -0
  473. proteus_python-2026.7.0/tests/gpu/kernel_calls_indirect.cpp +36 -0
  474. proteus_python-2026.7.0/tests/gpu/kernel_host_device_jit.cpp +48 -0
  475. proteus_python-2026.7.0/tests/gpu/kernel_host_device_jit_api.cpp +50 -0
  476. proteus_python-2026.7.0/tests/gpu/kernel_host_jit.cpp +38 -0
  477. proteus_python-2026.7.0/tests/gpu/kernel_lambda.cpp +59 -0
  478. proteus_python-2026.7.0/tests/gpu/kernel_lambda_api.cpp +60 -0
  479. proteus_python-2026.7.0/tests/gpu/kernel_launch_exception.cpp +39 -0
  480. proteus_python-2026.7.0/tests/gpu/kernel_launches.cpp +31 -0
  481. proteus_python-2026.7.0/tests/gpu/kernel_launches_args.cpp +36 -0
  482. proteus_python-2026.7.0/tests/gpu/kernel_metadata.cpp +69 -0
  483. proteus_python-2026.7.0/tests/gpu/kernel_pass_pipeline.cpp +42 -0
  484. proteus_python-2026.7.0/tests/gpu/kernel_preset_bounds.cpp +31 -0
  485. proteus_python-2026.7.0/tests/gpu/kernel_repeat.cpp +33 -0
  486. proteus_python-2026.7.0/tests/gpu/kernel_repeat_api.cpp +34 -0
  487. proteus_python-2026.7.0/tests/gpu/kernel_tuning.cpp +62 -0
  488. proteus_python-2026.7.0/tests/gpu/kernel_unused_gvar.cpp +36 -0
  489. proteus_python-2026.7.0/tests/gpu/kernel_unused_gvar_def.cpp +9 -0
  490. proteus_python-2026.7.0/tests/gpu/kernels_gvar.cpp +51 -0
  491. proteus_python-2026.7.0/tests/gpu/lambda.cpp +94 -0
  492. proteus_python-2026.7.0/tests/gpu/lambda_def.cpp +43 -0
  493. proteus_python-2026.7.0/tests/gpu/lambda_host_device.cpp +44 -0
  494. proteus_python-2026.7.0/tests/gpu/lambda_multiple.cpp +61 -0
  495. proteus_python-2026.7.0/tests/gpu/lambda_spec_test.cpp +60 -0
  496. proteus_python-2026.7.0/tests/gpu/launcher.h +16 -0
  497. proteus_python-2026.7.0/tests/gpu/mix_attr_api.cpp +50 -0
  498. proteus_python-2026.7.0/tests/gpu/raja_style_launch.h +44 -0
  499. proteus_python-2026.7.0/tests/gpu/scale100/CMakeLists.txt +109 -0
  500. proteus_python-2026.7.0/tests/gpu/scale100/foo0.cpp +21 -0
  501. proteus_python-2026.7.0/tests/gpu/scale100/foo1.cpp +21 -0
  502. proteus_python-2026.7.0/tests/gpu/scale100/foo10.cpp +21 -0
  503. proteus_python-2026.7.0/tests/gpu/scale100/foo11.cpp +21 -0
  504. proteus_python-2026.7.0/tests/gpu/scale100/foo12.cpp +21 -0
  505. proteus_python-2026.7.0/tests/gpu/scale100/foo13.cpp +21 -0
  506. proteus_python-2026.7.0/tests/gpu/scale100/foo14.cpp +21 -0
  507. proteus_python-2026.7.0/tests/gpu/scale100/foo15.cpp +21 -0
  508. proteus_python-2026.7.0/tests/gpu/scale100/foo16.cpp +21 -0
  509. proteus_python-2026.7.0/tests/gpu/scale100/foo17.cpp +21 -0
  510. proteus_python-2026.7.0/tests/gpu/scale100/foo18.cpp +21 -0
  511. proteus_python-2026.7.0/tests/gpu/scale100/foo19.cpp +21 -0
  512. proteus_python-2026.7.0/tests/gpu/scale100/foo2.cpp +21 -0
  513. proteus_python-2026.7.0/tests/gpu/scale100/foo20.cpp +21 -0
  514. proteus_python-2026.7.0/tests/gpu/scale100/foo21.cpp +21 -0
  515. proteus_python-2026.7.0/tests/gpu/scale100/foo22.cpp +21 -0
  516. proteus_python-2026.7.0/tests/gpu/scale100/foo23.cpp +21 -0
  517. proteus_python-2026.7.0/tests/gpu/scale100/foo24.cpp +21 -0
  518. proteus_python-2026.7.0/tests/gpu/scale100/foo25.cpp +21 -0
  519. proteus_python-2026.7.0/tests/gpu/scale100/foo26.cpp +21 -0
  520. proteus_python-2026.7.0/tests/gpu/scale100/foo27.cpp +21 -0
  521. proteus_python-2026.7.0/tests/gpu/scale100/foo28.cpp +21 -0
  522. proteus_python-2026.7.0/tests/gpu/scale100/foo29.cpp +21 -0
  523. proteus_python-2026.7.0/tests/gpu/scale100/foo3.cpp +21 -0
  524. proteus_python-2026.7.0/tests/gpu/scale100/foo30.cpp +21 -0
  525. proteus_python-2026.7.0/tests/gpu/scale100/foo31.cpp +21 -0
  526. proteus_python-2026.7.0/tests/gpu/scale100/foo32.cpp +21 -0
  527. proteus_python-2026.7.0/tests/gpu/scale100/foo33.cpp +21 -0
  528. proteus_python-2026.7.0/tests/gpu/scale100/foo34.cpp +21 -0
  529. proteus_python-2026.7.0/tests/gpu/scale100/foo35.cpp +21 -0
  530. proteus_python-2026.7.0/tests/gpu/scale100/foo36.cpp +21 -0
  531. proteus_python-2026.7.0/tests/gpu/scale100/foo37.cpp +21 -0
  532. proteus_python-2026.7.0/tests/gpu/scale100/foo38.cpp +21 -0
  533. proteus_python-2026.7.0/tests/gpu/scale100/foo39.cpp +21 -0
  534. proteus_python-2026.7.0/tests/gpu/scale100/foo4.cpp +21 -0
  535. proteus_python-2026.7.0/tests/gpu/scale100/foo40.cpp +21 -0
  536. proteus_python-2026.7.0/tests/gpu/scale100/foo41.cpp +21 -0
  537. proteus_python-2026.7.0/tests/gpu/scale100/foo42.cpp +21 -0
  538. proteus_python-2026.7.0/tests/gpu/scale100/foo43.cpp +21 -0
  539. proteus_python-2026.7.0/tests/gpu/scale100/foo44.cpp +21 -0
  540. proteus_python-2026.7.0/tests/gpu/scale100/foo45.cpp +21 -0
  541. proteus_python-2026.7.0/tests/gpu/scale100/foo46.cpp +21 -0
  542. proteus_python-2026.7.0/tests/gpu/scale100/foo47.cpp +21 -0
  543. proteus_python-2026.7.0/tests/gpu/scale100/foo48.cpp +21 -0
  544. proteus_python-2026.7.0/tests/gpu/scale100/foo49.cpp +21 -0
  545. proteus_python-2026.7.0/tests/gpu/scale100/foo5.cpp +21 -0
  546. proteus_python-2026.7.0/tests/gpu/scale100/foo50.cpp +21 -0
  547. proteus_python-2026.7.0/tests/gpu/scale100/foo51.cpp +21 -0
  548. proteus_python-2026.7.0/tests/gpu/scale100/foo52.cpp +21 -0
  549. proteus_python-2026.7.0/tests/gpu/scale100/foo53.cpp +21 -0
  550. proteus_python-2026.7.0/tests/gpu/scale100/foo54.cpp +21 -0
  551. proteus_python-2026.7.0/tests/gpu/scale100/foo55.cpp +21 -0
  552. proteus_python-2026.7.0/tests/gpu/scale100/foo56.cpp +21 -0
  553. proteus_python-2026.7.0/tests/gpu/scale100/foo57.cpp +21 -0
  554. proteus_python-2026.7.0/tests/gpu/scale100/foo58.cpp +21 -0
  555. proteus_python-2026.7.0/tests/gpu/scale100/foo59.cpp +21 -0
  556. proteus_python-2026.7.0/tests/gpu/scale100/foo6.cpp +21 -0
  557. proteus_python-2026.7.0/tests/gpu/scale100/foo60.cpp +21 -0
  558. proteus_python-2026.7.0/tests/gpu/scale100/foo61.cpp +21 -0
  559. proteus_python-2026.7.0/tests/gpu/scale100/foo62.cpp +21 -0
  560. proteus_python-2026.7.0/tests/gpu/scale100/foo63.cpp +21 -0
  561. proteus_python-2026.7.0/tests/gpu/scale100/foo64.cpp +21 -0
  562. proteus_python-2026.7.0/tests/gpu/scale100/foo65.cpp +21 -0
  563. proteus_python-2026.7.0/tests/gpu/scale100/foo66.cpp +21 -0
  564. proteus_python-2026.7.0/tests/gpu/scale100/foo67.cpp +21 -0
  565. proteus_python-2026.7.0/tests/gpu/scale100/foo68.cpp +21 -0
  566. proteus_python-2026.7.0/tests/gpu/scale100/foo69.cpp +21 -0
  567. proteus_python-2026.7.0/tests/gpu/scale100/foo7.cpp +21 -0
  568. proteus_python-2026.7.0/tests/gpu/scale100/foo70.cpp +21 -0
  569. proteus_python-2026.7.0/tests/gpu/scale100/foo71.cpp +21 -0
  570. proteus_python-2026.7.0/tests/gpu/scale100/foo72.cpp +21 -0
  571. proteus_python-2026.7.0/tests/gpu/scale100/foo73.cpp +21 -0
  572. proteus_python-2026.7.0/tests/gpu/scale100/foo74.cpp +21 -0
  573. proteus_python-2026.7.0/tests/gpu/scale100/foo75.cpp +21 -0
  574. proteus_python-2026.7.0/tests/gpu/scale100/foo76.cpp +21 -0
  575. proteus_python-2026.7.0/tests/gpu/scale100/foo77.cpp +21 -0
  576. proteus_python-2026.7.0/tests/gpu/scale100/foo78.cpp +21 -0
  577. proteus_python-2026.7.0/tests/gpu/scale100/foo79.cpp +21 -0
  578. proteus_python-2026.7.0/tests/gpu/scale100/foo8.cpp +21 -0
  579. proteus_python-2026.7.0/tests/gpu/scale100/foo80.cpp +21 -0
  580. proteus_python-2026.7.0/tests/gpu/scale100/foo81.cpp +21 -0
  581. proteus_python-2026.7.0/tests/gpu/scale100/foo82.cpp +21 -0
  582. proteus_python-2026.7.0/tests/gpu/scale100/foo83.cpp +21 -0
  583. proteus_python-2026.7.0/tests/gpu/scale100/foo84.cpp +21 -0
  584. proteus_python-2026.7.0/tests/gpu/scale100/foo85.cpp +21 -0
  585. proteus_python-2026.7.0/tests/gpu/scale100/foo86.cpp +21 -0
  586. proteus_python-2026.7.0/tests/gpu/scale100/foo87.cpp +21 -0
  587. proteus_python-2026.7.0/tests/gpu/scale100/foo88.cpp +21 -0
  588. proteus_python-2026.7.0/tests/gpu/scale100/foo89.cpp +21 -0
  589. proteus_python-2026.7.0/tests/gpu/scale100/foo9.cpp +21 -0
  590. proteus_python-2026.7.0/tests/gpu/scale100/foo90.cpp +21 -0
  591. proteus_python-2026.7.0/tests/gpu/scale100/foo91.cpp +21 -0
  592. proteus_python-2026.7.0/tests/gpu/scale100/foo92.cpp +21 -0
  593. proteus_python-2026.7.0/tests/gpu/scale100/foo93.cpp +21 -0
  594. proteus_python-2026.7.0/tests/gpu/scale100/foo94.cpp +21 -0
  595. proteus_python-2026.7.0/tests/gpu/scale100/foo95.cpp +21 -0
  596. proteus_python-2026.7.0/tests/gpu/scale100/foo96.cpp +21 -0
  597. proteus_python-2026.7.0/tests/gpu/scale100/foo97.cpp +21 -0
  598. proteus_python-2026.7.0/tests/gpu/scale100/foo98.cpp +21 -0
  599. proteus_python-2026.7.0/tests/gpu/scale100/foo99.cpp +21 -0
  600. proteus_python-2026.7.0/tests/gpu/scale100/main.cpp +251 -0
  601. proteus_python-2026.7.0/tests/gpu/scale100-gvar/CMakeLists.txt +109 -0
  602. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo0.cpp +28 -0
  603. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo1.cpp +28 -0
  604. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo10.cpp +28 -0
  605. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo11.cpp +28 -0
  606. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo12.cpp +28 -0
  607. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo13.cpp +28 -0
  608. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo14.cpp +28 -0
  609. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo15.cpp +28 -0
  610. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo16.cpp +28 -0
  611. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo17.cpp +28 -0
  612. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo18.cpp +28 -0
  613. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo19.cpp +28 -0
  614. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo2.cpp +28 -0
  615. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo20.cpp +28 -0
  616. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo21.cpp +28 -0
  617. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo22.cpp +28 -0
  618. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo23.cpp +28 -0
  619. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo24.cpp +28 -0
  620. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo25.cpp +28 -0
  621. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo26.cpp +28 -0
  622. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo27.cpp +28 -0
  623. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo28.cpp +28 -0
  624. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo29.cpp +28 -0
  625. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo3.cpp +28 -0
  626. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo30.cpp +28 -0
  627. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo31.cpp +28 -0
  628. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo32.cpp +28 -0
  629. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo33.cpp +28 -0
  630. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo34.cpp +28 -0
  631. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo35.cpp +28 -0
  632. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo36.cpp +28 -0
  633. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo37.cpp +28 -0
  634. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo38.cpp +28 -0
  635. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo39.cpp +28 -0
  636. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo4.cpp +28 -0
  637. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo40.cpp +28 -0
  638. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo41.cpp +28 -0
  639. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo42.cpp +28 -0
  640. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo43.cpp +28 -0
  641. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo44.cpp +28 -0
  642. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo45.cpp +28 -0
  643. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo46.cpp +28 -0
  644. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo47.cpp +28 -0
  645. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo48.cpp +28 -0
  646. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo49.cpp +28 -0
  647. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo5.cpp +28 -0
  648. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo50.cpp +28 -0
  649. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo51.cpp +28 -0
  650. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo52.cpp +28 -0
  651. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo53.cpp +28 -0
  652. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo54.cpp +28 -0
  653. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo55.cpp +28 -0
  654. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo56.cpp +28 -0
  655. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo57.cpp +28 -0
  656. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo58.cpp +28 -0
  657. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo59.cpp +28 -0
  658. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo6.cpp +28 -0
  659. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo60.cpp +28 -0
  660. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo61.cpp +28 -0
  661. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo62.cpp +28 -0
  662. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo63.cpp +28 -0
  663. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo64.cpp +28 -0
  664. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo65.cpp +28 -0
  665. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo66.cpp +28 -0
  666. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo67.cpp +28 -0
  667. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo68.cpp +28 -0
  668. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo69.cpp +28 -0
  669. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo7.cpp +28 -0
  670. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo70.cpp +28 -0
  671. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo71.cpp +28 -0
  672. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo72.cpp +28 -0
  673. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo73.cpp +28 -0
  674. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo74.cpp +28 -0
  675. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo75.cpp +28 -0
  676. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo76.cpp +28 -0
  677. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo77.cpp +28 -0
  678. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo78.cpp +28 -0
  679. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo79.cpp +28 -0
  680. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo8.cpp +28 -0
  681. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo80.cpp +28 -0
  682. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo81.cpp +28 -0
  683. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo82.cpp +28 -0
  684. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo83.cpp +28 -0
  685. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo84.cpp +28 -0
  686. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo85.cpp +28 -0
  687. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo86.cpp +28 -0
  688. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo87.cpp +28 -0
  689. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo88.cpp +28 -0
  690. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo89.cpp +28 -0
  691. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo9.cpp +28 -0
  692. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo90.cpp +28 -0
  693. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo91.cpp +28 -0
  694. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo92.cpp +28 -0
  695. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo93.cpp +28 -0
  696. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo94.cpp +28 -0
  697. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo95.cpp +28 -0
  698. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo96.cpp +28 -0
  699. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo97.cpp +28 -0
  700. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo98.cpp +28 -0
  701. proteus_python-2026.7.0/tests/gpu/scale100-gvar/foo99.cpp +28 -0
  702. proteus_python-2026.7.0/tests/gpu/scale100-gvar/main.cpp +272 -0
  703. proteus_python-2026.7.0/tests/gpu/shared_array.cpp +54 -0
  704. proteus_python-2026.7.0/tests/gpu/tuned_config.json +23 -0
  705. proteus_python-2026.7.0/tests/gpu/types.cpp +73 -0
  706. proteus_python-2026.7.0/tests/gpu/types_api.cpp +73 -0
  707. proteus_python-2026.7.0/tests/gpu/types_jit_array.cpp +111 -0
  708. proteus_python-2026.7.0/tests/integration/cuda/ci-test-integration.sh +24 -0
  709. proteus_python-2026.7.0/tests/integration/cuda/cmake-clang_plugin-proteusFrontend/CMakeLists.txt +37 -0
  710. proteus_python-2026.7.0/tests/integration/cuda/cmake-clang_plugin-proteusFrontend/ClangPlugin.cpp +28 -0
  711. proteus_python-2026.7.0/tests/integration/cuda/cmake-clang_plugin-proteusFrontend/ci-build-and-run.sh +36 -0
  712. proteus_python-2026.7.0/tests/integration/cuda/cmake-clang_plugin-proteusFrontend/main.cpp +20 -0
  713. proteus_python-2026.7.0/tests/integration/cuda/cmake-link_llvm-shared_proteus/CMakeLists.txt +21 -0
  714. proteus_python-2026.7.0/tests/integration/cuda/cmake-link_llvm-shared_proteus/ci-build-and-run.sh +29 -0
  715. proteus_python-2026.7.0/tests/integration/cuda/cmake-link_llvm-shared_proteus/main.cpp +21 -0
  716. proteus_python-2026.7.0/tests/integration/cuda/cmake-proteusCore/CMakeLists.txt +30 -0
  717. proteus_python-2026.7.0/tests/integration/cuda/cmake-proteusCore/ci-build-and-run.sh +30 -0
  718. proteus_python-2026.7.0/tests/integration/cuda/cmake-proteusCore/jit.cpp +70 -0
  719. proteus_python-2026.7.0/tests/integration/cuda/cmake-proteusCore/test.cu +3 -0
  720. proteus_python-2026.7.0/tests/integration/cuda/cmake-proteusFrontend/CMakeLists.txt +16 -0
  721. proteus_python-2026.7.0/tests/integration/cuda/cmake-proteusFrontend/ci-build-and-run.sh +29 -0
  722. proteus_python-2026.7.0/tests/integration/cuda/cmake-proteusFrontend/main.cpp +38 -0
  723. proteus_python-2026.7.0/tests/integration/cuda/cmake-proteusFrontend-gcc/CMakeLists.txt +15 -0
  724. proteus_python-2026.7.0/tests/integration/cuda/cmake-proteusFrontend-gcc/ci-build-and-run.sh +25 -0
  725. proteus_python-2026.7.0/tests/integration/cuda/cmake-proteusFrontend-gcc/main.cpp +38 -0
  726. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_lib_and_exe-static_proteus/CMakeLists.txt +26 -0
  727. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_lib_and_exe-static_proteus/ci-build-and-run.sh +30 -0
  728. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_lib_and_exe-static_proteus/libdaxpy.cpp +27 -0
  729. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_lib_and_exe-static_proteus/main.cpp +35 -0
  730. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_libs-shared_proteus/CMakeLists.txt +38 -0
  731. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_libs-shared_proteus/ci-build-and-run.sh +29 -0
  732. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_libs-shared_proteus/libbar.cpp +8 -0
  733. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_libs-shared_proteus/libfoo.cpp +8 -0
  734. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_libs-shared_proteus/main.cpp +20 -0
  735. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_libs-static_proteus/CMakeLists.txt +41 -0
  736. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_libs-static_proteus/ci-build-and-run.sh +33 -0
  737. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_libs-static_proteus/libbar.cpp +8 -0
  738. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_libs-static_proteus/libfoo.cpp +8 -0
  739. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_libs-static_proteus/main.cpp +21 -0
  740. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_proteus/CMakeLists.txt +19 -0
  741. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_proteus/ci-build-and-run.sh +29 -0
  742. proteus_python-2026.7.0/tests/integration/cuda/cmake-shared_proteus/main.cpp +14 -0
  743. proteus_python-2026.7.0/tests/integration/cuda/cmake-static_proteus/CMakeLists.txt +17 -0
  744. proteus_python-2026.7.0/tests/integration/cuda/cmake-static_proteus/ci-build-and-run.sh +30 -0
  745. proteus_python-2026.7.0/tests/integration/cuda/cmake-static_proteus/main.cpp +14 -0
  746. proteus_python-2026.7.0/tests/integration/cuda/make-shared_proteus/Makefile +14 -0
  747. proteus_python-2026.7.0/tests/integration/cuda/make-shared_proteus/ci-build-and-run.sh +23 -0
  748. proteus_python-2026.7.0/tests/integration/cuda/make-shared_proteus/main.cpp +16 -0
  749. proteus_python-2026.7.0/tests/integration/cuda/make-static_proteus/Makefile +17 -0
  750. proteus_python-2026.7.0/tests/integration/cuda/make-static_proteus/ci-build-and-run.sh +25 -0
  751. proteus_python-2026.7.0/tests/integration/cuda/make-static_proteus/main.cpp +14 -0
  752. proteus_python-2026.7.0/tests/integration/cuda/mpi-shared-cache/CMakeLists.txt +14 -0
  753. proteus_python-2026.7.0/tests/integration/cuda/mpi-shared-cache/ci-build-and-run.sh +95 -0
  754. proteus_python-2026.7.0/tests/integration/cuda/mpi-shared-cache/mpi_shared_cache.cpp +121 -0
  755. proteus_python-2026.7.0/tests/integration/hip/ci-test-integration.sh +31 -0
  756. proteus_python-2026.7.0/tests/integration/hip/cmake-clang_plugin-proteusFrontend/CMakeLists.txt +37 -0
  757. proteus_python-2026.7.0/tests/integration/hip/cmake-clang_plugin-proteusFrontend/ClangPlugin.cpp +28 -0
  758. proteus_python-2026.7.0/tests/integration/hip/cmake-clang_plugin-proteusFrontend/ci-build-and-run.sh +32 -0
  759. proteus_python-2026.7.0/tests/integration/hip/cmake-clang_plugin-proteusFrontend/main.cpp +20 -0
  760. proteus_python-2026.7.0/tests/integration/hip/cmake-link_llvm-shared_proteus/CMakeLists.txt +21 -0
  761. proteus_python-2026.7.0/tests/integration/hip/cmake-link_llvm-shared_proteus/ci-build-and-run.sh +25 -0
  762. proteus_python-2026.7.0/tests/integration/hip/cmake-link_llvm-shared_proteus/main.cpp +21 -0
  763. proteus_python-2026.7.0/tests/integration/hip/cmake-proteusCore/CMakeLists.txt +38 -0
  764. proteus_python-2026.7.0/tests/integration/hip/cmake-proteusCore/ci-build-and-run.sh +26 -0
  765. proteus_python-2026.7.0/tests/integration/hip/cmake-proteusCore/jit.cpp +72 -0
  766. proteus_python-2026.7.0/tests/integration/hip/cmake-proteusCore/test.hip +5 -0
  767. proteus_python-2026.7.0/tests/integration/hip/cmake-proteusFrontend/CMakeLists.txt +16 -0
  768. proteus_python-2026.7.0/tests/integration/hip/cmake-proteusFrontend/ci-build-and-run.sh +25 -0
  769. proteus_python-2026.7.0/tests/integration/hip/cmake-proteusFrontend/main.cpp +38 -0
  770. proteus_python-2026.7.0/tests/integration/hip/cmake-proteusFrontend-gcc/CMakeLists.txt +15 -0
  771. proteus_python-2026.7.0/tests/integration/hip/cmake-proteusFrontend-gcc/ci-build-and-run.sh +25 -0
  772. proteus_python-2026.7.0/tests/integration/hip/cmake-proteusFrontend-gcc/main.cpp +38 -0
  773. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_lib_and_exe-static_proteus/CMakeLists.txt +26 -0
  774. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_lib_and_exe-static_proteus/ci-build-and-run.sh +28 -0
  775. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_lib_and_exe-static_proteus/libdaxpy.cpp +27 -0
  776. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_lib_and_exe-static_proteus/main.cpp +35 -0
  777. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_libs-shared_proteus/CMakeLists.txt +57 -0
  778. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_libs-shared_proteus/ci-build-and-run.sh +25 -0
  779. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_libs-shared_proteus/libbar.cpp +8 -0
  780. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_libs-shared_proteus/libfoo.cpp +8 -0
  781. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_libs-shared_proteus/main.cpp +20 -0
  782. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_libs-static_proteus/CMakeLists.txt +55 -0
  783. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_libs-static_proteus/ci-build-and-run.sh +26 -0
  784. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_libs-static_proteus/libbar.cpp +8 -0
  785. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_libs-static_proteus/libfoo.cpp +8 -0
  786. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_libs-static_proteus/main.cpp +20 -0
  787. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_proteus/CMakeLists.txt +17 -0
  788. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_proteus/ci-build-and-run.sh +25 -0
  789. proteus_python-2026.7.0/tests/integration/hip/cmake-shared_proteus/main.cpp +14 -0
  790. proteus_python-2026.7.0/tests/integration/hip/cmake-static_proteus/CMakeLists.txt +17 -0
  791. proteus_python-2026.7.0/tests/integration/hip/cmake-static_proteus/ci-build-and-run.sh +26 -0
  792. proteus_python-2026.7.0/tests/integration/hip/cmake-static_proteus/main.cpp +14 -0
  793. proteus_python-2026.7.0/tests/integration/hip/make-shared_proteus/Makefile +6 -0
  794. proteus_python-2026.7.0/tests/integration/hip/make-shared_proteus/ci-build-and-run.sh +23 -0
  795. proteus_python-2026.7.0/tests/integration/hip/make-shared_proteus/main.cpp +14 -0
  796. proteus_python-2026.7.0/tests/integration/hip/make-static_proteus/Makefile +8 -0
  797. proteus_python-2026.7.0/tests/integration/hip/make-static_proteus/ci-build-and-run.sh +25 -0
  798. proteus_python-2026.7.0/tests/integration/hip/make-static_proteus/main.cpp +14 -0
  799. proteus_python-2026.7.0/tests/integration/hip/mneme-install/ci-build-and-run.sh +8 -0
  800. proteus_python-2026.7.0/tests/integration/hip/mpi-shared-cache/CMakeLists.txt +14 -0
  801. proteus_python-2026.7.0/tests/integration/hip/mpi-shared-cache/ci-build-and-run.sh +83 -0
  802. proteus_python-2026.7.0/tests/integration/hip/mpi-shared-cache/mpi_shared_cache.cpp +121 -0
  803. proteus_python-2026.7.0/tests/lit-main.py +5 -0
  804. proteus_python-2026.7.0/tests/spack/cuda/ci-test-spack.sh +49 -0
  805. proteus_python-2026.7.0/tests/spack/hip/ci-test-spack.sh +32 -0
@@ -0,0 +1 @@
1
+ BasedOnStyle: LLVM
@@ -0,0 +1,26 @@
1
+ Checks: '-*,clang-diagnostic-*,llvm-*,misc-*,-misc-const-correctness,-misc-unused-parameters,-misc-non-private-member-variables-in-classes,-misc-no-recursion,-misc-use-anonymous-namespace,readability-identifier-naming,-misc-include-cleaner,-llvm-header-guard'
2
+ CheckOptions:
3
+ - key: readability-identifier-naming.ClassCase
4
+ value: CamelCase
5
+ - key: readability-identifier-naming.EnumCase
6
+ value: CamelCase
7
+ - key: readability-identifier-naming.FunctionCase
8
+ value: camelBack
9
+ # Exclude from scanning as this is an exported symbol used for fuzzing
10
+ # throughout the code base.
11
+ - key: readability-identifier-naming.FunctionIgnoredRegexp
12
+ value: "LLVMFuzzerTestOneInput"
13
+ - key: readability-identifier-naming.MemberCase
14
+ value: CamelCase
15
+ - key: readability-identifier-naming.ParameterCase
16
+ value: CamelCase
17
+ - key: readability-identifier-naming.UnionCase
18
+ value: CamelCase
19
+ - key: readability-identifier-naming.VariableCase
20
+ value: CamelCase
21
+ - key: readability-identifier-naming.IgnoreMainLikeFunctions
22
+ value: 1
23
+ - key: readability-redundant-member-init.IgnoreBaseInCopyConstructors
24
+ value: 1
25
+ - key: modernize-use-default-member-init.UseAssignment
26
+ value: 1
@@ -0,0 +1,27 @@
1
+ name: Check Header Includes
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - 'include/**/*.h'
7
+ - 'src/include/**/*.h'
8
+ - 'scripts/checks/check-headers.py'
9
+ - '.github/workflows/check-headers.yml'
10
+
11
+ jobs:
12
+ check-headers:
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - name: Checkout code
17
+ uses: actions/checkout@v4
18
+
19
+ - name: Set up Python
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: '3.x'
23
+
24
+ - name: Check public headers
25
+ run: |
26
+ python scripts/checks/check-headers.py
27
+ echo "✅ No internal headers found in public API"
@@ -0,0 +1,184 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - ".github/workflows/ci-build-test.yml"
7
+ - "CMakeLists.txt"
8
+ - "bindings/python/**"
9
+ - "cmake/**"
10
+ - "include/**"
11
+ - "src/**"
12
+ - "tests/**"
13
+ push:
14
+ branches:
15
+ - main
16
+ paths:
17
+ - ".github/workflows/ci-build-test.yml"
18
+ - "CMakeLists.txt"
19
+ - "bindings/python/**"
20
+ - "cmake/**"
21
+ - "include/**"
22
+ - "src/**"
23
+ - "tests/**"
24
+
25
+ jobs:
26
+ prepare-conda:
27
+ name: prepare conda ${{ matrix.os }} LLVM ${{ matrix.llvm }}
28
+ runs-on: ${{ matrix.os }}
29
+ strategy:
30
+ matrix:
31
+ os: [ubuntu-latest]
32
+ llvm: [19.1.7, 20.1.8, 22.1.0]
33
+ defaults:
34
+ run:
35
+ shell: bash -el {0}
36
+ steps:
37
+ - name: Setup conda
38
+ uses: conda-incubator/setup-miniconda@v3
39
+ with:
40
+ miniforge-version: latest
41
+ conda-remove-defaults: true
42
+ # Build the toolchain env once per LLVM version, then hand it to build jobs.
43
+ - name: Create environment
44
+ run: |
45
+ conda create -y -n llvm-env -c conda-forge \
46
+ conda-pack \
47
+ python=3.12 \
48
+ pybind11 \
49
+ clang=${{ matrix.llvm }} \
50
+ clangxx=${{ matrix.llvm }} \
51
+ clangdev=${{ matrix.llvm }} \
52
+ llvmdev=${{ matrix.llvm }} \
53
+ lit=${{ matrix.llvm }} \
54
+ mlir=${{ matrix.llvm }} \
55
+ zlib zstd
56
+ - name: Pack environment
57
+ run: |
58
+ mkdir -p "$RUNNER_TEMP/conda-artifacts"
59
+ conda run -n llvm-env conda-pack -n llvm-env \
60
+ -o "$RUNNER_TEMP/conda-artifacts/llvm-env-${{ matrix.llvm }}.tar.gz"
61
+ - name: Upload environment
62
+ uses: actions/upload-artifact@v7
63
+ with:
64
+ name: llvm-conda-${{ matrix.llvm }}
65
+ path: ${{ runner.temp }}/conda-artifacts/llvm-env-${{ matrix.llvm }}.tar.gz
66
+ compression-level: 0
67
+ retention-days: 1
68
+
69
+ build-and-test:
70
+ name: proteus ${{ matrix.os }} LLVM ${{ matrix.llvm }} shared ${{ matrix.build_shared }} MLIR ${{ matrix.mlir }}
71
+ runs-on: ${{ matrix.os }}
72
+ needs: prepare-conda
73
+ strategy:
74
+ matrix:
75
+ os: [ubuntu-latest]
76
+ llvm: [19.1.7, 20.1.8, 22.1.0]
77
+ build_shared: [on, off]
78
+ mlir: [on, off]
79
+ defaults:
80
+ run:
81
+ shell: bash -el {0}
82
+ steps:
83
+ - uses: actions/checkout@v4
84
+ - name: Download environment
85
+ uses: actions/download-artifact@v8
86
+ with:
87
+ name: llvm-conda-${{ matrix.llvm }}
88
+ path: ${{ runner.temp }}/conda-artifacts
89
+ - name: Unpack environment
90
+ run: |
91
+ env_dir="$RUNNER_TEMP/llvm-env-${{ matrix.llvm }}"
92
+ mkdir -p "$env_dir"
93
+ tar -xzf "$RUNNER_TEMP/conda-artifacts/llvm-env-${{ matrix.llvm }}.tar.gz" -C "$env_dir"
94
+ "$env_dir/bin/conda-unpack"
95
+ echo "CONDA_PREFIX=$env_dir" >> "$GITHUB_ENV"
96
+ echo "$env_dir/bin" >> "$GITHUB_PATH"
97
+ - name: Build build_shared=${{ matrix.build_shared }}
98
+ run: |
99
+ mkdir -p build
100
+ pushd build
101
+ set -o pipefail
102
+ cmake .. \
103
+ -DCMAKE_PREFIX_PATH="$CONDA_PREFIX;$CONDA_PREFIX/lib/cmake" \
104
+ -DCMAKE_C_COMPILER=clang \
105
+ -DCMAKE_CXX_COMPILER=clang++ \
106
+ -DENABLE_DEVELOPER_COMPILER_FLAGS=on \
107
+ -DENABLE_TESTS=on \
108
+ -DLLVM_INSTALL_DIR=$(llvm-config --prefix) \
109
+ -DPROTEUS_ENABLE_MLIR=${{ matrix.mlir }} \
110
+ -DPROTEUS_ENABLE_PYTHON=on \
111
+ -DBUILD_SHARED=${{ matrix.build_shared }} |& tee cmake_output.log
112
+ if grep -q "Manually-specified variables were not used by the project:" cmake_output.log; then
113
+ echo "Error: Unused variables detected"
114
+ exit 1
115
+ fi
116
+ make -j
117
+ popd
118
+ - name: Test
119
+ run: |
120
+ pushd build
121
+ ctest -j8 -T test --output-on-failure
122
+ popd
123
+
124
+ build-and-test-macos:
125
+ name: proteus macos LLVM ${{ matrix.llvm }} shared ${{ matrix.build_shared }} MLIR ${{ matrix.mlir }}
126
+ runs-on: macos-latest
127
+ strategy:
128
+ matrix:
129
+ llvm: [19, 20, 22]
130
+ build_shared: [on, off]
131
+ mlir: [on, off]
132
+ defaults:
133
+ run:
134
+ shell: bash
135
+ steps:
136
+ - uses: actions/checkout@v4
137
+ - name: Install LLVM
138
+ run: |
139
+ brew install llvm@${{ matrix.llvm }}
140
+ - name: Install lit
141
+ run: |
142
+ brew install lit
143
+ - name: Install Python bindings dependencies
144
+ run: |
145
+ brew install python pybind11
146
+ - name: Configure LLVM environment
147
+ run: |
148
+ LLVM_PREFIX="$(brew --prefix llvm@${{ matrix.llvm }})"
149
+ PYTHON_PREFIX="$(brew --prefix python)"
150
+ PYBIND11_PREFIX="$(brew --prefix pybind11)"
151
+ echo "LLVM_PREFIX=$LLVM_PREFIX" >> "$GITHUB_ENV"
152
+ echo "PYTHON_PREFIX=$PYTHON_PREFIX" >> "$GITHUB_ENV"
153
+ echo "PYBIND11_PREFIX=$PYBIND11_PREFIX" >> "$GITHUB_ENV"
154
+ echo "CC=$LLVM_PREFIX/bin/clang" >> "$GITHUB_ENV"
155
+ echo "CXX=$LLVM_PREFIX/bin/clang++" >> "$GITHUB_ENV"
156
+ echo "$LLVM_PREFIX/bin" >> "$GITHUB_PATH"
157
+ echo "$PYTHON_PREFIX/bin" >> "$GITHUB_PATH"
158
+ - name: Build build_shared=${{ matrix.build_shared }}
159
+ run: |
160
+ mkdir -p build
161
+ pushd build
162
+ set -o pipefail
163
+ cmake .. \
164
+ -DCMAKE_PREFIX_PATH="$LLVM_PREFIX;$PYTHON_PREFIX;$PYBIND11_PREFIX" \
165
+ -DCMAKE_C_COMPILER="$CC" \
166
+ -DCMAKE_CXX_COMPILER="$CXX" \
167
+ -DCMAKE_OSX_SYSROOT="$(xcrun --sdk macosx --show-sdk-path)" \
168
+ -DENABLE_DEVELOPER_COMPILER_FLAGS=on \
169
+ -DENABLE_TESTS=on \
170
+ -DLLVM_INSTALL_DIR="$LLVM_PREFIX" \
171
+ -DPROTEUS_ENABLE_MLIR=${{ matrix.mlir }} \
172
+ -DPROTEUS_ENABLE_PYTHON=on \
173
+ -DBUILD_SHARED=${{ matrix.build_shared }} 2>&1 | tee cmake_output.log
174
+ if grep -q "Manually-specified variables were not used by the project:" cmake_output.log; then
175
+ echo "Error: Unused variables detected"
176
+ exit 1
177
+ fi
178
+ make -j
179
+ popd
180
+ - name: Test
181
+ run: |
182
+ pushd build
183
+ ctest -j8 -T test --output-on-failure
184
+ popd
@@ -0,0 +1,179 @@
1
+ name: pages
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - "docs/**"
7
+ - "include/**"
8
+ - "mkdocs.yml"
9
+ - "src/**"
10
+ - "scripts/generate_simple_wheel_index.py"
11
+ - ".github/workflows/ci-pr-pages.yml"
12
+ - ".github/workflows/deploy-pages-main.yml"
13
+ - ".github/workflows/deploy-pages-release.yml"
14
+ - ".github/workflows/gh-pages-docs.yml"
15
+
16
+ permissions:
17
+ contents: read
18
+
19
+ jobs:
20
+ build:
21
+ runs-on: ubuntu-24.04
22
+ env:
23
+ PROTEUS_HOST_BACKEND_PACKAGE: "proteus-python-backend-host-llvm22"
24
+ PROTEUS_CUDA_BACKEND_PACKAGE: "proteus-python-backend-cuda12-llvm22"
25
+ PROTEUS_ROCM_BACKEND_PACKAGE: "proteus-python-backend-rocm72"
26
+ steps:
27
+ - name: Checkout
28
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
29
+
30
+ - name: Set up Python
31
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
32
+ with:
33
+ python-version: "3.12"
34
+
35
+ - name: Build docs
36
+ run: |
37
+ set -euo pipefail
38
+ sudo apt-get update
39
+ sudo apt-get install -y graphviz doxygen
40
+ python -m pip install --upgrade pip
41
+ python -m pip install mike mkdocs-material
42
+ pushd docs
43
+ doxygen
44
+ popd
45
+ mkdocs build --strict
46
+
47
+ - name: Smoke test mike publishing
48
+ run: |
49
+ set -euo pipefail
50
+
51
+ git config user.name "github-actions[bot]"
52
+ git config user.email "github-actions[bot]@users.noreply.github.com"
53
+
54
+ git tag -f v0.0.0-smoke
55
+ git tag -f v0.0.0rc1-smoke
56
+ git branch -f gh-pages-smoke HEAD
57
+
58
+ cleanup() {
59
+ local worktree_dir="${1:-}"
60
+ if [[ -n "${worktree_dir}" && -d "${worktree_dir}" ]]; then
61
+ git worktree remove --force "${worktree_dir}" || true
62
+ fi
63
+ git branch -D gh-pages-smoke || true
64
+ git tag -d v0.0.0-smoke || true
65
+ git tag -d v0.0.0rc1-smoke || true
66
+ }
67
+
68
+ smoke_dir="$(mktemp -d)"
69
+ trap 'cleanup "${smoke_dir}"' EXIT
70
+
71
+ mike deploy --branch gh-pages-smoke --update-aliases --title Development main
72
+ mike deploy \
73
+ --branch gh-pages-smoke \
74
+ --update-aliases \
75
+ --title v0.0.0-smoke \
76
+ v0.0.0-smoke \
77
+ latest
78
+ mike deploy \
79
+ --branch gh-pages-smoke \
80
+ --update-aliases \
81
+ --title v0.0.0rc1-smoke \
82
+ v0.0.0rc1-smoke \
83
+ prerelease
84
+ mike set-default --branch gh-pages-smoke latest
85
+
86
+ git worktree add --force "${smoke_dir}" gh-pages-smoke
87
+ test -f "${smoke_dir}/index.html"
88
+ test -f "${smoke_dir}/versions.json"
89
+ test -f "${smoke_dir}/main/index.html"
90
+ test -f "${smoke_dir}/v0.0.0-smoke/index.html"
91
+ test -f "${smoke_dir}/v0.0.0rc1-smoke/index.html"
92
+ test -f "${smoke_dir}/latest/index.html"
93
+ test -f "${smoke_dir}/prerelease/index.html"
94
+
95
+ python scripts/remove_prerelease_mike_docs.py --site-dir "${smoke_dir}"
96
+
97
+ test -f "${smoke_dir}/main/index.html"
98
+ test -f "${smoke_dir}/v0.0.0-smoke/index.html"
99
+ test -f "${smoke_dir}/latest/index.html"
100
+ test ! -e "${smoke_dir}/v0.0.0rc1-smoke"
101
+ test ! -e "${smoke_dir}/prerelease"
102
+ python -c 'import json, sys; from scripts.remove_prerelease_mike_docs import is_prerelease_version; versions = json.load(open(sys.argv[1], encoding="utf-8")); assert all(not is_prerelease_version(entry["version"]) for entry in versions); assert all("prerelease" not in entry.get("aliases", []) for entry in versions)' "${smoke_dir}/versions.json"
103
+
104
+ - name: Smoke test wheel index generation
105
+ run: |
106
+ set -euo pipefail
107
+
108
+ releases_json="$(mktemp)"
109
+ wheel_dir="$(mktemp -d)"
110
+
111
+ cat > "${releases_json}" <<'JSON'
112
+ [
113
+ {
114
+ "tag_name": "v0.2.0",
115
+ "draft": false,
116
+ "prerelease": false,
117
+ "published_at": "2026-06-30T12:00:00Z",
118
+ "html_url": "https://github.com/Olympus-HPC/proteus/releases/tag/v0.2.0",
119
+ "assets": [
120
+ {
121
+ "name": "proteus_python_backend_host_llvm22-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl",
122
+ "browser_download_url": "https://github.com/Olympus-HPC/proteus/releases/download/v0.2.0/proteus_python_backend_host_llvm22-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl"
123
+ },
124
+ {
125
+ "name": "proteus_python_backend_cuda12_llvm22-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl",
126
+ "browser_download_url": "https://github.com/Olympus-HPC/proteus/releases/download/v0.2.0/proteus_python_backend_cuda12_llvm22-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl"
127
+ },
128
+ {
129
+ "name": "proteus_python_backend_rocm72-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl",
130
+ "browser_download_url": "https://github.com/Olympus-HPC/proteus/releases/download/v0.2.0/proteus_python_backend_rocm72-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl"
131
+ }
132
+ ]
133
+ },
134
+ {
135
+ "tag_name": "v0.3.0rc1",
136
+ "draft": false,
137
+ "prerelease": true,
138
+ "published_at": "2026-06-29T12:00:00Z",
139
+ "html_url": "https://github.com/Olympus-HPC/proteus/releases/tag/v0.3.0rc1",
140
+ "assets": [
141
+ {
142
+ "name": "proteus_python_backend_host_llvm22-0.3.0rc1-cp312-cp312-manylinux_2_28_x86_64.whl",
143
+ "browser_download_url": "https://github.com/Olympus-HPC/proteus/releases/download/v0.3.0rc1/proteus_python_backend_host_llvm22-0.3.0rc1-cp312-cp312-manylinux_2_28_x86_64.whl"
144
+ }
145
+ ]
146
+ }
147
+ ]
148
+ JSON
149
+
150
+ python scripts/generate_simple_wheel_index.py \
151
+ --releases-json "${releases_json}" \
152
+ --output-dir "${wheel_dir}" \
153
+ --project "${PROTEUS_HOST_BACKEND_PACKAGE}" \
154
+ --project "${PROTEUS_CUDA_BACKEND_PACKAGE}" \
155
+ --project "${PROTEUS_ROCM_BACKEND_PACKAGE}"
156
+
157
+ test -f "${wheel_dir}/simple/index.html"
158
+ test -f "${wheel_dir}/test/index.html"
159
+ test -f "${wheel_dir}/simple/proteus-python-backend-host-llvm22/index.html"
160
+ test -f "${wheel_dir}/simple/proteus-python-backend-cuda12-llvm22/index.html"
161
+ test -f "${wheel_dir}/simple/proteus-python-backend-rocm72/index.html"
162
+ test -f "${wheel_dir}/test/proteus-python-backend-host-llvm22/index.html"
163
+
164
+ grep -n "<h1>Proteus wheel index: simple</h1>" "${wheel_dir}/simple/index.html"
165
+ grep -n "<h1>Proteus wheel index: test</h1>" "${wheel_dir}/test/index.html"
166
+ grep -n '<ul class="link-list">' "${wheel_dir}/simple/index.html"
167
+ grep -n '<li><a href="proteus-python-backend-host-llvm22/">' "${wheel_dir}/simple/index.html"
168
+ grep -n "<h1>proteus-python-backend-host-llvm22</h1>" "${wheel_dir}/simple/proteus-python-backend-host-llvm22/index.html"
169
+ grep -n "&larr; Back to simple index" "${wheel_dir}/simple/proteus-python-backend-host-llvm22/index.html"
170
+ grep -n "proteus_python_backend_host_llvm22-0.2.0" "${wheel_dir}/simple/proteus-python-backend-host-llvm22/index.html"
171
+ grep -n "proteus_python_backend_host_llvm22-0.3.0rc1" "${wheel_dir}/test/proteus-python-backend-host-llvm22/index.html"
172
+ if grep -q "proteus_python_backend_host_llvm22-0.3.0rc1" "${wheel_dir}/simple/proteus-python-backend-host-llvm22/index.html"; then
173
+ echo "prerelease wheel unexpectedly appeared in simple channel" >&2
174
+ exit 1
175
+ fi
176
+ if grep -q "proteus_python_backend_host_llvm22-0.2.0" "${wheel_dir}/test/proteus-python-backend-host-llvm22/index.html"; then
177
+ echo "stable wheel unexpectedly appeared in test channel" >&2
178
+ exit 1
179
+ fi
@@ -0,0 +1,49 @@
1
+ name: spack CI
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - ".github/workflows/ci-test-spack.yml"
7
+ - "CMakeLists.txt"
8
+ - "cmake/**"
9
+ - "include/**"
10
+ - "packaging/spack/**"
11
+ - "src/**"
12
+
13
+ jobs:
14
+ build-and-test:
15
+ name: spack ${{ matrix.os }} LLVM ${{ matrix.llvm }}
16
+ runs-on: ${{ matrix.os }}
17
+ strategy:
18
+ matrix:
19
+ os: [ubuntu-latest]
20
+ llvm: [18, 19, 20]
21
+ defaults:
22
+ run:
23
+ shell: bash -el {0}
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ # Install Clang/LLVM using system packages for Spack external package detection.
27
+ - name: Install LLVM ${{ matrix.llvm }}
28
+ run: |
29
+ sudo apt-get update
30
+ # Remove existing LLVM/Clang packages to avoid conflics with spack external package configuration.
31
+ sudo apt-get remove -y clang-[0-9]* llvm-[0-9]*-dev libclang-[0-9]*-dev 2>/dev/null || true
32
+ sudo apt-get install -y llvm-${{ matrix.llvm }}-dev libclang-${{ matrix.llvm }}-dev clang-${{ matrix.llvm }}
33
+ - name: Run spack test
34
+ run: |
35
+ # Install spack
36
+ export SPACK_DISABLE_LOCAL_CONFIG=true
37
+ export SPACK_USER_CACHE_PATH=/tmp/spack/user_cache
38
+ git clone --quiet --depth=2 --branch v1.1.1 https://github.com/spack/spack.git /tmp/spack
39
+ source /tmp/spack/share/spack/setup-env.sh
40
+ # Create spack environment
41
+ spack env create -d /tmp/proteus-spack-env
42
+ spack env activate /tmp/proteus-spack-env
43
+ # Find external dependencies
44
+ spack external find
45
+ # Add proteus package and install
46
+ spack repo add ${GITHUB_WORKSPACE}/packaging/spack
47
+ spack add proteus@git.${{ github.event.pull_request.head.sha }} ^llvm@${{ matrix.llvm }}
48
+ spack concretize -f
49
+ spack install -v