Changes for version 3.006
- [DECODER] fix segfaults from heavily corrupted data. Guards against various pathological cases which could cause segfaults fixed. Thanks to Damian Gryski and "fuzzing sereal with afl" for finding these cases.
- [ENCODER] Various subtle fixes to how we choose whether to serialize the string or numeric version of a value, in particular to ensure that "00" always round trips as "00", and related issues. Note this fix has correctness and performance consequences. In some cases values that used to serialized as integers (arguably incorrectly) will be serialized as strings instead, and some code maybe be slower to serialize. NOTE: Some issues related to this subject are not fixable without a protocol change. In particular this change may affect the behavior of code that uses binary logical operators on values serialized with Perl. Thanks to Zefram, Tom, and others for help with this issue.
- Fixups for cast warnings under -Wint-to-ptr builds by using using PTR2INT and INT2PTR for casting our objects.
- Win32 fixes
- Build improvements
- Changes to how we generate constants
- Sereal::Decoder::Constants in lib/Sereal/Decoder/Constants.pm