Support for Mac OS X


#21

Hi @crjaensch, please see here for updated instructions on how to get Arrow working with MapD Core on Mac OS: Mac os Sierra(2015 MacBook Pro 10.12 with Nvidia GPU) successfully working


#22

Can someone help me fix the following compile error:

[ 27%] Building CXX object QueryEngine/CMakeFiles/QueryEngine.dir/ResultSetConversion.cpp.o
cd /Volumes/NewDisk3/MapD/mapd-core-master/build/QueryEngine && /usr/local/bin/ccache /Library/Developer/CommandLineTools/usr/bin/c++ -DARROW_NO_DEPRECATED_API -DENABLE_EQUIJOIN_FOLD -DENABLE_JOIN_EXEC -DENABLE_KEY_COMPACTION -DENABLE_MULTIFRAG_JOIN -DENABLE_ONE_TO_MANY_HASH_JOIN -DHAVE_AWS_S3 -DHAVE_FOLLY -DMAPD_EDITION_OS -I/usr/local/lib/…/include -I/usr/local/include -I/Volumes/NewDisk3/MapD/mapd-core-master -I/Volumes/NewDisk3/MapD/mapd-core-master/Parser -I/Volumes/NewDisk3/MapD/mapd-core-master/build -I/usr/local/Cellar/llvm@4/4.0.1/include -I/usr/local/cuda/include -I/Volumes/NewDisk3/MapD/mapd-core-master/ThirdParty/egl -I/Volumes/NewDisk3/MapD/mapd-core-master/ThirdParty/googletest -I/Volumes/NewDisk3/MapD/mapd-core-master/ThirdParty/rapidjson -I/Volumes/NewDisk3/MapD/mapd-core-master/ThirdParty/poly2tri -I/Volumes/NewDisk3/MapD/mapd-core-master/ThirdParty/linenoise -I/Volumes/NewDisk3/MapD/mapd-core-master/ThirdParty/sqlite3 -I/Volumes/NewDisk3/MapD/mapd-core-master/ThirdParty/librdkafka/src-cpp -I/Volumes/NewDisk3/MapD/mapd-core-master/Distributed/os -I/Volumes/NewDisk3/MapD/mapd-core-master/build/QueryEngine -std=c++11 -Wall -Wno-unused-local-typedefs -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -Wno-deprecated-register -Wno-deprecated-declarations -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -Wall -Wno-attributes -g -o CMakeFiles/QueryEngine.dir/ResultSetConversion.cpp.o -c /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/ResultSetConversion.cpp
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/ResultSetConversion.cpp:17:
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/Execute.h:20:
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/AggregatedColRange.h:28:
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/QueryPhysicalInputsCollector.h:28:
In file included from /Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/unordered_set:323:
In file included from /Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/__hash_table:16:
/Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/memory:2141:9: error: field type ‘arrow::RecordBatch’ is an abstract class
_T2 _second;
^
/Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/memory:2408:15: note: in instantiation of template class ‘std::__1::__libcpp_compressed_pair_imp<std::__1::allocatorarrow::RecordBatch, arrow::RecordBatch, 1>’ requested here
: private __libcpp_compressed_pair_imp<_T1, _T2>
^
/Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/memory:3801:36: note: in instantiation of template class ‘std::__1::__compressed_pair<std::__1::allocatorarrow::RecordBatch, arrow::RecordBatch>’ requested here
__compressed_pair<_Alloc, _Tp> _data;
^
/Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/memory:4423:26: note: in instantiation of template class ‘std::__1::__shared_ptr_emplace<arrow::RecordBatch, std::__1::allocatorarrow::RecordBatch >’ requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)…);
^
/Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/memory:4787:29: note: in instantiation of function template specialization ‘std::__1::shared_ptrarrow::RecordBatch::make_shared<const std::__1::shared_ptrarrow::Schema &, int, std::__1::vector<std::__1::shared_ptrarrow::Array, std::__1::allocator<std::__1::shared_ptrarrow::Array > > &>’ requested here
return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)…);
^
/Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/ResultSetConversion.cpp:339:17: note: in instantiation of function template specialization ‘std::__1::make_shared<arrow::RecordBatch, const std::__1::shared_ptrarrow::Schema &, int, std::__1::vector<std::__1::shared_ptrarrow::Array, std::__1::allocator<std::__1::shared_ptrarrow::Array > > &>’ requested here
return std::make_sharedarrow::RecordBatch(schema, 0, result_columns);
^
/usr/local/lib/…/include/arrow/record_batch.h:92:34: note: unimplemented pure virtual method ‘column’ in 'RecordBatch’
virtual std::shared_ptr column(int i) const = 0;
^
/usr/local/lib/…/include/arrow/record_batch.h:97:38: note: unimplemented pure virtual method ‘column_data’ in 'RecordBatch’
virtual std::shared_ptr column_data(int i) const = 0;
^
/usr/local/lib/…/include/arrow/record_batch.h:99:40: note: unimplemented pure virtual method ‘ReplaceSchemaMetadata’ in 'RecordBatch’
virtual std::shared_ptr ReplaceSchemaMetadata(
^
/usr/local/lib/…/include/arrow/record_batch.h:120:40: note: unimplemented pure virtual method ‘Slice’ in 'RecordBatch’
virtual std::shared_ptr Slice(int64_t offset, int64_t length) const = 0;
^
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/ResultSetConversion.cpp:17:
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/Execute.h:20:
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/AggregatedColRange.h:28:
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/QueryPhysicalInputsCollector.h:28:
In file included from /Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/unordered_set:323:
In file included from /Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/__hash_table:16:
/Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/memory:4426:18: error: assigning to ‘std::__1::__shared_weak_count *’ from incompatible type ‘pointer’ (aka ‘std::__1::__shared_ptr_emplace<arrow::RecordBatch, std::__1::allocatorarrow::RecordBatch > *’)
__r._cntrl = __hold2.release();
^ ~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/memory:4787:29: note: in instantiation of function template specialization ‘std::__1::shared_ptrarrow::RecordBatch::make_shared<const std::__1::shared_ptrarrow::Schema &, int, std::__1::vector<std::__1::shared_ptrarrow::Array, std::__1::allocator<std::__1::shared_ptrarrow::Array > > &>’ requested here
return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)…);
^
/Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/ResultSetConversion.cpp:339:17: note: in instantiation of function template specialization ‘std::__1::make_shared<arrow::RecordBatch, const std::__1::shared_ptrarrow::Schema &, int, std::__1::vector<std::__1::shared_ptrarrow::Array, std::__1::allocator<std::__1::shared_ptrarrow::Array > > &>’ requested here
return std::make_sharedarrow::RecordBatch(schema, 0, result_columns);
^
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/ResultSetConversion.cpp:17:
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/Execute.h:20:
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/AggregatedColRange.h:28:
In file included from /Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/QueryPhysicalInputsCollector.h:28:
In file included from /Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/unordered_set:323:
In file included from /Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/__hash_table:16:
/Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/memory:4426:18: error: assigning to ‘std::__1::__shared_weak_count *’ from incompatible type ‘pointer’ (aka ‘std::__1::__shared_ptr_emplace<arrow::RecordBatch, std::__1::allocatorarrow::RecordBatch > *’)
__r._cntrl = __hold2.release();
^ ~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/usr/bin/…/include/c++/v1/memory:4787:29: note: in instantiation of function template specialization ‘std::__1::shared_ptrarrow::RecordBatch::make_shared<const std::__1::shared_ptrarrow::Schema &, unsigned long &, std::__1::vector<std::__1::shared_ptrarrow::Array, std::__1::allocator<std::__1::shared_ptrarrow::Array > > &>’ requested here
return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)…);
^
/Volumes/NewDisk3/MapD/mapd-core-master/QueryEngine/ResultSetConversion.cpp:448:15: note: in instantiation of function template specialization ‘std::__1::make_shared<arrow::RecordBatch, const std::__1::shared_ptrarrow::Schema &, unsigned long &, std::__1::vector<std::__1::shared_ptrarrow::Array, std::__1::allocator<std::__1::shared_ptrarrow::Array > > &>’ requested here
return std::make_sharedarrow::RecordBatch(schema, row_count, result_columns);
^
3 errors generated.
make[2]: *** [QueryEngine/CMakeFiles/QueryEngine.dir/ResultSetConversion.cpp.o] Error 1
make[1]: *** [QueryEngine/CMakeFiles/QueryEngine.dir/all] Error 2
make: *** [all] Error 2

My environment:

sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G1212 clang --version
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2017 NVIDIA Corporation Built on Fri_Sep__1_13:16:23_CDT_2017 Cuda compilation tools, release 9.0, V9.0.175

I have Intel IRIS Graphics card on my MacBook pro


#23

Hi,

This is due to an API change in one of our dependencies, Apache Arrow, from version 0.7.1 to 0.8.0.

A PR has been started to add support for 0.8.0 (https://github.com/mapd/mapd-core/pull/199), so we should have 0.8.0+ support soon.

Alternatively you can install an older version of Arrow. It doesn’t look like Homebrew currently has older versions readily available, so we’ll just have to install from an older commit and then pin the version (so future brew upgrades don’t install the newer version):

brew uninstall apache-arrow
brew install https://github.com/Homebrew/homebrew-core/raw/16ebe5f1843e6cb54856311ff0f676be53007329/Formula/apache-arrow.rb
brew pin apache-arrow

Once Arrow 0.8.0 support is added you’ll then need to make sure to unpin the package so that you get the newest version:

brew unpin apache-arrow

#24

Hi Andrew,
Your suggestions worked.
Thanks.