Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ FEDORA=42
UBUNTU=22.04

# Default versions for various dependencies
CLANG_TOOLS=14
CLANG_TOOLS=18
CMAKE=3.26.0
CUDA=11.7.1
DASK=latest
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,24 +81,24 @@ jobs:
matrix:
include:
- arch: amd64
clang-tools: 14
clang-tools: 18
image: conda-cpp
llvm: 14
llvm: 18
runs-on: ubuntu-latest
simd-level: AVX2
title: AMD64 Conda C++ AVX2
ubuntu: 22.04
- arch: amd64
clang-tools: 14
clang-tools: 18
image: ubuntu-cpp-sanitizer
llvm: 14
llvm: 18
runs-on: ubuntu-latest
title: AMD64 Ubuntu 24.04 C++ ASAN UBSAN
ubuntu: 24.04
- arch: arm64v8
clang-tools: 14
clang-tools: 18
image: ubuntu-cpp
llvm: 14
llvm: 18
runs-on: ubuntu-24.04-arm
title: ARM64 Ubuntu 22.04 C++
ubuntu: 22.04
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/cpp_extra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,6 @@ jobs:
ARROW_DEPENDENCY_SOURCE: VCPKG
ARROW_FLIGHT_SQL_ODBC: ON
ARROW_SIMD_LEVEL: AVX2
CMAKE_CXX_STANDARD: "17"
CMAKE_GENERATOR: Ninja
CMAKE_INSTALL_PREFIX: /usr
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cpp_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
ARROW_WITH_ZLIB: ON
ARROW_WITH_ZSTD: ON
BOOST_SOURCE: BUNDLED
CMAKE_CXX_STANDARD: "17"
CMAKE_CXX_STANDARD: "20"
CMAKE_GENERATOR: Ninja
CMAKE_INSTALL_PREFIX: /usr
CMAKE_UNITY_BUILD: ON
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/r.yml
Original file line number Diff line number Diff line change
Expand Up @@ -229,12 +229,13 @@ jobs:
# static library. The R is not used here but R 4.1 was the last R to use
# Rtools40.
r-version: "4.1"
rtools-version: 40
rtools-version: ${{ matrix.config.rtools }}
Ncpus: 2
- name: Build Arrow C++
shell: bash
env:
MINGW_ARCH: ${{ matrix.config.arch }}
RTOOLS_VERSION: ${{ matrix.config.rtools }}
run: ci/scripts/r_windows_build.sh
- name: Rename libarrow.zip
# So that they're unique when multiple are downloaded in the next step
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ jobs:
ARROW_WITH_SNAPPY: ON
ARROW_WITH_ZLIB: ON
ARROW_WITH_ZSTD: ON
CMAKE_CXX_STANDARD: "17"
CMAKE_CXX_STANDARD: "20"
CMAKE_GENERATOR: Ninja
CMAKE_INSTALL_PREFIX: "${{ github.workspace }}/dist"
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
Expand Down
2 changes: 1 addition & 1 deletion c_glib/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ project(
'arrow-glib',
'c',
'cpp',
default_options: ['c_std=c99', 'cpp_std=c++17'],
default_options: ['c_std=c99', 'cpp_std=c++20'],
license: 'Apache-2.0',
# Debian:
# https://packages.debian.org/search?keywords=meson
Expand Down
24 changes: 24 additions & 0 deletions ci/docker/almalinux-10-verify-rc.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

ARG arch=amd64
FROM ${arch}/almalinux:10

COPY dev/release/setup-rhel-rebuilds.sh /
RUN /setup-rhel-rebuilds.sh && \
rm /setup-rhel-rebuilds.sh && \
dnf -y clean all
2 changes: 2 additions & 0 deletions ci/docker/debian-experimental-cpp.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ RUN if [ -n "${gcc}" ]; then \
libldap-dev \
liblz4-dev \
libnghttp2-dev \
libopentelemetry-proto-dev \
libprotobuf-dev \
libprotoc-dev \
libpsl-dev \
Expand Down Expand Up @@ -88,6 +89,7 @@ RUN if [ -n "${gcc}" ]; then \
rapidjson-dev \
rsync \
tzdata \
tzdata-legacy \
zlib1g-dev && \
apt-get install -y -q --no-install-recommends -t experimental \
clang${llvm_package_suffix} \
Expand Down
4 changes: 2 additions & 2 deletions ci/scripts/cpp_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ elif [ "${ARROW_EMSCRIPTEN:-OFF}" = "ON" ]; then
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE:-OFF} \
-DCMAKE_C_FLAGS="${CFLAGS:-}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS:-}" \
-DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-17}" \
-DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-20}" \
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \
Expand Down Expand Up @@ -260,7 +260,7 @@ else
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE:-OFF} \
-DCMAKE_C_FLAGS="${CFLAGS:-}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS:-}" \
-DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-17}" \
-DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-20}" \
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \
Expand Down
6 changes: 4 additions & 2 deletions ci/scripts/install_sccache.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,17 @@

set -e

DEFAULT_VERSION=0.12.0

if [ "$#" -lt 2 ] || [ "$#" -gt 3 ]; then
echo "Usage: $0 <build> <prefix> <version>"
echo "Will default to version=0.3.0 "
echo "Will default to version=${DEFAULT_VERSION}"
exit 1
fi

BUILD=$1
PREFIX=$2
VERSION=${3:-0.3.0}
VERSION=${3:-${DEFAULT_VERSION}}
ARCH=$(uname -m)

if [ "${ARCH}" != x86_64 ] && [ "${ARCH}" != aarch64 ]; then
Expand Down
2 changes: 1 addition & 1 deletion ci/scripts/r_windows_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ mv mingw* build
cd build

# This may vary by system/CI provider
MSYS_LIB_DIR="/c/rtools40"
MSYS_LIB_DIR="/c/rtools${RTOOLS_VERSION}"

# Untar the builds we made
ls *.xz | xargs -n 1 tar -xJf
Expand Down
6 changes: 3 additions & 3 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -528,10 +528,10 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARROW_CXXFLAGS}")
# C++ specific flags.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CXX_COMMON_FLAGS} ${ARROW_CXXFLAGS}")

# Remove --std=c++17 to avoid errors from C compilers
string(REPLACE "-std=c++17" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
# Remove -std=c++20 to avoid errors from C compilers
string(REPLACE "-std=c++20" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})

# Add C++-only flags, like -std=c++17
# Add C++-only flags, like -std=c++20
set(CMAKE_CXX_FLAGS "${CXX_ONLY_FLAGS} ${CMAKE_CXX_FLAGS}")

include(ThirdpartyToolchain)
Expand Down
2 changes: 1 addition & 1 deletion cpp/cmake_modules/GandivaAddBitcode.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

# Create bitcode for the given source file.
function(gandiva_add_bitcode SOURCE)
set(CLANG_OPTIONS -std=c++17)
set(CLANG_OPTIONS -std=c++20)
if(MSVC)
# "19.20" means that it's compatible with Visual Studio 16 2019.
# We can update this to "19.30" when we dropped support for Visual
Expand Down
8 changes: 4 additions & 4 deletions cpp/cmake_modules/SetupCxxFlags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -141,12 +141,12 @@ endif()

# This ensures that things like c++17 get passed correctly
if(NOT DEFINED CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
elseif(${CMAKE_CXX_STANDARD} VERSION_LESS 17)
message(FATAL_ERROR "Cannot set a CMAKE_CXX_STANDARD smaller than 17")
set(CMAKE_CXX_STANDARD 20)
elseif(${CMAKE_CXX_STANDARD} VERSION_LESS 20)
message(FATAL_ERROR "Cannot set a CMAKE_CXX_STANDARD smaller than 20")
endif()

# We require a C++17 compliant compiler
# We require a C++20 compliant compiler
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# ARROW-6848: Do not use GNU (or other CXX) extensions
Expand Down
4 changes: 2 additions & 2 deletions cpp/examples/minimal_build/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ cmake_dependent_option(ARROW_LINK_SHARED
OFF)

if(NOT DEFINED CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 20)
endif()

# We require a C++17 compliant compiler
# We require a C++20 compliant compiler
set(CMAKE_CXX_STANDARD_REQUIRED ON)

if(NOT CMAKE_BUILD_TYPE)
Expand Down
2 changes: 1 addition & 1 deletion cpp/examples/minimal_build/run_static.sh
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ echo

rm -rf $EXAMPLE_BUILD_DIR
mkdir -p $EXAMPLE_BUILD_DIR
${CXX:-c++} -std=c++17 \
${CXX:-c++} -std=c++20 \
-o $EXAMPLE_BUILD_DIR/arrow-example \
$EXAMPLE_DIR/example.cc \
$(PKG_CONFIG_PATH=$ARROW_BUILD_DIR/lib/pkgconfig \
Expand Down
4 changes: 2 additions & 2 deletions cpp/examples/parquet/parquet_arrow/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ option(PARQUET_LINK_SHARED "Link to the Parquet shared library" ON)

# This ensures that things like -std=gnu++... get passed correctly
if(NOT DEFINED CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 20)
endif()

# We require a C++17 compliant compiler
# We require a C++20 compliant compiler
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Look for installed packages the system
Expand Down
2 changes: 1 addition & 1 deletion cpp/examples/tutorial_examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ project(ArrowTutorialExamples)

find_package(ArrowDataset)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra")

set(CMAKE_BUILD_TYPE Release)
Expand Down
2 changes: 1 addition & 1 deletion cpp/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ project(
version: '23.0.0-SNAPSHOT',
license: 'Apache-2.0',
meson_version: '>=1.3.0',
default_options: ['c_std=c11', 'warning_level=2', 'cpp_std=c++17'],
default_options: ['c_std=c11', 'warning_level=2', 'cpp_std=c++20'],
)

project_args = [
Expand Down
8 changes: 4 additions & 4 deletions cpp/src/arrow/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ function(arrow_add_object_library PREFIX)
add_library(${prefix}_shared OBJECT ${SOURCES})
set_target_properties(${prefix}_shared PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_compile_definitions(${prefix}_shared PRIVATE ARROW_EXPORTING)
target_compile_features(${prefix}_shared PRIVATE cxx_std_17)
target_compile_features(${prefix}_shared PRIVATE cxx_std_20)
set(${PREFIX}_TARGET_SHARED
${prefix}_shared
PARENT_SCOPE)
Expand All @@ -212,7 +212,7 @@ function(arrow_add_object_library PREFIX)
add_library(${prefix}_static OBJECT ${SOURCES})
set_target_properties(${prefix}_static PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_compile_definitions(${prefix}_static PRIVATE ARROW_STATIC)
target_compile_features(${prefix}_static PRIVATE cxx_std_17)
target_compile_features(${prefix}_static PRIVATE cxx_std_20)
set(${PREFIX}_TARGET_STATIC
${prefix}_static
PARENT_SCOPE)
Expand All @@ -224,7 +224,7 @@ function(arrow_add_object_library PREFIX)
else()
add_library(${prefix} OBJECT ${SOURCES})
set_target_properties(${prefix} PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_compile_features(${prefix} PRIVATE cxx_std_17)
target_compile_features(${prefix} PRIVATE cxx_std_20)
set(${PREFIX}_TARGET_SHARED
${prefix}
PARENT_SCOPE)
Expand Down Expand Up @@ -1181,7 +1181,7 @@ endif()
foreach(LIB_TARGET ${ARROW_LIBRARIES})
target_compile_definitions(${LIB_TARGET} PRIVATE ARROW_EXPORTING)
# C++17 is required to compile against Arrow C++ headers and libraries
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you update this "C++17" too?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, sorry, it's intriguing that I overlooked these two occurrences.

target_compile_features(${LIB_TARGET} PUBLIC cxx_std_17)
target_compile_features(${LIB_TARGET} PUBLIC cxx_std_20)
endforeach()

if(ARROW_WITH_BACKTRACE)
Expand Down
Loading
Loading