Permalink
Switch branches/tags
Nothing to show
Commits on Jun 16, 2011
  1. Whitespace untabified.

    akovalenko committed Jun 16, 2011
    * bzip2.lisp (%bzip2-state-machine):
    * stream.lisp (read-and-decompress-byte):
  2. Fixed READ-AND-DECOMPRESS-BYTE: don't give up too early, refill input

    akovalenko committed Jun 16, 2011
    as many times as possible if output is empty; the logic is similar to
    STREAM-READ-SEQUENCE.
    
    * stream.lisp (read-and-decompress-byte): refill input buffer several times.
  3. Fixed BZIP2-BLOCK-CRC32 in %bzip2-state-machine: don't read 32 bits a…

    akovalenko committed Jun 16, 2011
    …t once:
    
     if (mod n-bits 8) is non-zero, ensure-bits would happily go
     to (+ 32 (mod n-bits 8)) bits, violating declarations.
    
    * bzip2.lisp (%bzip2-state-machine): (bzip2-block-crc32): read 16-bit
    halves of CRC32 in separate calls.
  4. Fixed BZIP2-PREPARE-CFTAB in %bzip2-state-machine:

    akovalenko committed Jun 16, 2011
    use temporary variable instead of storing something non-(integer 0 (900000))
    into bzip2-state-t-position.
    
    * bzip2.lisp (%bzip2-state-machine): BZIP2-PREPARE-CFTAB: added temporary.
Commits on Oct 1, 2010
  1. add more methods on DECOMPRESS from a pathname

    froydnj committed Oct 1, 2010
    Now we can decompress from files to streams and to other files.
  2. make stack overflow less likely in state machines

    froydnj committed Oct 1, 2010
    The state machines for bzip2 and inflate decompression inadvertently
    assumed that the implementation performs tail call optimizations.
    Several popular implementations do not, leading to stack overflows while
    attempting to decompress large files.
    
    This change attempts to fix that by only enabling the tail call
    mechanism inside the state machine if we are running in an
    implementation we can trust to perform tail call optimizations.
    Currently, we can trust SBCL and CMUCL; the optimization settings for
    the state machine functions have been tweaked to try to enforce tail
    call optimization on such implementations.
    
    This change may make performance worse for some
    implementations (Lispworks and Allegro come immediately to mind); if
    users of chipz on those implementations can perform benchmarks and
    report back, I am happy to add them to the list of "trusted"
    implementations.
Commits on Dec 24, 2009
  1. remove &ALLOW-OTHER-KEYS from method lambda lists

    froydnj committed Dec 24, 2009
    We specified this once in DEFGENERIC; no need to keep repeating
    ourselves.
  2. reduce number of methods for DECOMPRESS

    froydnj committed Dec 24, 2009
    MAKE-DSTATE will do the exact same argument checking we were trying to
    do with all the fancy methods.  So save some code space and runtime by
    just defaulting to calling %DECOMPRESS.
Commits on Nov 22, 2009
  1. initial commit

    froydnj committed Nov 22, 2009