[Mochi-devel] Thallium 0.4.1: important update

Dorier, Matthieu mdorier at anl.gov
Mon Jul 22 04:28:17 CDT 2019


Hi all,

If you are using Thallium, please read on.

I have released Thallium version 0.4.1. This version has an important change: you now have the possibility to replace the internal serialization mechanism (which right now is a custom one I wrote a while back) with the Cereal serialization library. This dependency is optional for now but over the long term it will become the default serialization mechanism for Thallium. From now on, I will be maintaining the internal serialization code only if you have a good reason for using it rather than Cereal. I also highly encourage you to give this option a try and check that it works with your code. If it doesn't, please let me know.

How can I use this new option? When installing Thallium with spack, use the +cereal variant (which is off by default). This will automatically use Cereal instead of the internal serialization library.

Do I have to change my code? No, Cereal is a drop-in replacement for the internal serialization code. Its API is the same, and I have made the header files for STL types point to the right cereal headers (e.g. thallium/serialization/stl/vector.hpp will include cereal/types/vector.hpp).

Why did you add this option? There are multiple reasons. Thallium's internal serialization code represents a large portion of its code, which I initially made to look like Boost serialization but without having to depend on Boost. Cereal provides the same functionality and API but is very lightweight. Relying on Cereal will allow me not to care anymore about the serialization part of Thallium. The smaller Thallium is, the easier it is to test and maintain. Additionally, Cereal provides a number of features that Thallium's internal serialization does not provide: support for smart pointers, support for polymorphism, etc.

What should I expect in the future? As I said, I will slowly deprecate the internal serialization, so you are encouraged to switch to cereal as soon as possible. For now, spack won't enable it by default. In version 0.5 I will make +cereal the default in spack, and not enabling it will make thallium spit warnings that you are using a deprecated serialization mechanism.

Thanks,

Matthieu

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mochi-devel/attachments/20190722/0a7c0019/attachment.html>


More information about the mochi-devel mailing list