Updates on my GSoC project: week 3 of August

I am starting my third month of GSoC and I have been enjoying this project very much.

The second part of this project is to replace boost serialization by Cereal. I am doing this replacement in this pull request. One major difference between boost serialization and cereal is that cereal does not support the serialization of raw pointers. This is why we have to replace all raw pointers in mlpack with smart pointers. However, this might require a lot of time and be subject to replacement errors. Instead, I have created a cereal serialization wrapper that wraps each raw pointers with a std::unique_ptr. One should not forget that the pointers are used everywhere in mlpack. For example, we need to be able to deal with a vector of pointers and a boost::variant of pointers. During the last week I have extended this wrapper to support containers of type std::vector<T*> and boost::variant<T1*, T2*, T3*...> I have also managed to serialize arma::mat using external serialization function. These features will allow the user to include armadillo before mlpack without any issue, rather than including mlpack/core.hpp. The work on this pull request is close to the end. We can therefore enter the review process.

In addition to my work on cereal, I have also cherry-picked all commits related to add support for embedded systems in this pull request. At this stage, it provides support for at least 7 different embedded architectures.

Hope you have enjoyed reading this post for this week and as usual, if you want to discuss ideas feel free to catch me on IRC, or leave a comment on these pull requests if you have any opinion on this work.

Add more contrast
Inverted mode