aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2020-11-30 18:15:50 -0800
committerHaibo Huang <hhb@google.com>2020-11-30 18:15:50 -0800
commite6d1a91e25475ea5c71e30b5ff1b2aafccf686e7 (patch)
tree0ac1dd6234fe676c0795748f7708e618dc080a6e
parentc235dc3daf8b3cc7c1f3671514ba5263341e574f (diff)
parent70f7c06e305ad7c9e4e99b87672aaa1061d914d6 (diff)
downloadgoogle-fruit-e6d1a91e25475ea5c71e30b5ff1b2aafccf686e7.tar.gz
Upgrade google-fruit to 70f7c06e305ad7c9e4e99b87672aaa1061d914d6
Test: make Change-Id: If235428a22c9ac2408882054942385e4817ed3c5
-rw-r--r--.travis.yml103
-rw-r--r--METADATA6
-rw-r--r--extras/dockerfiles/Dockerfile.ubuntu-20.1040
-rwxr-xr-xextras/dockerfiles/rebuild_all.sh2
-rw-r--r--extras/dockerfiles/ubuntu-20.10_custom.list4
-rwxr-xr-xextras/scripts/postsubmit-helper.sh9
-rwxr-xr-xextras/scripts/travis_yml_generator.py11
-rw-r--r--include/fruit/impl/data_structures/semistatic_map.h4
8 files changed, 134 insertions, 45 deletions
diff --git a/.travis.yml b/.travis.yml
index 2b7f4b8..50045e3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,18 +10,39 @@ matrix:
fast_finish: true
include:
- compiler: gcc
- env: COMPILER=gcc-10 UBUNTU=20.04 TEST=ReleasePlain
- install: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
+ env: COMPILER=gcc-10 UBUNTU=20.10 TEST=ReleasePlain
+ install: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
os: linux
- script: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.04'; extras/scripts/postsubmit.sh
+ script: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.10'; extras/scripts/postsubmit.sh
ReleasePlain
- compiler: gcc
- env: COMPILER=gcc-10 UBUNTU=20.04 TEST=DebugPlain
- install: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
+ env: COMPILER=gcc-10 UBUNTU=20.10 TEST=DebugPlain
+ install: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
os: linux
- script: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.04'; extras/scripts/postsubmit.sh
+ script: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.10'; extras/scripts/postsubmit.sh
DebugPlain
- compiler: clang
+ env: COMPILER=clang-8.0 STL=libstdc++ UBUNTU=20.10 TEST=ReleasePlain
+ install: export OS=linux; export COMPILER='clang-8.0'; export STL='libstdc++';
+ export UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
+ os: linux
+ script: export OS=linux; export COMPILER='clang-8.0'; export STL='libstdc++';
+ export UBUNTU='20.10'; extras/scripts/postsubmit.sh ReleasePlain
+ - compiler: clang
+ env: COMPILER=clang-8.0 STL=libstdc++ UBUNTU=20.10 TEST=DebugAsanUbsan
+ install: export OS=linux; export COMPILER='clang-8.0'; export STL='libstdc++';
+ export UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
+ os: linux
+ script: export OS=linux; export COMPILER='clang-8.0'; export STL='libstdc++';
+ export UBUNTU='20.10'; extras/scripts/postsubmit.sh DebugAsanUbsan
+ - compiler: clang
+ env: COMPILER=clang-8.0 STL=libstdc++ UBUNTU=20.10 TEST=DebugPlain
+ install: export OS=linux; export COMPILER='clang-8.0'; export STL='libstdc++';
+ export UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
+ os: linux
+ script: export OS=linux; export COMPILER='clang-8.0'; export STL='libstdc++';
+ export UBUNTU='20.10'; extras/scripts/postsubmit.sh DebugPlain
+ - compiler: clang
env: COMPILER=clang-6.0 STL=libstdc++ UBUNTU=20.04 TEST=ReleasePlain
install: export OS=linux; export COMPILER='clang-6.0'; export STL='libstdc++';
export UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
@@ -49,51 +70,63 @@ matrix:
script: export OS=linux; export COMPILER='bazel'; export UBUNTU='18.04'; extras/scripts/postsubmit.sh
DebugPlain
- compiler: gcc
- env: COMPILER=gcc-7 UBUNTU=20.04 TEST=ReleasePlain
- install: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
+ env: COMPILER=gcc-7 UBUNTU=20.10 TEST=ReleasePlain
+ install: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
os: linux
- script: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.04'; extras/scripts/postsubmit.sh
+ script: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.10'; extras/scripts/postsubmit.sh
ReleasePlain
- compiler: gcc
- env: COMPILER=gcc-7 UBUNTU=20.04 TEST=DebugAsanUbsan
- install: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
+ env: COMPILER=gcc-7 UBUNTU=20.10 TEST=DebugAsanUbsan
+ install: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
os: linux
- script: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.04'; extras/scripts/postsubmit.sh
+ script: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.10'; extras/scripts/postsubmit.sh
DebugAsanUbsan
- compiler: gcc
- env: COMPILER=gcc-10 UBUNTU=20.04 TEST=DebugAsanUbsan
- install: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
+ env: COMPILER=gcc-10 UBUNTU=20.10 TEST=DebugAsanUbsan
+ install: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
os: linux
- script: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.04'; extras/scripts/postsubmit.sh
+ script: export OS=linux; export COMPILER='gcc-10'; export UBUNTU='20.10'; extras/scripts/postsubmit.sh
DebugAsanUbsan
- compiler: clang
- env: COMPILER=clang-10.0 STL=libstdc++ UBUNTU=20.04 TEST=ReleasePlain
- install: export OS=linux; export COMPILER='clang-10.0'; export STL='libstdc++';
- export UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
+ env: COMPILER=clang-11.0 STL=libstdc++ UBUNTU=20.10 TEST=ReleasePlain
+ install: export OS=linux; export COMPILER='clang-11.0'; export STL='libstdc++';
+ export UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
os: linux
- script: export OS=linux; export COMPILER='clang-10.0'; export STL='libstdc++';
- export UBUNTU='20.04'; extras/scripts/postsubmit.sh ReleasePlain
+ script: export OS=linux; export COMPILER='clang-11.0'; export STL='libstdc++';
+ export UBUNTU='20.10'; extras/scripts/postsubmit.sh ReleasePlain
- compiler: clang
- env: COMPILER=clang-10.0 STL=libstdc++ UBUNTU=20.04 TEST=DebugAsanUbsan
- install: export OS=linux; export COMPILER='clang-10.0'; export STL='libstdc++';
- export UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
+ env: COMPILER=clang-11.0 STL=libstdc++ UBUNTU=20.10 TEST=DebugAsanUbsan
+ install: export OS=linux; export COMPILER='clang-11.0'; export STL='libstdc++';
+ export UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
os: linux
- script: export OS=linux; export COMPILER='clang-10.0'; export STL='libstdc++';
- export UBUNTU='20.04'; extras/scripts/postsubmit.sh DebugAsanUbsan
+ script: export OS=linux; export COMPILER='clang-11.0'; export STL='libstdc++';
+ export UBUNTU='20.10'; extras/scripts/postsubmit.sh DebugAsanUbsan
- compiler: clang
- env: COMPILER=clang-10.0 STL=libc++ UBUNTU=20.04 TEST=ReleasePlain
- install: export OS=linux; export COMPILER='clang-10.0'; export STL='libc++'; export
- UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
+ env: COMPILER=clang-11.0 STL=libc++ UBUNTU=20.10 TEST=ReleasePlain
+ install: export OS=linux; export COMPILER='clang-11.0'; export STL='libc++'; export
+ UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
os: linux
- script: export OS=linux; export COMPILER='clang-10.0'; export STL='libc++'; export
- UBUNTU='20.04'; extras/scripts/postsubmit.sh ReleasePlain
+ script: export OS=linux; export COMPILER='clang-11.0'; export STL='libc++'; export
+ UBUNTU='20.10'; extras/scripts/postsubmit.sh ReleasePlain
- compiler: clang
- env: COMPILER=clang-10.0 STL=libc++ UBUNTU=20.04 TEST=DebugAsanUbsan
- install: export OS=linux; export COMPILER='clang-10.0'; export STL='libc++'; export
- UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
+ env: COMPILER=clang-11.0 STL=libc++ UBUNTU=20.10 TEST=DebugAsanUbsan
+ install: export OS=linux; export COMPILER='clang-11.0'; export STL='libc++'; export
+ UBUNTU='20.10'; extras/scripts/travis_ci_install_linux.sh
+ os: linux
+ script: export OS=linux; export COMPILER='clang-11.0'; export STL='libc++'; export
+ UBUNTU='20.10'; extras/scripts/postsubmit.sh DebugAsanUbsan
+ - compiler: gcc
+ env: COMPILER=gcc-7 UBUNTU=20.04 TEST=ReleasePlain
+ install: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
+ os: linux
+ script: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.04'; extras/scripts/postsubmit.sh
+ ReleasePlain
+ - compiler: gcc
+ env: COMPILER=gcc-7 UBUNTU=20.04 TEST=DebugAsanUbsan
+ install: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.04'; extras/scripts/travis_ci_install_linux.sh
os: linux
- script: export OS=linux; export COMPILER='clang-10.0'; export STL='libc++'; export
- UBUNTU='20.04'; extras/scripts/postsubmit.sh DebugAsanUbsan
+ script: export OS=linux; export COMPILER='gcc-7'; export UBUNTU='20.04'; extras/scripts/postsubmit.sh
+ DebugAsanUbsan
- compiler: gcc
env: COMPILER=gcc-5 UBUNTU=18.04 TEST=ReleasePlain
install: export OS=linux; export COMPILER='gcc-5'; export UBUNTU='18.04'; extras/scripts/travis_ci_install_linux.sh
diff --git a/METADATA b/METADATA
index 7390325..d1e2e35 100644
--- a/METADATA
+++ b/METADATA
@@ -9,11 +9,11 @@ third_party {
type: GIT
value: "https://github.com/google/fruit.git"
}
- version: "928458857f4b85a0016c2d724486343b4660cb46"
+ version: "70f7c06e305ad7c9e4e99b87672aaa1061d914d6"
license_type: NOTICE
last_upgrade_date {
year: 2020
- month: 9
- day: 21
+ month: 11
+ day: 30
}
}
diff --git a/extras/dockerfiles/Dockerfile.ubuntu-20.10 b/extras/dockerfiles/Dockerfile.ubuntu-20.10
new file mode 100644
index 0000000..6b4e52c
--- /dev/null
+++ b/extras/dockerfiles/Dockerfile.ubuntu-20.10
@@ -0,0 +1,40 @@
+FROM ubuntu:20.10
+MAINTAINER Marco Poletti <poletti.marco@gmail.com>
+
+COPY common_install.sh common_cleanup.sh /
+
+RUN bash -x /common_install.sh
+
+COPY ubuntu-20.10_custom.list /etc/apt/sources.list.d/
+
+RUN apt-get update
+
+RUN apt-get remove -y python3-pip
+RUN python3 -m easy_install pip
+
+RUN apt-get install -y --allow-unauthenticated --no-install-recommends \
+ g++-7 \
+ g++-8 \
+ g++-9 \
+ g++-10 \
+ clang-8 \
+ clang-9 \
+ clang-10 \
+ clang-11 \
+ python3.8 \
+ python3.8-distutils \
+ clang-tidy \
+ clang-format
+
+RUN python3.8 -m easy_install pip
+
+RUN pip3 install absl-py
+RUN pip3 install bidict
+RUN pip3 install pytest
+RUN pip3 install pytest-xdist
+RUN pip3 install sh
+RUN pip3 install setuptools
+RUN pip3 install networkx
+RUN pip3 install wheel
+
+RUN bash -x /common_cleanup.sh
diff --git a/extras/dockerfiles/rebuild_all.sh b/extras/dockerfiles/rebuild_all.sh
index 77153aa..f0e23d2 100755
--- a/extras/dockerfiles/rebuild_all.sh
+++ b/extras/dockerfiles/rebuild_all.sh
@@ -7,7 +7,7 @@ docker run --rm --privileged multiarch/qemu-user-static:register --reset
COMMANDS=()
-for V in 18.04 19.10 20.04
+for V in 18.04 19.10 20.04 20.10
do
C="docker build --squash -t polettimarco/fruit-basesystem:ubuntu-$V -f Dockerfile.ubuntu-$V ."
COMMANDS+=("$C || { echo; echo FAILED: '$C'; echo; exit 1; }")
diff --git a/extras/dockerfiles/ubuntu-20.10_custom.list b/extras/dockerfiles/ubuntu-20.10_custom.list
new file mode 100644
index 0000000..c26e2d9
--- /dev/null
+++ b/extras/dockerfiles/ubuntu-20.10_custom.list
@@ -0,0 +1,4 @@
+deb http://apt.llvm.org/focal/ llvm-toolchain-focal-9 main
+deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-9 main
+deb http://apt.llvm.org/focal/ llvm-toolchain-focal-10 main
+deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-10 main
diff --git a/extras/scripts/postsubmit-helper.sh b/extras/scripts/postsubmit-helper.sh
index 7be3b88..eecd3c0 100755
--- a/extras/scripts/postsubmit-helper.sh
+++ b/extras/scripts/postsubmit-helper.sh
@@ -102,6 +102,11 @@ clang-10.0)
export CXX=clang++-10
;;
+clang-11.0)
+ export CC=clang-11
+ export CXX=clang++-11
+ ;;
+
clang-default)
export CC=clang
export CXX=clang++
@@ -123,7 +128,9 @@ if [[ "${COMPILER}" != "bazel" ]]
then
# This is only needed in OS X but it has no effect on Linux so we can add it unconditionally.
BOOST_INCLUDE_FLAG="-I /usr/local/include/boost -I /usr/local/include"
- COMMON_CXX_FLAGS="$STLARG $BOOST_INCLUDE_FLAG -Werror -pedantic -Winvalid-pch"
+ # -Wdtor-name (part of -pedantic) is *very* pedantic. Following that results in weird-looking code.
+ # See https://bugs.llvm.org/show_bug.cgi?id=46979.
+ COMMON_CXX_FLAGS="$STLARG $BOOST_INCLUDE_FLAG -Werror -pedantic -Wno-unknown-warning-option -Wno-dtor-name -Winvalid-pch"
echo CXX version: $($CXX --version)
echo C++ Standard library location: $(echo '#include <vector>' | $CXX -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1)
diff --git a/extras/scripts/travis_yml_generator.py b/extras/scripts/travis_yml_generator.py
index 93a5a1b..46c5a92 100755
--- a/extras/scripts/travis_yml_generator.py
+++ b/extras/scripts/travis_yml_generator.py
@@ -144,14 +144,17 @@ def add_bazel_tests(ubuntu_version, smoke_tests=[]):
else:
build_matrix_rows.append(test_environment)
+add_ubuntu_tests(ubuntu_version='20.10', compiler='gcc-7')
+add_ubuntu_tests(ubuntu_version='20.10', compiler='gcc-10',
+ smoke_tests=['DebugPlain', 'ReleasePlain'])
+add_ubuntu_tests(ubuntu_version='20.10', compiler='clang-8.0', stl='libstdc++',
+ smoke_tests=['DebugPlain', 'DebugAsanUbsan', 'ReleasePlain'])
+add_ubuntu_tests(ubuntu_version='20.10', compiler='clang-11.0', stl='libstdc++')
+add_ubuntu_tests(ubuntu_version='20.10', compiler='clang-11.0', stl='libc++')
add_ubuntu_tests(ubuntu_version='20.04', compiler='gcc-7')
-add_ubuntu_tests(ubuntu_version='20.04', compiler='gcc-10',
- smoke_tests=['DebugPlain', 'ReleasePlain'])
add_ubuntu_tests(ubuntu_version='20.04', compiler='clang-6.0', stl='libstdc++',
smoke_tests=['DebugPlain', 'DebugAsanUbsan', 'ReleasePlain'])
-add_ubuntu_tests(ubuntu_version='20.04', compiler='clang-10.0', stl='libstdc++')
-add_ubuntu_tests(ubuntu_version='20.04', compiler='clang-10.0', stl='libc++')
add_ubuntu_tests(ubuntu_version='18.04', compiler='gcc-5', asan=False, ubsan=False)
add_ubuntu_tests(ubuntu_version='18.04', compiler='gcc-8', asan=False, ubsan=False)
diff --git a/include/fruit/impl/data_structures/semistatic_map.h b/include/fruit/impl/data_structures/semistatic_map.h
index c5b4eb4..1ccb00a 100644
--- a/include/fruit/impl/data_structures/semistatic_map.h
+++ b/include/fruit/impl/data_structures/semistatic_map.h
@@ -46,8 +46,10 @@ private:
static constexpr unsigned char beta = 4;
+ // The parentheses around std::numeric_limits<NumBits>::max are needed to workaround an issue in Windows where
+ // max is defined as a macro by a common system header. See https://github.com/google/fruit/issues/127.
static_assert(
- std::numeric_limits<NumBits>::max() >= sizeof(Unsigned) * CHAR_BIT,
+ (std::numeric_limits<NumBits>::max)() >= sizeof(Unsigned) * CHAR_BIT,
"An unsigned char is not enough to contain the number of bits in your platform. Please report this issue.");
struct HashFunction {