diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 5bc99a66..901b38f9 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -ARG DEVCONTAINER_BASE=mcr.microsoft.com/devcontainers/base:1.0.23-ubuntu-22.04 +ARG DEVCONTAINER_BASE=mcr.microsoft.com/devcontainers/base:ubuntu-24.04 ######################################################### # file-normalizer stage @@ -13,7 +13,7 @@ FROM mcr.microsoft.com/oss/busybox/busybox:1.33.1 as file-normalizer COPY environment.yml \ .devcontainer/devcontainer.bashrc \ - .devcontainer/matlab-r2023b.ubuntu-22.04.dependencies.txt \ + .devcontainer/matlab-r2023b.ubuntu-24.04.dependencies.txt \ /data/ RUN chmod -R 555 /data/ @@ -108,7 +108,7 @@ RUN wget --quiet "https://github.com/microsoft/yardl/releases/download/v${YARDL_ ENV DEBIAN_FRONTEND="noninteractive" TZ="Etc/UTC" -COPY --from=file-normalizer /data/matlab-r2023b.ubuntu-22.04.dependencies.txt /tmp/matlab-dependencies.txt +COPY --from=file-normalizer /data/matlab-r2023b.ubuntu-24.04.dependencies.txt /tmp/matlab-dependencies.txt RUN export DEBIAN_FRONTEND=noninteractive \ && apt-get update \ diff --git a/.devcontainer/matlab-r2023b.ubuntu-22.04.dependencies.txt b/.devcontainer/matlab-r2023b.ubuntu-24.04.dependencies.txt similarity index 80% rename from .devcontainer/matlab-r2023b.ubuntu-22.04.dependencies.txt rename to .devcontainer/matlab-r2023b.ubuntu-24.04.dependencies.txt index 230ba3f5..1f0e7c4a 100644 --- a/.devcontainer/matlab-r2023b.ubuntu-22.04.dependencies.txt +++ b/.devcontainer/matlab-r2023b.ubuntu-24.04.dependencies.txt @@ -1,18 +1,19 @@ ca-certificates -libasound2 +debianutils +libasound2t64 libc6 libcairo-gobject2 libcairo2 libcap2 -libcups2 +libcups2t64 libdrm2 libgbm1 libgdk-pixbuf-2.0-0 libgl1 -libglib2.0-0 +libglib2.0-0t64 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 -libgtk-3-0 +libgtk-3-0t64 libice6 libltdl7 libnspr4 @@ -31,7 +32,7 @@ libxfixes3 libxft2 libxinerama1 libxrandr2 -libxt6 +libxt6t64 libxtst6 libxxf86vm1 locales @@ -41,4 +42,6 @@ net-tools procps sudo unzip -zlib1g \ No newline at end of file +wget +x11-xkb-utils +zlib1g diff --git a/.github/workflows/mrd_conda.yml b/.github/workflows/mrd_conda.yml index dcae88b0..9c93d3a1 100644 --- a/.github/workflows/mrd_conda.yml +++ b/.github/workflows/mrd_conda.yml @@ -13,7 +13,7 @@ jobs: name: Test and Build Conda Packages strategy: matrix: - os: [ubuntu-latest, macos-13] + os: [ubuntu-latest] runs-on: ${{ matrix.os }} defaults: run: diff --git a/cpp/conda/conda_build_config.yaml b/cpp/conda/conda_build_config.yaml index 6d8770d2..aeab509e 100644 --- a/cpp/conda/conda_build_config.yaml +++ b/cpp/conda/conda_build_config.yaml @@ -1,8 +1,8 @@ c_compiler_version: - - 11.2.0 # [linux] + - 15.2.0 # [linux] - 14.0.6 # [osx] cxx_compiler_version: - - 11.2.0 # [linux] + - 15.2.0 # [linux] - 14.0.6 # [osx] MACOSX_DEPLOYMENT_TARGET: # [osx] diff --git a/cpp/conda/meta.yaml b/cpp/conda/meta.yaml index a2b8948c..0b6ee4c7 100644 --- a/cpp/conda/meta.yaml +++ b/cpp/conda/meta.yaml @@ -18,16 +18,16 @@ requirements: - ninja host: - fftw=3.3.9 - - fmt=8.1.1 - - howardhinnant_date=3.0.1 + - fmt=12.0.0 + - howardhinnant_date=3.0.3 - hdf5=1.10.6 - imagemagick=7.0.11_13 - ismrmrd>=1.14.2 - - nlohmann_json=3.11.2 - - xtensor=0.24.7 + - nlohmann_json=3.12.0 + - xtensor=0.25.0 - xtensor-fftw=0.2.5 run: - - fmt=8.1.1 + - fmt=12.0.0 - hdf5=1.10.6 - imagemagick=7.0.11_13 - ismrmrd>=1.14.2 diff --git a/cpp/mrd-tools/mrd_image_stream_to_png.cc b/cpp/mrd-tools/mrd_image_stream_to_png.cc index 2ca1c957..c6e6454b 100644 --- a/cpp/mrd-tools/mrd_image_stream_to_png.cc +++ b/cpp/mrd-tools/mrd_image_stream_to_png.cc @@ -1,4 +1,12 @@ +// NOTE: +// GCC 13+ appears to emit false positive warnings for array-bounds +// when using xt::views (specifically the calls to `xt::amax` below). +// The statements are correct and there's no overflow, so we can suppress the warnings. +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" #include "mrd/binary/protocols.h" +#pragma GCC diagnostic pop + #include #include #include diff --git a/cpp/mrd-tools/mrd_stream_recon.cc b/cpp/mrd-tools/mrd_stream_recon.cc index c3484da7..cb9e3a1f 100644 --- a/cpp/mrd-tools/mrd_stream_recon.cc +++ b/cpp/mrd-tools/mrd_stream_recon.cc @@ -1,11 +1,20 @@ + #include "mrd/binary/protocols.h" #include "mrd/protocols.h" #include "mrd/types.h" #include #include -#include + +// NOTE: +// GCC 13+ appears to emit false positive warnings for array-bounds and stringop-overflow +// when using xt::view with xt::range (specifically in `remove_oversampling` below). +// The assignment is correct and there's no overflow, so we can suppress the warnings. +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#pragma GCC diagnostic ignored "-Wstringop-overflow" #include +#pragma GCC diagnostic pop xt::xtensor, 4> fftshift(xt::xtensor, 4> x) { return xt::roll(xt::roll(x, x.shape(3) / 2, 3), x.shape(2) / 2, 2); diff --git a/environment.yml b/environment.yml index 95d08004..21408043 100644 --- a/environment.yml +++ b/environment.yml @@ -6,28 +6,28 @@ channels: dependencies: - bash-completion=2.11 - boost=1.80.0 - - cmake=3.21.3 - - fmt=8.1.1 - - gcc_linux-64=11.2.0 + - cmake=3.25.1 + - fmt=12.0.0 + - gcc_linux-64=15.2.0 - gdb=11.2 - - gxx_linux-64=11.2.0 + - gxx_linux-64=15.2.0 - h5py=3.2.1 - hdf5=1.10.6 - imagemagick=7.0.11_13 - ipykernel=6.23.1 - ismrmrd>=1.14.2 - - howardhinnant_date=3.0.1 - - just=1.5.0 + - howardhinnant_date=3.0.3 + - just=1.44.1 - matplotlib=3.6.2 - - ninja=1.11.0 - - nlohmann_json=3.11.2 + - ninja=1.13.0 + - nlohmann_json=3.12.0 - nodejs=18.12.1 # local - python=3.9.15 - pyfftw=0.13.1 - shellcheck=0.8.0 - valgrind=3.18.1 - xmlschema=2.2.3 - - xtensor=0.24.2 + - xtensor=0.25.0 - xtensor-fftw=0.2.5 - pip - pip: