chicken-janitors
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-janitors] #82: z3 egg DEFLATE and gzip confusion


From: Chicken Trac
Subject: [Chicken-janitors] #82: z3 egg DEFLATE and gzip confusion
Date: Tue, 13 Oct 2009 07:20:37 -0000

#82: z3 egg DEFLATE and gzip confusion
-------------------------------------+--------------------------------------
 Reporter:  tonysidaway              |       Owner:       
     Type:  defect                   |      Status:  new  
 Priority:  minor                    |   Milestone:       
Component:  build system             |     Version:  4.1.x
 Keywords:  z3 gzip rfc1951 rfc1952  |  
-------------------------------------+--------------------------------------
 RFC1951 is the DEFLATE format.  RFC1952 is the gzip file format.  A gzip
 file is a data stream encoded using the DEFLATE format, in a file wrapper
 specified by RFC1952.

 Although it is presented as a gzip egg that "Provides functions to read
 and write compressed data using the gzip algorithm", some of the calls
 actually use the raw DEFLATE format without being clear about it,
 resulting in unexpected errors.

 Four interfaces are specified by this egg: the raw data interface, the
 buffer interface, the file system interface and the port interface.

 The first two only read and write DEFLATE (RFC1951) format, while the
 second two read and write gzip (RFC1952) format.

 The upshot is that if one reads a gzip file into a buffer and then
 attempts to use the z3 raw data or buffer interface functions to decode
 it, an error will result because they do not understand gzip file format.

 In the interim, the egg documentation should specify the data formats
 being handled by each set of functions.

 In the long run a buffer interface that handles RFC1952 format in memory
 would be useful because this format is commonly used, for instance, for
 data transmission from web servers to clients.  At present if a RFC1952
 stream is captured in a memory buffer the only way z3 can decode it is by
 writing to a temporary file and then using the file system or port
 interface to decode the file contents.

-- 
Ticket URL: <http://www.irp.oist.jp/trac/chicken/ticket/82>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]