Revision history for Z-Data
2.0.0.0 -- 2021-12-08
- Work only with GHC >= 9.2, use sized primitive types, new integer types.
- Remove dependencies on
ghc-prim, integer-gmp, use modules exported by base instead.
- Change
emptyArr to a Arr class method.
1.1.0.0 -- 2021-07-15
- Fix building issues on ARM platform.
- Add
UUID builders and parsers(both textual binary).
- Add more
PrimUnlifed instances to Z.Data.Array.UnliftedArray.
- Add
doubleMutableArr to Z.Data.Array, useful in some buffer building logic.
- Add
shuffle and permutations to Z.Data.Vector and Z.Data.Text.
- Add
prettyJSON' to Z.Data.JSON with custom indentation.
- Change
CBytes 's JSON instance to write __base64 field(instead of base64 field) when not UTF8 encoded.
- Add missing type alias
UnliftedIORef for UnliftedRef RealWorld.
1.0.0.1 -- 2021-07-08
- Fix a regression in
match parsing combinator where matched chunk is returned instead of precise matched input.
1.0.0.0 -- 2021-07-05
- Clean up various
RULES and INLINE pragmas, improve building time a little.
- Simplify
Z.Data.PrimRef to use PrimMonad.
- Add
encodeXXX/encodeXXXLE/encodeXXXBE(where XXX is a primitive type) to Z.Data.Builder.
- Add
check-array-bound build flag to enable bound check in Z.Data.Array module, Z.Data.Array.Checked is removed.
- Add
concatR to Z.Data.Vector and Z.Data.Text, which is useful to concat the result of an accumulator style recursive function.
- Improve date builder and parser by introducing faster common case path.
0.9.0.0 -- 2021-07-01
- Add
decodeXXX/deocodeXXXLE/decodeXXXBE(where XXX is a primitive type) to Z.Data.Parser.
- Rename
replicateMVec/traveseVec/traveseVec_ tp replicateM/travese/travese_, fix related PrimMonad rules not firing issue.
- Add a faster
sciToDouble based on https://github.com/lemire/fast_double_parser, improve double/double' parser.
0.8.8.0 -- 2021-06-13
- Add
withCPtrForever and addCPtrDep to Z.Foreign.CPtr module.
- Add
replicateMVec to Z.Data.Vector.
- Fix AVX512 text validate header building with C11.
0.8.7.0 -- 2021-06-12
- Add
use-avx2 and use-avx512 flags(default to False) to enable avx2 or avx512 base64 codec, UTF8 validator, etc.
0.8.6.1 -- 2021-06-09
0.8.5.0 -- 2021-06-04
- Fix a bug in
peekMaybe across buffer boundary.
- Clean up base64 AVX/SSE CPP flags.
0.8.4.0 -- 2021-06-03
arrVec from Z.Data.Vector now could convert between vector(array slice) and array back and forth.
- Fix a CPP bug in
no-avx build flag.
0.8.3.0 -- 2021-06-02
- Fix numeric literals'
Print instances when precedence > 6 and value < 0.
- Add
no-avx build flag to run tests on VMs without AVX support.
0.8.2.0 -- 2021-05-10
- Add
withCPtrs, withCPtrsUnsafe to Z.Foreign.CPtr.
- Add
displayWidthChar to Z.Data.Text.
0.8.1.0 -- 2021-04-23
- Change
ParseChunks and parseChunks to based on parseChunk.
- Remove
parseValueChunks, add decodeChunk to Z.Data.JSON.
0.8.0.0 -- 2021-04-20
- Change
Bytes 's Hashable instance to use FNV-1a (proposed by @zypeh).
0.7.4.0 -- 2021-04-06
- Add
emptyArr to Z.Data.Array.
- Add
newCPtr' to accommodate common cases.
- Use
memchr in split/splitWith/lines if possible.
0.7.3.0 -- 2021-03-30
- Add more helpers to debug
Parser: currentChunk, failWithInput, unsafeLiftIO.
- Parser now is an instance of
PrimMonad, which can perform limited effects, e.g. array operations.
- Make some parsers' error message more helpful.
0.7.2.0 -- 2021-03-22
- Add
fromMutablePrimArray for constructing CBytes.
- Add
toBytes'/toBuilder'(convert with the \NUL terminator) to Z.Data.CBytes.
0.7.1.0 -- 2021-03-03
- Add
CPtr type, a more lightweight foreign pointer.
- Add
toLower/toUpper/toLowerLatin/toUpperLatin to Z.Data.ASCII.
0.7.0.0 -- 2021-03-03
- Add more patterns to
Z.Data.ASCII.
- Fix a bug in
Z.Data.Vector.Search where needle is a singleton.
- Optimize
mergeDupAdjacent family funtions in Z.Data.Vector.Sort to not copy vector in case of no duplication.
- Add
scientific' to Z.Data.Builder, Add more Print instances.
- Bump deps to support GHC 9.0.
0.6.1.0 -- 2021-02-04
- Add
key and nth lens to Z.Data.JSON.Value for manipulating nested value more easily.
- Port patch from bytestring #301 #310 #315, Improve
stime, sconcat, intersperse.
- Add JSON pretty printer
prettyJSON/prettyValue to Z.Data.JSON.
- Move many instances from
Z.Data.JSON.Base to Z.Data.JSON to reduce the chance of heap overflow when compile.
- Add
modifyIndex/insertIndex/deleteIndex to array and vector, rewrite `FlatMap/FlatSet/FlatInMap/FlatIntSet' to use them.
- Remove
linearSearch from Z.Data.Vector.FlatMap/FlatInMap, use find/findR from Z.Data.Vector.Search instead.
- Add
displayWidth to Z.Data.Text.
- Move
floatToScientific/doubleToScientific to Z.Data.JSON.Value.
0.6.0.0 -- 2021-02-04
- Add
primArrayFromBE/primArrayFromBE to Z.Data.Array.Unaligned.
- Change
[Char] 's JSON instance to use JSON text, Add Bytes 's JSON instance to use base64 encoding.
- Add
escapeCBytes, toEscapedText to Z.Data.CBytes, change CBytes 's JSON instance to use base64 encoding.
0.5.0.0 -- 2021-01-15
- Add
ParseChunks type alias, remove parseChunks' from Z.Data.JSON.
- Change JSON instance of
Data.Version to use JSON Array.
- Add
fromByteString and toByteString to Z.Foreign.
- Change license's copyright to test --test-show-details=direct
0.4.0.0 -- 2021-01-11
- Merge
FromValue, ToValue, EncodeJSON to JSON class, add instances for containers.
- A new
Z.Data.JSON.Converter module to be reused in other protocol decoding.
- Add more tests for JSON module, fix buggy instances(
Ordering, DayOfWeek).
- Fix a bug in
BE Double Unaligned instance.
- Add
arrVec to Z.Data.Vector to convert a whole array to vector.
0.3.0.0 -- 2020-12-29
- Hide
Text constructor from Z.Data.Text.
- Add
fromStdString to Z.Data.CBytes.
- Re-export
touch from Z.Foreign, export ConvertError constructor from Z.Data.JSON.
- Add
anyChar8 to Z.Data.Parser.
- Add
Z.Data.ASCII, move c2w, w2c, isDigit, isSpace, isHexDigit and ASCII constants to it.
- Rename
ShowT class to Print, re-export from Z.Data.Text module.
- Add various JSON instances of types from
time package, add Z.Data.Builder.Time and Z.Data.Parser.Time.
- Fix a bug affecting comparing
PrimVectors.
0.2.0.0 -- 2020-12-15
- Add
Z.Data.Text.Regex module, which provide regex functions using RE2.
- Rename
buildBytes, buildBytesList in Z.Data.Builder to build, buildChunks.
- Rename
encodeBytes, encodeBytesList in Z.Data.Builder to encode, encodeChunks.
buildChunks now produces a lazy bytes list, (so that encodeChunks, etc.).
- Functions in
Z.Data.Text.Search now return char index by default, add findBytesIndices/findBytesIndex/R to
search for bytes index.
- Add
fromStdString to Z.Foreign to marshall std::string from c++ code.
0.1.9.0 -- 2020-10-23
- Add
Z.Data.Vecotr.Hex, Z.Data.Vector.Base64 module.
- Improve
Z.Data.Builder 's performance, remove AllocateStrategy, buildAndRun.
- Remove
TextBuilder newtype from Z.Data.Text.ShowT, add buildText, unsafeBuildText to Z.Data.Builder.
0.1.8.0 -- 2020-10-23
- Rename
ascii to vecASCII in Z.Data.Vector.QQ to match array QQ.
- Add
FoldCase instance to Text.
- Add
hex', hex_, uint_, int_, integer to Z.Data.Parser, change hex, uint, int to fail in case of overflow.
- Add
takeN to Z.Data.Parser.
- Rename
withCBytesListSafe to withCBytesList to match rest of the module.
0.1.7.2 -- 2020-10-17
- Add
withPrimArrayListUnsafe, withPrimArrayListSafe, withCBytesUnsafe, withCBytesListSafe.
0.1.7.1 -- 2020-10-17
- Add
singleton to Z.IO.CBytes, fix unpack when there're trailing illegal UTF8 codepoints.
0.1.7.0 -- 2020-10-15
- Change
defaultChunkSize from 32K to 16K to reduce memory overhead.
- Change
CBytes to use null terminated byte array, add JSON instances.
- Add JSON instances to various arrays, Fix
Char's JSON instance to reject string length > 1.
- Add
decodeText and decodeText' to Z.Data.JSON.
0.1.6.1 -- 2020-10-09
- Remove
Str newtype.
- Make
CBytes a newtype.
- Add JSON instances for
ExitCode, Add Unaligned instances for Ptr a.
- Use type alias instead of newtypes for
Locale, Category in Z.Data.Text.
0.1.6.0 -- 2020-10-09
- Rename
ToText to ShowT, toText to showT, add FFI types instances, remove Str newtype.
- Change
Text 's Show and ShowT escaping rules to reuse JSON escaping, remove Read instance.
- Add
ShowT instances to CBytes and FFI types.
0.1.5.0 -- 2020-10-02
- Rework
CBytes type to use unpinned byte array, add withCBytesUnsafe, allocCBytesUnsafe.
- Export
head, tail, init, last from Z.IO.Vector, Z.IO.Text (well, safety first).
- Change
unalignedSize in UnalignedAccess class's type to take a instance type and return Int.
- Rename
UnalignedAccess to Unaligned.
0.1.4.2 -- 2020-10-02
- Remove
withMutablePrimArrayUnsafe/Safe from Z.Foreign.
- Add
allocPrimArrayUnsafe/Safe, allocPrimVectorUnsafe/Safe, allocBytesUnsafe/Safe, fromPtr/fromPrimPtr
to Z.Foreign.
0.1.4.1 -- 2020-09-29
- Add
fromNullTerminated to Z.Foreign(and Z.Data.Vector.Base).
- Change
Category and Locale(Z.Data.Text) to use pattern synonyms, add envLocale to Z.Data.Text.
- Add
validateASCII and validateASCIIMaybe to Z.Data.Text.
0.1.4.0 -- 2020-09-24
- Make library works with GHC 8.6 and 8.8 again.
- Add
pinPrimVector and pinPrimArray to Z.Foreign.
- Export
fail' from Z.Data.Parser
0.1.3.1 -- 2020-09-24
- Change
clearMBA 's type to match clearPtr.
- Move
peekMBA, pokeMBA to UnalignedAccess class.
0.1.3.0 -- 2020-09-20
- Add indexing funtion to
Z.Data.Vector and Z.Data.Text.
- Add
peekMBA, pokeMBA and clearMBA to Z.Foreign.
0.1.2.0 -- 2020-09-19
- Rename
read/write/indexWord8ArrayAs to read/write/indexWord8ArrayAs#.
- Add
read/write/indexWord8ArrayAs, read/write/indexPrimWord8ArrayAs.
- Fix JSON encoding code in generic instance(constructor with single payload case).