35
35
cling : Off
36
36
cppyy : On
37
37
coverage : true
38
+ - name : ubu22-x86-gcc12-clang-repl-17-xeus-clang-repl
39
+ os : ubuntu-22.04
40
+ compiler : gcc-12
41
+ clang-runtime : ' 17'
42
+ cling : Off
43
+ cppyy : On
44
+ xeus-clang-repl : On
45
+ coverage : true
38
46
- name : ubu22-x86-gcc9-clang-repl-16
39
47
os : ubuntu-22.04
40
48
compiler : gcc-9
49
57
cling : Off
50
58
cppyy : On
51
59
coverage : true
60
+ - name : ubu22-x86-gcc9-clang-repl-16-xeus-clang-repl
61
+ os : ubuntu-22.04
62
+ compiler : gcc-9
63
+ clang-runtime : ' 16'
64
+ cling : Off
65
+ cppyy : On
66
+ xeus-clang-repl : On
67
+ coverage : true
52
68
- name : ubu22-x86-gcc9-clang13-cling
53
69
os : ubuntu-22.04
54
70
compiler : gcc-9
65
81
cling-version : ' 1.0'
66
82
cppyy : On
67
83
coverage : true
84
+ - name : ubu22-x86-gcc9-clang13-cling-xeus-clang-repl
85
+ os : ubuntu-22.04
86
+ compiler : gcc-9
87
+ clang-runtime : ' 13'
88
+ cling : On
89
+ cling-version : ' 1.0'
90
+ cppyy : On
91
+ xeus-clang-repl : On
92
+ coverage : true
68
93
# Commented out until Ubuntu on arm Github runner becomes available
69
94
# os key to be replaced once known
70
95
# - name: ubu22-arm-gcc12-clang-repl-17
@@ -79,6 +104,13 @@ jobs:
79
104
# clang-runtime: '17'
80
105
# cling: Off
81
106
# cppyy: On
107
+ # - name: ubu22-arm-gcc12-clang-repl-17-xeus-clang-repl
108
+ # os: ubuntu-22.04-arm
109
+ # compiler: gcc-12
110
+ # clang-runtime: '17'
111
+ # cling: Off
112
+ # cppyy: On
113
+ # xeus-clang-repl: On
82
114
# - name: ubu22-arm-gcc9-clang-repl-16
83
115
# os: ubuntu-22.04-arm
84
116
# compiler: gcc-9
@@ -93,20 +125,43 @@ jobs:
93
125
# cling: Off
94
126
# cppyy: On
95
127
# coverage: true
128
+ # - name: ubu22-arm-gcc9-clang-repl-16-xeus-clang-repl
129
+ # os: ubuntu-22.04-arm
130
+ # compiler: gcc-9
131
+ # clang-runtime: '16'
132
+ # cling: Off
133
+ # cppyy: On
134
+ # xeus-clang-repl: On
96
135
# - name: ubu22-arm-gcc9-clang13-cling
97
136
# os: ubuntu-22.04-arm
98
137
# compiler: gcc-9
99
138
# clang-runtime: '13'
100
139
# cling: On
101
140
# cling-version: '1.0'
102
141
# cppyy: Off
142
+ # - name: ubu22-arm-gcc9-clang13-cling-xeus-clang-repl
143
+ # os: ubuntu-22.04-arm
144
+ # compiler: gcc-9
145
+ # clang-runtime: '13'
146
+ # cling: On
147
+ # cling-version: '1.0'
148
+ # cppyy: On
149
+ # xeus-clang-repl: On
103
150
# - name: ubu22-arm-gcc9-clang13-cling-cppyy
104
151
# os: ubuntu-22.04-arm
105
152
# compiler: gcc-9
106
153
# clang-runtime: '13'
107
154
# cling: On
108
155
# cling-version: '1.0'
109
156
# cppyy: On
157
+ # - name: ubu22-arm-gcc9-clang13-cling-xeus-clang-repl
158
+ # os: ubuntu-22.04-arm
159
+ # compiler: gcc-9
160
+ # clang-runtime: '13'
161
+ # cling: On
162
+ # cling-version: '1.0'
163
+ # cppyy: On
164
+ # xeus-clang-repl: On
110
165
- name : win2022-msvc-clang-repl-17
111
166
os : windows-2022
112
167
compiler : msvc
@@ -160,6 +215,13 @@ jobs:
160
215
clang-runtime : ' 17'
161
216
cling : Off
162
217
cppyy : On
218
+ - name : osx13-x86-clang-clang-repl-17-xeus-clang-repl
219
+ os : macos-13
220
+ compiler : clang
221
+ clang-runtime : ' 17'
222
+ cling : Off
223
+ cppyy : On
224
+ xeus-clang-repl : On
163
225
- name : osx13-x86-clang-clang-repl-16
164
226
os : macos-13
165
227
compiler : clang
@@ -172,6 +234,13 @@ jobs:
172
234
clang-runtime : ' 16'
173
235
cling : Off
174
236
cppyy : On
237
+ - name : osx13-x86-clang-clang-repl-16-xeus-clang-repl
238
+ os : macos-13
239
+ compiler : clang
240
+ clang-runtime : ' 16'
241
+ cling : Off
242
+ cppyy : On
243
+ xeus-clang-repl : On
175
244
- name : osx13-x86-clang-clang13-cling
176
245
os : macos-13
177
246
compiler : clang
@@ -186,6 +255,14 @@ jobs:
186
255
cling : On
187
256
cling-version : ' 1.0'
188
257
cppyy : On
258
+ - name : osx13-x86-clang-clang13-cling-xeus-clang-repl
259
+ os : macos-13
260
+ compiler : clang
261
+ clang-runtime : ' 13'
262
+ cling : On
263
+ cling-version : ' 1.0'
264
+ cppyy : On
265
+ xeus-clang-repl : On
189
266
# Block commented out until free tier for m1
190
267
# exists (expected sometime 2024) and key for os
191
268
# can be replaced
@@ -201,6 +278,13 @@ jobs:
201
278
# clang-runtime: '17'
202
279
# cling: Off
203
280
# cppyy: On
281
+ # - name: osx13-arm64-clang-clang-repl-17-xeus-clang-repl
282
+ # os: macos-13-arm64
283
+ # compiler: clang
284
+ # clang-runtime: '17'
285
+ # cling: Off
286
+ # cppyy: On
287
+ # xeus-clang-repl: On
204
288
# - name: osx13-arm64-clang-clang-repl-16
205
289
# os: macos-13-arm64
206
290
# compiler: clang
@@ -213,6 +297,13 @@ jobs:
213
297
# clang-runtime: '16'
214
298
# cling: Off
215
299
# cppyy: On
300
+ # - name: osx13-arm64-clang-clang-repl-16-xeus-clang-repl
301
+ # os: macos-13-arm64
302
+ # compiler: clang
303
+ # clang-runtime: '16'
304
+ # cling: Off
305
+ # cppyy: On
306
+ # xeus-clang-repl: On
216
307
# - name: osx13-arm64-clang-clang13-cling
217
308
# os: macos-13-arm64
218
309
# compiler: clang
@@ -227,7 +318,15 @@ jobs:
227
318
# cling: On
228
319
# cling-version: '1.0'
229
320
# cppyy: On
230
-
321
+ # - name: osx13-arm64-clang-clang13-cling-xeus-clang-repl
322
+ # os: macos-13-arm64
323
+ # compiler: clang
324
+ # clang-runtime: '13'
325
+ # cling: On
326
+ # cling-version: '1.0'
327
+ # cppyy: On
328
+ # xeus-clang-repl: On
329
+
231
330
steps :
232
331
- uses : actions/checkout@v3
233
332
with :
@@ -385,9 +484,8 @@ jobs:
385
484
# Install deps
386
485
sudo apt update
387
486
sudo apt install git g++ debhelper devscripts gnupg python3 valgrind
388
- conda install -y -q -c conda-forge \
389
- distro \
390
- pytest
487
+ sudo apt autoremove
488
+ sudo apt clean
391
489
392
490
- name : Install deps on MacOS
393
491
if : runner.os == 'macOS'
@@ -687,10 +785,10 @@ jobs:
687
785
cd cppyy-backend
688
786
mkdir -p $CPPINTEROP_DIR/lib build && cd build
689
787
# Install CppInterOp
690
- (cd $CPPINTEROP_BUILD_DIR && cmake --build . --target install --parallel $(nproc --all) )
788
+ (cd $CPPINTEROP_BUILD_DIR && cmake --build . --target install --parallel ${{ env.ncpus }} )
691
789
# Build and Install cppyy-backend
692
790
cmake -DCppInterOp_DIR=$CPPINTEROP_DIR ..
693
- cmake --build . --parallel $(nproc --all)
791
+ cmake --build . --parallel ${{ env.ncpus }}
694
792
OS=$(uname -s)
695
793
if [[ "$OS" == "Darwin" ]]; then
696
794
cp libcppyy-backend.dylib $CPPINTEROP_DIR/lib/
@@ -702,15 +800,50 @@ jobs:
702
800
- name : Install CPyCppyy on Unix Systems
703
801
if : ${{ (runner.os != 'windows') && (matrix.cppyy == 'On') }}
704
802
run : |
705
- # Setup virtual environment
706
- python3 -m venv .venv
707
- source .venv/bin/activate
803
+ # Setup and activate virtual environment (mamba envirnoment if building xeus-clang-repl)
804
+ xeus_clang_repl_on=$(echo "${{ matrix.xeus-clang-repl }}" | tr '[:lower:]' '[:upper:]')
805
+ if [[ "$xeus_clang_repl_on" == "ON" ]]; then
806
+ echo "Installing dependencies related to xeus-clang-repl build"
807
+ wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
808
+ bash Miniforge3.sh -b -p "${HOME}/conda"
809
+ source "${HOME}/conda/etc/profile.d/conda.sh"
810
+ source "${HOME}/conda/etc/profile.d/mamba.sh"
811
+ mamba create -y -n .venv python=3.10.6
812
+ mamba activate .venv
813
+ mamba install --quiet --yes -c conda-forge \
814
+ cmake \
815
+ 'xeus>=2.0' \
816
+ xeus-zmq \
817
+ 'nlohmann_json>=3.9.1,<3.10' \
818
+ 'cppzmq>=4.6.0,<5' \
819
+ 'xtl>=0.7,<0.8' \
820
+ 'openssl<4' \
821
+ ipykernel \
822
+ pugixml \
823
+ zlib \
824
+ libxml2 \
825
+ 'cxxopts>=2.2.1,<2.3' \
826
+ libuuid \
827
+ pytest \
828
+ jupyter_kernel_test
829
+ mamba install -y jupyter
830
+ hash -r
831
+ pip install ipython
832
+ jupyter notebook --generate-config -y
833
+ mamba clean --all -f -y
834
+ npm cache clean --force
835
+ jupyter lab clean
836
+ else
837
+ python3 -m venv .venv
838
+ source .venv/bin/activate
839
+ fi
840
+
708
841
# Install CPyCppyy
709
842
git clone --depth=1 https://github.com/compiler-research/CPyCppyy.git
710
843
mkdir CPyCppyy/build
711
844
cd CPyCppyy/build
712
845
cmake ..
713
- cmake --build . --parallel $(nproc --all)
846
+ cmake --build . --parallel ${{ env.ncpus }}
714
847
#
715
848
export CPYCPPYY_DIR=$PWD
716
849
cd ../..
@@ -720,7 +853,14 @@ jobs:
720
853
if : ${{ (runner.os != 'windows') && (matrix.cppyy == 'On') }}
721
854
run : |
722
855
# source virtual environment
723
- source .venv/bin/activate
856
+ xeus_clang_repl_on=$(echo "${{ matrix.xeus-clang-repl }}" | tr '[:lower:]' '[:upper:]')
857
+ if [[ "$xeus_clang_repl_on" == "ON" ]]; then
858
+ source "${HOME}/conda/etc/profile.d/conda.sh"
859
+ source "${HOME}/conda/etc/profile.d/mamba.sh"
860
+ mamba activate .venv
861
+ else
862
+ source .venv/bin/activate
863
+ fi
724
864
# Install cppyy
725
865
git clone --depth=1 https://github.com/compiler-research/cppyy.git
726
866
cd cppyy
@@ -730,14 +870,21 @@ jobs:
730
870
if : ${{ (runner.os != 'windows') && (matrix.cppyy == 'On') }}
731
871
run : |
732
872
# Run cppyy
733
- source .venv/bin/activate
873
+ xeus_clang_repl_on=$(echo "${{ matrix.xeus-clang-repl }}" | tr '[:lower:]' '[:upper:]')
874
+ if [[ "$xeus_clang_repl_on" == "ON" ]]; then
875
+ source "${HOME}/conda/etc/profile.d/conda.sh"
876
+ source "${HOME}/conda/etc/profile.d/mamba.sh"
877
+ mamba activate .venv
878
+ else
879
+ source .venv/bin/activate
880
+ fi
734
881
export PYTHONPATH=$PYTHONPATH:$CPYCPPYY_DIR:$CB_PYTHON_DIR
735
882
python -c "import cppyy"
736
883
# We need PYTHONPATH later
737
884
echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV
738
885
- name : Run the tests on Unix Systems
739
886
continue-on-error : true
740
- if : ${{ (runner.os != 'windows') && (matrix.cppyy == 'On') }}
887
+ if : ${{ (runner.os != 'windows') && (matrix.cppyy == 'On') && (matrix.xeus-clang-repl != 'On') }}
741
888
run : |
742
889
# Run the tests
743
890
source .venv/bin/activate
@@ -782,6 +929,28 @@ jobs:
782
929
echo "Return Code: ${RETCODE}"
783
930
exit $RETCODE
784
931
932
+ - name : Build xeus-clang-repl on Unix Systems
933
+ if : ${{ (runner.os != 'windows') && (matrix.xeus-clang-repl == 'On') }}
934
+ run : |
935
+ source "${HOME}/conda/etc/profile.d/conda.sh"
936
+ source "${HOME}/conda/etc/profile.d/mamba.sh"
937
+ mamba activate .venv
938
+ #Build xeus-clang-repl
939
+ LLVM_BUILD_DIR="$(pwd)/llvm-project/build"
940
+ git clone --depth=1 https://github.com/compiler-research/xeus-clang-repl.git
941
+ mkdir ./xeus-clang-repl/build/
942
+ cd ./xeus-clang-repl/build/
943
+ cmake -DCMAKE_BUILD_TYPE=Release \
944
+ -DLLVM_CMAKE_DIR=$LLVM_BUILD_DIR \
945
+ -DCMAKE_PREFIX_PATH=$(python -m site --user-site) \
946
+ -DCMAKE_INSTALL_PREFIX=$(python -m site --user-site) \
947
+ -DCMAKE_INSTALL_LIBDIR=lib \
948
+ -DLLVM_CONFIG_EXTRA_PATH_HINTS=$LLVM_BUILD_DIR/lib \
949
+ -DCPPINTEROP_DIR=$CPPINTEROP_BUILD_DIR \
950
+ -DLLVM_USE_LINKER=lld \
951
+ ..
952
+ make install -j ${{ env.ncpus }}
953
+
785
954
- name : Show debug info
786
955
if : ${{ failure() && (runner.os != 'windows') }}
787
956
run : |
0 commit comments