<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt; color: rgb(51, 51, 153);">
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt">Hi all,</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><br>
</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt">If you are using Thallium, please read on.</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><br>
</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt">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.<b> 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.</b><br>
</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><b><br>
</b></div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><b>How can I use this new option?</b> 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.</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><br>
</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><b>Do I have to change my code?</b> 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).<br>
</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><br>
</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><b>Why did you add this option?</b> 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.</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><br>
</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><b>What should I expect in the future?</b> 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.</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><br>
</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt">Thanks,</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt"><br>
</div>
<div style="font-family: Tahoma, Geneva, sans-serif; font-size: 10pt">Matthieu</div>
<br>
</div>
</body>
</html>