My setup is something like this,
(1) I have one version of my program that is built using boost 1.32 serialization library, lets call it 1_32.exe
(2) I have another version of my program that is built using boost 1.39 serialization library, lets call it 1_39.exe
(3) These two versions of my program communicate with each other over network and they use boost text serialization to exchange data.
(4) Program 1_39.exe is able to deserialize data sent by 1_32.exe but 1_32.exe is not able to deserialize data sent by 1_39.exe
While debugging this problem I realized that program 1_39.exe is putting archive version as “5” and 1_32.exe is putting archive version as “3”. This results into 1_32.exe throwing “Unknown version” exception. While going through boost documentation I read about “Back Versioning” description provided at http://www.boost.org/doc/libs/1_39_0/libs/serialization/doc/todo.html#backversioning
Looks like its not very difficult to address this issue if we modify some code in boost serialization library.