Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
dzaima
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
1.
▲
by
dzaima
5d ago
Or "--ignore-other-worktrees" for "git switch". This leaves things in a weird state though, as modifying the branch from one of the worktrees will effectively change the ref the other is pointing to, but won't updat
2.
▲
by
dzaima
8d ago
How so? It's replacing multiple enum variants , but just one enum, "enum Value". (also; if anything, the title is implying the exact opposite of "Rust compiler was able to optimize ...", "Replacing a Rust [...
3.
▲
by
dzaima
8d ago
Unless the highly-optimized parts are wrapped by an interface that looks similar to the non-optimized version. In the case of a tagged object in Rust, depending on how well the compiler can wrangle through it, you might even be able to add
4.
▲
by
dzaima
9d ago
> That always seemed annoying to me. They couldn't allocate 5 more bits somewhere to let the decompressor autodetect longer window sizes? I believe this is just to prevent the decompressor from arbitrarily blowing up memory usage ba
5.
▲
by
dzaima
14d ago
Heh, you can kinda think of MTE as ASan except instead of a small range of a guaranteed redzone around heap pointers, it's a massive `2^56 * (random number, ≥0, on average 15)`-byte "redzone" (and some padding up to a multipl
6.
▲
by
dzaima
15d ago
Cleaning it would change the commit ID, so a forge cannot clean it even if it wanted to (not without rewriting all descendant commits too and breaking signed commits, at least). The change-id is exactly as much part of the commit object as
7.
▲
by
dzaima
15d ago
Technically, you can still tell actually - jj writes a "change-id xyz..." in the git commit object header, which remains there as it's pushed around. It's just typically not made visible by regular things. (I wonder what
8.
▲
by
dzaima
19d ago
The things/concepts that those screenshots have that infiniminer (a voxel game made before minecraft) doesn't is... grass, trees, glass. I hate to bring it to you, but minecraft didn't invent those. And it certainly didn'
9.
▲
by
dzaima
1mo ago
That is quite a good bit more evenly-spread (the "..." is 5159 instrs). Wonder what's up with bit 21; if whatever uses it so much is repositionable (and not an aarch64-specific thing), could save like 2KB on x86-64 via puttin
10.
▲
by
dzaima
1mo ago
Some stats on an aarch64 binary of my current main project (1.6MB .text, 6600 symbols as per whatever "nm the-binary | wc -l" includes, from "objdump -d the-binary"): 19546 /tbn?z/ 18029 /tbn?z.*
11.
▲
by
dzaima
1mo ago
Both clang and gcc do actually generate TBZ/TBNZ for checking a bool: https://godbolt.org/z/K6evhaxGT
12.
▲
by
dzaima
1mo ago
Some more: > The spec says that bit must be zero, and yet no encoding uses the space opened up by that bit being one. The spec says "the code points with shamt[5]=1 are designated for custom extensions.", so the space is specif
13.
▲
by
dzaima
1mo ago
Random minor-ish notes: - A big problem with extension detection RISC-V has is that there's no central authority mandating vendors to not overlap things (obviously, given RISC-V being an open standard), so basic bitmasks for supported
14.
▲
by
dzaima
1mo ago
Float divides are still pretty expensive; 8-10 cycles of latency on modern hardware, integer divides being 8-20 cycles. (on Apple M1 both are 8-10 cycles; int div is much worse on older x86 hw) Integer multiply is also pretty universally 3
15.
▲
by
dzaima
1mo ago
> Sure, and that's basically what I was wondering about with respect to "can't define it" being shorthand for something else Eh, I'd say it's still the same thing; can't define a sanitizer for it if wha
16.
▲
by
dzaima
1mo ago
> it's still a counterexample for "you can't define it because it means sanitizers can't warn for it" Sure, technically you can write a sanitizer for anything. It just becomes less a "sanitizer" you can
17.
▲
by
dzaima
1mo ago
> -fsanitize=unsigned-integer-overflow Of course, -fsanitize=unsigned-integer-overflow isn't enabled by default, and few people use it (github code search gives 6K results for that, compared to 175K for "-fsanitize=undefined&qu
18.
▲
by
dzaima
1mo ago
C23 specifies that signed integers must be two's complement, but still leaves signed arithmetic overflow as undefined behavior.
19.
▲
by
dzaima
1mo ago
There's no autovectorization there; scalar f64-s just are always stored in xmm registers. And the bounds check is still there.
20.
▲
by
dzaima
1mo ago
Compress patterns aren't recognized by any open-source compiler autovectorizer as far as I'm aware of. (I think intel's proprietary C/C++ compiler can?)
21.
▲
by
dzaima
1mo ago
aarch64 has a CPU mode, DIT (Data Independent Timing), specifically for allowing software to request all fancy value prediction stuff to be disabled for the duration of processing of sensitive data. (doesn't help when the attack target
22.
▲
by
dzaima
2mo ago
While I agree with the comment being overly-praise-y, this is complexity that any multithreaded language with mutability and reasonable sanity/safety desires (but without intrusive compile-time rules a la Rust) has; others just might p
23.
▲
by
dzaima
2mo ago
A quick test (C, clang) gives me that a binary depending on 1000 shared libraries, each containing a single function returning an integer, with a main function summing up the results of all those functions, takes ~270ms to run from the dyna
24.
▲
by
dzaima
2mo ago
Unaligned loads/stores aren't super bad; if still within a cacheline, there's zero penalty, and on crossing cachelines it's alike two ops (except page crossing, which is more bad). So, for 32B loads/stores and 64B
25.
▲
by
dzaima
2mo ago
Where I eat doesn't have a "WC" sign, walls separating it from public areas, and a toilet present. Codebergs private repos have a clear "private" label, infrastructure for making them, acknowledgement and rules for
26.
▲
by
dzaima
2mo ago
...in what way whatsoever is this "They dont allow private repos"? The size limit is........a size limit, something every host should have; there's one for public codeberg repos too. And while there are restrictions on what p
27.
▲
by
dzaima
2mo ago
> For example any such function can be marked with __attribute__((pure)) in compilers like gcc and clang. https://gcc.gnu.org/onlinedocs/gcc/Common-Attributes.html states: > However, functions declared with
28.
▲
by
dzaima
2mo ago
> Floating-point operations are stateful in any CPU made during the last 40 years. But sane programming languages entirely hide that (to the same extent that they hide integer flags and registers in general), at the very least by default
29.
▲
by
dzaima
2mo ago
> A decent programming language should have 2 distinct types for floating-point numbers, one for those that cannot be NaNs (to be used only in a program that enables and handles invalid operation exceptions) and one for floating-point nu
30.
▲
by
dzaima
2mo ago
Rather depends on definitions; GPL does contain: > The "source code" for a work means the preferred form of the work for making modifications to it. With that definition, there's definitely space for arguing that the AI to
More ›