[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'.
From: |
Pierre Neidhardt |
Subject: |
[bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'. |
Date: |
Mon, 27 May 2019 23:12:24 +0200 |
Ludovic Courtès <address@hidden> writes:
>> That said, if the encoder buffer is not empty, I think lz-compress-read
>> should always return something >0.
>
> Yes, probably. The docstring for ‘lz-compress-read’ says:
Oops, I read the docstring of lz-DEcompress-read. My bad.
> "Read up to COUNT bytes from the encoder stream, storing the results in
> LZFILE-BV.
> Return the number of uncompressed bytes written, a strictly positive
> integer."
> ^~~~~~~~~~~~~~~~~
Bigger oops! This comes from a copy-paste of the gzip docstring which I
forgot to update properly (I did for the decompression functions, but
not for the compression functions). The docstrings should be fixed.
> But that’s OK: the ‘read!’ method in ‘make-lzip-input-port/compressed’
> can just call ‘lzwrite!’ again with more data when that happens, so I’ve
> done that.
This could work, but I've had some headaches on such assumptions
before. Tests are very necessary here to validate those assumptions ;)
The thing is that we are not using lzlib as it is meant to be used
(i.e. with the finish* functions) because of the functional approach of
the binary ports which don't really play well with the procedural
approach of the C library.
> And I pushed the whole thing! :-)
Hurray! Can't wait to say lz-compressed archives coming to Guix! :)
--
Pierre Neidhardt
https://ambrevar.xyz/
signature.asc
Description: PGP signature
- [bug#35880] [PATCH 7/7] lzlib: 'lzread!' never returns more than it was asked for., (continued)
[bug#35880] [PATCH 4/7] publish: Add support for lzip., Ludovic Courtès, 2019/05/24
[bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'., Pierre Neidhardt, 2019/05/25
- [bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'., Ludovic Courtès, 2019/05/26
- [bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'., Ludovic Courtès, 2019/05/27
- [bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'., Pierre Neidhardt, 2019/05/27
- bug#35880: [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'., Ludovic Courtès, 2019/05/27
- [bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'.,
Pierre Neidhardt <=
- [bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'., Ludovic Courtès, 2019/05/28
- [bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'., Pierre Neidhardt, 2019/05/28
- [bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'., Ludovic Courtès, 2019/05/28
- [bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'., Pierre Neidhardt, 2019/05/29
- [bug#35880] [PATCH 1/7] lzlib: Add 'make-lzip-input-port/compressed'., Ludovic Courtès, 2019/05/31