Does anyone reading this have experience submitting bugs to the LLVM project? If I submit to the llvm-project github issues page is that a place that actually gets looked at?
Associate Professor of Computer Science at Oberlin College.
Does anyone reading this have experience submitting bugs to the LLVM project? If I submit to the llvm-project github issues page is that a place that actually gets looked at?
Related question, how many bits do I need to use to add the significands?
I found that converting the 11-bit significands to 32-bit integers by shifting them left by 19 before normalizing to the larger exponent lead to correct results using rounding with ties to even. Using 16-bit integers by shifting left by 3 doesn’t give me the correct results.
My thinking was I need a few bits to determine how to round and I wanted to make sure the signed significand addition didn’t overflow my type (either i32 or i16).
My current intuition is I need twice as many bits (so 22 plus 1 for the sum plus 1 for the sign).
Floating point question:
I have two half precision floating point numbers. I convert them to single precision, add them, and convert the sum back to f16.
What’s the maximum I should expect the difference between the converted sum and the result of adding the two f16s directly?
I implemented f16 addition in software and originally was testing by converting to f32, adding, and converting back to f16 but I was getting large differences on some inputs (e.g., adding the smallest positive subnormal to negative small powers of 2 like -2^-12). Large here meaning integer differences of the underlying u16 of more than 8.
When I test my implementation against hardware f16, all 2^32 sums are bit-for-bit correct for all finite and infinite sums. Every computation involving a NaN gives me a NaN (but I’m not checking it’s giving the “right” NaN, just that it’s a NaN).
When I’m back at a computer, I can compute the answer to my question, but I’d like to understand the maximum difference analytically rather than merely empirically.
I voted for Kamala Harris.
@dalias I've never thought about needing to move a directory not owned by my user except as root.
I've always kind of wondered why rmdir(2) only deletes empty directories. (I suppose it could be simply to keep the recursive directory traversal logic out of the kernel.) One can usually just recursively delete directories so this doesn't matter but I ran across a situation where it does actually matter that rmdir only deletes empty directories that I hadn't considered before.
If directory /containing is writable by user u and directory /containing/private is not writable by user u, then u can delete /containing/private only if /containing/private is empty.
This kind of feels like it's a security/access control choice. Does anyone know if this scenario was an explicit consideration when the rmdir system call was being designed? (The macOS man page suggests that rmdir(2) appeared in 4.2BSD.)
Fellow academics, does your college or university's central IT control what software you can install on your laptops/research computers or do you have admin access?
I'm curious how wide-spread the practice of locking down what can be installed on academic computers is.
@mjg59 as with URLs I find while reversing, I sometimes wonder if people add interesting looking unique strings/byte sequences so when people google them, they find one website with it. Then, the server access logs indicate someone has found the sequence and thus is likely reversing that particular binary.
I am profoundly honored to say that today I joined the @eff board of directors. Here to fight for digital rights and the future of the open internet. https://www.eff.org/press/releases/eff-welcomes-tarah-wheeler-its-board-directors
I've updated my double-clickable Ghidra mac application builder script for Ghidra 11.0.1 https://github.com/stevecheckoway/ghidra_app
#EAS for San Diego: City of San Diego: Advising of expected flooding February 5-6, 2024
Evacuation Warning in effect. Be prepared to evacuate if advised by public safety officials.
See more information at Sandiego.gov/storm
Source: Public Alert System** DO NOT RELY ON THIS FEED FOR LIFE SAFETY, SEEK OUT OFFICIAL SOURCES ***
I’m in a long line for the bag drop at the airport. A robotic cart joined the queue. It alternated between demanding people move in Japanese and English, and voicing the same demands at a variety of barriers.
People have done their best to acquiesce to its demands, but it’s now stationary and shouting in multiple languages.
I commend to y’all this profile of Sarah Meiklejohn as a grad student at UCSD, excerpted from Andy Greenberg’s Tracers in the Dark: https://arstechnica.com/features/2024/01/how-a-27-year-old-busted-the-myth-of-bitcoins-anonymity/
(Sarah is now a professor at UCL and still doing super cool stuff: https://smeiklej.com/ )
@dalias yeah, that’s a tricky case. And probably the most important.
@dalias the gcc documentation for “m” just says it’s an address. Nothing about uniqueness, permanency, nor lifetimes.
Seems like the real problem here is relying on underspecified, nonstandard language extensions.
Poll: Have you, personally, ever had to fix a software/hardware bug caused by a time zone? (Poll 1 of 3)
I missed that Ghidra 11 was released a short while ago. Fortunately, @nathanpc did not miss it.
The script to create a double clickable macOS application out of Ghidra has now been updated: https://github.com/stevecheckoway/ghidra_app
Final point: Any time water is filling the boiler, it makes noise and you can feel the movement of the water through the line so you’d think I’d have noticed that opening the bypass didn’t actually shut off the flow of water.
But no. Opening the bypass meant that most of the water took the direct path to the boiler and didn’t go through the fill unit. (It’s kind of like connecting a weak resistor in parallel with a stronger resistor; take that every electrician who refuses to talk to me in electrical terms and insists on using plumbing analogies I don’t really understand.)
And the really noisy part was the fill unit. So as I opened the bypass, the rushing water sound basically stopped, even though water was now filling the boiler at an even greater rate.
Eventually I noticed that both valves were open and closed them both.
After explaining the sequence of events to the HVAC guy this afternoon, he informed me that once the low water cut off calls for water, it waits for a little bit. (My stomach sunk as the implications of hysteresis hit me.) And then, after it stops calling for water, the fill unit’s (internal) valve remains open for a few minutes and for 3 gallons of water.
I think everything was working correctly until I opened the bypass valve and completely overfilled the system.
“But Steve,” I hear you say, “Ball valves have an obvious indication of whether they’re open or closed. Parallel to the pipe is open. Perpendicular to the pipe is closed. How could you possibly get that wrong?”
To which I say, “good point, imaginary critic in my head.”