Posts by pixx@merveilles.town
 (DIR) Post #B4AbFKWgZ7WBUfyyxM by pixx@merveilles.town
       0 likes, 0 repeats
       
       ...fossil's file system checker just *deleted the primary root* for being corrupt. /active is just *gone*.I'm going to have to scan the drive for the latest archival scores and reinitalize the fossil entirely. Ffs.Good thing i have backups...#plan9 #9front
       
 (DIR) Post #B4YXy3lRznhCW4050i by pixx@merveilles.town
       0 likes, 0 repeats
       
       Working on an old abandoned code base where i can't talk to the authors and it takes hours to figure out some of the bullshit it's pulling off, i can definitely see the appeal for a tool that can quickly read over the code and check my inferences on e.g. memory flow and ownership patternsNowadays, people would obviously default to either LLMs for that or for arguing that humans should do it because the other people are saying LLMs and fuck thatBut what I'm more interested in: there's plenty of static analysis tools for checking code you wrote. Is there any prior art in deterministic static analysis tools that help _read code_ by other people?Dataflow and control flow analysis are super commonly used in compiler optimization. Are there any tools out there that do dataflow analysis and then, say, can look at a variable and show all _possible references_ and relevant code?E.g. this Foo* is passed to foo(), so it can be f there, which might call bar, and ...)Or "this code allocates Bar, here's the entire possible relevant code for what might happen to that across this 100kloc project, here's every function in every file that might use _that specific value_, and an explanation of how it gets there"
       
 (DIR) Post #B4YXy3xrFfcX8XnzLk by pixx@merveilles.town
       0 likes, 0 repeats
       
       Something fascinating here: this is a codebase in C. It's not doing anything crazy by the rules of C. C is my preferred language, the one I'm best at. I understand every single line of code, on its own.But a lot of the high level logic feels weirdly foreign, moreso than typical Go code even.I can read the code and go "oh that's a hash table" pretty easily, and i get using a hash table to quickly identify cached blocksBut the table is, implicit? Sorta?The heads of each "bucket" are stored in the cache, but there's no real bucket. Each block just has a doubly linked list to follow prev/next pointers which, sure, but then it also multiple other unrelated lists.Okay, not too crazy.But they're sorted by a fake ticker clock, except not entirely, only sorta quadratically? Which seems to just be a way to maintain a LRU in *yet another list* sorting the *exact same set* of *statically allocated blocks*.And, i can untangle all of this. It requires pen and paper ( or a .tex file), but it's a fascinating experience reading something, understanding what it means, but having no clue what it's doing
       
 (DIR) Post #B4YXy4FwAS5A2cGQWu by pixx@merveilles.town
       0 likes, 0 repeats
       
       What i mean is, it's kinda weird that even something as well defined as C can change so much in 20 years as to require basically relearning the idioms.It's also... kinda just an argument that this code is bad, tbh. Lots of Plan 9 code is this old, much of it uses similar patterns, little of it has ever taken me this much effort to reverse engineer...
       
 (DIR) Post #B4azsapjJqOcNC6Tce by pixx@merveilles.town
       0 likes, 0 repeats
       
       @khm the wifi is blessed in your honorCc @prahou
       
 (DIR) Post #B4dGNqZwoaYHlaZAQ4 by pixx@merveilles.town
       0 likes, 0 repeats
       
       on the one hand, I now know what uncured concrete tastes like; on the other, there's no YAML involved. I think I like this new job.
       
 (DIR) Post #B5Agy5DOssPebsdXhA by pixx@merveilles.town
       0 likes, 0 repeats
       
       I love the MNT Reform but it is so WEIRD, taking out batteries made out of salt, putting in batteries made out of not-explody lithium juice, and then the voltage just... being differentOn one discharge, I take a solid 20 minutes to go from 3.5V to 3.2V per cellON the next, I'm down from 3.5 to 3.2 in like 2 minutes and then still at 3.2 30 minutes laterScrew voltage discharge curves, just gimme hardware that works with all of them and lemme feel the way discharge happens, in my bones!(Disclaimer: any sensation of cell discharge into the bones probably indicates wires entering places they shouldn't. Do not put wires into places they shouldn't.)
       
 (DIR) Post #B5Agy5fPCkoY0jjuLY by pixx@merveilles.town
       0 likes, 0 repeats
       
       but in all seriousness it is _so cool_ that I can just carry around a bunch of 18650s, of _different chemistries_, and just, put them inand they all just WORKI'd need to double check the schematics but I think some LiPo cells would probably work too??? I don't want to do that but it would be so cool to have three different chemistries that I can just, put in there, at will
       
 (DIR) Post #B5lv0QaoxcvhhL7ZUu by pixx@merveilles.town
       0 likes, 0 repeats
       
       First bread I've made without yeast in a long time, came out great :D[entirely natural leavening babeeeee]
       
 (DIR) Post #B5xkXDDAxwV69b0iXY by pixx@merveilles.town
       0 likes, 0 repeats
       
       WOOHOOOOKnightOS SDK, on Plan9, can now build the kernel, compile userspace binaries, annnnnd write a file system into the ROM and emulate it!I've got a hello, world in asm being written to the filesystem as /bin/init, and the emulator is dumping the output as braille to the console(KnightOS is a UNIX-like operating system for TI calculators. I've almost got a fully working build system on 9front, just need to flesh out a few more bits of the SDK...and then port them back over to Linux so I can kill the garbage we've been using there)#knightos #plan9
       
 (DIR) Post #B5xkXXGkONF0MSpqsq by pixx@merveilles.town
       0 likes, 0 repeats
       
       And here's an image with a much better font for the emulator's output, and with the output when the file system is corrupt