Live data from Hacker News

Bzip3: A spiritual successor to BZip2

github.com

171–180 of 181 posts

Re: Bzip3: A spiritual successor to BZip2

#171
post #9

> Bzip3: A better and stronger spiritual successor to BZip2 Please, no. What's next ? BZip4 and BZip5, each one incompatible with each other ?

Yeah I'm sick of this. Did you know you can't even use ext2/3/4 together on the same partition? What a mess.

Perhaps not the best example

Re: Bzip3: A spiritual successor to BZip2

#172

Earlier quoted context omitted.

No it doesn’t? You can get zstd on macOS just fine. We’re talking about zstd, not bash, and supported releases not what ships with the distribution.

You can get bash4 or 5 too, as I already said. I can't help you with your depth of experience. I didn't even say zstd was unfit to depend on, just that it was a fair question.

Once again, I’m having to remind a person that coding is a team sport and personal choices are bullshit.

Every deviation you make from stock is something else you have to put into. The onboarding docs and convince all your coworkers to install. They won’t. Or they think they will but will miss a step or machine. Or for language specific tools, they’ll use a multiversion tool like asdf or nvm or ram and have to reinstall again every upgrade.

It’s not up to me. It’s not up to you. It’s up to us. And if you can’t see that, maybe you shouldn’t be working with other developers. Or maybe you haven’t been and you need to.

Re: Bzip3: A spiritual successor to BZip2

#173

Earlier quoted context omitted.

I think you would just need ANS, not the rest of zstd.

I don’t know enough to evaluate that, but it sounds plausible. Apparently modifying or integrating zstd into custom solutions was a common path in submissions to, at the very least, the GDCC 2021 T2 contest. This is all well outside of my learned competence so I’m just here to learn and ask naive questions.

Zstd is basically LZ77 + FSE. There are some other pieces to it, but they’re minor. FSE is a form of entropy coding that you can swap out with other entropy coding techniques, like Huffman or arithmetic coding. For most objectives, FSE is the clear winner of those three.

As people mentioned elsewhere in the thread, Burrows-Wheeler isn’t really composable with other systems. Nobody has figured out a reasonable way to combine LZ77 and Burrows-Wheeler. That’s why zstd + bzip2 does not work. But you do need an entropy coding system to go with Burrows-Wheeler… and FSE fits the bill.

Re: Bzip3: A spiritual successor to BZip2

#174

Earlier quoted context omitted.

My standard test is compressing a "dd" disc image of a Linux install (I use these for work), with unused blocks being zeroed. Results: Uncompressed: 7,516,192,768 zstd: 1,100,323,366 bzip3 -b 511 -j 4: 1,115,125,019

Hi, tool author here! Thank you for your benchmark! As you may be aware, different compression tools fill in different data type niches. In particular, less specialised statistical methods (bzip2, bzip3, PPMd) generally perform poorly on vaguely defined binary data due to unnatural distribution of the underlying data that at least in bzip3's case does not lend well to suffix sorting. Conversely, Lempel-Ziv methods us…

If the focus is on text, then the best example is probably the sqlite amalgation file which is a 9mb C file.

Re: Bzip3: A spiritual successor to BZip2

#176
post #164
post #22

Earlier quoted context omitted.

zstd is faster and provides better compression than gzip at every point on the curve. There is no reason to use gzip these days other than backwards compatibility.

> bzip2 -9 -k all.tar 981.78s user 9.77s system 95% cpu 8M memory 17:16.64 total > bzip3 -e -b 256 -j 12 all.tar 2713.81s user 16.28s system 634% cpu 18301M memory 7:10.10 total The memory usage is one reason: 8M vs 18301M

I think you intended to reply somewhere else. This isn't responsive.

Re: Bzip3: A spiritual successor to BZip2

#178
post #119

I still remember going crazy about bzip (the first one) and re-compressing all my data with it. And then I remember discovering, several years later, that bzip (the first one) is an obsolete format that is now difficult to even decompress. I learned my lesson and now use horribly sub-optimal formats that I'm sure will stick around for a long time, if not forever.

This is true for every new thing.

New frameworks, new languages, new cars, new heating systems.

If you want to have a stable solution, use "boring" things. They are boring for a reason; not much stuff is changing in them anymore. They are stable.

I use boring stuff all the time.

Re: Bzip3: A spiritual successor to BZip2

#179
post #144

Earlier quoted context omitted.

I remember the lecturer commenting on what sort of sick and twisted mind could come up with such a ridiculous convoluted notion when I was taught it at university.

Wheeler was also one of the inventors of the "closed subroutine" AKA function, which had to be implemented via a hack as machines of the time did not include ISA support for "return": https://en.m.wikipedia.org/wiki/Wheeler_Jump

Yes. He also happened to be in residence just down the hall from the lecture theatre at the time.

Re: Bzip3: A spiritual successor to BZip2

#180
post #176
post #164

Earlier quoted context omitted.

> bzip2 -9 -k all.tar 981.78s user 9.77s system 95% cpu 8M memory 17:16.64 total > bzip3 -e -b 256 -j 12 all.tar 2713.81s user 16.28s system 634% cpu 18301M memory 7:10.10 total The memory usage is one reason: 8M vs 18301M

I think you intended to reply somewhere else. This isn't responsive.

yes - thanks!
Post reply on HN