[COTDC] 105 - ZipConstants

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[COTDC] 105 - ZipConstants

Sean P. DeNigris
Administrator
104 classes done
793 classes remaining
Continuing in Compression...

Today:  ZipConstants


Comment Of The Day Contest - One Day One Comment
Rules:
#1: Each day a not commented class is elected. Each day the best comment will be integrated with name of the author(s).
#2: If you cannot comment it, deprecate it.
Results: http://code.google.com/p/pharo/wiki/CommentOfTheDayContest

p.s. this message was sent from a pharo image. Did you know you could easily do that?!

Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: [COTDC] 105 - ZipConstants

Ben Coman
[hidden email] wrote:

> 104 classes done
> 793 classes remaining
> Continuing in Compression...
>
> Today:  ZipConstants
>
>
> Comment Of The Day Contest - One Day One Comment
> Rules:
> #1: Each day a not commented class is elected. Each day the best comment will be integrated with name of the author(s).
> #2: If you cannot comment it, deprecate it.
> Results: http://code.google.com/p/pharo/wiki/CommentOfTheDayContest
>
> p.s. this message was sent from a pharo image. Did you know you could easily do that?!
>
>
>  

This class defines magic numbers taken from RFC1951 [1b], and also
possibly RFC1950 [1a] & RFC1952 [1c].
It presets some dictionary structures as described at [1a] 8.1.

A class can import these bindings as 'class variables' by including the
following in its class definition:
   poolDictionaries: 'ZipFileConstants'

Following are source references to these constants contained within
several class side initialization methods.
(These might be better spread through out those methods as time permits)

initializeDeflateConstants
    WindowSize [2e]"w_size", [2a]"windowBits is the base two logarithm
of windowSize where default windowBits=15"
    WindowMask [2e]"w_mask"
    MaxDistance [2e]"MAX_DIST"
    MinMatch [2c]
    MaxMatch [2c]
    HashBits [2e]"hash_bits"
    HashMask [2e]"hash_mask"
    HashShift [2e]"hash_shift"

initializeDistanceCodes
    BaseDistance [2f]
    DistanceCodes [2f]

initializeExtraBits
    ExtraLengthBits [1]3.2.5, [2b]
    ExtraDistanceBits [1]3.2.5, [2b]
    ExtraBitLengthBits [2b]
    BitLengthOrder [1]3.2.7, [2b]

initializeFixedTrees
    [1]3.2.6

initializeWriteStreamConstants
    MaxBits [2d]
    MaxBitLengthBits [2b]
    EndBlock [2b]
    StoredBlock [2c]
    FixedBlock [2c]
    DynamicBlock [2c] [1]3.2.3"BTYPE"
    NumLiterals
    MaxLengthCodes [2e]
    MaxDistCodes [2e]
    MaxBitLengthCodes [2e]
    MaxLiteralCodes
    Repeat3To6 [2b]
    Repeat3To10 [2b]
    Repeat11To138 [2b]

[1a]  "ZLIB Compressed Data Format Specification version 3.3"
http://www.ietf.org/rfc/rfc1950.txt
[1b] "DEFLATE Compressed Data Format Specification version 1.3"
http://www.ietf.org/rfc/rfc1951.txt
[1c] "GZIP file format specification version 4.3"
http://www.ietf.org/rfc/rfc1952.txt
[2] ZLIB Source Code http://zlib.net/zlib-1.2.5.tar.gz
[2a] zlib.h
[2b] trees.c
[2c] zutil.h
[2d] inftrees.c
[2e] deflate.h
[2f] trees.h


Reply | Threaded
Open this post in threaded view
|

Re: [COTDC] 105 - ZipConstants

Stéphane Ducasse
excellent!


On Jan 16, 2012, at 4:50 PM, Ben Coman wrote:

> [hidden email] wrote:
>> 104 classes done
>> 793 classes remaining
>> Continuing in Compression...
>>
>> Today:  ZipConstants
>>
>> Comment Of The Day Contest - One Day One Comment Rules: #1: Each day a not commented class is elected. Each day the best comment will be integrated with name of the author(s). #2: If you cannot comment it, deprecate it. Results: http://code.google.com/p/pharo/wiki/CommentOfTheDayContest
>>
>> p.s. this message was sent from a pharo image. Did you know you could easily do that?!
>>
>>
>>  
>
> This class defines magic numbers taken from RFC1951 [1b], and also possibly RFC1950 [1a] & RFC1952 [1c].
> It presets some dictionary structures as described at [1a] 8.1.
>
> A class can import these bindings as 'class variables' by including the following in its class definition:
>  poolDictionaries: 'ZipFileConstants'
>
> Following are source references to these constants contained within several class side initialization methods. (These might be better spread through out those methods as time permits)
>
> initializeDeflateConstants
>   WindowSize [2e]"w_size", [2a]"windowBits is the base two logarithm of windowSize where default windowBits=15"
>   WindowMask [2e]"w_mask"
>   MaxDistance [2e]"MAX_DIST"
>   MinMatch [2c]
>   MaxMatch [2c]
>   HashBits [2e]"hash_bits"
>   HashMask [2e]"hash_mask"
>   HashShift [2e]"hash_shift"
>
> initializeDistanceCodes
>   BaseDistance [2f]
>   DistanceCodes [2f]
>
> initializeExtraBits
>   ExtraLengthBits [1]3.2.5, [2b]
>   ExtraDistanceBits [1]3.2.5, [2b]
>   ExtraBitLengthBits [2b]
>   BitLengthOrder [1]3.2.7, [2b]
>
> initializeFixedTrees
>   [1]3.2.6
>
> initializeWriteStreamConstants
>   MaxBits [2d]
>   MaxBitLengthBits [2b]
>   EndBlock [2b]
>   StoredBlock [2c]
>   FixedBlock [2c]
>   DynamicBlock [2c] [1]3.2.3"BTYPE"
>   NumLiterals
>   MaxLengthCodes [2e]
>   MaxDistCodes [2e]
>   MaxBitLengthCodes [2e]
>   MaxLiteralCodes
>   Repeat3To6 [2b]
>   Repeat3To10 [2b]
>   Repeat11To138 [2b]
>
> [1a]  "ZLIB Compressed Data Format Specification version 3.3" http://www.ietf.org/rfc/rfc1950.txt
> [1b] "DEFLATE Compressed Data Format Specification version 1.3" http://www.ietf.org/rfc/rfc1951.txt
> [1c] "GZIP file format specification version 4.3" http://www.ietf.org/rfc/rfc1952.txt
> [2] ZLIB Source Code http://zlib.net/zlib-1.2.5.tar.gz
> [2a] zlib.h
> [2b] trees.c
> [2c] zutil.h
> [2d] inftrees.c
> [2e] deflate.h
> [2f] trees.h
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [COTDC] 105 - ZipConstants

Sean P. DeNigris
Administrator
In reply to this post by Ben Coman
Thanks, Ben!
Cheers,
Sean