Advertisement · 728 × 90

Posts by Vito Gamberini

I mean you dont have to do all libraries modules vs all libraries headers. A library dep that supports modules, use modules. A library that doesn't, use headers

Don't mix and match for any given library, no reason for it

And it can be made to work but requires understanding global module semantics

1 week ago 0 0 0 0

Now I have to track the correct 50-odd headers from the STL, at which point I would just use them instead. Somewhat defeats the purpose of the exercise for me personally.

1 week ago 0 0 0 0

EDG still doesn't support modules, which means the default language server in VSC cpptools doesn't. clangd's support is experimental.

There's no reason to port your deps if you don't want to. That's orthogonal. Modules aren't an all-or-nothing proposition.

1 week ago 0 0 1 0

They work fine, intellisense is the big blocker.

Once you have a setup which works with them they're genuinely very pleasant to use. I won't be switching back for my personal projects.

1 week ago 0 0 1 0

You're in the worst case scenario. Medium number of files to scan, but already optimized to minimize the cost of preprocessing headers so you notice the perf hit of running the scanner.

That's why we added the flag to turn it off.

1 week ago 0 0 0 0

You hate to blame it all on Mormonism, but I've never found a better explanation for how Sanderson believes people work

1 week ago 21 0 1 0

The amount of "10 year C++ expert"s who don't know to invoke a compiler, or how PATH works, or how code is built in anything but the most abstract terms, remains concerning to me.

"This piece of shit build system always fails!"
"What's breaking?"
"I don't know"

Dog how is that not a skill issue

2 weeks ago 0 0 0 0

Once you lose control of what kind of environment your code is building in, where deps come from, what compiler features are available, etc, everything gets stranger from a build system point of view

Games, embedded, scientific, fintech, these fields are all use C++ but often talk past one another

2 weeks ago 0 0 0 0

lmao

The weirdest thing about games is that the developer is the one who builds their own code and ships the binary to the end user

That's actually a very odd state of affairs for much of the ecosystem. Math library people do not produce builds for every US supercomputer and couldn't if they tried

2 weeks ago 2 0 2 0
Advertisement

Of course, use whatever you want. If you only need to build in Visual Studio for Windows boxes, VS Projects remain a great solution.

That's a niche, and there are many others. The weird stuff exists in far more and on far stranger systems.

2 weeks ago 0 0 1 0

If C++ had a build system pre-standardization this would be the answer. Now everything is in conversation with the billions of existing lines of code.

Do write your own build system for your own new projects which enforces all the restrictions you like. CMake is for the existing weird stuff.

2 weeks ago 0 0 1 0

The entire evolution of presets have been "customer asked for presets to do this specific thing and are willing to pay for it" they have never once been a "we have a plan for presets and want them to work in this forethought and well designed way".

3 weeks ago 2 0 1 0

I'm not 100% what this is referring to but the answer is always "Nobody at Kitware uses presets and the feature has no upstream champions".

Whatever deficiencies exist aren't planned or "Won't Implement", they're "Don't Know" / "No manpower to work on it".

3 weeks ago 1 0 1 0

I would like to get off pkg-config's wild ride

1 month ago 0 0 0 0

Because GCC and Clang omit the call to the initialization symbol if the compiler knows (from the interface's BMI) that the initialization symbol is empty

This means you don't get a link error for leaving it off the link line, but relying on optimizations for build correctness is a code smell IMHO

1 month ago 0 0 0 0

The blog makes the same mistake we did with import std, you can never discard the generated object file.

It always needs to be linked for the module initialization symbol. Today, stdlibs don't ship this symbol. The question of "who is responsible for building/linking std.o" is unsolved.

1 month ago 0 0 1 0

To work in the C++ ecosystem you need to know how everything works. You need to know how your compiler works, linker, build system, dependency discovery, PATH, the shell, platform ABI, and more. Everything.

Problems arise when you try to skip something.

That's it. It's not good, but it is.

1 month ago 3 0 0 0

Prefixing "delete" with "::" limits it to looking up the dealloc func in the global namespace, rather than in the scope of the ptr's type

Since you never call the class dealloc func (which would call the global dealloc func with the correct size), the global dealloc func is used with sizeof(*ptr)

1 year ago 1 0 0 0
Advertisement

So it almost certainly isn't generating any value, but those also aren't the words he said

1 year ago 3 0 1 0

It's deeply worthless. Dangerous even if the user isn't fluent in the subject they're using it for, because some level of fluency is sometimes necessary to identify how bad its codegen is.

After a month of working with Copilot I'm forced to assume anyone singing its praises is a grifter.

1 year ago 3 0 0 0

Trying to think of Linux as a consumer ecosystem is fundamentally broken.

It's not an Apple or Android device, it's not a packaged product. It's a building block used by professionals.

It's like going to a lumber yard and complaining about the fracturing of the wood ecosystem.

1 year ago 1 0 0 0