Releases: JuliaIO/BSDiff.jl
v1.2.0
BSDiff v1.2.0
This release uses the new ArgTools
utility package to broaden the kinds of file/IO arguments that BSDiff
supports to include command and pipeline arguments, allowing, for example:
patch = bsdiff(`gzcat old.tar.gz`, `gzcat new.tar.gz`)
bspatch(`gzcat old.tar.gz`, pipeline(`gzip -9`, "new_copy.tar.gz"), patch)
Merged pull requests:
- use ArgTools for read/write argument handling and testing (#44) (@StefanKarpinski)
- Project.toml: add compat for ArgTools (#45) (@StefanKarpinski)
v1.1.1
BSDiff v1.1.1
This release fixes a major memory leak: CodecBzip2 leaks memory if a transcoding stream is not explicitly closed, which we were not doing. However, if you explicitly close a transcoding stream, it closes the stream it wraps, which we don't want (there's no official API around this). Moreover, if an error is thrown then the stream isn't closed and memory is leaked. This release works around the problem by adding finalizers to Patch objects that finalize their transcoding streams, ensuring that memory is released in all cases.
Merged pull requests:
- fix CodecBzip2 memory leaks (#43) (@StefanKarpinski)
v1.1.0
BSDiff v1.1.0
This release adds two features:
- Support for IO handles as arguments wherever a path name was previously allowed.
- The
JULIA_BSDIFF_LOWMEM
environment variable can be used to request that the library use less memory, to avoid crashes on systems with low memory.
There was also substantial refactoring to support IO handles for API arguments.
Merged pull requests:
- refactor API internals (#37) (@StefanKarpinski)
- fix potential memory leak: don't deepcopy Bzip2{C,Dec}ompressor objects (#39) (@StefanKarpinski)
- JUILA_BSDIFF_LOWMEM: work around low memory failures (#40) (@StefanKarpinski)
- API: support IO arguments in addition to paths (#41) (@StefanKarpinski)
- docs: updates for allowing IO args (#42) (@StefanKarpinski)
v1.0.1
BSDiff v1.0.1
Merged pull requests:
- read_start: remove unused header option (#26) (@StefanKarpinski)
- allow CodecBzip2 0.7 (#28) (@StefanKarpinski)
- add some timing code for bsdiff with index (#31) (@StefanKarpinski)
- use BufferedStreams (#32) (@StefanKarpinski)
- ClassicPatch(io, new_size): match API with EndsleyPatch (#33) (@StefanKarpinski)
- factor out int_io calls into {read,write}_int (#34) (@StefanKarpinski)
- lo-level tests: factor index computation out for easier debugging (#35) (@StefanKarpinski)
- use zrl_jll to time diffing zero run-length encoded data (#36) (@StefanKarpinski)
v1.0.0
BSDiff v1.0.0
Merged pull requests:
- add TagBot detritus to repo (#11) (@StefanKarpinski)
- use new (corrected) reference data for testing (#12) (@StefanKarpinski)
- add API for pre-computing and reusing sorted suffix arrays data (#14) (@StefanKarpinski)
- avoid conflict w/ SuffixArrays: rename suffixsort => bssort (#15) (@StefanKarpinski)
- rename: bssort => bsindex (#16) (@StefanKarpinski)
- abstracting the index type and cosmetci changes (#17) (@StefanKarpinski)
- simple lcp: don't recompare common lo-hi prefix in write_diff (#20) (@StefanKarpinski)
- implement classic bsdiff format, make it default (#21) (@StefanKarpinski)
- dependency rename bsdiff_jll => bsdiff_endsley_jll (#22) (@StefanKarpinski)
- update bsdiff/bspatch API signatures in README (#24) (@StefanKarpinski)
- docs: unquote Endsley (#25) (@StefanKarpinski)
v0.1.0
v0.1.0 (2020-02-17)
Diff since 1b77fd6ae3562aed0deb3b049b8e6549acc276e0
Closed issues:
- argument order for bspatch (#5)
Merged pull requests:
- README (#9) (StefanKarpinski)
- fix bug in original bsdiff program use of memcmp for string compare (#8) (StefanKarpinski)
- remove IOorString, ByteVector types (#7) (StefanKarpinski)
- API: path args only, match command order for bspatch (#6) (StefanKarpinski)
- deps: Bzip2_jll isn't a direct dependency (#4) (StefanKarpinski)
- several miscellanous changes to get tests/CI working (#3) (StefanKarpinski)