Skip to main content

in reply to Federico Mena Quintero

my memory is faulty — have you ever written a retrospective / look back on how the RiiR went, and what goals it achieved / failed to achieve?
in reply to Sergey Bugaev

Like IIRC one of the original motivations for the RiiR was that the C librsvg had vulnerabilities in it found regularly? Did that improve after the rewrite — and if so, is it thanks to ✨Rust's safety guarantees✨, or just due to the people who scrutinized the old C codebase no longer doing that to the new one?
in reply to Sergey Bugaev

What about performance? Is librsvg faster now that it's in Rust? Which part of that is due to Rust (compiler optimizations and so on), which part due to high-quality crates being easily available? Maybe some optimizations you had to do manually, but they have been "enabled by Rust" (i.e. ease of refactoring)? Something something fearless concurrency?
in reply to Sergey Bugaev

What about binary size — is it much worse (so I've heard)? You speak of cache locality — does that have a noticable effect on performance (especially on memory-constrained systems) on old C vs today's Rust librsvg?
in reply to Sergey Bugaev

What about, uh, speed of development, ease of refactoring again, code quality, and contributors? Did RiiR make things better? Worse?

I remember you've shown some examples where Rust clearly made things more concise *and* robust, with error handling around... parsing colors, IIRC? But surely there were opposite examples? What was the ratio?

in reply to Sergey Bugaev

@bugaevc Woah, there's like eight blog posts in those questions 😄

A retrospective of that kind would be nice. I'll think about it.

in reply to Federico Mena Quintero

my questions are nothing special, really — but if you're feeling like it, then sure, that sounds so cooool, let's do that :)

I'll need to write a more complete / less terse version of the questions then; it's one thing when you're trying to fit thoughts into a toot (and failing, and posting many toots instead 🙃), and another thing when you're writing for a full-scale blog post.

in reply to Federico Mena Quintero

@bugaevc I wonder if @YaLTeR / @alatiera / @svenfoo would like to be in the interview too, since they wrote huge chunks of the port. I don't think Paolo is here?
in reply to Ivan Molodetskikh

@YaLTeR @alatiera @svenfoo
Here's a sketch of the questions
docs.google.com/document/d/19T…

Had to balance my love for Rust with some skepticism ("supposed", "said to") in order not to sound like the RESF :)

in reply to Sergey Bugaev

@YaLTeR @alatiera @svenfoo this is a &mut link -- you can edit / add suggestions / add answers /etc!

Please tell me if Google Docs doesn't work for you, we can do HackMD or HedgeDoc or just Markdown in Git or whatever. Or feel free to just copy over my questions into whatever software you're using to write your posts (which I hope is :emacs: :D)

in reply to Sergey Bugaev

@bugaevc @YaLTeR @alatiera @svenfoo OK, I've filled it in. But you people should also write in something! You've done incredible work in librsvg!
in reply to Federico Mena Quintero

@bugaevc @alatiera @svenfoo This is very well written! I've added a tiny bit about using rayon to parallelize the filters, but I think you pretty much covered everything else.