Skip to content
This repository was archived by the owner on Sep 27, 2019. It is now read-only.

Commit 2f28acc

Browse files
committed
Resolve merge conflict -1
2 parents 666bfdf + d052644 commit 2f28acc

File tree

79 files changed

+2380
-993
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+2380
-993
lines changed

.travis.yml

Lines changed: 13 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ matrix:
1414
- PELOTON_BUILD_TYPE=Debug
1515
- COVERALLS=Off
1616

17-
# Linux builds for gcc 4.8
17+
# Linux builds for gcc 5
1818
- os: linux
1919
sudo: required
2020
dist: trusty
@@ -25,14 +25,13 @@ matrix:
2525
- llvm-toolchain-precise-3.7
2626
- ubuntu-toolchain-r-test
2727
packages:
28-
- g++-4.8
28+
- g++-5
2929
env:
3030
# NAME has no actual use, just to make the travis jobs overview more clear
31-
- NAME="gcc4.8 Debug+Tests+Coveralls"
32-
- CXX=g++-4.8
33-
- CC=gcc-4.8
31+
- NAME="gcc5 Debug/Tests/AddressSanitizer/Coveralls"
32+
- CXX=g++-5
33+
- CC=gcc-5
3434
- PELOTON_BUILD_TYPE=Debug
35-
# COVERALLS: we run coveralls only for one compiler
3635
- COVERALLS=On
3736
# override script value to run also tests and benchmarks
3837
script:
@@ -54,6 +53,8 @@ matrix:
5453
- bash ../script/testing/psql/psql_test.sh
5554
# run jdbc tests
5655
- python ../script/validators/jdbc_validator.py
56+
# run junit tests
57+
- python ../script/testing/junit/run_junit.py
5758
# upload coverage info
5859
- make coveralls
5960

@@ -67,12 +68,12 @@ matrix:
6768
- llvm-toolchain-precise-3.7
6869
- ubuntu-toolchain-r-test
6970
packages:
70-
- g++-4.8
71+
- g++-5
7172
env:
7273
# NAME has no actual use, just to make the travis jobs overview more clear
73-
- NAME="gcc4.8 Release+Tests"
74-
- CXX=g++-4.8
75-
- CC=gcc-4.8
74+
- NAME="gcc5 Release/Tests/AddressSanitizer"
75+
- CXX=g++-5
76+
- CC=gcc-5
7677
- PELOTON_BUILD_TYPE=Release
7778
- COVERALLS=Off
7879
# override script value to run also tests and benchmarks
@@ -95,45 +96,8 @@ matrix:
9596
- bash ../script/testing/psql/psql_test.sh
9697
# run jdbc tests
9798
- python ../script/validators/jdbc_validator.py
98-
99-
# Linux builds for gcc 5
100-
- os: linux
101-
sudo: required
102-
dist: trusty
103-
compiler: gcc
104-
addons:
105-
apt:
106-
sources:
107-
- llvm-toolchain-precise-3.7
108-
- ubuntu-toolchain-r-test
109-
packages:
110-
- g++-5
111-
env:
112-
# NAME has no actual use, just to make the travis jobs overview more clear
113-
- NAME="gcc5 Debug"
114-
- CXX=g++-5
115-
- CC=gcc-5
116-
- PELOTON_BUILD_TYPE=Debug
117-
- COVERALLS=Off
118-
119-
- os: linux
120-
sudo: required
121-
dist: trusty
122-
compiler: gcc
123-
addons:
124-
apt:
125-
sources:
126-
- llvm-toolchain-precise-3.7
127-
- ubuntu-toolchain-r-test
128-
packages:
129-
- g++-5
130-
env:
131-
# NAME has no actual use, just to make the travis jobs overview more clear
132-
- NAME="gcc5 Release"
133-
- CXX=g++-5
134-
- CC=gcc-5
135-
- PELOTON_BUILD_TYPE=Release
136-
- COVERALLS=Off
99+
# run junit tests
100+
- python ../script/testing/junit/run_junit.py
137101

138102
install:
139103
# setup environment

CMakeLists.txt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ include(cmake/Dependencies.cmake)
4242

4343
# ---[ C++11 Flags
4444
include(CheckCXXCompilerFlag)
45-
check_cxx_compiler_flag("-std=c++1y" COMPILER_SUPPORTS_CXX1Y)
45+
check_cxx_compiler_flag("-std=c++11" COMPILER_SUPPORTS_CXX11)
4646

47-
if(COMPILER_SUPPORTS_CXX1Y)
48-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y")
47+
if(COMPILER_SUPPORTS_CXX11)
48+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-c++14-compat")
4949
else()
50-
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++1Y support. Please use a different C++ compiler.")
50+
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
5151
endif()
5252

5353
# Create a new pre-processor macro __PELOTONFILE__ that has a truncated
@@ -77,6 +77,10 @@ if(UNIX OR APPLE)
7777
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
7878
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-tautological-undefined-compare -Wno-unused-private-field -Wno-braced-scalar-init -Wno-constant-conversion -Wno-potentially-evaluated-expression -Wno-infinite-recursion -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I/usr/local/opt/openssl/include")
7979
endif()
80+
# ---[ close$NOCANCEL for Mac OS
81+
if(APPLE)
82+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-dollar-in-identifier-extension")
83+
endif()
8084
endif()
8185

8286
# There is a problem with building on g++5.4 on Ubuntu 17.10 where

Jenkinsfile

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ pipeline {
2323
sh 'cd build && bash ../script/testing/psql/psql_test.sh'
2424
sh 'sudo apt-get -qq update && sudo apt-get -qq -y --no-install-recommends install wget default-jdk default-jre' // prerequisites for jdbc_validator
2525
sh 'cd build && python ../script/validators/jdbc_validator.py'
26+
sh 'cd build && python ../script/testing/junit/run_junit.py'
2627
}
2728
}
2829

@@ -38,13 +39,19 @@ pipeline {
3839
sh 'cd build && bash ../script/testing/psql/psql_test.sh'
3940
sh 'sudo apt-get -qq update && sudo apt-get -qq -y --no-install-recommends install wget default-jdk default-jre' // prerequisites for jdbc_validator
4041
sh 'cd build && python ../script/validators/jdbc_validator.py'
42+
sh 'cd build && python ../script/testing/junit/run_junit.py'
4143
}
4244
}
4345

44-
stage('Ubuntu Trusty/gcc-4.8.4/llvm-3.7.1 (Debug)') {
46+
stage('Ubuntu Trusty/gcc-5.4.0/llvm-3.7.1 (Debug)') {
4547
agent { docker { image 'ubuntu:trusty' } }
4648
steps {
4749
sh 'sudo /bin/bash -c "source ./script/installation/packages.sh"'
50+
sh 'sudo apt-get -y install software-properties-common'
51+
sh 'sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test'
52+
sh 'sudo apt-get update'
53+
sh 'sudo apt-get -y install gcc-5 g++-5'
54+
sh 'sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 1 --slave /usr/bin/g++ g++ /usr/bin/g++-5'
4855
sh 'python script/validators/source_validator.py'
4956
sh 'mkdir build'
5057
sh 'cd build && cmake -DCMAKE_BUILD_TYPE=Debug -DUSE_SANITIZER=Address -DCOVERALLS=False .. && make -j4'
@@ -53,13 +60,19 @@ pipeline {
5360
sh 'cd build && bash ../script/testing/psql/psql_test.sh'
5461
sh 'sudo apt-get -qq update && sudo apt-get -qq -y --no-install-recommends install wget default-jdk default-jre' // prerequisites for jdbc_validator
5562
sh 'cd build && python ../script/validators/jdbc_validator.py'
63+
sh 'cd build && python ../script/testing/junit/run_junit.py'
5664
}
5765
}
5866

59-
stage('Ubuntu Trusty/gcc-4.8.4/llvm-3.7.1 (Release)') {
67+
stage('Ubuntu Trusty/gcc-5.4.0/llvm-3.7.1 (Release)') {
6068
agent { docker { image 'ubuntu:trusty' } }
6169
steps {
6270
sh 'sudo /bin/bash -c "source ./script/installation/packages.sh"'
71+
sh 'sudo apt-get -y install software-properties-common'
72+
sh 'sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test'
73+
sh 'sudo apt-get update'
74+
sh 'sudo apt-get -y install gcc-5 g++-5'
75+
sh 'sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 1 --slave /usr/bin/g++ g++ /usr/bin/g++-5'
6376
sh 'python script/validators/source_validator.py'
6477
sh 'mkdir build'
6578
sh 'cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCOVERALLS=False .. && make -j4'
@@ -68,6 +81,7 @@ pipeline {
6881
sh 'cd build && bash ../script/testing/psql/psql_test.sh'
6982
sh 'sudo apt-get -qq update && sudo apt-get -qq -y --no-install-recommends install wget default-jdk default-jre' // prerequisites for jdbc_validator
7083
sh 'cd build && python ../script/validators/jdbc_validator.py'
84+
sh 'cd build && python ../script/testing/junit/run_junit.py'
7185
}
7286
}
7387

@@ -93,6 +107,7 @@ pipeline {
93107
// sh 'cd build && bash ../script/testing/psql/psql_test.sh'
94108
// sh 'sudo apt-get -qq update && sudo apt-get -qq -y --no-install-recommends install wget default-jdk default-jre' // prerequisites for jdbc_validator
95109
// sh 'cd build && python ../script/validators/jdbc_validator.py'
110+
// sh 'cd build && python ../script/testing/junit/run_junit.py'
96111
// }
97112
// }
98113

@@ -108,6 +123,7 @@ pipeline {
108123
// sh 'cd build && bash ../script/testing/psql/psql_test.sh'
109124
// sh 'sudo apt-get -qq update && sudo apt-get -qq -y --no-install-recommends install wget default-jdk default-jre' // prerequisites for jdbc_validator
110125
// sh 'cd build && python ../script/validators/jdbc_validator.py'
126+
// sh 'cd build && python ../script/testing/junit/run_junit.py'
111127
// }
112128
// }
113129

@@ -123,6 +139,7 @@ pipeline {
123139
// sh 'cd build && bash ../script/testing/psql/psql_test.sh'
124140
// sh 'sudo dnf -q install -y wget java-devel' // prerequisites for jdbc_validator
125141
// sh 'cd build && python ../script/validators/jdbc_validator.py'
142+
// sh 'cd build && python ../script/testing/junit/run_junit.py'
126143
// }
127144
// }
128145

@@ -138,6 +155,7 @@ pipeline {
138155
// sh 'cd build && bash ../script/testing/psql/psql_test.sh'
139156
// sh 'sudo dnf -q install -y wget java-devel' // prerequisites for jdbc_validator
140157
// sh 'cd build && python ../script/validators/jdbc_validator.py'
158+
// sh 'cd build && python ../script/testing/junit/run_junit.py'
141159
// }
142160
// }
143161

@@ -153,6 +171,7 @@ pipeline {
153171
// sh 'cd build && bash ../script/testing/psql/psql_test.sh'
154172
// sh 'sudo dnf -q install -y wget java-devel' // prerequisites for jdbc_validator
155173
// sh 'cd build && python ../script/validators/jdbc_validator.py'
174+
// sh 'cd build && python ../script/testing/junit/run_junit.py'
156175
// }
157176
// }
158177

@@ -168,6 +187,7 @@ pipeline {
168187
// sh 'cd build && bash ../script/testing/psql/psql_test.sh'
169188
// sh 'sudo dnf -q install -y wget java-devel' // prerequisites for jdbc_validator
170189
// sh 'cd build && python ../script/validators/jdbc_validator.py'
190+
// sh 'cd build && python ../script/testing/junit/run_junit.py'
171191
// }
172192
// }
173193

@@ -183,6 +203,7 @@ pipeline {
183203
// sh 'cd build && bash ../script/testing/psql/psql_test.sh'
184204
// sh 'sudo yum -q install -y wget java-devel' // prerequisites for jdbc_validator
185205
// sh 'cd build && python ../script/validators/jdbc_validator.py'
206+
// sh 'cd build && python ../script/testing/junit/run_junit.py'
186207
// }
187208
// }
188209

@@ -198,6 +219,7 @@ pipeline {
198219
// sh 'cd build && bash ../script/testing/psql/psql_test.sh'
199220
// sh 'sudo yum -q install -y wget java-devel' // prerequisites for jdbc_validator
200221
// sh 'cd build && python ../script/validators/jdbc_validator.py'
222+
// sh 'cd build && python ../script/testing/junit/run_junit.py'
201223
// }
202224
// }
203225
// end gcc builds

README.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,7 @@ Check out the [installation instructions](https://github.com/cmu-db/peloton/wiki
3030

3131
## Supported Platforms
3232

33-
Peloton has been tested to work on the following platforms:
34-
35-
* Ubuntu Linux 14.04+ (64-bit) [gcc4, gcc5]
36-
* Fedora Linux 24+ (64-bit) [gcc4, gcc5]
37-
* Mac OS X 10.9+ (64-bit) [XCode v8 Only]
38-
39-
Please note that it will not compile on 32-bit systems.
33+
The Wiki also contains a [list of supported platforms](https://github.com/cmu-db/peloton/wiki/Installation#supported-platforms).
4034

4135
## Development / Contributing
4236

cmake/Dependencies.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ find_library(TFlowC
4242
PATHS "/usr/local/lib")
4343
list(APPEND Peloton_LINKER_LIBS ${TFlowC})
4444

45+
# --[ Eigen3
46+
find_package(Eigen3 REQUIRED)
47+
include_directories(SYSTEM ${EIGEN3_INCLUDE_DIR})
48+
4549
# ---[ Libevent
4650
find_package(Libevent REQUIRED)
4751
include_directories(SYSTEM ${LIBEVENT_INCLUDE_DIRS})

cmake/Modules/FindEigen3.cmake

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# - Try to find Eigen3 lib
2+
#
3+
# This module supports requiring a minimum version, e.g. you can do
4+
# find_package(Eigen3 3.1.2)
5+
# to require version 3.1.2 or newer of Eigen3.
6+
#
7+
# Once done this will define
8+
#
9+
# EIGEN3_FOUND - system has eigen lib with correct version
10+
# EIGEN3_INCLUDE_DIR - the eigen include directory
11+
# EIGEN3_VERSION - eigen version
12+
#
13+
# This module reads hints about search locations from
14+
# the following enviroment variables:
15+
#
16+
# EIGEN3_ROOT
17+
# EIGEN3_ROOT_DIR
18+
19+
# Copyright (c) 2006, 2007 Montel Laurent, <[email protected]>
20+
# Copyright (c) 2008, 2009 Gael Guennebaud, <[email protected]>
21+
# Copyright (c) 2009 Benoit Jacob <[email protected]>
22+
# Redistribution and use is allowed according to the terms of the 2-clause BSD license.
23+
24+
if(NOT Eigen3_FIND_VERSION)
25+
if(NOT Eigen3_FIND_VERSION_MAJOR)
26+
set(Eigen3_FIND_VERSION_MAJOR 2)
27+
endif(NOT Eigen3_FIND_VERSION_MAJOR)
28+
if(NOT Eigen3_FIND_VERSION_MINOR)
29+
set(Eigen3_FIND_VERSION_MINOR 91)
30+
endif(NOT Eigen3_FIND_VERSION_MINOR)
31+
if(NOT Eigen3_FIND_VERSION_PATCH)
32+
set(Eigen3_FIND_VERSION_PATCH 0)
33+
endif(NOT Eigen3_FIND_VERSION_PATCH)
34+
35+
set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}")
36+
endif(NOT Eigen3_FIND_VERSION)
37+
38+
macro(_eigen3_check_version)
39+
file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header)
40+
41+
string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}")
42+
set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}")
43+
string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}")
44+
set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}")
45+
string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}")
46+
set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}")
47+
48+
set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION})
49+
if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION})
50+
set(EIGEN3_VERSION_OK FALSE)
51+
else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION})
52+
set(EIGEN3_VERSION_OK TRUE)
53+
endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION})
54+
55+
if(NOT EIGEN3_VERSION_OK)
56+
57+
message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, "
58+
"but at least version ${Eigen3_FIND_VERSION} is required")
59+
endif(NOT EIGEN3_VERSION_OK)
60+
endmacro(_eigen3_check_version)
61+
62+
if (EIGEN3_INCLUDE_DIR)
63+
64+
# in cache already
65+
_eigen3_check_version()
66+
set(EIGEN3_FOUND ${EIGEN3_VERSION_OK})
67+
68+
else (EIGEN3_INCLUDE_DIR)
69+
70+
# search first if an Eigen3Config.cmake is available in the system,
71+
# if successful this would set EIGEN3_INCLUDE_DIR and the rest of
72+
# the script will work as usual
73+
find_package(Eigen3 ${Eigen3_FIND_VERSION} NO_MODULE QUIET)
74+
75+
if(NOT EIGEN3_INCLUDE_DIR)
76+
find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library
77+
HINTS
78+
ENV EIGEN3_ROOT
79+
ENV EIGEN3_ROOT_DIR
80+
PATHS
81+
${CMAKE_INSTALL_PREFIX}/include
82+
${KDE4_INCLUDE_DIR}
83+
PATH_SUFFIXES eigen3 eigen
84+
)
85+
endif(NOT EIGEN3_INCLUDE_DIR)
86+
87+
if(EIGEN3_INCLUDE_DIR)
88+
_eigen3_check_version()
89+
endif(EIGEN3_INCLUDE_DIR)
90+
91+
include(FindPackageHandleStandardArgs)
92+
find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK)
93+
94+
mark_as_advanced(EIGEN3_INCLUDE_DIR)
95+
96+
endif(EIGEN3_INCLUDE_DIR)
97+

0 commit comments

Comments
 (0)