Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 4bec534

Browse files
pitroufsaintjacques
authored andcommitted
ARROW-6633: [C++] Vendor double-conversion library
Since this is both a mandatory dependency and a small-ish library, vendor it to make the build chain simplier. Also, make its use private, because of Windows DLL exports. This incurs a small (~8-10%) performance hit on specific workloads. Closes apache#5832 from pitrou/ARROW-6633-vendor-double-conversion and squashes the following commits: b1e12c7bc <Antoine Pitrou> Remove unneeded code 85877648e <Antoine Pitrou> Add license 3b89b191e <Antoine Pitrou> Make use of double-conversion private. 9e1da51d1 <Antoine Pitrou> ARROW-6633: Vendor double-conversion library Authored-by: Antoine Pitrou <[email protected]> Signed-off-by: François Saint-Jacques <[email protected]>
1 parent 32549e4 commit 4bec534

16 files changed

Lines changed: 33 additions & 56 deletions

File tree

LICENSE.txt

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -741,6 +741,38 @@ You can contact the author at :
741741

742742
--------------------------------------------------------------------------------
743743

744+
The files in cpp/src/arrow/vendored/double-conversion/ have the following license
745+
(BSD 3-Clause License)
746+
747+
Copyright 2006-2011, the V8 project authors. All rights reserved.
748+
Redistribution and use in source and binary forms, with or without
749+
modification, are permitted provided that the following conditions are
750+
met:
751+
752+
* Redistributions of source code must retain the above copyright
753+
notice, this list of conditions and the following disclaimer.
754+
* Redistributions in binary form must reproduce the above
755+
copyright notice, this list of conditions and the following
756+
disclaimer in the documentation and/or other materials provided
757+
with the distribution.
758+
* Neither the name of Google Inc. nor the names of its
759+
contributors may be used to endorse or promote products derived
760+
from this software without specific prior written permission.
761+
762+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
763+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
764+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
765+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
766+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
767+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
768+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
769+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
770+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
771+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
772+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
773+
774+
--------------------------------------------------------------------------------
775+
744776
The files under dev/tasks/conda-recipes have the following license
745777

746778
BSD 3-clause license
@@ -1326,39 +1358,6 @@ Other dependencies and licenses:
13261358

13271359
--------------------------------------------------------------------------------
13281360

1329-
3rdparty dependency double-conversion is statically linked in certain binary
1330-
distributions, like the python wheels. double-conversion has the following
1331-
license:
1332-
1333-
Copyright 2006-2011, the V8 project authors. All rights reserved.
1334-
Redistribution and use in source and binary forms, with or without
1335-
modification, are permitted provided that the following conditions are
1336-
met:
1337-
1338-
* Redistributions of source code must retain the above copyright
1339-
notice, this list of conditions and the following disclaimer.
1340-
* Redistributions in binary form must reproduce the above
1341-
copyright notice, this list of conditions and the following
1342-
disclaimer in the documentation and/or other materials provided
1343-
with the distribution.
1344-
* Neither the name of Google Inc. nor the names of its
1345-
contributors may be used to endorse or promote products derived
1346-
from this software without specific prior written permission.
1347-
1348-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1349-
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1350-
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1351-
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1352-
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1353-
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1354-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1355-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1356-
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1357-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1358-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1359-
1360-
--------------------------------------------------------------------------------
1361-
13621361
3rdparty dependency snappy is statically linked in certain binary
13631362
distributions, like the python wheels. snappy has the following license:
13641363

dev/tasks/conda-recipes/arrow-cpp/meta.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ requirements:
2424
- boost-cpp
2525
- brotli
2626
- c-ares
27-
- double-conversion
2827
- gflags
2928
- glog
3029
- grpc-cpp
@@ -49,7 +48,6 @@ requirements:
4948
- boost-cpp
5049
- brotli
5150
- c-ares
52-
- double-conversion
5351
- gflags
5452
- glog
5553
- grpc-cpp

dev/tasks/homebrew-formulae/apache-arrow.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ class ApacheArrow < Formula
99
depends_on "aws-sdk-cpp"
1010
depends_on "boost"
1111
depends_on "brotli"
12-
depends_on "double-conversion"
1312
depends_on "flatbuffers"
1413
depends_on "glog"
1514
depends_on "grpc"

dev/tasks/homebrew-formulae/autobrew/apache-arrow.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ class ApacheArrow < Formula
3333
depends_on "cmake" => :build
3434
depends_on "flatbuffers" => :build
3535
depends_on "boost"
36-
depends_on "double-conversion"
3736
depends_on "lz4"
3837
depends_on "snappy"
3938
depends_on "thrift"
@@ -74,7 +73,7 @@ def install
7473
return 0;
7574
}
7675
EOS
77-
system ENV.cxx, "test.cpp", "-std=c++11", "-I#{include}", "-L#{lib}", "-larrow", "-lparquet", "-lthrift", "-llz4", "-lboost_system", "-lboost_regex", "-ldouble-conversion", "-lsnappy", "-o", "test"
76+
system ENV.cxx, "test.cpp", "-std=c++11", "-I#{include}", "-L#{lib}", "-larrow", "-lparquet", "-lthrift", "-llz4", "-lboost_system", "-lboost_regex", "-lsnappy", "-o", "test"
7877
system "./test"
7978
end
8079
end

dev/tasks/linux-packages/apache-arrow/apt/debian-buster/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ RUN \
4747
libbrotli-dev \
4848
libbz2-dev \
4949
libc-ares-dev \
50-
libdouble-conversion-dev \
5150
libgirepository1.0-dev \
5251
libglib2.0-doc \
5352
libgmock-dev \

dev/tasks/linux-packages/apache-arrow/apt/debian-stretch/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ RUN \
5656
libbrotli-dev \
5757
libbz2-dev \
5858
libc-ares-dev \
59-
libdouble-conversion-dev \
6059
libgirepository1.0-dev \
6160
libglib2.0-doc \
6261
libgoogle-glog-dev \

dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ RUN \
4343
libboost-system-dev \
4444
libbrotli-dev \
4545
libbz2-dev \
46-
libdouble-conversion-dev \
4746
libgirepository1.0-dev \
4847
libglib2.0-doc \
4948
libgoogle-glog-dev \

dev/tasks/linux-packages/apache-arrow/apt/ubuntu-disco/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ RUN \
4444
libboost-system-dev \
4545
libbrotli-dev \
4646
libbz2-dev \
47-
libdouble-conversion-dev \
4847
libgirepository1.0-dev \
4948
libglib2.0-doc \
5049
libgmock-dev \

dev/tasks/linux-packages/apache-arrow/apt/ubuntu-eoan/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ RUN \
4444
libboost-system-dev \
4545
libbrotli-dev \
4646
libbz2-dev \
47-
libdouble-conversion-dev \
4847
libgirepository1.0-dev \
4948
libglib2.0-doc \
5049
libgmock-dev \

dev/tasks/linux-packages/apache-arrow/apt/ubuntu-xenial/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ RUN \
5252
libboost-system-dev \
5353
libbrotli-dev \
5454
libbz2-dev \
55-
libdouble-conversion-dev \
5655
libgirepository1.0-dev \
5756
libglib2.0-doc \
5857
libgoogle-glog-dev \

0 commit comments

Comments
 (0)