- Cosmetic: replace tabs with blanks, strip trailing white space,
and update copyright headers with spec-cleaner.
- Update aeson to version 1.4.0.0.
### 1.4.0.0
This release introduces bounds on the size of `Scientific` numbers when they are converted to other arbitrary precision types that do not represent them efficiently in memory.
This means that trying to decode a number such as `1e1000000000` into an `Integer` will now fail instead of using a lot of memory. If you need to represent large numbers you can add a newtype (preferably over `Scientific`) and providing a parser using `withScientific`.
The following instances are affected by this:
* `FromJSON Natural`
* `FromJSONKey Natural`
* `FromJSON Integer`
* `FromJSONKey Integer`
* `FromJSON NominalDiffTime`
For the same reasons the following instances & functions have been removed:
* Remove `FromJSON Data.Attoparsec.Number` instance. Note that `Data.Attoparsec.Number` is deprecated.
* Remove deprecated `withNumber`, use `withScientific` instead.
Finally, encoding integral values with large exponents now uses scientific notation, this saves space for large numbers.
### 1.3.1.1
* Catch 0 denominators when parsing Ratio
### 1.3.1.0
* Fix bug in generically derived `FromJSON` instances that are using `unwrapUnaryRecords`, thanks to Xia Li-yao
* Allow base-compat 0.10.*, thanks to Oleg Grenrus
## 1.3.0.0
Breaking changes:
* `GKeyValue` has been renamed to `KeyValuePair`, thanks to Xia Li-yao
* Removed unused `FromJSON` constraint in `withEmbeddedJson`, thanks to Tristan Seligmann
Other improvements:
* Optimizations of TH toEncoding, thanks to Xia Li-yao
* Optimizations of hex decoding when using the default/pure unescape implementation, thanks to Xia Li-yao
* Improved error message on `Day` parse failures, thanks to Gershom Bazerman
OBS-URL: https://build.opensuse.org/request/show/623707
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ghc-aeson?expand=0&rev=18
- update to 0.11.2.0
* Enable PolyKinds to generalize Proxy, Tagged, and Const instances.
* Add unsafeToEncoding in Data.Aeson.Types, use with care!
- update to 0.11.1.4
* Fix build with base < 4.8 and unordered-containers < 0.2.6.
* Add missing field in docs for defaultOptions.
* Fixes a bug where the hashes of equal values could differ.
* The only changes are added instances. (0.11.1.0)
+ These are new:
ToJSON a => ToJSON (NonEmpty a)
FromJSON a => FromJSON (NonEmpty a)
ToJSON (Proxy a)
FromJSON (Proxy a)
ToJSON b => ToJSON (Tagged a b)
FromJSON b => FromJSON (Tagged a b)
ToJSON a => ToJSON (Const a b)
FromJSON a => FromJSON (Const a b)
+ These are now available for older GHCs:
ToJSON Natural
FromJSON Natural
* This release should be close to backwards compatible with aeson 0.9 (0.11.0.0)
+ Breaking changes:
Revert .:? to behave like it did in 0.9. If you want the 0.10 behavior
use .:! instead.
Revert JSON format of Either to 0.9, Left and Right are now serialized with
an initial uppercase letter. If you want the names in lowercase you can
add a newtype with an instance.
All ToJSON and FromJSON instances except for [a] are no longer OVERLAPPABLE.
Mark your instance as OVERLAPPING if it overlaps any of the other aeson (forwarded request 398189 from mimi_vx)
OBS-URL: https://build.opensuse.org/request/show/398191
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ghc-aeson?expand=0&rev=8
- update to 0.10.0.0
* Performance improvements:
+ Direct encoding via the new toEncoding method is over 2x faster than toJSON.
(You must write or code-gen a toEncoding implementation to unlock this speedup.
See below for details.)
+ Improved string decoding gives a 12% speed win in parsing string-heavy JSON
payloads (very common).
+ Encoding and decoding of time-related types are 10x faster (!!) as a result of
bypassing Data.Time.Format and the arbitrary-precision Integer type.
+ When using toEncoding, [Char] can be encoded without a conversion to Text.
This is fast and efficient.
+ Parsing into an Object is now 5% faster and more allocation-efficient.
* SUBTLE API CHANGES, READ CAREFULLY:
+ With the exception of long-deprecated code, the API changes below should be
upwards compatible from older versions of aeson. If you run into upgrade
problems, please file an issue with details.
+ The ToJSON class has a new method, toEncoding, that allows direct encoding
from a Haskell value to a lazy bytestring without construction of an
intermediate Value.
+ The performance benefits of direct encoding are significant: more than 2x
faster than before, with less than 1/3 the memory usage.
+ To preserve API compatibility across upgrades from older versions of this
library, the default implementation of toEncoding uses toJSON. You will not
see any performance improvement unless you write an implementation of
toEncoding, which can be very simple:
instance ToJSON Coord where
toEncoding = genericToEncoding defaultOptions
(Behind the scenes, the encode function uses toEncoding now, so if you
implement toEncoding for your types, you should see a speedup immediately.)
+ If you use Template Haskell or GHC Generics to auto-generate your ToJSON (forwarded request 352123 from mimi_vx)
OBS-URL: https://build.opensuse.org/request/show/352165
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ghc-aeson?expand=0&rev=6