this seems to create a result much closer to what i would expect (where the compressed length is < the input length). however, i can't claim i understand the whole newSVpv() thing. I dont need the vbyte_len returned, this is simply an internal value i used for printing out a representation of the compressed numbers. however, when i just try to do a newSVpv with one value, it doesnt compile.