Changes for version v0.999.4 - 2016-06-27 (TRIAL RELEASE)
- Prereqs
- Bump Moo prereq to 2.002004 to work around core sub shadowing bug in generated constructor. Removed workround added to BSON::DBRef in v0.999.3.
Changes for version v0.999.3 - 2016-06-23 (TRIAL RELEASE)
- Bug fixes
- Fixed detection of Infinity/NaN during serialization of BSON::Double to JSON for Windows perls before 5.22.0.
- Work around compilation ambiguities involving the core keyword 'ref' and the BSON::DBRef attribute 'ref' in certain versions of Moo.
- Testing
- Require newer Path::Tiny with full-featured "basename" method.
Changes for version v0.999.2 - 2016-06-13 (TRIAL RELEASE)
- Added
- Added full "minimum set" of overloaded operations to numeric and string type wrappers.
- Added convenience functions to provide "Infinity" and "NaN" double values.
- Testing
- Replace double test cases for better portability.
- Skip threads tests before 5.8.5 because of problems with weak references during global destruction.
Changes for version v0.999.1 - 2016-06-08 (TRIAL RELEASE)
- Testing
- Checks for JSON serialization of doubles with no fractional part with a regular expression to account for the way that different JSON backends will handle it.
- Skip testing TO_JSON under JSON::PP if the value to be converted is false. See https://github.com/makamaka/JSON-PP/pull/23 for why.
- Skip some BSON double tests on 32-bit perls with JSON::PP to work around a JSON::PP bug.
- ~Internal Changes~
- Disambiguates calls to 'ref' in BSON::DBRef to avoid warnings.
Changes for version v0.999.0 - 2016-06-01 (TRIAL RELEASE)
- !!! Incompatible Changes !!!
- Internal representation of BSON::Bool changed to make it a subclass of boolean.pm for conistency with other "boolean" type classes on CPAN.
- All BSON type wrapper classes are now immutable; accessors have been changed to read-only.
- *** Deprecations ***
- BSON::Binary deprecated in favor of the new BSON::Bytes module.
- BSON::Bool deprecated in favor of direct use of boolean.pm.
- BSON::ObjectID deprecated in favor of the new BSON::OID module.
- The 'ixhash' option is deprecated in favor of 'ordered' and the resulting tied object is no longer guaranteed to be Tie::IxHash. This will allow future optimization, as Tie::IxHash is extremely slow.
- API
- BSON module is now object-oriented, with an API and options directly compatible with the MongoDB driver. Options set as constructor attributes apply to all encoding/decoding, unless options given to methods override them.
- Added a method for inflation of MongoDB's extended JSON format to BSON type wrapper objects.
- BSON types
- Added new type wrappers to cover all BSON Types, including forthcoming Decimal128.
- Rationalized/harmonized BSON type classes for compatibility with pre-existing MongoDB BSON classes. Classes that could not be made to interoperate are deprecated as listed above.
- Bug fixes
- Fixed numerous encoding and decoding bugs revealed by greater test coverage (e.g. fixes to UTF-8 encoding/decoding).
- Testing
- Significantly improved test coverage, including tests using a standardized BSON corpus.
- ~Internal Changes~
- Pure-perl implementation split into a separate module to avoid its load time in the future when an XS implementation becomes available.
- Will prefer BSON::XS (when released) or fallback to BSON::PP; PERL_BSON_BACKEND environment variable will override.
Modules
BSON serialization and deserialization
Legacy BSON type wrapper for binary data (DEPRECATED)
Legacy BSON type wrapper for Booleans (DEPRECATED)
BSON type wrapper for binary byte strings
BSON type wrapper for Javascript code
BSON type wrapper for MongoDB DBRefs
BSON type wrapper for Decimal128
BSON type wrapper for ordered documents
BSON type wrapper for Double
BSON type wrapper for Int32
BSON type wrapper for Int64
BSON type wrapper for MaxKey
BSON type wrapper for MinKey
BSON type wrapper for Object IDs
Legacy BSON type wrapper for Object IDs (DEPRECATED)
Pure Perl BSON implementation
BSON type wrapper for pre-encoded BSON documents
BSON type wrapper for regular expressions
BSON type wrapper for strings
BSON type wrapper for date and time
BSON type wrapper for timestamps
Helper functions to wrap BSON type classes