last Christmas my parents got us an air filter that we usually leave running now. it has an air quality sensor and it's incredible how fast it goes from "totally good" to "seriously shitty" when one of us runs a gas burner for a while. I mean, I knew it was bad, but ugh
other day I was showing a student something on my machine and he got all quiet. I figured he was digesting the deep thoughts, then he says "so you really just use emacs all the time?"
C and C++ people: I'm looking for an example -- for a target the supports unaligned memory operations -- where code that violates language-level memory alignment requirements is *not* compiled into something that works as one would naively expect.
I vaguely remember people (almost certainly including @void_friend) discussing this some time ago, but I can't find the posts, argh
the CS:APP "bomb lab" has to be among the greatest computer science homework assignments ever developed. I'm releasing it to my students tomorrow. so fun!!!
the dilemma facing programming languages, as I see it, is that they fall into two categories: - languages that can be rapidly and radically changed in response to problems (such as failures of abstraction) encountered in real use. but these are the languages without large load-bearing code bases, so they don't get many resources - languages that have large, load-bearing code bases, which receive adequate engineering power, but not enough to overcome the legacy code problem
I said it in a reply thread but might as well repeat it here: the fix is languages that support proper abstraction of things that you do often, including design pattern sorta things
@erincandescent@atax1a@cr1901 but what this really means is that my LLVM backend bug hunting work should have focused on RISC-V, where the compiler has to try really hard. also, encoding the instructions would have been like 20% of the effort.
@erincandescent@atax1a@cr1901 I've been working pretty closely with AArch64 for a couple years and it's just a pleasure overall, it has the right bitfield operations, the right addressing modes, the immediate encodings are cute and useful, it's just fun. when I want to be annoyed I compare the codegen for a small C function in RISC-V vs. AArch64