- Work only with GHC >= 9.2, use sized primitive types, new integer types.
- Remove dependencies on
ghc-prim
,integer-gmp
, use modules exported bybase
instead. - Change
emptyArr
to aArr
class method.
- Fix building issues on ARM platform.
- Add
UUID
builders and parsers(both textual binary). - Add more
PrimUnlifed
instances toZ.Data.Array.UnliftedArray
. - Add
doubleMutableArr
toZ.Data.Array
, useful in some buffer building logic. - Add
shuffle
andpermutations
toZ.Data.Vector
andZ.Data.Text
. - Add
prettyJSON'
toZ.Data.JSON
with custom indentation. - Change
CBytes
's JSON instance to write__base64
field(instead ofbase64
field) when not UTF8 encoded. - Add missing type alias
UnliftedIORef
forUnliftedRef RealWorld
.
- Fix a regression in
match
parsing combinator where matched chunk is returned instead of precise matched input.
- Clean up various
RULES
andINLINE
pragmas, improve building time a little. - Simplify
Z.Data.PrimRef
to usePrimMonad
. - Add
encodeXXX/encodeXXXLE/encodeXXXBE
(whereXXX
is a primitive type) toZ.Data.Builder
. - Add
check-array-bound
build flag to enable bound check inZ.Data.Array
module,Z.Data.Array.Checked
is removed. - Add
concatR
toZ.Data.Vector
andZ.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.
- Add
decodeXXX/deocodeXXXLE/decodeXXXBE
(whereXXX
is a primitive type) toZ.Data.Parser
. - Rename
replicateMVec/traveseVec/traveseVec_
tpreplicateM/travese/travese_
, fix relatedPrimMonad
rules not firing issue. - Add a faster
sciToDouble
based on https://github.com/lemire/fast_double_parser, improvedouble/double'
parser.
- Add
withCPtrForever
andaddCPtrDep
toZ.Foreign.CPtr
module. - Add
replicateMVec
toZ.Data.Vector
. - Fix AVX512 text validate header building with C11.
- Add
use-avx2
anduse-avx512
flags(default to False) to enable avx2 or avx512 base64 codec, UTF8 validator, etc.
- Change SIMD base64 codec to https://github.com/lemire/fastbase64.
- Add SIMD enabled
count
from bytestring. - Switch
no-avx
on by default to improve compiled binary's portablity. - Add
collate
, courtesy by jgm: https://github.com/jgm/unicode-collation. - Add
hexDecodeWS/hexDecodeWS'
toZ.Data.Vector.Hex
.
- Fix a bug in
peekMaybe
across buffer boundary. - Clean up base64 AVX/SSE CPP flags.
arrVec
fromZ.Data.Vector
now could convert between vector(array slice) and array back and forth.- Fix a CPP bug in
no-avx
build flag.
- Fix numeric literals'
Print
instances when precedence > 6 and value < 0. - Add
no-avx
build flag to run tests on VMs without AVX support.
- Add
withCPtrs
,withCPtrsUnsafe
toZ.Foreign.CPtr
. - Add
displayWidthChar
toZ.Data.Text
.
- Change
ParseChunks
andparseChunks
to based onparseChunk
. - Remove
parseValueChunks
, adddecodeChunk
toZ.Data.JSON
.
- Change
Bytes
'sHashable
instance to use FNV-1a (proposed by @zypeh).
- Add
emptyArr
toZ.Data.Array
. - Add
newCPtr'
to accommodate common cases. - Use
memchr
insplit/splitWith/lines
if possible.
- 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.
- Add
fromMutablePrimArray
for constructing CBytes. - Add
toBytes'/toBuilder'
(convert with the \NUL terminator) toZ.Data.CBytes
.
- Add
CPtr
type, a more lightweight foreign pointer. - Add
toLower/toUpper/toLowerLatin/toUpperLatin
toZ.Data.ASCII
.
- Add more patterns to
Z.Data.ASCII
. - Fix a bug in
Z.Data.Vector.Search
where needle is a singleton. - Optimize
mergeDupAdjacent
family funtions inZ.Data.Vector.Sort
to not copy vector in case of no duplication. - Add
scientific'
toZ.Data.Builder
, Add morePrint
instances. - Bump deps to support GHC 9.0.
- Add
key
andnth
lens toZ.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
toZ.Data.JSON
. - Move many instances from
Z.Data.JSON.Base
toZ.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
fromZ.Data.Vector.FlatMap/FlatInMap
, usefind/findR
fromZ.Data.Vector.Search
instead. - Add
displayWidth
toZ.Data.Text
. - Move
floatToScientific/doubleToScientific
toZ.Data.JSON.Value
.
- Add
primArrayFromBE/primArrayFromBE
toZ.Data.Array.Unaligned
. - Change
[Char]
's JSON instance to use JSON text, AddBytes
's JSON instance to use base64 encoding. - Add
escapeCBytes
,toEscapedText
toZ.Data.CBytes
, changeCBytes
's JSON instance to use base64 encoding.
- Add
ParseChunks
type alias, removeparseChunks'
fromZ.Data.JSON
. - Change JSON instance of
Data.Version
to use JSON Array. - Add
fromByteString
andtoByteString
toZ.Foreign
. - Change license's copyright to test --test-show-details=direct
- Merge
FromValue
,ToValue
,EncodeJSON
toJSON
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
toZ.Data.Vector
to convert a whole array to vector.
- Hide
Text
constructor fromZ.Data.Text
. - Add
fromStdString
toZ.Data.CBytes
. - Re-export
touch
fromZ.Foreign
, exportConvertError
constructor fromZ.Data.JSON
. - Add
anyChar8
toZ.Data.Parser
. - Add
Z.Data.ASCII
, movec2w
,w2c
,isDigit
,isSpace
,isHexDigit
and ASCII constants to it. - Rename
ShowT
class toPrint
, re-export fromZ.Data.Text
module. - Add various JSON instances of types from
time
package, addZ.Data.Builder.Time
andZ.Data.Parser.Time
. - Fix a bug affecting comparing
PrimVector
s.
- Add
Z.Data.Text.Regex
module, which provide regex functions using RE2. - Rename
buildBytes
,buildBytesList
inZ.Data.Builder
tobuild
,buildChunks
. - Rename
encodeBytes
,encodeBytesList
inZ.Data.Builder
toencode
,encodeChunks
. buildChunks
now produces a lazy bytes list, (so thatencodeChunks
, etc.).- Functions in
Z.Data.Text.Search
now return char index by default, addfindBytesIndices/findBytesIndex/R
to search for bytes index. - Add
fromStdString
toZ.Foreign
to marshallstd::string
from c++ code.
- Add
Z.Data.Vecotr.Hex
,Z.Data.Vector.Base64
module. - Improve
Z.Data.Builder
's performance, removeAllocateStrategy
,buildAndRun
. - Remove
TextBuilder
newtype fromZ.Data.Text.ShowT
, addbuildText
,unsafeBuildText
toZ.Data.Builder
.
- Rename
ascii
tovecASCII
inZ.Data.Vector.QQ
to match array QQ. - Add
FoldCase
instance toText
. - Add
hex'
,hex_
,uint_
,int_
,integer
toZ.Data.Parser
, changehex
,uint
,int
to fail in case of overflow. - Add
takeN
toZ.Data.Parser
. - Rename
withCBytesListSafe
towithCBytesList
to match rest of the module.
- Add
withPrimArrayListUnsafe
,withPrimArrayListSafe
,withCBytesUnsafe
,withCBytesListSafe
.
- Add
singleton
toZ.IO.CBytes
, fixunpack
when there're trailing illegal UTF8 codepoints.
- 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
anddecodeText'
toZ.Data.JSON
.
- Remove
Str
newtype. - Make
CBytes
a newtype. - Add JSON instances for
ExitCode
, Add Unaligned instances forPtr a
. - Use type alias instead of newtypes for
Locale
,Category
inZ.Data.Text
.
- Rename
ToText
toShowT
,toText
toshowT
, add FFI types instances, removeStr
newtype. - Change
Text
'sShow
andShowT
escaping rules to reuse JSON escaping, removeRead
instance. - Add
ShowT
instances toCBytes
and FFI types.
- Rework
CBytes
type to use unpinned byte array, addwithCBytesUnsafe
,allocCBytesUnsafe
. - Export
head
,tail
,init
,last
fromZ.IO.Vector
,Z.IO.Text
(well, safety first). - Change
unalignedSize
inUnalignedAccess
class's type to take a instance type and returnInt
. - Rename
UnalignedAccess
toUnaligned
.
- Remove
withMutablePrimArrayUnsafe/Safe
fromZ.Foreign
. - Add
allocPrimArrayUnsafe/Safe
,allocPrimVectorUnsafe/Safe
,allocBytesUnsafe/Safe
,fromPtr/fromPrimPtr
toZ.Foreign
.
- Add
fromNullTerminated
toZ.Foreign
(andZ.Data.Vector.Base
). - Change
Category
andLocale
(Z.Data.Text
) to use pattern synonyms, addenvLocale
toZ.Data.Text
. - Add
validateASCII
andvalidateASCIIMaybe
toZ.Data.Text
.
- Make library works with GHC 8.6 and 8.8 again.
- Add
pinPrimVector
andpinPrimArray
toZ.Foreign
. - Export
fail'
fromZ.Data.Parser
- Change
clearMBA
's type to matchclearPtr
. - Move
peekMBA
,pokeMBA
toUnalignedAccess
class.
- Add indexing funtion to
Z.Data.Vector
andZ.Data.Text
. - Add
peekMBA
,pokeMBA
andclearMBA
toZ.Foreign
.
- Rename
read/write/indexWord8ArrayAs
toread/write/indexWord8ArrayAs#
. - Add
read/write/indexWord8ArrayAs
,read/write/indexPrimWord8ArrayAs
. - Fix JSON encoding code in generic instance(constructor with single payload case).