

Yes, but the tools provided by Rust:
- Prevent most common ones via aliasing^mutability, Send and Sync marker traits, etc.
- Require explicitly marking the cases not handled by this, e.g. unsafe features require an
unsafe {}block to be used.


Yes, but the tools provided by Rust:
unsafe {} block to be used.

…which is why I love #[rustfmt::skip] so much! You can do stuff like
#[rustfmt::skip]
const DIRECTIONS: [[i8; 2]; 4] = [
[0, 1],
[-1, 0], [1, 0],
[0, -1],
]
while still enjoying the convenience of auto formatting elsewhere.
Although linters which act on the behavior of code are unequivocally a good thing, e.g. “hey, this comparison will always return false you probably made a mistake here”.


People (such as myself) make the argument that it does a better job because it’s focused more on reading code than writing it since you don’t start in the “write” mode like in most editors.
I would say the choice of text editor shouldn’t make a difference in productivity so long as it doesn’t actively get in your way too often (looking at you, poorly implemented autopairs) and it supports the relevant LSP and debugging protocols.
Counterargument: ctrl+f is a great place for regex. Write once read never problems are a great application for unreadable languages. Imagine if people wrote scripts in the language vi uses for editnig<escape>bceediting, which mostly isn’t even displayed as it’s typed! <escape>
But yeah, it’s kind of terrible for anything else.


Nice timing, I just finished it!
I was able to adjust the bit mask format to be easier to work with by hand and got it most of the way, then used the SAT solver to quickly finish the rest when I got stuck.


Sorry, I was (without realizing) also responding to the claim you made in your other comment which links that article.
Thank you for your time.


I read through the exact message chain that article is referencing some time ago, which did not lead me to the conclusion the article would suggest. It seems that he consistently refers to AI use from the perspective of finding bugs more so than than fixing them, which he could definitely do a better job clarifying.
Subject: Re: Linking Patchwork with Sashiko?
[snip]
I think it makes the point of sashiko - helping maintainers - unachievable. If the point to not use
LLMs in general, let’s discuss this, not how to make each use case more complex.It seems like [1] expresses a very anti-LLM position in general
Yes.
And no, that’s not the position of the Linux kernel.
I realize that some people really dislike AI, but this is an area
where I’m willing to absolutely put my foot down as the top-level
maintainer.Linux is not one of those anti-AI projects, and if somebody has issues
with that, they can do the open-source thing and fork it.[snip]
Yes, it can also be a somewhat painful tool, both for maintainer
workloads and just from a “it keeps finding embarrassing bugs”
standpoint.[snip]
(emphasis/snips mine)
EDIT: Note: sashiko is an LLM driven code review tool someone runs on the linux kernel. This entire discussion was about a code review tool.


The KDE thing was a specific person declaring that they would hold a meeting about Gen AI in KDE, who hasn’t contributed to the project in years otherwise. Nobody is going to convince everyone to compile their own vibecoded version of KDE’s projects.
EDIT: See https://discuss.kde.org/t/sorry-to-bring-up-a-contentious-topic-kde-ai-llm-policy/46333/187. The developers seem to be responding in an acceptable manner, although I only looked at the start and end since it’s quite a long discussion.


“But it is what it is: the new normal with a lot of fixes, many of them due to review by various AI tools.”
AFAIK the “huge updates” are written by humans in response to LLM found bugs.


Based on my other comment, do you have any in mind that would be more appropriate?


For each operation my CPU’s ALU can do, I need to find a bit mask that turns it on only for the desired set of 8 bit opcodes. The bit mask is of the form [01_].[01_][01_][01_][01_][01_][01_][01_][01_] where 0 and 1 mean the bit has to match and _ means it doesn’t matter. The bit before the . is the xor of all the other bits in the opcode.
The solver has to figure out both which opcodes represent each instruction and what bit masks are needed to give them the desired operations.
I ultimately switched to a slightly different approach. It turns out the xor part of the mask isn’t very useful since the combinations I need aren’t super complicated. The trouble was that an operation could only trigger for a power of 2 of opcodes, so I added a secondary mask to each operation:
Base mask: still [] x8\
Secondary mask: [] x8 (x means both 0 and 1)
For the secondary mask, 1 matches only if the current bit or the one to the left is true (left of the leftmost is the rightmost). 0 is the same but with nand in stead of or. x, requiring both, only matches if exactly one matches.
Using 1 or 0 multiplies the number of matching opcodes by 3/4 (or a more complicated fraction if their areas of influence overlap), which allows much more freedom.
Due to restrictions in the game and my "hard"ware, I’m only able to use [] for the secondary mask, since a nand gate doesn’t respond right to being hooked up to a bunch of toggleable and inputs but xor/or gates do (xor is just as fast in game).
It’s a matter of learning your desktop environment’s shortcuts for managing windows. For example, I always set up a 3x3 grid of virtual desktops on KDE so I can play act at being those weird wall street people with 9 monitors:
(also 3:2 superiority lol)


It’s not about voting for the lesser evil, but against the worse one. The way the United States is structured, which influences the way its people think about voting and vice versa, you are given only two options when voting for president:
But… you might think you’re clever and say “I should just vote for neither of them, nobody will stop me”. If your state has RCV then put your preferred candidate as a first pick and just place Democrat before Republican. Problem solved, no more strategic voting. Unfortunately, precious few states have adopted this for any elections, let alone the presidency.
In states without RCV, there are 3 equivalent cases from your perspective:
Forgive me for assuming the reader wants to get Republicans (and Republican aligned Democrats) out of office. In this case, it is your responsibility to vote for the most threatening candidate. It’s a sick trick of game theory, which is why RCV is so important.
Selection bias left the chat and apparently ceased to exist as a result.
Holy shit is that a Homestuck panel? First I’ve seen of The MSPA Reader outside the comic’s sphere.
Just saying…
:%s/\s*—(\s*)/, /g