--- - branch: MAIN date: Thu Oct 26 08:01:20 UTC 2023 files: - new: '1.10' old: '1.9' path: pkgsrc/graphics/gifski/Makefile pathrev: pkgsrc/graphics/gifski/Makefile@1.10 type: modified - new: '1.7' old: '1.6' path: pkgsrc/graphics/gifski/cargo-depends.mk pathrev: pkgsrc/graphics/gifski/cargo-depends.mk@1.7 type: modified - new: '1.7' old: '1.6' path: pkgsrc/graphics/gifski/distinfo pathrev: pkgsrc/graphics/gifski/distinfo@1.7 type: modified id: 20231026T080120Z.d3e9257449947bfdaa4204c9db69b39df81f1b57 log: "graphics/gifski: update to 1.13.0\n\nThe last bit of C has fallen\n\ngif.ski was originally meant to be just the highest-quality GIF maker, but over\ntime I also made it generate smaller files. Now it's probably the most\ntechnically advanced GIF compressor, if I say so myself.\n\nThe key to good GIF compression is making LZW algorithm lossy. In 2014, I wrote\na patch that added lossy compression to gifsicle. Gifsicle is a GIF optimization\ntool created in 1998, so I can't blame them for not using Rust. Of course,\nI wanted to use that lossy compression in gif.ski too, so I've made gifsicle\nusable as a Rust crate.\n\nRust already had a gif encoder, so bringing all of the gifsicle's code seemed\nunnecessary. I only wanted the lossy LZW bit, so I've made the Rust gif library\naccept data from other compressors, and used only a couple of gifsicle's C\nfunctions for compression.\n\nThe lossy LZW compressor was still my 2014 hacked-together C â\x80\x94 until yesterday.\nI've rewritten it in Rust.\n\nThe rewritten code gives exactly the same, bit-identical output. Usually, when\npeople rewrite projects it's hard to compare results to the original, because\nthe rewrites change and reinvent things along the way. This time it's apples to\napples. I made sure it works exactly the same. I even reimplemented an integer\noverflow bug and quirks caused by use linked lists. The result isâ\x80¦ the same\nperformance, and the same binary size, within margin of error. You don't need\nto rush to upgrade! On one hand this isn't surprising â\x80\x94 it's the same algorithm,\nand Rust has C-like performance as advertised. OTOH I used mostly idiomatic\nRust, and did not try to make it super optimized. The original C code did clever\nthings with memory pools and linked lists, and I've swapped it all for Vecs in\nenums.\n\nAside from ffmpeg, which I'm not rewriting, gif.ski is now 100% pure Rust. It\nmakes it a bit easier to build it. The x86-64 MUSL/Linux binary has been built\non my ARM Mac. Since the code is now in a form I find easier to refactor, later\nI'll work on improving quality of its lossy dithering, because for some reason\nI'm determined to squeeze every last possible bit out of this prehistoric video\nformat.\n" module: pkgsrc subject: 'CVS commit: pkgsrc/graphics/gifski' unixtime: '1698307280' user: pin