[Zlib-devel] Causality question

Arjan van de Ven arjanvandeven at gmail.com
Fri Mar 15 15:42:08 EDT 2013


oh duh yeah
that does mean that using byte copies is mandatory (eg memmove() not
memcpy()) instead of faster copy variants


On Fri, Mar 15, 2013 at 12:34 PM, John Reiser <jreiser at bitwagon.com> wrote:
>> One of the things I am noticing, and that makes me wonder, is
>> something that appears to violate causality:
>>
>> Emitting match for pos 1703, length 6 from 1699
>>
>> e.g. deflate_slow emits a match that appears to go into the "future".
>
> Think "ripple" (overlapping) matches where a byte-by-byte copy from
> smallest index to larger generates enough of the future before it is
> copied even farther into the future.
>
> Example: "banana".  Match at position= 3, previous position= 1
> (delta position= 2), length= 3.  "banana"[3] is "in the future"
> but is copied from "banana"[1] before being copied to "banana"[5].
>
> The most common example is the output of memset(ptr,0,n) with
> n >= (1+ MIN_MATCH).
>
> --
>
>
> _______________________________________________
> Zlib-devel mailing list
> Zlib-devel at madler.net
> http://mail.madler.net/mailman/listinfo/zlib-devel_madler.net




More information about the Zlib-devel mailing list