initial templates from dh_make
first pass over packaging
RF+ENH: --version  (new) and --help to print to stdout
NF: Generate a basic manpage for vw using help2man
lets adhere to quilt 3.0 format
we better install the beast ;)
examples, missing build-depends (+upcoming help2man)
fixed hang on save tag bug
Supports signed differences in the cache format. This uses the ZigZagEncoding & Decoding to convert signed integers to unsigned integers and vice versa essentially using the lsb to represent sign instead of msb. While encoding the signed differences are first converted to unsigned differences & then RLEd into the cache. While decoding the unsigned differences are RL decoded from the cache and converted to signed differences.

A new option to sort the features disregarding order of occurrence is provided to allow better compression.

Also fixes a bug in compressed option. Currently, reading from stdin doesn't work with compressed option turned on. So we check this and bail out with an error message. This is an effect of using zlib.
     Adding support for k-skip-n-grams.
     An example for k-skip-n-grams:
     Consider a feature vector - a, b, c, d, e, f
     2-skip-2-grams would be - ab, ac, ad, bc, bd, be, cd, ce, cf, de, df, ef
     1-skip-3-grams would be - abc, abd, acd, ace, bcd, bce, bde, bdf, cde, cdf, cef, def
                                ab, ac, bc, bd, cd, ce, de, df, ef
     Note that for a n-gram, (n-1)-grams, (n-2)-grams... 2-grams are also appended
     The k-skip-n-grams are appended to the feature vector.
     Hash is evaluated using the principle h(a, b) = h(a)*X + h(b), where X is a random no.
     32 random nos. are maintained in an array and are used in the hashing.
BF: free for malloc (delete should be for new)
merged man fixes from yarikoptic
Merge branch 'debian' of http://github.com/yarikoptic/vowpal_wabbit
deleted debian-specific and tweaked n/skip generation so it made sense.  Must debug further.
second draft, ngrams
BF: setup a proper interpreter prefix for cluster_command
Contact: vpetricek@eharmony.com

Fix a bug in quadratic feature expansion (-q) when a namespace is missing for some examples. Predictions for such example and model may differ depending on the
previous examples. This is due to subsets not being cleared when an example is parsed in. Old value of subsets from previous example at that position in
delay_ring is reused.

This bug exists in the latest version on github (4.1+) as well as 3.0 (for which there exists a smaller testcase exhibiting the bug)

To replicate

input:
2048 examples with namespace 'l' to fill in the delay_ring and an example without namespace 'l' which will reuse a slot in delay_ring and also the 'subsets'.

--- file: input -----------------------------
0 |l C
1 |l C
[... cut 2045 same lines ...]
1 |l C
1 |g M:1
---------------------------------------------

Here is a script to train a model, make predictions the usual way and then predict for each example separately with a new instance of vw. If the predictions
differ we hit the bug.

 --- file: run.sh -----------------------------------------------------------------
 #!/bin/sh

 VW=vw41

         $VW --bit_precision 20 \
                              -d input \
                              --final_regressor model \
                              --learning_rate 0.1 \
                              -q lg \

 # 1. feed vowpal all data at once
 echo "unsafe testing"
 cat input | $VW -i model -t -p output.unsafe

 # 2. execute vowpal for each example separately
 echo "safe testing"
 > output.safe
 cat input |
 while read line
 do
         echo $line | $VW -t -i model -p output.line --quiet
         cat output.safe output.line > temp
         mv temp output.safe
         echo -n "."
 done
 rm output.line

 # compare the two prediction sets - if they differ we hit the bug
 diff -u output.safe output.unsafe
 ---------------------------------------------------------------------------
Contact: vpetricek@eharmony.com

Fix a bug in quadratic feature expansion (-q) when a namespace is missing for some examples. Predictions for such example and model may differ depending on the
previous examples. This is due to subsets not being cleared when an example is parsed in. Old value of subsets from previous example at that position in
delay_ring is reused.

This bug exists in the latest version on github (4.1+) as well as 3.0 (for which there exists a smaller testcase exhibiting the bug)

To replicate

input:
2048 examples with namespace 'l' to fill in the delay_ring and an example without namespace 'l' which will reuse a slot in delay_ring and also the 'subsets'.

--- file: input -----------------------------
0 |l C
1 |l C
[... cut 2045 same lines ...]
1 |l C
1 |g M:1
---------------------------------------------

Here is a script to train a model, make predictions the usual way and then predict for each example separately with a new instance of vw. If the predictions
differ we hit the bug.

 --- file: run.sh -----------------------------------------------------------------
 #!/bin/sh

 VW=vw41

         $VW --bit_precision 20 \
                              -d input \
                              --final_regressor model \
                              --learning_rate 0.1 \
                              -q lg \

 # 1. feed vowpal all data at once
 echo "unsafe testing"
 cat input | $VW -i model -t -p output.unsafe

 # 2. execute vowpal for each example separately
 echo "safe testing"
 > output.safe
 cat input |
 while read line
 do
         echo $line | $VW -t -i model -p output.line --quiet
         cat output.safe output.line > temp
         mv temp output.safe
         echo -n "."
 done
 rm output.line

 # compare the two prediction sets - if they differ we hit the bug
 diff -u output.safe output.unsafe
 ---------------------------------------------------------------------------
remove spurious erase
ngrams debugged