From 55661c7f04d608a6e9b2a5d4ec99e8e9e7deecba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de> Date: Tue, 18 Feb 2025 19:31:45 +0100 Subject: [PATCH 1/9] fix(BSS2): build %gcc@13.3 --- packages/build-brainscales/package.py | 8 ++++++++ packages/hxtorch/package.py | 3 +++ packages/oppulance/package.py | 7 +++++++ packages/pynn-brainscales/package.py | 3 +++ packages/wf-brainscales2-demos/package.py | 1 + spack.yaml | 8 ++++---- 6 files changed, 26 insertions(+), 4 deletions(-) diff --git a/packages/build-brainscales/package.py b/packages/build-brainscales/package.py index 6ea4a370..cec40a9c 100644 --- a/packages/build-brainscales/package.py +++ b/packages/build-brainscales/package.py @@ -15,6 +15,13 @@ import spack.build_environment class BuildBrainscales(WafPackage): """Common stuff for BrainScaleS packages...""" + version( + "9.0-a9", + git="https://github.com/electronicvisions/releases-ebrains", + tag="ebrains-9.0-a9", + commit="5951428b7598ff9478fa834d7e991e3ff94709ee", + submodules=True, + ) version( "9.0-a8", git="https://github.com/electronicvisions/releases-ebrains", @@ -52,6 +59,7 @@ class BuildBrainscales(WafPackage): ) # common dependencies of BuildBrainscales-derived packages + depends_on('oppulance@9.0-a9', when='@9.0-a9', type=('build', 'link', 'run', 'test')) depends_on('oppulance@9.0-a8', when='@9.0-a8', type=('build', 'link', 'run', 'test')) depends_on('oppulance@9.0-a7', when='@9.0-a7', type=('build', 'link', 'run', 'test')) depends_on('oppulance@9.0-a6', when='@9.0-a6', type=('build', 'link', 'run', 'test')) diff --git a/packages/hxtorch/package.py b/packages/hxtorch/package.py index 437a6886..ef237ceb 100644 --- a/packages/hxtorch/package.py +++ b/packages/hxtorch/package.py @@ -90,6 +90,9 @@ class Hxtorch(build_brainscales.BuildBrainscales): extends('python') + # some versions of dependencies are broken + conflicts("boost@1.86.0") # sha1 digest changed length, but boost::compute didn't adapt + patch("include-SparseTensorUtils.patch", when="@:8.0-a5") def install_test(self): diff --git a/packages/oppulance/package.py b/packages/oppulance/package.py index 2249a8b4..55d6b04e 100644 --- a/packages/oppulance/package.py +++ b/packages/oppulance/package.py @@ -21,6 +21,13 @@ class Oppulance(Package): depends_on('wget') depends_on('gmp') + version( + "9.0-a9", + git="https://github.com/electronicvisions/releases-ebrains", + tag="ebrains-9.0-a9", + commit="5951428b7598ff9478fa834d7e991e3ff94709ee", + submodules=True, + ) version( "9.0-a8", git="https://github.com/electronicvisions/releases-ebrains", diff --git a/packages/pynn-brainscales/package.py b/packages/pynn-brainscales/package.py index 13d850f7..3e68558d 100644 --- a/packages/pynn-brainscales/package.py +++ b/packages/pynn-brainscales/package.py @@ -82,6 +82,9 @@ class PynnBrainscales(build_brainscales.BuildBrainscales): depends_on('yaml-cpp+shared', type=('build', 'link', 'run')) extends('python') + # some versions of dependencies are broken + conflicts("boost@1.86.0") # sha1 digest changed length, but boost::compute didn't adapt + def install_test(self): with working_dir('spack-test', create=True): old_pythonpath = os.environ.get('PYTHONPATH', '') diff --git a/packages/wf-brainscales2-demos/package.py b/packages/wf-brainscales2-demos/package.py index 9226c76a..1dc5b24b 100644 --- a/packages/wf-brainscales2-demos/package.py +++ b/packages/wf-brainscales2-demos/package.py @@ -16,6 +16,7 @@ class WfBrainscales2Demos(Package): maintainers = ["emuller", "muffgaga"] # ECM: we probably should build the ipynb file in this package + version("9.0-a9", tag="jupyter-notebooks-9.0-a9") version("9.0-a8", tag="jupyter-notebooks-9.0-a8") version("9.0-a7", tag="jupyter-notebooks-9.0-a7") version("9.0-a6", tag="jupyter-notebooks-9.0-a6") diff --git a/spack.yaml b/spack.yaml index e278c469..f4bdea9a 100644 --- a/spack.yaml +++ b/spack.yaml @@ -12,10 +12,10 @@ spack: - py-biobb-model@4.1.0 - py-biobb-structure-checking@3.13.4 - py-biobb-structure-utils@4.1.0 - - hxtorch@9.0-a8 + - hxtorch@9.0-a9 - nest@3.8 +sonata - neuron@8.2.3 +mpi - - jaxsnn@9.0-a8 + - jaxsnn@9.0-a9 - py-bluepyefe@2.3.6 - py-bluepymm@0.8.7 - py-bluepyopt@1.14.11 @@ -62,14 +62,14 @@ spack: - py-tvb-ext-xircuits@1.1.0 - py-viziphant@0.4.0 - py-vbi - - pynn-brainscales@9.0-a8 + - pynn-brainscales@9.0-a9 - r-rgsl@0.1.1 - r-sbtabvfgen@0.1 - r-uqsa@2.2 # - sda@7.3.3d # Workflows (meta-packages) - wf-biobb - - wf-brainscales2-demos@9.0-a8 + - wf-brainscales2-demos@9.0-a9 - wf-bsb@4.4 +nest +neuron # - wf-protein-association-rates@0.1 - wf-multi-area-model@1.2.0 -- GitLab From d2129836d24d47a0ce37c7aec3bac5624149c250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de> Date: Wed, 26 Feb 2025 13:14:55 +0100 Subject: [PATCH 2/9] fix(genpybind): build on llvm@15 --- packages/genpybind/package.py | 1 + packages/hxtorch/package.py | 2 +- packages/pynn-brainscales/package.py | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/genpybind/package.py b/packages/genpybind/package.py index f5398139..012d2e5b 100644 --- a/packages/genpybind/package.py +++ b/packages/genpybind/package.py @@ -21,6 +21,7 @@ class Genpybind(WafPackage): version('develop', branch='develop') version('visions', branch='master', git='https://github.com/electronicvisions/genpybind') + version('ebrains-llvm15', tag='ebrains-9.0-a9', git='https://github.com/electronicvisions/genpybind') version('ebrains', tag='ebrains_release-1-rc1', git='https://github.com/electronicvisions/genpybind') depends_on( diff --git a/packages/hxtorch/package.py b/packages/hxtorch/package.py index ef237ceb..d4a5ea66 100644 --- a/packages/hxtorch/package.py +++ b/packages/hxtorch/package.py @@ -53,7 +53,7 @@ class Hxtorch(build_brainscales.BuildBrainscales): ('boost@1.69.0: +graph+icu+mpi+numpy+coroutine+context+filesystem+python+serialization+system+thread+program_options cxxstd=17', { "type": ('build', 'link', 'run', 'test') } ), ('cereal', { "type": ('build', 'link', 'run', 'test') } ), ('cppcheck', { "type": ('build', 'link', 'run') } ), - ('genpybind@ebrains', { "type": ('build', 'link') } ), + ('genpybind@ebrains-llvm15', { "type": ('build', 'link') } ), ('gflags', { "type": ('build', 'link', 'run') } ), ('googletest@1.11.0:+gmock', { "type": ('build', 'link', 'run') } ), # variadic templates needed ('inja', { "type": ('build', 'link', 'run', 'test') } ),# template engine for PPU source jit generation diff --git a/packages/pynn-brainscales/package.py b/packages/pynn-brainscales/package.py index 3e68558d..e0836671 100644 --- a/packages/pynn-brainscales/package.py +++ b/packages/pynn-brainscales/package.py @@ -51,7 +51,7 @@ class PynnBrainscales(build_brainscales.BuildBrainscales): depends_on('boost@1.69.0: +graph+icu+mpi+numpy+coroutine+context+filesystem+python+serialization+system+thread+program_options cxxstd=17', type=('build', 'link', 'run', 'test')) depends_on('cereal', type=('build', 'link', 'run', 'test')) depends_on('cppcheck', type=('build', 'link', 'run')) - depends_on('genpybind@ebrains', type=('build', 'link')) + depends_on('genpybind@ebrains-llvm15', type=('build', 'link')) depends_on('gflags', type=('build', 'link', 'run')) depends_on('googletest@1.11.0:+gmock', type=('build', 'link', 'run')) # variadic templates needed depends_on('inja', type=('build', 'link', 'run', 'test')) # template engine for PPU source jit generation -- GitLab From 3a26e468e91b27775d425a5388c7e0920a6475ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de> Date: Wed, 26 Feb 2025 17:43:37 +0100 Subject: [PATCH 3/9] fix(BSS2): build of python wrapper w/ llvm@15 --- packages/build-brainscales/package.py | 2 +- packages/oppulance/package.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/build-brainscales/package.py b/packages/build-brainscales/package.py index cec40a9c..d1ab34f9 100644 --- a/packages/build-brainscales/package.py +++ b/packages/build-brainscales/package.py @@ -19,7 +19,7 @@ class BuildBrainscales(WafPackage): "9.0-a9", git="https://github.com/electronicvisions/releases-ebrains", tag="ebrains-9.0-a9", - commit="5951428b7598ff9478fa834d7e991e3ff94709ee", + commit="41d2597bd6c1c20aee4d538c42c248195a133680", submodules=True, ) version( diff --git a/packages/oppulance/package.py b/packages/oppulance/package.py index 55d6b04e..7df3c70f 100644 --- a/packages/oppulance/package.py +++ b/packages/oppulance/package.py @@ -25,7 +25,7 @@ class Oppulance(Package): "9.0-a9", git="https://github.com/electronicvisions/releases-ebrains", tag="ebrains-9.0-a9", - commit="5951428b7598ff9478fa834d7e991e3ff94709ee", + commit="41d2597bd6c1c20aee4d538c42c248195a133680", submodules=True, ) version( -- GitLab From 71f1b7a3638e83419d3e01fd51fb6c841a1ae3dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de> Date: Thu, 27 Feb 2025 15:01:49 +0100 Subject: [PATCH 4/9] fix(llvm): backport patches for clang's Python bindings --- .../llvm15-clang-python-missing-kinds.patch | 238 ++++++++++++++++++ packages/llvm/package.py | 16 ++ 2 files changed, 254 insertions(+) create mode 100644 packages/llvm/llvm15-clang-python-missing-kinds.patch diff --git a/packages/llvm/llvm15-clang-python-missing-kinds.patch b/packages/llvm/llvm15-clang-python-missing-kinds.patch new file mode 100644 index 00000000..d45dc630 --- /dev/null +++ b/packages/llvm/llvm15-clang-python-missing-kinds.patch @@ -0,0 +1,238 @@ +From eb264d825beb048c6e673ddaf5aca069511fcfb3 Mon Sep 17 00:00:00 2001 +From: ykiko <ykikoykikoykiko@gmail.com> +Date: Mon, 18 Mar 2024 22:13:10 +0800 +Subject: [PATCH] Add some missing Kinds to libclang python bindings (#85571) + +Add some Kinds existing in Index.h but missing in cindex.py. +--- + clang/bindings/python/clang/cindex.py | 173 +++++++++++++++++++++++++- + clang/docs/ReleaseNotes.rst | 2 + + clang/include/clang-c/Index.h | 2 +- + 3 files changed, 175 insertions(+), 2 deletions(-) + +diff --git a/clang/bindings/python/clang/cindex.py b/clang/bindings/python/clang/cindex.py +index 44a34ca196274..302d99dccd77b 100644 +--- a/clang/bindings/python/clang/cindex.py ++++ b/clang/bindings/python/clang/cindex.py +@@ -1091,6 +1091,29 @@ def __repr__(self): + # Represents an @available(...) check. + CursorKind.OBJC_AVAILABILITY_CHECK_EXPR = CursorKind(148) + ++# Fixed point literal. ++CursorKind.FIXED_POINT_LITERAL = CursorKind(149) ++ ++# OpenMP 5.0 [2.1.4, Array Shaping]. ++CursorKind.OMP_ARRAY_SHAPING_EXPR = CursorKind(150) ++ ++# OpenMP 5.0 [2.1.6 Iterators]. ++CursorKind.OMP_ITERATOR_EXPR = CursorKind(151) ++ ++# OpenCL's addrspace_cast<> expression. ++CursorKind.CXX_ADDRSPACE_CAST_EXPR = CursorKind(152) ++ ++# Expression that references a C++20 concept. ++CursorKind.CONCEPT_SPECIALIZATION_EXPR = CursorKind(153) ++ ++# Expression that references a C++20 requires expression. ++CursorKind.REQUIRES_EXPR = CursorKind(154) ++ ++# Expression that references a C++20 parenthesized list aggregate initializer. ++CursorKind.CXX_PAREN_LIST_INIT_EXPR = CursorKind(155) ++ ++# Represents a C++26 pack indexing expression. ++CursorKind.PACK_INDEXING_EXPR = CursorKind(156) + + # A statement whose specific kind is not exposed via this interface. + # +@@ -1312,6 +1335,114 @@ def __repr__(self): + # OpenMP teams distribute directive. + CursorKind.OMP_TEAMS_DISTRIBUTE_DIRECTIVE = CursorKind(271) + ++# OpenMP teams distribute simd directive. ++CursorKind.OMP_TEAMS_DISTRIBUTE_DIRECTIVE = CursorKind(272) ++ ++# OpenMP teams distribute parallel for simd directive. ++CursorKind.OMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_DIRECTIVE = CursorKind(273) ++ ++# OpenMP teams distribute parallel for directive. ++CursorKind.OMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_DIRECTIVE = CursorKind(274) ++ ++# OpenMP target teams directive. ++CursorKind.OMP_TARGET_TEAMS_DIRECTIVE = CursorKind(275) ++ ++# OpenMP target teams distribute directive. ++CursorKind.OMP_TARGET_TEAMS_DISTRIBUTE_DIRECTIVE = CursorKind(276) ++ ++# OpenMP target teams distribute parallel for directive. ++CursorKind.OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_DIRECTIVE = CursorKind(277) ++ ++# OpenMP target teams distribute parallel for simd directive. ++CursorKind.OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_DIRECTIVE = CursorKind(278) ++ ++# OpenMP target teams distribute simd directive. ++CursorKind.OMP_TARGET_TEAMS_DISTRIBUTE_SIMD_DIRECTIVE = CursorKind(279) ++ ++# C++2a std::bit_cast expression. ++CursorKind.BUILTIN_BIT_CAST_EXPR = CursorKind(280) ++ ++# OpenMP master taskloop directive. ++CursorKind.OMP_MASTER_TASK_LOOP_DIRECTIVE = CursorKind(281) ++ ++# OpenMP parallel master taskloop directive. ++CursorKind.OMP_PARALLEL_MASTER_TASK_LOOP_DIRECTIVE = CursorKind(282) ++ ++# OpenMP master taskloop simd directive. ++CursorKind.OMP_MASTER_TASK_LOOP_SIMD_DIRECTIVE = CursorKind(283) ++ ++# OpenMP parallel master taskloop simd directive. ++CursorKind.OMP_PARALLEL_MASTER_TASK_LOOP_SIMD_DIRECTIVE = CursorKind(284) ++ ++# OpenMP parallel master directive. ++CursorKind.OMP_PARALLEL_MASTER_DIRECTIVE = CursorKind(285) ++ ++# OpenMP depobj directive. ++CursorKind.OMP_DEPOBJ_DIRECTIVE = CursorKind(286) ++ ++# OpenMP scan directive. ++CursorKind.OMP_SCAN_DIRECTIVE = CursorKind(287) ++ ++# OpenMP tile directive. ++CursorKind.OMP_TILE_DIRECTIVE = CursorKind(288) ++ ++# OpenMP canonical loop. ++CursorKind.OMP_CANONICAL_LOOP = CursorKind(289) ++ ++# OpenMP interop directive. ++CursorKind.OMP_INTEROP_DIRECTIVE = CursorKind(290) ++ ++# OpenMP dispatch directive. ++CursorKind.OMP_DISPATCH_DIRECTIVE = CursorKind(291) ++ ++# OpenMP masked directive. ++CursorKind.OMP_MASKED_DIRECTIVE = CursorKind(292) ++ ++# OpenMP unroll directive. ++CursorKind.OMP_UNROLL_DIRECTIVE = CursorKind(293) ++ ++# OpenMP metadirective directive. ++CursorKind.OMP_META_DIRECTIVE = CursorKind(294) ++ ++# OpenMP loop directive. ++CursorKind.OMP_GENERIC_LOOP_DIRECTIVE = CursorKind(295) ++ ++# OpenMP teams loop directive. ++CursorKind.OMP_TEAMS_GENERIC_LOOP_DIRECTIVE = CursorKind(296) ++ ++# OpenMP target teams loop directive. ++CursorKind.OMP_TARGET_TEAMS_GENERIC_LOOP_DIRECTIVE = CursorKind(297) ++ ++# OpenMP parallel loop directive. ++CursorKind.OMP_PARALLEL_GENERIC_LOOP_DIRECTIVE = CursorKind(298) ++ ++# OpenMP target parallel loop directive. ++CursorKind.OMP_TARGET_PARALLEL_GENERIC_LOOP_DIRECTIVE = CursorKind(299) ++ ++# OpenMP parallel masked directive. ++CursorKind.OMP_PARALLEL_MASKED_DIRECTIVE = CursorKind(300) ++ ++# OpenMP masked taskloop directive. ++CursorKind.OMP_MASKED_TASK_LOOP_DIRECTIVE = CursorKind(301) ++ ++# OpenMP masked taskloop simd directive. ++CursorKind.OMP_MASKED_TASK_LOOP_SIMD_DIRECTIVE = CursorKind(302) ++ ++# OpenMP parallel masked taskloop directive. ++CursorKind.OMP_PARALLEL_MASKED_TASK_LOOP_DIRECTIVE = CursorKind(303) ++ ++# OpenMP parallel masked taskloop simd directive. ++CursorKind.OMP_PARALLEL_MASKED_TASK_LOOP_SIMD_DIRECTIVE = CursorKind(304) ++ ++# OpenMP error directive. ++CursorKind.OMP_ERROR_DIRECTIVE = CursorKind(305) ++ ++# OpenMP scope directive. ++CursorKind.OMP_SCOPE_DIRECTIVE = CursorKind(306) ++ ++# OpenACC Compute Construct. ++CursorKind.OPEN_ACC_COMPUTE_DIRECTIVE = CursorKind(320) ++ + ### + # Other Kinds + +@@ -1349,6 +1480,24 @@ def __repr__(self): + + CursorKind.DLLEXPORT_ATTR = CursorKind(418) + CursorKind.DLLIMPORT_ATTR = CursorKind(419) ++CursorKind.NS_RETURNS_RETAINED = CursorKind(420) ++CursorKind.NS_RETURNS_NOT_RETAINED = CursorKind(421) ++CursorKind.NS_RETURNS_AUTORELEASED = CursorKind(422) ++CursorKind.NS_CONSUMES_SELF = CursorKind(423) ++CursorKind.NS_CONSUMED = CursorKind(424) ++CursorKind.OBJC_EXCEPTION = CursorKind(425) ++CursorKind.OBJC_NSOBJECT = CursorKind(426) ++CursorKind.OBJC_INDEPENDENT_CLASS = CursorKind(427) ++CursorKind.OBJC_PRECISE_LIFETIME = CursorKind(428) ++CursorKind.OBJC_RETURNS_INNER_POINTER = CursorKind(429) ++CursorKind.OBJC_REQUIRES_SUPER = CursorKind(430) ++CursorKind.OBJC_ROOT_CLASS = CursorKind(431) ++CursorKind.OBJC_SUBCLASSING_RESTRICTED = CursorKind(432) ++CursorKind.OBJC_EXPLICIT_PROTOCOL_IMPL = CursorKind(433) ++CursorKind.OBJC_DESIGNATED_INITIALIZER = CursorKind(434) ++CursorKind.OBJC_RUNTIME_VISIBLE = CursorKind(435) ++CursorKind.OBJC_BOXABLE = CursorKind(436) ++CursorKind.FLAG_ENUM = CursorKind(437) + CursorKind.CONVERGENT_ATTR = CursorKind(438) + CursorKind.WARN_UNUSED_ATTR = CursorKind(439) + CursorKind.WARN_UNUSED_RESULT_ATTR = CursorKind(440) +@@ -1395,6 +1544,11 @@ class TemplateArgumentKind(BaseEnumeration): + TemplateArgumentKind.DECLARATION = TemplateArgumentKind(2) + TemplateArgumentKind.NULLPTR = TemplateArgumentKind(3) + TemplateArgumentKind.INTEGRAL = TemplateArgumentKind(4) ++TemplateArgumentKind.TEMPLATE = TemplateArgumentKind(5) ++TemplateArgumentKind.TEMPLATE_EXPANSION = TemplateArgumentKind(6) ++TemplateArgumentKind.EXPRESSION = TemplateArgumentKind(7) ++TemplateArgumentKind.PACK = TemplateArgumentKind(8) ++TemplateArgumentKind.INVALID = TemplateArgumentKind(9) + + ### Exception Specification Kinds ### + class ExceptionSpecificationKind(BaseEnumeration): +@@ -2240,8 +2394,26 @@ def __repr__(self): + TypeKind.OCLQUEUE = TypeKind(159) + TypeKind.OCLRESERVEID = TypeKind(160) + ++TypeKind.OBJCOBJECT = TypeKind(161) ++TypeKind.OBJCCLASS = TypeKind(162) ++TypeKind.ATTRIBUTED = TypeKind(163) ++ ++TypeKind.OCLINTELSUBGROUPAVCMCEPAYLOAD = TypeKind(164) ++TypeKind.OCLINTELSUBGROUPAVCIMEPAYLOAD = TypeKind(165) ++TypeKind.OCLINTELSUBGROUPAVCREFPAYLOAD = TypeKind(166) ++TypeKind.OCLINTELSUBGROUPAVCSICPAYLOAD = TypeKind(167) ++TypeKind.OCLINTELSUBGROUPAVCMCERESULT = TypeKind(168) ++TypeKind.OCLINTELSUBGROUPAVCIMERESULT = TypeKind(169) ++TypeKind.OCLINTELSUBGROUPAVCREFRESULT = TypeKind(170) ++TypeKind.OCLINTELSUBGROUPAVCSICRESULT = TypeKind(171) ++TypeKind.OCLINTELSUBGROUPAVCIMERESULTSINGLEREFERENCESTREAMOUT = TypeKind(172) ++TypeKind.OCLINTELSUBGROUPAVCIMERESULTSDUALREFERENCESTREAMOUT = TypeKind(173) ++TypeKind.OCLINTELSUBGROUPAVCIMERESULTSSINGLEREFERENCESTREAMIN = TypeKind(174) ++TypeKind.OCLINTELSUBGROUPAVCIMEDUALREFERENCESTREAMIN = TypeKind(175) ++ + TypeKind.EXTVECTOR = TypeKind(176) + TypeKind.ATOMIC = TypeKind(177) ++TypeKind.BTFTAGATTRIBUTED = TypeKind(178) + + class RefQualifierKind(BaseEnumeration): + """Describes a specific ref-qualifier of a type.""" +diff --git a/clang/include/clang-c/Index.h b/clang/include/clang-c/Index.h +index 3f3620609b6dd..60db3cf0966c0 100644 +--- a/clang/include/clang-c/Index.h ++++ b/clang/include/clang-c/Index.h +@@ -1675,7 +1675,7 @@ enum CXCursorKind { + CXCursor_ConceptSpecializationExpr = 153, + + /** +- * Expression that references a C++20 concept. ++ * Expression that references a C++20 requires expression. + */ + CXCursor_RequiresExpr = 154, + diff --git a/packages/llvm/package.py b/packages/llvm/package.py index b437b0ee..a0b9bd0e 100644 --- a/packages/llvm/package.py +++ b/packages/llvm/package.py @@ -548,6 +548,22 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage): sha256="c6ca6b925f150e8644ce756023797b7f94c9619c62507231f979edab1c09af78", when="@6:13", ) + + # begin EBRAINS + # add missing concept declaration CursorKind to clang's Python bindings + patch( + "https://github.com/llvm/llvm-project/commit/8b322895207c34b434698954dc67404e0bbf8d8e.patch?full_index=1", + sha256="173050a7f08c01bbc18d1145f455cac827754d0436befc2afd1add86e884fac0", + when="@15:16", + ) + # Add some Kinds existing in Index.h but missing in cindex.py (dropped release note changes) + patch( + # based on https://github.com/llvm/llvm-project/commit/eb264d825beb048c6e673ddaf5aca069511fcfb3.patch?full_index=1 + "llvm15-clang-python-missing-kinds.patch", + when="@15:18", + ) + # end EBRAINS + # fix building of older versions of llvm with newer versions of glibc for compiler_rt_as in ["project", "runtime"]: with when("compiler-rt={0}".format(compiler_rt_as)): -- GitLab From 9e9b0ce3e635aded0b796fa59df6d9f069d9808d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de> Date: Thu, 6 Mar 2025 09:01:28 +0100 Subject: [PATCH 5/9] fix: small bug in install script --- install_spack_env.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install_spack_env.sh b/install_spack_env.sh index a0bd61a9..f7429916 100644 --- a/install_spack_env.sh +++ b/install_spack_env.sh @@ -130,7 +130,7 @@ spack-python -c "exit(not len(spack.environment.active_environment().uninstalled else echo "Updating of the source cache disabled." fi - if [ $ret -ne 0 ]; then + if [ "$ret" -ne 0 ]; then (exit $ret) fi ) -- GitLab From 9744c28a3debc620b88f50844f58302797213998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de> Date: Thu, 6 Mar 2025 09:01:40 +0100 Subject: [PATCH 6/9] fix(BSS2): cache content when downloading oppulance first --- packages/oppulance/package.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/oppulance/package.py b/packages/oppulance/package.py index 7df3c70f..7e0d22b6 100644 --- a/packages/oppulance/package.py +++ b/packages/oppulance/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import unittest.mock class Oppulance(Package): @@ -137,6 +138,15 @@ class Oppulance(Package): expand=False, ) + # see build-brainscales package for a description; we need to duplicate + # here, as the cache content is shared between the two repositories + @when("@9:") + def do_fetch(self, mirror_only=False): + # in the configure step, we need access to all archived .git folders + def custom_archive(self, destination): + super(spack.fetch_strategy.GitFetchStrategy, self).archive(destination) + with unittest.mock.patch('spack.fetch_strategy.GitFetchStrategy.archive', new=custom_archive): + super().do_fetch(mirror_only) def install(self, spec, prefix): ln = which('ln') -- GitLab From 1c6ea7d1c13f699cb65560bc59f958d41e4f86f0 Mon Sep 17 00:00:00 2001 From: Eleni Mathioulaki <emathioulaki@athenarc.gr> Date: Sun, 23 Feb 2025 03:40:50 +0000 Subject: [PATCH 7/9] DO-NOT-MERGE: don't skip bss packages --- install_spack_env.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install_spack_env.sh b/install_spack_env.sh index f7429916..f0fa3f59 100644 --- a/install_spack_env.sh +++ b/install_spack_env.sh @@ -141,7 +141,7 @@ if [ -n "${OCI_CACHE_PREFIX}" ]; then fi # temporarily skip packages that fail -spack rm hxtorch jaxsnn pynn-brainscales wf-brainscales2-demos py-snudda r-sbtabvfgen +spack rm py-snudda r-sbtabvfgen # install the environment, use 2 jobs to reduce the amount of required RAM # delay exit code until we have updated the cache below -- GitLab From 7b56e50d1b86b6b30e9dcc15f4e1d22a4a07f6cb Mon Sep 17 00:00:00 2001 From: Eleni Mathioulaki <emathioulaki@athenarc.gr> Date: Sun, 23 Feb 2025 05:27:29 +0000 Subject: [PATCH 8/9] DO-NOT-MERGE: temporarily skip wf-brainscales2-demos --- spack.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack.yaml b/spack.yaml index f4bdea9a..01d94e20 100644 --- a/spack.yaml +++ b/spack.yaml @@ -69,7 +69,7 @@ spack: # - sda@7.3.3d # Workflows (meta-packages) - wf-biobb - - wf-brainscales2-demos@9.0-a9 +# - wf-brainscales2-demos@9.0-a9 - wf-bsb@4.4 +nest +neuron # - wf-protein-association-rates@0.1 - wf-multi-area-model@1.2.0 -- GitLab From ae69d1e030695dd910ef2c2d0c0d924e8df50c39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de> Date: Sat, 8 Mar 2025 10:08:31 +0100 Subject: [PATCH 9/9] fix(BSS2): ignore test fails because of missing catchsegv --- packages/build-brainscales/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/build-brainscales/package.py b/packages/build-brainscales/package.py index d1ab34f9..2419107c 100644 --- a/packages/build-brainscales/package.py +++ b/packages/build-brainscales/package.py @@ -208,6 +208,7 @@ class BuildBrainscales(WafPackage): if (elem.tag == 'failure') and not ( elem.get('message').startswith("pylint:") or elem.get('message').startswith("pycodestyle:") or + "catchsegv: not found" in elem.get('message') or ("OK" in elem.get('message') and "Segmentation fault" in elem.get('message'))): raise RuntimeError("Failed test found: {}".format(testcase.get('name'))) -- GitLab