@@ -49,16 +49,16 @@ jobs:
4949 pyenv --version
5050 - name : Set up LLVM
5151 run : |
52- brew install llvm@19
53- LLVM_PREFIX=$(brew --prefix llvm@19 )
52+ brew install llvm@20
53+ LLVM_PREFIX=$(brew --prefix llvm@20 )
5454 echo CC="$LLVM_PREFIX/bin/clang" >> $GITHUB_ENV
5555 echo CXX="$LLVM_PREFIX/bin/clang++" >> $GITHUB_ENV
5656 echo LDFLAGS="-L$LLVM_PREFIX/lib" >> $GITHUB_ENV
5757 echo CPPFLAGS="-I$LLVM_PREFIX/include" >> $GITHUB_ENV
5858 - name : Build Python with address sanitizer
5959 run : |
60- CONFIGURE_OPTS="--with-address-sanitizer" pyenv install 3.14t
61- pyenv global 3.14t
60+ CONFIGURE_OPTS="--with-address-sanitizer" pyenv install 3.14
61+ pyenv global 3.14
6262 - name : Install dependencies
6363 run : |
6464 pip install -r requirements/build_requirements.txt
@@ -107,42 +107,3 @@ jobs:
107107 python -m spin test \
108108 `find numpy -name "test*.py" | xargs grep -l "import threading" | tr '\n' ' '` \
109109 -- -v -s --timeout=600 --durations=10
110-
111- ubuntu_UBSAN :
112- # To enable this workflow on a fork, comment out:
113- if : github.repository == 'numpy/numpy'
114- runs-on : ubuntu-latest
115- steps :
116- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
117- with :
118- submodules : recursive
119- fetch-tags : true
120- persist-credentials : false
121- - name : Set up pyenv
122- run : |
123- git clone https://github.com/pyenv/pyenv.git "$HOME/.pyenv"
124- PYENV_ROOT="$HOME/.pyenv"
125- PYENV_BIN="$PYENV_ROOT/bin"
126- PYENV_SHIMS="$PYENV_ROOT/shims"
127- echo "$PYENV_BIN" >> $GITHUB_PATH
128- echo "$PYENV_SHIMS" >> $GITHUB_PATH
129- echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
130- - name : Check pyenv is working
131- run : pyenv --version
132- - name : Build python with address sanitizer
133- run : |
134- CONFIGURE_OPTS="--with-address-sanitizer" pyenv install 3.14t
135- pyenv global 3.14t
136- - name : Install dependencies
137- run : |
138- pip install -r requirements/build_requirements.txt
139- pip install -r requirements/ci_requirements.txt
140- pip install -r requirements/test_requirements.txt
141- - name : Build numpy with UndefinedBehaviorSanitizer
142- run : python -m spin build -- -Db_sanitize=address,undefined -Db_lundef=false
143- - name : Test
144- run : |
145- # pass -s to pytest to see UBSAN errors and warnings, otherwise pytest captures them
146- ASAN_OPTIONS=detect_leaks=0:symbolize=1:strict_init_order=true:allocator_may_return_null=1 \
147- UBSAN_OPTIONS=halt_on_error=1:suppressions=${GITHUB_WORKSPACE}/tools/ci/ubsan_suppressions_x86_64.txt \
148- spin test -- -v -s --timeout=600 --durations=10
0 commit comments