Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
ack_complete
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
31.
▲
by
ack_complete
4mo ago
Doesn't require any special flags, just hitting optimizer limits can do it with MSVC. https://www.reddit.com/r/cpp/comments/1i36ahd/is_this_an_msv...
32.
▲
by
ack_complete
4mo ago
Some of this was automatically handled by the compiler and wouldn't have been an issue. Current x86-64 ABIs, for instance, require function entry to use specific forms annotated by metadata to support stack walking to support exception
33.
▲
by
ack_complete
4mo ago
There is an analogous situation in graphics with signed normalized formats. The solution there is that the R16_SNORM format maps -1 to +1 as [-32767, 32767] with -32768 being a special value (not normally emitted, and mostly but not always
34.
▲
by
ack_complete
5mo ago
It's both. Originally Visual C++ binaries built for DLL-based C runtime relied on MSVCRT.DLL and that was installed by the redist. Starting with Visual Studio .NET 2002, separate CRT DLLs starting with MSVCR70.DLL were used. MSVCRT.DLL
35.
▲
by
ack_complete
5mo ago
That's with a simple data operation and using a recent x86 vector ISA (AVX-512) that is only available on some systems, notably excluding any current Intel desktop CPU. The real killer isn't the data operations, though, it's
36.
▲
by
ack_complete
5mo ago
Note that CPUs have also gotten dramatically wider in both execution width and vector capability since you were a teenager. The increased throughput shifts the balance more toward being able to burn operations to reduce dependency chains. I
37.
▲
by
ack_complete
6mo ago
Two issues. First, regarding application compatibility: the heap was already changed once prior to the segment heap. The Low Fragmentation Heap (LFH) was added in XP and made default in Vista, with applications no longer having to opt into
38.
▲
by
ack_complete
6mo ago
The REP MOVS series of instructions have an interesting history due to the advantages and disadvantages of microcode and its shifting performance relative to manual code with each CPU generation. It has long been great for aligned large cop
39.
▲
by
ack_complete
6mo ago
Yeah, that's effectively quantization, which will not work for general tolerance checks where you'd convert float similarity to int similarity. There are cases where the quantization method is useful, hashing/binning floats b
40.
▲
by
ack_complete
6mo ago
This case actually works because for finite numbers of a given sign, the integer bit representations are monotonic with the value due to the placement of the exponent and mantissa fields and the implicit mantissa bit. For instance, 1.0 in I
41.
▲
by
ack_complete
6mo ago
One significant difference is that Metro/UWP requires signing for pretty much everything. Without signing you can't have package identity, and without package identity, you can't even use the UI system. Furthermore, it requir
42.
▲
by
ack_complete
6mo ago
Eh, WinForms did a lot to make Win32 UI accessible and usable -- especially layout and easy customization -- but I have to differ on the cross-language story. It was great, IF you were making primarily a C# program that happened to use some
43.
▲
by
ack_complete
6mo ago
WPF originally had two major rendering issues. One was the lack of pixel snapping support, and another was gamma correction issues during text rendering, particularly for light text on a dark background (due to an alpha correction approxima
44.
▲
by
ack_complete
6mo ago
The main reason Win32 can't handle automatic background suspension or low-power push notifications is simply that those features haven't been exposed to it. There's nothing preventing a Win32 program from receiving those type
45.
▲
by
ack_complete
6mo ago
That might have been more significant had the Windows Runtime not been effectively locked off to Metro-style apps. You could technically use it from a desktop app, but almost all of its functionality was only allowed within a Metro-style ap
46.
▲
by
ack_complete
6mo ago
The most offensive part of the Sinofsky response is this part: > WinRT (2012) - it (or the embodiment in Windows 8) failed in the market but it also showed both the problem and potential solution to building for new markets while respect
47.
▲
by
ack_complete
6mo ago
The place I work at tried using an SO enterprise instance and it was quite ineffective. We didn't have the toxicity of the public instance, but generally having a Q&A forum double as a knowledge base is an oddball format that doesn
48.
▲
by
ack_complete
6mo ago
The Windows API uses WCHAR = wchar_t, so if you use char16_t, you have to convert back and forth to avoid running afoul of strict aliasing rules. This imposes conversion costs without benefits; both using wchar_t directly or converting to&#
49.
▲
by
ack_complete
6mo ago
Doesn't need to be inline assembly, just pre-encoded lookup tables and intrinsics-based vectorized CRC alone will add quite a lot of code. Most multi-platform CRC algorithms tend to have at least a few paths for byte/word/dwo
50.
▲
by
ack_complete
7mo ago
Yes, and this is also how Windows 10/11 explorer turns some parts of its UI dark like scrollbars. But notably, Microsoft refuses to officially support Explorer's dark control themes or ship a complete dark theme, and because the t
51.
▲
by
ack_complete
7mo ago
Dark mode for apps is a setting in the OS and a general expectation now, it's suboptimal to ship a new UI that doesn't support it. And, again, Win32 message boxes in your program will switch to dark mode whether you want them to o
52.
▲
by
ack_complete
7mo ago
One difference is that the Mac OS itself was not initially 32-bit clean, with the top byte being used by the Memory Manager.
53.
▲
by
ack_complete
7mo ago
The main thing that's hard going down this route is dark mode support. The Win32 USER and common controls just don't not support dark mode, but are actively hostile to it due to the amount of hardcoded light colors and backgrounds
54.
▲
by
ack_complete
7mo ago
Or, unless they've changed it, hardware accelerated rendering. Winforms was based on System.Drawing, which used GDI+, which was largely software rendering. This was confusing because GDI+ was not really related to GDI, which had and st
55.
▲
by
ack_complete
7mo ago
It's hard to describe how uselessly restrictive the UWP model was when they originally introduced it as "Metro-style apps" in Windows 8. Among the things it officially did not support included: - Multiple monitors - Non-full
56.
▲
by
ack_complete
7mo ago
Even that is not necessarily needed, I have gotten major speedups from LUTs even as large as 1MB because the lookup distribution was not uniform. Modern CPUs have high cache associativity and faster transfers between L1 and L2. L1D caches h
57.
▲
by
ack_complete
8mo ago
There are also mode switching and calling convention issues. The way that the vector registers were extended to 256-bit causes problems when legacy 128-bit and 256-bit ops are mixed. Doing so puts the CPU into a mode where all legacy 128-bi
58.
▲
by
ack_complete
8mo ago
Don't think the memory operand version would work here. If I understand the x86 architectural manual description, the 32-bit operand form interprets the bit offset as signed . A 64-bit operand could work around that but then run into
59.
▲
by
ack_complete
8mo ago
The VS debugger got an order of magnitude slower in the transition from VS6 to Visual Studio .NET. It's been sped up a bit but is still nowhere near as fast as the VS6 debugger at responding to step commands, debug output, or condition
60.
▲
by
ack_complete
8mo ago
Standard LibreOffice Writer doesn't have the issue for me either, only the version shipped in Collabora Office for Desktop.
More ›