Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
bigcheesegs
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
9 ms
·
31.
▲
by
bigcheesegs
7y ago
That may be the point, but it's not the premise. Even the title is based on this flawed idea. If the author wants to make a point, they can do so without trying to drive it with incorrect ideas.
32.
▲
by
bigcheesegs
7y ago
Yet again someone ignoring the line: > for which the Standard imposes no requirements. C89 had no requirements, C99 clarified that the line that followed was non-normative. The entire premise of this article is flawed.
33.
▲
by
bigcheesegs
7y ago
Apple Clang gets its own column because it doesn't align with the official LLVM release schedule, which is also why it doesn't use the upstream version numbers.
34.
▲
by
bigcheesegs
7y ago
The Model X and Model S do not have this camera.
35.
▲
by
bigcheesegs
7y ago
It's the overhead VS. passing a raw pointer. The itanium ABI says that std::unique_ptr has to be passed by address due to its special member functions (the ABI doesn't know if it stores a pointer to itself). Compilers have an attr
36.
▲
by
bigcheesegs
7y ago
The best part about Facebook's preprocessor (warp) was that it was slower than Clang ( https://news.ycombinator.com/item?id=7489532 ). But the preprocessor isn't what makes compiling C++ slow. It's a combinatio
37.
▲
by
bigcheesegs
7y ago
What do you mean by wild compiler hacks?
38.
▲
by
bigcheesegs
7y ago
It still causes confusion, even on the committee. stdlib is non ambiguous, short, and easy to say.
39.
▲
by
bigcheesegs
7y ago
Nothing in C++20 contracts requires any checking to be done at compile time. The only options currently required are runtime checking and no checking.
40.
▲
by
bigcheesegs
7y ago
The first example is handled by constinit (or whatever we end up calling it) and the second is handled by consteval, although it has to be put in a function.
41.
▲
by
bigcheesegs
7y ago
constexpr functions aren't restricted to compile time, they can also be used at runtime. Thus constexpr functions can show up in the final executable. Constexpr functions can also control what gets compiled in the first place. For e
42.
▲
by
bigcheesegs
7y ago
Yeah, on variable decls it does indeed mean const. It also means inline on functions and static data members (but not global variables).
43.
▲
by
bigcheesegs
7y ago
constexpr evaluation results are needed in the frontend long before LLVM IR ever comes into the picture. Also, people have done interesting things in constexpr that currently suffer from slow compile times: https://github.com
44.
▲
by
bigcheesegs
7y ago
That risk has nothing to do with this work. That's an inherent risk with compile time evaluation. C++ defines constant evaluation to be the same as normal evaluation, although C++20 is adding a way to tell when you're evaluating
45.
▲
by
bigcheesegs
7y ago
Google has been a contributor to LLVM for about 10 years, and a major contributor for most of that time. At no point have they tried to force something into LLVM that goes against the wishes of the community. They have always worked with t
46.
▲
by
bigcheesegs
7y ago
Correct. clang is always going to default to targeting whatever the platform ecosystem is. I don't see linux distros moving away from glibc any time soon. The notion that a LLVM libc would in some way make other libc's "sec
47.
▲
by
bigcheesegs
7y ago
A major issue with removing UB exploitation is that you've now created C , but each compiler implements a different C . It becomes harder to port code, and you end up with bugs that can be harder to catch, especially if don't con
48.
▲
by
bigcheesegs
7y ago
Implementation defined behavior isn't actually any easier to reason about. Compilers are free to choose "assumes this never happens" as their behavior, as there is no limit on what can happen. This is different from impleme
49.
▲
by
bigcheesegs
8y ago
Use a variant type like llvm::Expected.
50.
▲
by
bigcheesegs
8y ago
This has always been a problem in talking about modules in C++. Everyone has a different idea of what a module is. Currently every compiler except MSVC plans to make module files version locked. Different versions of the same compiler wil
51.
▲
by
bigcheesegs
8y ago
He was previously. The current EWG Chair is Ville Voutilainen.
52.
▲
by
bigcheesegs
8y ago
Modules are not a build system. You will still need a build system to build real C++ code.
53.
▲
by
bigcheesegs
8y ago
The idle checks all happen in the kernel scheduling code which runs on every CPU/core/hyperthread between doing real work. There isn't a separate core which hands out work or controls them. The kernel knows which CPUs are a
54.
▲
by
bigcheesegs
8y ago
Don't use reinterpret_cast for type-punning in c++, you'll end up with UB. You should instead use memcpy.
55.
▲
by
bigcheesegs
8y ago
The problem with this kind of approach is over time it removes the ability to use any other implementation. You are no longer using C, you are using <Implementation>C. This becomes a problem when a different implementation adds amazi
56.
▲
by
bigcheesegs
8y ago
> N.B. Accessing registers modified by the hardware may be treated as a multi-threaded application. Therefore, it is worth considering using std::atomic<T> instead of volatile T. This is incorrect. Compilers are allowed to reorder
57.
▲
by
bigcheesegs
9y ago
There's more to it than that. C++ is designed for implementations to produce fast code. "Leave no room between C++ and Assembly" has been a guiding principle of C++. This is not true of Python, and thus the engineering effo
58.
▲
by
bigcheesegs
9y ago
Rust is the first language I've seen that even has a chance though.
59.
▲
by
bigcheesegs
9y ago
It's by design that you need a meta-build system. Ninja build files were not designed to be written by hand, not even ninja itself has hand written ninja files.
60.
▲
by
bigcheesegs
9y ago
clang-cl is just a compiler. It relies on VS to provide the C and C++ standard libraries. VS 2017 has the filesystem library and it should work with clang-cl 6.
More ›