Merge branch 'develop' into wrap/pybind-stl
						commit
						c97b9a3bc6
					
				|  | @ -19,16 +19,16 @@ jobs: | ||||||
|         # Github Actions requires a single row to be added to the build matrix. |         # Github Actions requires a single row to be added to the build matrix. | ||||||
|         # See https://help.github.com/en/articles/workflow-syntax-for-github-actions. |         # See https://help.github.com/en/articles/workflow-syntax-for-github-actions. | ||||||
|         name: [ |         name: [ | ||||||
|           macOS-10.15-xcode-11.3.1, |           macos-11-xcode-13.4.1, | ||||||
|         ] |         ] | ||||||
| 
 | 
 | ||||||
|         build_type: [Debug, Release] |         build_type: [Debug, Release] | ||||||
|         build_unstable: [ON] |         build_unstable: [ON] | ||||||
|         include: |         include: | ||||||
|           - name: macOS-10.15-xcode-11.3.1 |           - name: macos-11-xcode-13.4.1 | ||||||
|             os: macOS-10.15 |             os: macos-11 | ||||||
|             compiler: xcode |             compiler: xcode | ||||||
|             version: "11.3.1" |             version: "13.4.1" | ||||||
| 
 | 
 | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|  | @ -43,7 +43,7 @@ jobs: | ||||||
|             echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV |             echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV | ||||||
|             echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV |             echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV | ||||||
|           else |           else | ||||||
|             sudo xcode-select -switch /Applications/Xcode_${{ matrix.version }}.app |             sudo xcode-select -switch /Applications/Xcode.app | ||||||
|             echo "CC=clang" >> $GITHUB_ENV |             echo "CC=clang" >> $GITHUB_ENV | ||||||
|             echo "CXX=clang++" >> $GITHUB_ENV |             echo "CXX=clang++" >> $GITHUB_ENV | ||||||
|           fi |           fi | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ jobs: | ||||||
|           ubuntu-18.04-gcc-5, |           ubuntu-18.04-gcc-5, | ||||||
|           ubuntu-18.04-gcc-9, |           ubuntu-18.04-gcc-9, | ||||||
|           ubuntu-18.04-clang-9, |           ubuntu-18.04-clang-9, | ||||||
|           macOS-10.15-xcode-11.3.1, |           macOS-11-xcode-13.4.1, | ||||||
|           ubuntu-18.04-gcc-5-tbb, |           ubuntu-18.04-gcc-5-tbb, | ||||||
|         ] |         ] | ||||||
| 
 | 
 | ||||||
|  | @ -52,10 +52,10 @@ jobs: | ||||||
|             build_type: Debug |             build_type: Debug | ||||||
|             python_version: "3" |             python_version: "3" | ||||||
| 
 | 
 | ||||||
|           - name: macOS-10.15-xcode-11.3.1 |           - name: macOS-11-xcode-13.4.1 | ||||||
|             os: macOS-10.15 |             os: macOS-11 | ||||||
|             compiler: xcode |             compiler: xcode | ||||||
|             version: "11.3.1" |             version: "13.4.1" | ||||||
| 
 | 
 | ||||||
|           - name: ubuntu-18.04-gcc-5-tbb |           - name: ubuntu-18.04-gcc-5-tbb | ||||||
|             os: ubuntu-18.04 |             os: ubuntu-18.04 | ||||||
|  | @ -103,7 +103,7 @@ jobs: | ||||||
|             echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV |             echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV | ||||||
|             echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV |             echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV | ||||||
|           else |           else | ||||||
|             sudo xcode-select -switch /Applications/Xcode_${{ matrix.version }}.app |             sudo xcode-select -switch /Applications/Xcode.app | ||||||
|             echo "CC=clang" >> $GITHUB_ENV |             echo "CC=clang" >> $GITHUB_ENV | ||||||
|             echo "CXX=clang++" >> $GITHUB_ENV |             echo "CXX=clang++" >> $GITHUB_ENV | ||||||
|           fi |           fi | ||||||
|  | @ -112,6 +112,11 @@ jobs: | ||||||
|         run: | |         run: | | ||||||
|           echo "GTSAM_WITH_TBB=ON" >> $GITHUB_ENV |           echo "GTSAM_WITH_TBB=ON" >> $GITHUB_ENV | ||||||
|           echo "GTSAM Uses TBB" |           echo "GTSAM Uses TBB" | ||||||
|  |       - name: Set Swap Space | ||||||
|  |         if: runner.os == 'Linux' | ||||||
|  |         uses: pierotofy/set-swap-space@master | ||||||
|  |         with: | ||||||
|  |           swap-size-gb: 6 | ||||||
|       - name: Build (Linux) |       - name: Build (Linux) | ||||||
|         if: runner.os == 'Linux' |         if: runner.os == 'Linux' | ||||||
|         run: | |         run: | | ||||||
|  |  | ||||||
|  | @ -113,6 +113,7 @@ private: | ||||||
|   template<class Archive> |   template<class Archive> | ||||||
|   void load(Archive& ar, const unsigned int /*version*/) |   void load(Archive& ar, const unsigned int /*version*/) | ||||||
|   { |   { | ||||||
|  |     this->clear(); | ||||||
|     // Load into STL container and then fill our map
 |     // Load into STL container and then fill our map
 | ||||||
|     FastVector<std::pair<KEY, VALUE> > map; |     FastVector<std::pair<KEY, VALUE> > map; | ||||||
|     ar & BOOST_SERIALIZATION_NVP(map); |     ar & BOOST_SERIALIZATION_NVP(map); | ||||||
|  |  | ||||||
|  | @ -18,6 +18,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <gtsam/inference/Key.h> | #include <gtsam/inference/Key.h> | ||||||
| 
 | 
 | ||||||
|  | #include <gtsam/base/ConcurrentMap.h> | ||||||
| #include <gtsam/base/Matrix.h> | #include <gtsam/base/Matrix.h> | ||||||
| #include <gtsam/base/MatrixSerialization.h> | #include <gtsam/base/MatrixSerialization.h> | ||||||
| #include <gtsam/base/Vector.h> | #include <gtsam/base/Vector.h> | ||||||
|  | @ -106,6 +107,39 @@ TEST (Serialization, matrix_vector) { | ||||||
|   EXPECT(equalityBinary<Matrix>((Matrix(2, 2) << 1.0, 2.0, 3.0, 4.0).finished())); |   EXPECT(equalityBinary<Matrix>((Matrix(2, 2) << 1.0, 2.0, 3.0, 4.0).finished())); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /* ************************************************************************* */ | ||||||
|  | TEST (Serialization, ConcurrentMap) { | ||||||
|  | 
 | ||||||
|  |   ConcurrentMap<int, std::string> map; | ||||||
|  | 
 | ||||||
|  |   map.insert(make_pair(1, "apple")); | ||||||
|  |   map.insert(make_pair(2, "banana")); | ||||||
|  | 
 | ||||||
|  |   std::string binaryPath = "saved_map.dat"; | ||||||
|  |     try { | ||||||
|  |     std::ofstream outputStream(binaryPath); | ||||||
|  |     boost::archive::binary_oarchive outputArchive(outputStream); | ||||||
|  |     outputArchive << map; | ||||||
|  |   } catch(...) { | ||||||
|  |     EXPECT(false); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   // Verify that the existing map contents are replaced by the archive data
 | ||||||
|  |   ConcurrentMap<int, std::string> mapFromDisk; | ||||||
|  |   mapFromDisk.insert(make_pair(3, "clam")); | ||||||
|  |   EXPECT(mapFromDisk.exists(3)); | ||||||
|  |   try { | ||||||
|  |     std::ifstream ifs(binaryPath); | ||||||
|  |     boost::archive::binary_iarchive inputArchive(ifs); | ||||||
|  |     inputArchive >> mapFromDisk; | ||||||
|  |   } catch(...) { | ||||||
|  |     EXPECT(false); | ||||||
|  |   } | ||||||
|  |   EXPECT(mapFromDisk.exists(1)); | ||||||
|  |   EXPECT(mapFromDisk.exists(2)); | ||||||
|  |   EXPECT(!mapFromDisk.exists(3)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| /* ************************************************************************* */ | /* ************************************************************************* */ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -87,7 +87,8 @@ copy_directory("${CMAKE_CURRENT_SOURCE_DIR}/gtsam" | ||||||
| # Hack to get python test and util files copied every time they are modified | # Hack to get python test and util files copied every time they are modified | ||||||
| file(GLOB GTSAM_PYTHON_TEST_FILES "${CMAKE_CURRENT_SOURCE_DIR}/gtsam/tests/*.py") | file(GLOB GTSAM_PYTHON_TEST_FILES "${CMAKE_CURRENT_SOURCE_DIR}/gtsam/tests/*.py") | ||||||
| foreach(test_file ${GTSAM_PYTHON_TEST_FILES}) | foreach(test_file ${GTSAM_PYTHON_TEST_FILES}) | ||||||
|         configure_file(${test_file} "${GTSAM_MODULE_PATH}/tests/${test_file}" COPYONLY) |         get_filename_component(test_file_name ${test_file} NAME) | ||||||
|  |         configure_file(${test_file} "${GTSAM_MODULE_PATH}/tests/${test_file_name}" COPYONLY) | ||||||
| endforeach() | endforeach() | ||||||
| file(GLOB GTSAM_PYTHON_UTIL_FILES "${CMAKE_CURRENT_SOURCE_DIR}/gtsam/utils/*.py") | file(GLOB GTSAM_PYTHON_UTIL_FILES "${CMAKE_CURRENT_SOURCE_DIR}/gtsam/utils/*.py") | ||||||
| foreach(util_file ${GTSAM_PYTHON_UTIL_FILES}) | foreach(util_file ${GTSAM_PYTHON_UTIL_FILES}) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue