triskelion, to rust
@triskelion@floss.social avatar

Hey RIIR enthusiasts, sorry to disappoint you, but LLVM and glibc are not written in . Feel free to express your frustrations xD

davmac, to rust

It finally happened; someone asked me to rewrite Dinit in Rust. #dinit #rustlang

mo8it,
@mo8it@fosstodon.org avatar

Kick everyone asking a maintainer to rewrite in . Tell them to do it themselves!

I am totally for "Rewrite it in Rust", but do it yourself instead of trolling maintainers.

Maintainers don't live under a rock and probably know about Rust already. Just fork and rewrite yourself if you are that motivated.

Stop the trolling please! You are not helping anyone, especially not the Rust community.

@davmac

amokleben, to rust German

Habe mein Script zum Download von zufΓ€lligen Kunstwerken aus dem Met in neu geschrieben: https://gitlab.com/okin/met-art-picture-fetcher

janriemer, to rust

biome | A toolchain for web projects, aimed to provide functionalities to maintain them. offers and , usable via CLI and LSP.

https://github.com/biomejs/biome

Fun fact: this is the winner of the "write a pretty printer in challenge":
https://console.algora.io/challenges/prettier

I think, by now, every major tool has been rewritten in .

Just think about the time savings this brings for people globally!

Time to switch our tools! πŸš€

zanchey, to rust
@zanchey@aus.social avatar

rewrite-it-in progress, 2024-01-08

87261 rust lines added
76766 / 77063 C++ lines removed
β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–‘ 99 %

--

The reader and input stack have been ported, which is basically everything. There's still some entry points in C++ (PR being reviewed) and test helper binary (might make a good external contribution as it's entirely self-contained), but almost all of the C++ is gone, and with it large chunks of the FFI.

Now we just have the second 90% to go - making sure this rewritten fish is portable and distributable!

zanchey, to rust
@zanchey@aus.social avatar

rewrite-it-in progress, 2024-01-01

84456 rust lines added
56556 / 77063 C++ lines removed
β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘ 73 %

--

Happy new year! A little cleanup this week. The input stack and reader module PRs are both ready for review, which is the bulk of the remaining C++.

zanchey, to rust
@zanchey@aus.social avatar

#fishshell rewrite-it-in #rust progress, 2023-11-27

77272 rust lines added
49774 / 77063 C++ lines removed
β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 64 %

#riir #rustlang

--

The universal variable communication module has been ported, and some redundant C++ removed.

The project got discussed on /r/rust and HN, and led @faho to write an informative update at https://github.com/fish-shell/fish-shell/discussions/10123

bitprophet, to rust
@bitprophet@social.coop avatar

Adding some actual non-HTTP-302 outputs to my browser search backend now that I'm #RIIR (Rewrite It In #Rust πŸ˜›) and wow, it has been /a whole fucking while/ since I have written raw HTML (no framework, no templates, no premade theme to hack up, etc).

Like, the last time I wrote an entire HTML tag from scratch, the "; charset=utf-8" part of one's Content-Type header was…not really a thing. As I found out by trying to be cute and putting an emoji in the title tag πŸ™ƒ

zanchey, to rust
@zanchey@aus.social avatar

#fishshell rewrite-it-in #rust progress, 2023-11-20

76909 rust lines added
48105 / 77063 C++ lines removed
β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 62 %

#riir #rustlang

--

So, that's a significant jump - mostly thanks to the merge of the parser rewrite branch, described as "Herculean". The parser, autoloading module, completion module, function management, history management, and the builtins for complete, disown, eval, fg, history, jobs, read, set, and source have all been ported, as well as many other parts of the code.

This also allowed the removal of lots of supporting tools, including the UTF-8 modules, and quite a few bits of the FFI.

After a few months of slow progress this is a huge step forwards.

zanchey, to rust
@zanchey@aus.social avatar

#fishshell rewrite-it-in #rust progress, 2023-10-17

51743 rust lines added
24922 / 77063 C++ lines removed
β–“β–“β–“β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 32 %

#riir #rustlang

--

No big changes this week.

janriemer, to rust

Like a wise person once said:

"Everything that can be rewritten in , will eventually be rewritten in Rust."

zanchey, to rust
@zanchey@aus.social avatar

rewrite-it-in progress, 2023-09-25

51512 rust lines added
24742 / 77063 C++ lines removed
β–“β–“β–“β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 32 %

--

The post-fork code has been ported. This is a module that requires meticulous care, because a forked child is a bit of a strange place before exec.

zanchey, to rust
@zanchey@aus.social avatar

rewrite-it-in progress, 2023-09-18

50721 rust lines added
24255 / 77063 C++ lines removed
β–“β–“β–“β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 31 %

--

So, this is a good example of why the methodology of "C++ lines removed" is going to produce a janky impression. The wildcard module has been ported, adding ~1300 lines of Rust, but the C++ is still compiled as it's still partly in use.

zanchey, to rust
@zanchey@aus.social avatar

rewrite-it-in progress, 2023-08-28

47981 rust lines added
23369 / 77063 C++ lines removed
β–“β–“β–“β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 30 %

--

Not a lot of merges this week, but there's some massive PRs in the works.

zanchey, to rust
@zanchey@aus.social avatar

rewrite-it-in progress, 2023-07-24

43444 rust lines added
18729 / 77063 C++ lines removed
β–“β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 24 %

--

The function module and its accompanying builtin have been ported. The string builtin PR edges ever closer to being merged (and currently removes nearly 3000 lines of C++).

Stark9837,
@Stark9837@techhub.social avatar

@zanchey

How does the code-base continue working if you progressively replace C++ with Rust? Are you going class-by-class, module-by-module and have some inter-language communication? Or are these separate services? Is there more information about this process?

zanchey, to rust
@zanchey@aus.social avatar

rewrite-it-in progress, 2023-07-10

41974 rust lines added
17719 / 77063 C++ lines removed
β–“β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 22 %

--

Some work on parallelising the tests. I've ported the cd builtin, and the hype is real - Rust's error messages really are good, and if it compiles it's most of the way to working. Already feel confident in Rust in a way I never did in C++.

jbzfn, (edited ) to rust
@jbzfn@mastodon.social avatar

πŸ¦€ The Great Rewriting In Rust
βž₯ @akosma

γ€Œ Rust will invariably solve some issues in today’s programming, including security-related trouble such as Heartbleed or the goto fail fiasco of 2014. But Rust will invariably introduce new issues, completely unforeseen as of now. And a new, modern programming language will appear in 2050 or 2060 solving those issues, and the rewrite cycle will begin all over again 」

https://deprogrammaticaipsum.com/the-great-rewriting-in-rust/

zanchey, to rust
@zanchey@aus.social avatar

rewrite-it-in progress, 2023-05-22

37348 rust lines added
14702 / 77063 C++ lines removed
β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 19 %

--

The most important port this week was my shell script which generates the progress updates. Rewriting in Rust slashed 50% off the (40 msec) runtime.

Also the test builtin, which has maybe the worst UI in the history of shell commands.

slomo, to rust

I was (and still am) looking into various Rust build integration issues over the last weeks, specifically when integrating Rust code into existing C code bases.

Today I ran into one that is very easy to fix, and that e.g. shaves off half of the shared library size from librsvg.

https://gitlab.gnome.org/GNOME/librsvg/-/issues/965

Distros might want to do this explicitly in their builds for now.

Make sure to always pass --gc-sections (or equivalent) to the linker when linking a Rust staticlib into an executable or shared library. And in case of the latter, also make sure to only exports the symbols you want to export (librsvg did that part correctly).

Apparently this was also not mentioned anywhere in the Rust docs, and from looking around there seem to be more projects that are not aware of this. So I also added a section about this to the Rust docs (well, reference).

https://github.com/rust-lang/reference/pull/1361

Unfortunately not all issues I ran into so far are that easy to fix πŸ˜…β€‹

zanchey, to rust
@zanchey@aus.social avatar

rewrite-it-in progress, 2023-05-01

33778 rust lines added
12769 / 77063 C++ lines removed
β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 16%

--

The threading and signal handling modules have been ported. These are both pretty tricky areas. Environment variable handling and the actual parser look like they're on the way.

zanchey, to programming
@zanchey@aus.social avatar

rewrite-it-in progress, 2023-04-24

32911 rust lines added
11911 / 77063 C++ lines removed
β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 15%

(or should that be - port to Rust?)

--

Lots of Rust added, with various internals such as path and parser utils implemented. However, the C++ implementations are still in use so the progress bar hasn't moved much. The FFI is definitely the hardest bit of the port in my view.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • β€’
  • JUstTest
  • mdbf
  • ngwrru68w68
  • InstantRegret
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • tacticalgear
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • provamag3
  • ethstaker
  • GTA5RPClips
  • modclub
  • tester
  • Leos
  • osvaldo12
  • cisconetworking
  • everett
  • cubers
  • normalnudes
  • anitta
  • megavids
  • lostlight
  • All magazines