The lzlib Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The lzlib Reference Manual

This is the lzlib Reference Manual, version 2.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Sep 15 03:56:20 2022 GMT+0.

Table of Contents


1 Introduction

#+TITLE: cl-lzlib
#+AUTHOR: Guillaume LE VAILLANT
#+DATE: 2022-06-20
#+EMAIL: glv@posteo.net
#+LANGUAGE: en
#+OPTIONS: num:nil toc:nil html-postamble:nil html-scripts:nil
#+HTML_DOCTYPE: html5

* Description

*cl-lzlib* is a Common Lisp library for lzip (LZMA) compression/decompression
using bindings to the lzlib C library.

* License

*cl-lzlib* is released under the GPL-3 license or later. See the [[file:LICENSE][LICENSE]] file
for details.

* Dependencies

*cl-lzlib* requires:
 - [[https://cffi.common-lisp.dev/][cffi]]
 - [[https://github.com/glv2/cl-octet-streams][cl-octet-streams]]
 - [[https://lparallel.org/][lparallel]]
 - [[https://www.nongnu.org/lzip/lzlib.html][lzlib]]
 - [[https://trivial-gray-streams.common-lisp.dev/][trivial-gray-streams]]

*cl-lzlib* can be easily installed with [[https://www.quicklisp.org][quicklisp]].

A *lzlib* package should be available in almost every GNU/Linux or *BSD
distribution. For example it is called /lzlib/ on Gentoo and Guix, and
/liblz1/ on Debian and Ubuntu.

* API

The library can be loaded with the usual:

#+BEGIN_SRC lisp
(asdf:load-system "lzlib")
#+END_SRC

or

#+BEGIN_SRC lisp
(quicklisp:quickload "lzlib")
#+END_SRC

The functions will then be available in the ~lzlib~ package.

** Compression

The compression can be customized using serveral parameters:
 - The maximum size of members inside the lzip archive can be indicated with the
   /member-size/ parameter. The default value is 2 PiB.
 - The compression level can be indicated either using the /level/ parameter, or
   by using both the /dictionary-size/ and /match-len-limit/ parameters. The
   default level is 6, which sets /dictionary-size/ to 8 MiB and
   /match-len-limit/ to 36. /level/ must be between 0 (fast encoder) and
   9 (strong compression).
 - When the /threads/ parameter is greater than 1, the data is read by blocks
   of /block-size/ bytes and the blocks are compressed in parallel. The default
   block size is the double of the dictionary size.

#+BEGIN_SRC lisp
(compress-stream input output &key threads level member-size block-size dictionary-size match-len-limit) => t
#+END_SRC

Read the data from the /input/ octet stream, compress it, and write the result
to the /output/ octet stream.

#+BEGIN_SRC lisp
(compress-file input output &key threads level member-size block-size dictionary-size match-len-limit) => t
#+END_SRC

Read the data from the /input/ file, compress it, and write the result to the
/output/ file.

#+BEGIN_SRC lisp
(compress-buffer buffer &key start end threads level member-size block-size dictionary-size match-len-limit) => bytes
#+END_SRC

Read the data between the /start/ and /end/ offsets in the /buffer/, compress
it, and return the resulting octet vector.

#+BEGIN_SRC lisp
(make-compressing-stream output-stream &key level member-size dictionary-size match-len-limit) => stream
#+END_SRC

Return a stream that will compress the bytes written to it at the given
compression /level/ and write them to the /output-stream/.

#+BEGIN_SRC lisp
(with-compressing-stream (stream output-stream &key level member-size dictionary-size match-len-limit) &body body)
#+END_SRC

Within /body/, /stream/ is bound to a compressing stream for the given
compression /level/ and /output-stream/. The result of the last form of /body/
is returned.

** Decompression

The decompression can be customized using serveral parameters:
 - When an archive has some trailing data, if /ignore-trailing/ is ~nil~ an
   error will be generated, otherwise the trailing data will be ignored.
 - When an archive has some trailing data looking like a corrupt header, if
   /loose-trailing/ is ~nil~ an error will be generated, otherwise the trailing
   data will be ignored.
 - When the /threads/ parameter is greater than 1, the library will decompress
   the members of the archive in parallel. Note that if the archive only has
   1 member, the decompression will be faster and use less memory when
   /threads/ is also 1.

#+BEGIN_SRC lisp
(decompress-stream input output &key threads ignore-trailing loose-trailing) => t
#+END_SRC

Read the data from the /input/ octet stream, decompress it, and write the result
to the /output/ octet stream.

#+BEGIN_SRC lisp
(decompress-file input output &key threads ignore-trailing loose-trailing) => t
#+END_SRC

Read the data from the /input/ file, decompress it, and write the result to the
/output/ file.

#+BEGIN_SRC lisp
(decompress-buffer buffer &key start end threads ignore-trailing loose-trailing) => bytes
#+END_SRC

Read the data between the /start/ and /end/ offsets in the /buffer/, decompress
it, and return the resulting octet vector.

#+BEGIN_SRC lisp
(make-decompressing-stream input-stream &key ignore-trailing loose-trailing) => stream
#+END_SRC

Return a stream that will supply the bytes resulting from the decompression of
the data read from the /input-stream/.

#+BEGIN_SRC lisp
(with-decompressing-stream (stream input-stream &key ignore-trailing loose-trailing) &body body)
#+END_SRC

Within /body/, /stream/ is bound to a decompressing stream for the given
/input-stream/. The result of the last form of /body/ is returned.

* Tests

The tests require the [[https://common-lisp.net/project/fiveam/][fiveam]] package. They can be run with:

#+BEGIN_SRC lisp
(asdf:test-system "lzlib")
#+END_SRC


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 lzlib

lzip (LZMA) (de)compression using bindings to lzlib

Author

Guillaume LE VAILLANT

License

GPL-3

Version

2.0

Dependencies
  • cffi (system).
  • cl-octet-streams (system).
  • lparallel (system).
  • trivial-gray-streams (system).
Source

lzlib.asd.

Child Component

src (module).


Next: , Previous: , Up: The lzlib Reference Manual   [Contents][Index]

3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 lzlib/src

Source

lzlib.asd.

Parent Component

lzlib (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

4.1.1 lzlib/lzlib.asd

Source

lzlib.asd.

Parent Component

lzlib (system).

ASDF Systems

lzlib.


4.1.2 lzlib/src/package.lisp

Source

lzlib.asd.

Parent Component

src (module).

Packages

lzlib.


4.1.3 lzlib/src/lzlib.lisp

Dependency

package.lisp (file).

Source

lzlib.asd.

Parent Component

src (module).

Internals

Previous: , Up: Lisp   [Contents][Index]

4.1.4 lzlib/src/lzip.lisp

Dependency

lzlib.lisp (file).

Source

lzlib.asd.

Parent Component

src (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

5.1 lzlib

Source

package.lisp.

Use List
  • common-lisp.
  • trivial-gray-streams.
Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Public Interface


6.1.1 Macros

Macro: with-compressing-stream ((stream output-stream &key level member-size dictionary-size match-len-limit) &body body)

Within BODY, STREAM is bound to a compressing stream for the given compression LEVEL and OUTPUT-STREAM. The result of the last form of BODY is returned.

Package

lzlib.

Source

lzip.lisp.

Macro: with-decompressing-stream ((stream input-stream &key ignore-trailing loose-trailing) &body body)

Within BODY, STREAM is bound to a decompressing stream for the given INPUT-STREAM. The result of the last form of BODY is returned.

Package

lzlib.

Source

lzip.lisp.


6.1.2 Ordinary functions

Function: compress-buffer (buffer &key start end threads level member-size block-size dictionary-size match-len-limit)

Read the data between the START and END offsets in the BUFFER, compress it, and return the resulting octet vector.

Package

lzlib.

Source

lzip.lisp.

Function: compress-file (input output &key threads level member-size block-size dictionary-size match-len-limit)

Read the data from the INPUT file, compress it, and write the result to the OUTPUT file.

Package

lzlib.

Source

lzip.lisp.

Function: compress-stream (input output &key threads level member-size block-size dictionary-size match-len-limit)

Read the data from the INPUT octet stream, compress it, and write the result to the OUTPUT octet stream.

Package

lzlib.

Source

lzip.lisp.

Function: decompress-buffer (buffer &key start end threads ignore-trailing loose-trailing)

Read the data between the START and END offsets in the BUFFER, decompress it, and return the resulting octet vector.

Package

lzlib.

Source

lzip.lisp.

Function: decompress-file (input output &key threads ignore-trailing loose-trailing)

Read the data from the INPUT file, decompress it, and write the result to the OUTPUT file.

Package

lzlib.

Source

lzip.lisp.

Function: decompress-stream (input output &key threads ignore-trailing loose-trailing)

Read the data from the INPUT octet stream, decompress it, and write the result to the OUTPUT octet stream.

Package

lzlib.

Source

lzip.lisp.

Function: make-compressing-stream (output-stream &key level member-size dictionary-size match-len-limit)

Return a stream that will compress the bytes written to it at the given compression LEVEL and write them to the OUTPUT-STREAM.

Package

lzlib.

Source

lzip.lisp.

Function: make-decompressing-stream (input-stream &key ignore-trailing loose-trailing)

Return a stream that will supply the bytes resulting from the decompression of the data read from the INPUT-STREAM.

Package

lzlib.

Source

lzip.lisp.


6.1.3 Standalone methods

Method: close ((stream decompressing-stream) &key &allow-other-keys)
Source

lzip.lisp.

Method: close ((stream compressing-stream) &key &allow-other-keys)
Source

lzip.lisp.

Method: stream-element-type ((stream decompressing-stream))
Source

lzip.lisp.

Method: stream-element-type ((stream compressing-stream))
Source

lzip.lisp.

Method: stream-finish-output ((stream compressing-stream))
Package

sb-gray.

Source

lzip.lisp.

Method: stream-listen ((stream decompressing-stream))
Package

sb-gray.

Source

lzip.lisp.

Method: stream-read-byte ((stream decompressing-stream))
Package

sb-gray.

Source

lzip.lisp.

Method: stream-read-sequence ((stream decompressing-stream) seq start end &key &allow-other-keys)
Package

trivial-gray-streams.

Source

lzip.lisp.

Method: stream-write-byte ((stream compressing-stream) byte)
Package

sb-gray.

Source

lzip.lisp.

Method: stream-write-sequence ((stream compressing-stream) seq start end &key &allow-other-keys)
Package

trivial-gray-streams.

Source

lzip.lisp.


6.1.4 Conditions

Condition: lzlib-error
Package

lzlib.

Source

lzip.lisp.

Direct superclasses

simple-error.


6.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.1 Constants

Constant: +buffer-size+
Package

lzlib.

Source

lzip.lisp.

Constant: +lz-bad-argument+

At least one of the arguments passed to the library function was invalid.

Package

lzlib.

Source

lzlib.lisp.

Constant: +lz-data-error+

The data stream is corrupt. If ’LZ_decompress_member_position’ is 6 or less, it indicates either a format version not supported, an invalid dictionary size, a corrupt header in a multimember data stream, or trailing data too similar to a valid lzip header. Lziprecover can be used to remove conflicting trailing data from a file.

Package

lzlib.

Source

lzlib.lisp.

Constant: +lz-header-error+

An invalid member header (one with the wrong magic bytes) was read. If this happens at the end of the data stream it may indicate trailing data.

Package

lzlib.

Source

lzlib.lisp.

Constant: +lz-library-error+

A bug was detected in the library.

Package

lzlib.

Source

lzlib.lisp.

Constant: +lz-mem-error+

No memory available. The system cannot allocate more virtual memory because its capacity is full.

Package

lzlib.

Source

lzlib.lisp.

Constant: +lz-ok+

The value of this constant is 0 and is used to indicate that there is no error.

Package

lzlib.

Source

lzlib.lisp.

Constant: +lz-sequence-error+

A library function was called in the wrong order. For example ’LZ_compress_restart_member’ was called before ’LZ_compress_member_finished’ indicates that the current member is finished.

Package

lzlib.

Source

lzlib.lisp.

Constant: +lz-unexpected-eof+

The end of the data stream was reached in the middle of a member.

Package

lzlib.

Source

lzlib.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.2 Macros

Macro: lz-error (message &rest args)
Package

lzlib.

Source

lzip.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.3 Ordinary functions

Function: compress-and-write (stream)
Package

lzlib.

Source

lzip.lisp.

Function: compress-stream-1 (input output &key level member-size dictionary-size match-len-limit)

Read the data from the INPUT octet stream, compress it, and write the result to the OUTPUT octet stream.

Package

lzlib.

Source

lzip.lisp.

Function: compress-stream-n (input output &key threads level member-size block-size dictionary-size match-len-limit)

Read the data from the INPUT octet stream, compress it using multiple threads, and write the result to the OUTPUT octet stream.

Package

lzlib.

Source

lzip.lisp.

Function: decompress-stream-1 (input output &key ignore-trailing loose-trailing)

Read the data from the INPUT octet stream, decompress it, and write the result to the OUTPUT octet stream.

Package

lzlib.

Source

lzip.lisp.

Function: decompress-stream-n (input output &key threads ignore-trailing loose-trailing)

Read the data from the INPUT octet stream, decompress it using multiple threads, and write the result to the OUTPUT octet stream.

Package

lzlib.

Source

lzip.lisp.

Function: lz-compress-close (encoder)

Frees all dynamically allocated data structures for this stream. This function discards any unprocessed input and does not flush any pending output. After a call to ’LZ_compress_close’, encoder can no longer be used as an argument to any LZ_compress function.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-data-position (encoder)

Returns the number of input bytes already compressed in the current member.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-errno (encoder)

Returns the current error code for encoder.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-finish (encoder)

Use this function to tell ’lzlib’ that all the data for this member have already been written (with the ’LZ_compress_write’ function). It is safe to call ’LZ_compress_finish’ as many times as needed. After all the produced compressed data have been read with ’LZ_compress_read’ and ’LZ_compress_member_finished’ returns 1, a new member can be started with ’LZ_compress_restart_member’.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-finished (encoder)

Returns 1 if all the data have been read and ’LZ_compress_close’ can be safely called. Otherwise it returns 0. ’LZ_compress_finished’ implies ’LZ_compress_member_finished’.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-member-finished (encoder)

Returns 1 if the current member, in a multimember data stream, has been fully read and ’LZ_compress_restart_member’ can be safely called. Otherwise it returns 0.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-member-position (encoder)

Returns the number of compressed bytes already produced, but perhaps not yet read, in the current member.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-open (dictionary-size match-len-limit member-size)

Initializes the internal stream state for compression and returns a pointer that can only be used as the encoder argument for the other LZ_compress functions, or a null pointer if the encoder could not be allocated. The returned pointer must be verified by calling ’LZ_compress_errno’ before using it. If ’LZ_compress_errno’ does not return ’LZ_ok’, the returned pointer must not be used and should be freed with ’LZ_compress_close’ to avoid memory leaks. dictionary_size sets the dictionary size to be used, in bytes. Valid values range from 4 KiB to 512 MiB. Note that dictionary sizes are quantized. If the specified size does not match one of the valid sizes, it will be rounded upwards by adding up to (dictionary_size / 8) to it. match_len_limit sets the match length limit in bytes. Valid values range from 5 to 273. Larger values usually give better compression ratios but longer compression times. If dictionary_size is 65535 and match_len_limit is 16, the fast variant of LZMA is chosen, which produces identical compressed output as lzip -0. (The dictionary size used will be rounded upwards to 64 KiB). member_size sets the member size limit in bytes. Valid values range from 100 kB to 2 PiB. Small member size may degrade compression ratio, so use it only when needed. To produce a single-member data stream, give member_size a value larger than the amount of data to be produced. Values larger than 2 PiB will be reduced to 2 PiB to prevent the uncompressed size of the member from overflowing.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-read (encoder buffer size)

The ’LZ_compress_read’ function reads up to size bytes from the stream pointed to by encoder, storing the results in buffer. The return value is the number of bytes actually read. This might be less than size; for example, if there aren’t that many bytes left in the stream or if more bytes have to be yet written with the ’LZ_compress_write’ function. Note that reading less than size bytes is not an error.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-restart-member (encoder member-size)

Use this function to start a new member in a multimember data stream. Call this function only after ’LZ_compress_member_finished’ indicates that the current member has been fully read (with the ’LZ_compress_read’ function).

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-sync-flush (encoder)

Use this function to make available to ’LZ_compress_read’ all the data already written with the ’LZ_compress_write’ function. First call ’LZ_compress_sync_flush’. Then call ’LZ_compress_read’ until it returns 0. Repeated use of ’LZ_compress_sync_flush’ may degrade compression ratio, so use it only when needed.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-total-in-size (encoder)

Returns the total number of input bytes already compressed.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-total-out-size (encoder)

Returns the total number of compressed bytes already produced, but perhaps not yet read.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-write (encoder buffer size)

The ’LZ_compress_write’ function writes up to size bytes from buffer to the stream pointed to by encoder. The return value is the number of bytes actually written. This might be less than size. Note that writing less than size bytes is not an error.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-compress-write-size (encoder)

The ’LZ_compress_write_size’ function returns the maximum number of bytes that can be immediately written through the ’LZ_compress_write’ function. It is guaranteed that an immediate call to ’LZ_compress_write’ will accept a size up to the returned number of bytes.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-close (decoder)

Frees all dynamically allocated data structures for this stream. This function discards any unprocessed input and does not flush any pending output. After a call to ’LZ_decompress_close’, decoder can no longer be used as an argument to any LZ_decompress function.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-data-crc (decoder)

Returns the 32 bit Cyclic Redundancy Check of the data decompressed from the current member. The returned value is valid only when ’LZ_decompress_member_finished’ returns 1.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-data-position (decoder)

Returns the number of decompressed bytes already produced, but perhaps not yet read, in the current member.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-dictionary-size (decoder)

Returns the dictionary size of current member from member header.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-errno (decoder)

Returns the current error code for decoder.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-finish (decoder)

Use this function to tell ’lzlib’ that all the data for this stream have already been written (with the ’LZ_decompress_write’ function). It is safe to call ’LZ_decompress_finish’ as many times as needed.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-finished (decoder)

Returns 1 if all the data have been read and ’LZ_decompress_close’ can be safely called. Otherwise it returns 0.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-member-finished (decoder)

Returns 1 if the previous call to ’LZ_decompress_read’ finished reading the current member, indicating that final values for member are available through ’LZ_decompress_data_crc’, ’LZ_decompress_data_position’, and ’LZ_decompress_member_position’. Otherwise it returns 0.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-member-position (decoder)

Returns the number of input bytes already decompressed in the current member.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-member-version (decoder)

Returns the version of current member from member header.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-open ()

Initializes the internal stream state for decompression and returns a pointer that can only be used as the decoder argument for the other LZ_decompress functions, or a null pointer if the decoder could not be allocated. The returned pointer must be verified by calling ’LZ_decompress_errno’ before using it. If ’LZ_decompress_errno’ does not return ’LZ_ok’, the returned pointer must not be used and should be freed with ’LZ_decompress_close’ to avoid memory leaks.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-read (decoder buffer size)

The ’LZ_decompress_read’ function reads up to size bytes from the stream pointed to by decoder, storing the results in buffer. The return value is the number of bytes actually read. This might be less than size; for example, if there aren’t that many bytes left in the stream or if more bytes have to be yet written with the ’LZ_decompress_write’ function. Note that reading less than size bytes is not an error. In case of decompression error caused by corrupt or truncated data, ’LZ_decompress_read’ does not signal the error immediately to the application, but waits until all decoded bytes have been read. This allows tools like tarlz to recover as much data as possible from each damaged member.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-reset (decoder)

Resets the internal state of decoder as it was just after opening it with the ’LZ_decompress_open’ function. Data stored in the internal buffers is discarded. Position counters are set to 0.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-sync-to-member (decoder)

Resets the error state of decoder and enters a search state that lasts until a new member header (or the end of the stream) is found. After a successful call to ’LZ_decompress_sync_to_member’, data written with ’LZ_decompress_write’ will be consumed and ’LZ_decompress_read’ will return 0 until a header is found. This function is useful to discard any data preceding the first member, or to discard the rest of the current member, for example in case of a data error. If the decoder is already at the beginning of a member, this function does nothing.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-total-in-size (decoder)

Returns the total number of input bytes already decompressed.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-total-out-size (decoder)

Returns the total number of decompressed bytes already produced, but perhaps not yet read.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-write (decoder buffer size)

The ’LZ_decompress_write’ function writes up to size bytes from buffer to the stream pointed to by decoder. The return value is the number of bytes actually written. This might be less than size. Note that writing less than size bytes is not an error.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-decompress-write-size (decoder)

The ’LZ_decompress_write_size’ function returns the maximum number of bytes that can be immediately written through the ’LZ_decompress_write’ function. It is guaranteed that an immediate call to ’LZ_decompress_write’ will accept a size up to the returned number of bytes.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-max-dictionary-bits ()

Returns the base 2 logarithm of the largest valid dictionary size.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-max-dictionary-size ()

Returns the largest valid dictionary size.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-max-match-len-limit ()

Returns the largest valid match length limit.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-min-dictionary-bits ()

Returns the base 2 logarithm of the smallest valid dictionary size.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-min-dictionary-size ()

Returns the smallest valid dictionary size.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-min-match-len-limit ()

Returns the smallest valid match length limit.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-strerror (lz-errno)

Returns the standard error message for a given error code. The messages are fairly short; there are no multi-line messages or embedded newlines. This function makes it easy for your program to report informative error messages about the failure of a library call. The value of lz_errno normally comes from a call to ’LZ_(de)compress_errno’.

Package

lzlib.

Source

lzlib.lisp.

Function: lz-version ()

Returns the library version as a string.

Package

lzlib.

Source

lzlib.lisp.

Function: lzma-options (level dictionary-size match-len-limit)

Get the LZMA parameters matching the given arguments.

Package

lzlib.

Source

lzip.lisp.

Function: process-decompression-error (stream)
Package

lzlib.

Source

lzip.lisp.

Function: read-and-decompress (stream)
Package

lzlib.

Source

lzip.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.4 Generic functions

Generic Reader: buffer (object)
Package

lzlib.

Methods
Reader Method: buffer ((decompressing-stream decompressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

buffer.

Reader Method: buffer ((compressing-stream compressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

buffer.

Generic Writer: (setf buffer) (object)
Package

lzlib.

Methods
Writer Method: (setf buffer) ((decompressing-stream decompressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

buffer.

Writer Method: (setf buffer) ((compressing-stream compressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

buffer.

Generic Reader: decoder (object)
Package

lzlib.

Methods
Reader Method: decoder ((decompressing-stream decompressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

decoder.

Generic Writer: (setf decoder) (object)
Package

lzlib.

Methods
Writer Method: (setf decoder) ((decompressing-stream decompressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

decoder.

Generic Reader: encoder (object)
Package

lzlib.

Methods
Reader Method: encoder ((compressing-stream compressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

encoder.

Generic Writer: (setf encoder) (object)
Package

lzlib.

Methods
Writer Method: (setf encoder) ((compressing-stream compressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

encoder.

Generic Reader: first-member (object)
Package

lzlib.

Methods
Reader Method: first-member ((decompressing-stream decompressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

first-member.

Generic Writer: (setf first-member) (object)
Package

lzlib.

Methods
Writer Method: (setf first-member) ((decompressing-stream decompressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

first-member.

Generic Reader: ignore-trailing (object)
Package

lzlib.

Methods
Reader Method: ignore-trailing ((decompressing-stream decompressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

ignore-trailing.

Generic Writer: (setf ignore-trailing) (object)
Package

lzlib.

Methods
Writer Method: (setf ignore-trailing) ((decompressing-stream decompressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

ignore-trailing.

Generic Reader: input-stream (object)
Package

lzlib.

Methods
Reader Method: input-stream ((decompressing-stream decompressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

input-stream.

Generic Writer: (setf input-stream) (object)
Package

lzlib.

Methods
Writer Method: (setf input-stream) ((decompressing-stream decompressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

input-stream.

Generic Reader: loose-trailing (object)
Package

lzlib.

Methods
Reader Method: loose-trailing ((decompressing-stream decompressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

loose-trailing.

Generic Writer: (setf loose-trailing) (object)
Package

lzlib.

Methods
Writer Method: (setf loose-trailing) ((decompressing-stream decompressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

loose-trailing.

Generic Reader: member-size (object)
Package

lzlib.

Methods
Reader Method: member-size ((compressing-stream compressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

member-size.

Generic Writer: (setf member-size) (object)
Package

lzlib.

Methods
Writer Method: (setf member-size) ((compressing-stream compressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

member-size.

Generic Reader: output (object)
Package

lzlib.

Methods
Reader Method: output ((decompressing-stream decompressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

output.

Generic Writer: (setf output) (object)
Package

lzlib.

Methods
Writer Method: (setf output) ((decompressing-stream decompressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

output.

Generic Reader: output-index (object)
Package

lzlib.

Methods
Reader Method: output-index ((decompressing-stream decompressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

output-index.

Generic Writer: (setf output-index) (object)
Package

lzlib.

Methods
Writer Method: (setf output-index) ((decompressing-stream decompressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

output-index.

Generic Reader: output-stream (object)
Package

lzlib.

Methods
Reader Method: output-stream ((compressing-stream compressing-stream))

automatically generated reader method

Source

lzip.lisp.

Target Slot

output-stream.

Generic Writer: (setf output-stream) (object)
Package

lzlib.

Methods
Writer Method: (setf output-stream) ((compressing-stream compressing-stream))

automatically generated writer method

Source

lzip.lisp.

Target Slot

output-stream.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.5 Classes

Class: compressing-stream
Package

lzlib.

Source

lzip.lisp.

Direct superclasses

fundamental-binary-output-stream.

Direct methods
Direct slots
Slot: output-stream
Readers

output-stream.

Writers

(setf output-stream).

Slot: encoder
Readers

encoder.

Writers

(setf encoder).

Slot: member-size
Readers

member-size.

Writers

(setf member-size).

Slot: buffer
Readers

buffer.

Writers

(setf buffer).

Class: decompressing-stream
Package

lzlib.

Source

lzip.lisp.

Direct superclasses

fundamental-binary-input-stream.

Direct methods
Direct slots
Slot: input-stream
Readers

input-stream.

Writers

(setf input-stream).

Slot: decoder
Readers

decoder.

Writers

(setf decoder).

Slot: ignore-trailing
Readers

ignore-trailing.

Writers

(setf ignore-trailing).

Slot: loose-trailing
Readers

loose-trailing.

Writers

(setf loose-trailing).

Slot: first-member
Readers

first-member.

Writers

(setf first-member).

Slot: buffer
Readers

buffer.

Writers

(setf buffer).

Slot: output
Readers

output.

Writers

(setf output).

Slot: output-index
Readers

output-index.

Writers

(setf output-index).


Previous: , Up: Internals   [Contents][Index]

6.2.6 Types

Type: i32 ()
Package

lzlib.

Source

lzlib.lisp.

Type: u32 ()
Package

lzlib.

Source

lzlib.lisp.

Type: u64 ()
Package

lzlib.

Source

lzlib.lisp.

Type: u8 ()
Package

lzlib.

Source

lzip.lisp.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
B   C   D   E   F   G   I   L   M   O   P   R   S   W  
Index Entry  Section

(
(setf buffer): Private generic functions
(setf buffer): Private generic functions
(setf buffer): Private generic functions
(setf decoder): Private generic functions
(setf decoder): Private generic functions
(setf encoder): Private generic functions
(setf encoder): Private generic functions
(setf first-member): Private generic functions
(setf first-member): Private generic functions
(setf ignore-trailing): Private generic functions
(setf ignore-trailing): Private generic functions
(setf input-stream): Private generic functions
(setf input-stream): Private generic functions
(setf loose-trailing): Private generic functions
(setf loose-trailing): Private generic functions
(setf member-size): Private generic functions
(setf member-size): Private generic functions
(setf output): Private generic functions
(setf output): Private generic functions
(setf output-index): Private generic functions
(setf output-index): Private generic functions
(setf output-stream): Private generic functions
(setf output-stream): Private generic functions

B
buffer: Private generic functions
buffer: Private generic functions
buffer: Private generic functions

C
close: Public standalone methods
close: Public standalone methods
compress-and-write: Private ordinary functions
compress-buffer: Public ordinary functions
compress-file: Public ordinary functions
compress-stream: Public ordinary functions
compress-stream-1: Private ordinary functions
compress-stream-n: Private ordinary functions

D
decoder: Private generic functions
decoder: Private generic functions
decompress-buffer: Public ordinary functions
decompress-file: Public ordinary functions
decompress-stream: Public ordinary functions
decompress-stream-1: Private ordinary functions
decompress-stream-n: Private ordinary functions

E
encoder: Private generic functions
encoder: Private generic functions

F
first-member: Private generic functions
first-member: Private generic functions
Function, compress-and-write: Private ordinary functions
Function, compress-buffer: Public ordinary functions
Function, compress-file: Public ordinary functions
Function, compress-stream: Public ordinary functions
Function, compress-stream-1: Private ordinary functions
Function, compress-stream-n: Private ordinary functions
Function, decompress-buffer: Public ordinary functions
Function, decompress-file: Public ordinary functions
Function, decompress-stream: Public ordinary functions
Function, decompress-stream-1: Private ordinary functions
Function, decompress-stream-n: Private ordinary functions
Function, lz-compress-close: Private ordinary functions
Function, lz-compress-data-position: Private ordinary functions
Function, lz-compress-errno: Private ordinary functions
Function, lz-compress-finish: Private ordinary functions
Function, lz-compress-finished: Private ordinary functions
Function, lz-compress-member-finished: Private ordinary functions
Function, lz-compress-member-position: Private ordinary functions
Function, lz-compress-open: Private ordinary functions
Function, lz-compress-read: Private ordinary functions
Function, lz-compress-restart-member: Private ordinary functions
Function, lz-compress-sync-flush: Private ordinary functions
Function, lz-compress-total-in-size: Private ordinary functions
Function, lz-compress-total-out-size: Private ordinary functions
Function, lz-compress-write: Private ordinary functions
Function, lz-compress-write-size: Private ordinary functions
Function, lz-decompress-close: Private ordinary functions
Function, lz-decompress-data-crc: Private ordinary functions
Function, lz-decompress-data-position: Private ordinary functions
Function, lz-decompress-dictionary-size: Private ordinary functions
Function, lz-decompress-errno: Private ordinary functions
Function, lz-decompress-finish: Private ordinary functions
Function, lz-decompress-finished: Private ordinary functions
Function, lz-decompress-member-finished: Private ordinary functions
Function, lz-decompress-member-position: Private ordinary functions
Function, lz-decompress-member-version: Private ordinary functions
Function, lz-decompress-open: Private ordinary functions
Function, lz-decompress-read: Private ordinary functions
Function, lz-decompress-reset: Private ordinary functions
Function, lz-decompress-sync-to-member: Private ordinary functions
Function, lz-decompress-total-in-size: Private ordinary functions
Function, lz-decompress-total-out-size: Private ordinary functions
Function, lz-decompress-write: Private ordinary functions
Function, lz-decompress-write-size: Private ordinary functions
Function, lz-max-dictionary-bits: Private ordinary functions
Function, lz-max-dictionary-size: Private ordinary functions
Function, lz-max-match-len-limit: Private ordinary functions
Function, lz-min-dictionary-bits: Private ordinary functions
Function, lz-min-dictionary-size: Private ordinary functions
Function, lz-min-match-len-limit: Private ordinary functions
Function, lz-strerror: Private ordinary functions
Function, lz-version: Private ordinary functions
Function, lzma-options: Private ordinary functions
Function, make-compressing-stream: Public ordinary functions
Function, make-decompressing-stream: Public ordinary functions
Function, process-decompression-error: Private ordinary functions
Function, read-and-decompress: Private ordinary functions

G
Generic Function, (setf buffer): Private generic functions
Generic Function, (setf decoder): Private generic functions
Generic Function, (setf encoder): Private generic functions
Generic Function, (setf first-member): Private generic functions
Generic Function, (setf ignore-trailing): Private generic functions
Generic Function, (setf input-stream): Private generic functions
Generic Function, (setf loose-trailing): Private generic functions
Generic Function, (setf member-size): Private generic functions
Generic Function, (setf output): Private generic functions
Generic Function, (setf output-index): Private generic functions
Generic Function, (setf output-stream): Private generic functions
Generic Function, buffer: Private generic functions
Generic Function, decoder: Private generic functions
Generic Function, encoder: Private generic functions
Generic Function, first-member: Private generic functions
Generic Function, ignore-trailing: Private generic functions
Generic Function, input-stream: Private generic functions
Generic Function, loose-trailing: Private generic functions
Generic Function, member-size: Private generic functions
Generic Function, output: Private generic functions
Generic Function, output-index: Private generic functions
Generic Function, output-stream: Private generic functions

I
ignore-trailing: Private generic functions
ignore-trailing: Private generic functions
input-stream: Private generic functions
input-stream: Private generic functions

L
loose-trailing: Private generic functions
loose-trailing: Private generic functions
lz-compress-close: Private ordinary functions
lz-compress-data-position: Private ordinary functions
lz-compress-errno: Private ordinary functions
lz-compress-finish: Private ordinary functions
lz-compress-finished: Private ordinary functions
lz-compress-member-finished: Private ordinary functions
lz-compress-member-position: Private ordinary functions
lz-compress-open: Private ordinary functions
lz-compress-read: Private ordinary functions
lz-compress-restart-member: Private ordinary functions
lz-compress-sync-flush: Private ordinary functions
lz-compress-total-in-size: Private ordinary functions
lz-compress-total-out-size: Private ordinary functions
lz-compress-write: Private ordinary functions
lz-compress-write-size: Private ordinary functions
lz-decompress-close: Private ordinary functions
lz-decompress-data-crc: Private ordinary functions
lz-decompress-data-position: Private ordinary functions
lz-decompress-dictionary-size: Private ordinary functions
lz-decompress-errno: Private ordinary functions
lz-decompress-finish: Private ordinary functions
lz-decompress-finished: Private ordinary functions
lz-decompress-member-finished: Private ordinary functions
lz-decompress-member-position: Private ordinary functions
lz-decompress-member-version: Private ordinary functions
lz-decompress-open: Private ordinary functions
lz-decompress-read: Private ordinary functions
lz-decompress-reset: Private ordinary functions
lz-decompress-sync-to-member: Private ordinary functions
lz-decompress-total-in-size: Private ordinary functions
lz-decompress-total-out-size: Private ordinary functions
lz-decompress-write: Private ordinary functions
lz-decompress-write-size: Private ordinary functions
lz-error: Private macros
lz-max-dictionary-bits: Private ordinary functions
lz-max-dictionary-size: Private ordinary functions
lz-max-match-len-limit: Private ordinary functions
lz-min-dictionary-bits: Private ordinary functions
lz-min-dictionary-size: Private ordinary functions
lz-min-match-len-limit: Private ordinary functions
lz-strerror: Private ordinary functions
lz-version: Private ordinary functions
lzma-options: Private ordinary functions

M
Macro, lz-error: Private macros
Macro, with-compressing-stream: Public macros
Macro, with-decompressing-stream: Public macros
make-compressing-stream: Public ordinary functions
make-decompressing-stream: Public ordinary functions
member-size: Private generic functions
member-size: Private generic functions
Method, (setf buffer): Private generic functions
Method, (setf buffer): Private generic functions
Method, (setf decoder): Private generic functions
Method, (setf encoder): Private generic functions
Method, (setf first-member): Private generic functions
Method, (setf ignore-trailing): Private generic functions
Method, (setf input-stream): Private generic functions
Method, (setf loose-trailing): Private generic functions
Method, (setf member-size): Private generic functions
Method, (setf output): Private generic functions
Method, (setf output-index): Private generic functions
Method, (setf output-stream): Private generic functions
Method, buffer: Private generic functions
Method, buffer: Private generic functions
Method, close: Public standalone methods
Method, close: Public standalone methods
Method, decoder: Private generic functions
Method, encoder: Private generic functions
Method, first-member: Private generic functions
Method, ignore-trailing: Private generic functions
Method, input-stream: Private generic functions
Method, loose-trailing: Private generic functions
Method, member-size: Private generic functions
Method, output: Private generic functions
Method, output-index: Private generic functions
Method, output-stream: Private generic functions
Method, stream-element-type: Public standalone methods
Method, stream-element-type: Public standalone methods
Method, stream-finish-output: Public standalone methods
Method, stream-listen: Public standalone methods
Method, stream-read-byte: Public standalone methods
Method, stream-read-sequence: Public standalone methods
Method, stream-write-byte: Public standalone methods
Method, stream-write-sequence: Public standalone methods

O
output: Private generic functions
output: Private generic functions
output-index: Private generic functions
output-index: Private generic functions
output-stream: Private generic functions
output-stream: Private generic functions

P
process-decompression-error: Private ordinary functions

R
read-and-decompress: Private ordinary functions

S
stream-element-type: Public standalone methods
stream-element-type: Public standalone methods
stream-finish-output: Public standalone methods
stream-listen: Public standalone methods
stream-read-byte: Public standalone methods
stream-read-sequence: Public standalone methods
stream-write-byte: Public standalone methods
stream-write-sequence: Public standalone methods

W
with-compressing-stream: Public macros
with-decompressing-stream: Public macros

Jump to:   (  
B   C   D   E   F   G   I   L   M   O   P   R   S   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   +  
B   C   D   E   F   I   L   M   O   S  
Index Entry  Section

+
+buffer-size+: Private constants
+lz-bad-argument+: Private constants
+lz-data-error+: Private constants
+lz-header-error+: Private constants
+lz-library-error+: Private constants
+lz-mem-error+: Private constants
+lz-ok+: Private constants
+lz-sequence-error+: Private constants
+lz-unexpected-eof+: Private constants

B
buffer: Private classes
buffer: Private classes

C
Constant, +buffer-size+: Private constants
Constant, +lz-bad-argument+: Private constants
Constant, +lz-data-error+: Private constants
Constant, +lz-header-error+: Private constants
Constant, +lz-library-error+: Private constants
Constant, +lz-mem-error+: Private constants
Constant, +lz-ok+: Private constants
Constant, +lz-sequence-error+: Private constants
Constant, +lz-unexpected-eof+: Private constants

D
decoder: Private classes

E
encoder: Private classes

F
first-member: Private classes

I
ignore-trailing: Private classes
input-stream: Private classes

L
loose-trailing: Private classes

M
member-size: Private classes

O
output: Private classes
output-index: Private classes
output-stream: Private classes

S
Slot, buffer: Private classes
Slot, buffer: Private classes
Slot, decoder: Private classes
Slot, encoder: Private classes
Slot, first-member: Private classes
Slot, ignore-trailing: Private classes
Slot, input-stream: Private classes
Slot, loose-trailing: Private classes
Slot, member-size: Private classes
Slot, output: Private classes
Slot, output-index: Private classes
Slot, output-stream: Private classes

Jump to:   +  
B   C   D   E   F   I   L   M   O   S