Skip to content

Bump the all-julia-packages group across 2 directories with 1 update - #18

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/julia/all-julia-packages-4bf93a42a2
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/julia/all-julia-packages-4bf93a42a2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 14, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on and GZip to permit the latest version.
Updates GZip to 0.8.0

Release notes

Sourced from GZip's releases.

v0.8.0

GZip v0.8.0

Diff since v0.7.1

Breaking

eof now reports end-of-stream as soon as the last byte is consumed. Previously zlib's EOF bit was not set after a final gzgets, so

while !eof(io)
    readline(io)
end

yielded one spurious trailing "" — a 100,000-line file produced 100,001 lines where IOStream produces 100,000. Code that worked around this by discarding a trailing empty line will need adjusting.

Performance

Line-oriented and byte-at-a-time reading are substantially faster (8 MB / 100k-line text, zlib-ng backend, min-of-5). Bulk read, write and readbytes! already ran at library speed and are unchanged.

0.7.1 0.8.0
readuntil(io, '\n') ×100k 179.7 ms 6.9 ms 26×
readline loop ×100k 16.3 ms 5.0 ms 3.3×
eachline 25.8 ms 7.9 ms 3.3×
readuntil(io, ',') on binary 10.5 ms 3.8 ms 2.8×
read(io, UInt8) ×1M 16.3 ms 7.1 ms 2.3×
readlines 14.3 ms 7.9 ms 1.8×

readline also allocates far less — 50.8 → 9.6 MiB for 8 MB of text, and one allocation per line instead of four.

Where it came from: read(io, UInt8) made three C calls per byte to force zlib's EOF bit, which now happens lazily in eof; readuntil had no method and fell through to Base's per-byte loop; readline allocated a fresh buffer per line plus an unnecessary defensive copy; the \0 scan used a closure rather than memchr; gzerror allocated an array and a string on every short read, including the normal EOF read that ends every read loop; and long lines grew the buffer 256 bytes at a time.

Bug fixes

  • readline could return uninitialized bytes when a line ended exactly on the 256-byte buffer boundary at end of file. It truncated to the previous buffer length rather than to the end of the data.
  • GZip.Zlib_h.zlib_version was a Ptr evaluated at precompile time and serialized into the cache file, so it referred to the precompiling process's address space. Dereferencing it in a later session segfaulted. It is now a String.

New

GZLIBNG_VERSION and ZLIBNG_VERSION report the zlib-ng version. zlib-ng has its own version series, and GZLIB_VERSION / ZLIB_VERSION describe the non-default ZLIB backend — so on the default backend those constants named a library your streams never touched. libversion returns whichever applies:

GZip.libversion(GZip.ZLIBNG)   # "2.3.3"
GZip.libversion(GZip.ZLIB)     # "1.2.13"
gzopen("data.gz") do io
GZip.libversion(io)        # version of this stream's backend
end
</tr></table>

... (truncated)

Commits

Updates GZip to 0.8.0

Release notes

Sourced from GZip's releases.

v0.8.0

GZip v0.8.0

Diff since v0.7.1

Breaking

eof now reports end-of-stream as soon as the last byte is consumed. Previously zlib's EOF bit was not set after a final gzgets, so

while !eof(io)
    readline(io)
end

yielded one spurious trailing "" — a 100,000-line file produced 100,001 lines where IOStream produces 100,000. Code that worked around this by discarding a trailing empty line will need adjusting.

Performance

Line-oriented and byte-at-a-time reading are substantially faster (8 MB / 100k-line text, zlib-ng backend, min-of-5). Bulk read, write and readbytes! already ran at library speed and are unchanged.

0.7.1 0.8.0
readuntil(io, '\n') ×100k 179.7 ms 6.9 ms 26×
readline loop ×100k 16.3 ms 5.0 ms 3.3×
eachline 25.8 ms 7.9 ms 3.3×
readuntil(io, ',') on binary 10.5 ms 3.8 ms 2.8×
read(io, UInt8) ×1M 16.3 ms 7.1 ms 2.3×
readlines 14.3 ms 7.9 ms 1.8×

readline also allocates far less — 50.8 → 9.6 MiB for 8 MB of text, and one allocation per line instead of four.

Where it came from: read(io, UInt8) made three C calls per byte to force zlib's EOF bit, which now happens lazily in eof; readuntil had no method and fell through to Base's per-byte loop; readline allocated a fresh buffer per line plus an unnecessary defensive copy; the \0 scan used a closure rather than memchr; gzerror allocated an array and a string on every short read, including the normal EOF read that ends every read loop; and long lines grew the buffer 256 bytes at a time.

Bug fixes

  • readline could return uninitialized bytes when a line ended exactly on the 256-byte buffer boundary at end of file. It truncated to the previous buffer length rather than to the end of the data.
  • GZip.Zlib_h.zlib_version was a Ptr evaluated at precompile time and serialized into the cache file, so it referred to the precompiling process's address space. Dereferencing it in a later session segfaulted. It is now a String.

New

GZLIBNG_VERSION and ZLIBNG_VERSION report the zlib-ng version. zlib-ng has its own version series, and GZLIB_VERSION / ZLIB_VERSION describe the non-default ZLIB backend — so on the default backend those constants named a library your streams never touched. libversion returns whichever applies:

GZip.libversion(GZip.ZLIBNG)   # "2.3.3"
GZip.libversion(GZip.ZLIB)     # "1.2.13"
gzopen("data.gz") do io
GZip.libversion(io)        # version of this stream's backend
end
</tr></table>

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Updates the requirements on  and [GZip](https://github.com/JuliaIO/GZip.jl) to permit the latest version.

Updates `GZip` to 0.8.0
- [Release notes](https://github.com/JuliaIO/GZip.jl/releases)
- [Commits](https://github.com/JuliaIO/GZip.jl/commits/v0.8.0)

Updates `GZip` to 0.8.0
- [Release notes](https://github.com/JuliaIO/GZip.jl/releases)
- [Commits](https://github.com/JuliaIO/GZip.jl/commits/v0.8.0)

---
updated-dependencies:
- dependency-name: GZip
  dependency-version: 0.8.0
  dependency-type: direct:production
  dependency-group: all-julia-packages
- dependency-name: GZip
  dependency-version: 0.8.0
  dependency-type: direct:production
  dependency-group: all-julia-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file julia Pull requests that update julia code labels Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file julia Pull requests that update julia code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants