u/Minimonium

1,268 post karma · 61.3k comment karma · joined Apr 2015

Minimonium

Of course, and just to be clear irrespectively of contract stuff no bad feelings, I just really enjoy the technical discussion and always appreciate it.

For org stuff I do have some insider info, but of course it's even more secrecy than usual wg21 so you can only really expect someone to tell about facts in private. :)

Minimonium

Mostly from talking to people who either were or around. I did not make a statement on all, and I do not have information on all.

Minimonium

I refuted it by pointing out the number of people representing nay-saying NBs and how it contradicts your false generalisation over "those invested".

But instead of addressing the point you went into a rant about banning people. A way to avoid the topic.

Minimonium

On well defined input - Contracts have the same effect no matter the mode or mixing of such. I am really not sure what you're suggesting by implying Contracts won't do what we want them to do.

The point about build configuration is also completely just strange. For trivial release/debug switch build systems nothing will change, for more decent systems it's just another knob among dozens others. Like it's no different from a library having its own knob for its own custom macro assert today - just that macro assert is more dangerous.

Minimonium

Just admit that you said nonsense about "42% of those invested" and move on

Minimonium

These 9 are mostly micro 1-3 person NBs took over by activitists, with some that never even contributed anything and I very much doubt they ever will. While the total registry of participants across all NBs is in the hundreds.

Minimonium
  1. I was informed by Ville that we have ways to detect ODR violations in builds, which is one of the reasons he did not like mixed mode, because it makes it allegedly harder to detect as different contract modes are compatible.
  2. If the person struggles with ODR violations then they either do not use the tools to catch them, or they solve build errors.
  3. A popular alternative, propomoted both by you and Ville, is to use for example library solution for contracts (and let's say for "profiles" as they suffer from the same issue) that would encode it in ABI. Which would not solve the problem of struggling if build errors are problem.
  4. If the person does not use tools to detect ODR violations and they occur - then their builds are unsound. Even on correct inputs they have broken programs.
  5. Contracts will make their builds sound.

Seems very crystal clear to me here that Contracts would actually help that poor person who was misled by FUD.

Minimonium

Source?

Minimonium
  1. Aggressively break down PRs into smaller ones. Much easier to read 1k line change it if it's the same exact change.
  2. Do not push stacked PRs for review at all until everything underneath is merged. Contributors should prepare PRs for merge, any merge issues should go back to contributors.
  3. Have a very neat guide to points of attention in PR descriptions. Text should not be miserable to read, either hand written or unslop/humanizer with show-me skills.
  4. All considerations and their motivations should be appended so a reviewer can Ctrl+F anything fishy.
  5. Alternative considerations or upstream references should be referenced in appendix as well - the goal is to reduce back and forth with reviewer.
  6. Of course, REVIEW YOUR OWN PRS.
Minimonium

This statement collapsing is not even needed. From both practical and theoretical standpoint there is no issue in split statements under any mode.

Minimonium

The issue is solved tho

Minimonium

What?

Minimonium

I used to worked in avionics until recently and we used full graph analysis like that. Firstly, it's impossibly almost prohibitively slow even with modern SMT solvers. Secondly, its usefulness was questionable as the main issue was to reduce the amount of noise rather than get actual value. Full analysis for C++ just sucks.

Minimonium

Sigurno postoji zakon koji se na njega odnosi tako da policija i sudovi bi mogli da obave svoj posao? Mislim ako želiš da se boriš protiv korupcije, vladavina prava je osnova društva. Čak i najgori monstrumi moraju da odgovaraju pred zakonom?

Minimonium

NBs are not chosen uniformly at random from the big pool of "C++ experts".

Minimonium

That's fine, I have plenty of experience myself on cross platform depending management. Tooling wise nothing would change for you. We know what happens when a contract is violated. The "miss-match" scare is born out of misunderstanding of the proposal.

Minimonium

There is no relation between NBs and "large majority of C++ experts".

Minimonium

This is a rather sad example of FUD success

Minimonium

I agreed with your position and stochastic checking is one of the realms of observe (which, to be clear, is not a wg21 invention but an explicit requirement from big corps like Apple to have).

I just addressed the need to assume any combination of modes - you do not.

Minimonium

I consider such position reductionist.

You do no need to consider any mode when writing asserts. A contract violation even if it was never executed - is still a contract violation.

It is similar to claiming that "assert(this != nullptr)" is required everywhere because of some niche shenanigans.

Minimonium

WG21 doesn't work on that stuff

The "leadership" has a history of using the bureaucratic process to shut down any attempts to do it (the ecosystem papers case). Similar to what the same "leadership" did with Contracts. Similar to the same "leadership" that pushes for clearly inferior NIH work.

A third-party reader could assume by mistake based on your words that WG21 as a whole just does not have anyone interested in doing tooling work, or be under false impression that "leadership" somehow pushed for Contracts.

Minimonium

My opinion is if your technical discussion was done right, you don't need to do politics.

I admire your idealistic view, but anything non-trivial needs choices where any one would not be popular at least to someone. And any tradeoff is an ammo to the sore party to spread FUD among an uninformed crowd which unfortunately happened here. And if the sore party happens to have a lot of political connections - then any outcome of a settled technical discussion is now a massive controversy for no good reason.

Why doesn't WG21 concentrate exclusively on that stuff?

I honestly do not understand your view here then because I would assume it is fairly public knowledge (at least among WG21 regulars) that the "leadership" is hostile to anything tooling related?

The same "leadership" that actively pushes for so-called "profiles" now that completely rejects thirty to forty years of existing practice behind us, a completely amateurish pet project of people who fell behind modern CS research, and is actively vibe coding unsound code to present as a "proof of implementation"?

Minimonium

It is not necessary a malicious compilation - source patching, while undesirable, is extremely common in package management because some poorly maintained projects encode build-level configuration (like NDEBUG here) in their source or build script code effectively and unexpectedly breaking their downstream consumers.

Minimonium

Your example is actually the most trivial to hijack (just supplant the header), you could make a better example with undef just before the usage but it can be patched as well.

Minimonium

The build system can... just patch it?