Subject: Re: [PATCH 2/6] ci: check formatting of our Rust code

From: "brian m. carlson" <[email-masked]>
Date: Tue, 7 Oct 2025 22:42:16 +0000

On 2025-10-07 at 17:13:18, Eric Sunshine wrote:
> Later in the same thread, I wrote[2]:
> 
>     Project guidelines have long suggested 80 columns as a desirable
>     maximum not only for C code, but for pretty much all other
>     resources, including shell code, Perl code, and documentation
>     files. This suggested maximum works well for adherents of
>     80-columns and (presumably) hasn't been too onerous for developers
>     who use wider windows; at least we haven't heard people clamoring
>     to increase the suggested maximum column limit. As such, it does
>     not seem far-fetched to expect that the project guidelines
>     should/could/would also apply to Rust code.

My preference is actually that we stick with the default.  I use (and
for a long time have used) a 132-character editor window and I find it
quite useful to have the extra space.  The DEC VT100 did 132 columns
(available on your local Linux system as `vt100-w`), so I think there's
plenty of precedent for that being an acceptable width[0].

I did previously use 80-column terminals when I had a tiny laptop
screen, but modern display resolutions over the past decade, even on
smaller laptops, have made it entirely possible to get several wider
terminal windows (or in my case, tmux panes) on one screen.  One of my
current tmux panes is now 213×54 and I really enjoy the extra space.

The default Rust behaviour is 100 characters[1], which I think is a fine
default.  I won't be enormously angsty if we say we still absolutely
must stick to 80-character lines, but I also think we should take this
opportunity to choose the Rust defaults for Rust.  C, Perl, and text
formats like AsciiDoc do not have rigid defaults about indentation
style, tabs vs. spaces, and line length; Rust does.  We wouldn't use
tabs in Rust (the default is four spaces) because we use it everywhere
else, so I think we should take the opportunity to use the Rust defaults
here as well.

Whatever we ultimately decide, I plan to send an update to our
`.editorconfig` file.  I think that's less useful in general for Rust,
where we have an automatic tidy tool and CI to check for it, but there
are some people for whom it will be useful and we might as well keep it
correct.

[0] For what it's worth, Linus also thinks longer lines and 132-column
terminals are useful.  I don't agree with him about everything,
certainly, but I think we see eye to eye here:
https://lkml.org/lkml/2020/5/29/1038.
[1] % rustfmt --print-config=default /dev/stdout | grep '^max_width'
max_width = 100
-- 
brian m. carlson (they/them)
Toronto, Ontario, CA