-
-
Notifications
You must be signed in to change notification settings - Fork 413
fix Issue 14464 - coverage merge doesn't work #1225
Conversation
|
Added a commit to perform race free updates of coverage files. |
f186d4d to
9cdb8c9
Compare
|
Race free merging of coverage files finally works on all platforms. |
|
Looks great, but I'm a bit perturbed by the automatic merging. My usage is along the lines of: and your change would make it: which is annoying. |
|
Let me quickly move the coverage settings to core.runtime, then it's less annoying to turn merging on. |
|
Done. |
|
Ping @WalterBright |
|
3 weeks already, anyone? |
src/core/runtime.d
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the point of these trivial wrappers?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Documenting the functionality.
Some extern C functions buried in the runtime don't qualify as API.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand this justification at all.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
???
Nobody knows that coverage generation can be configured.
If there are function that allow to change the behavior, we need to make them accessible and document them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you're wondering why I didn't just document the declarations for dmd_coverSourcePath?
Well b/c they have arcane names that don't fit into the rest of core.runtime's API, and I wanted to preserve the extern(C) names, in case someone is already using that functions.
I don't really like the namespacing Runtime struct either, but mixing different styles is worse.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I was wondering why. Thanks for the explanation. But I don't think it justifies creating yet more names. I really, really do not want Phobos/Druntime to become a bloated swamp of same-only-different names. We've been through this discussion of "arcane" names before, and the pros and cons of endless renamings. Let's stop doing it.
- fix parsing of existing .lst file - use append semantics (create or merge with existing .lst file) - enable merge by default - some code cleanup (reuse buffers, log10, foreach, min/max)
|
Anything left @WalterBright? |
|
@MartinNowak please do not add do-nothing one-liners that forward from Annas to Caiaphas. There are a few odd names in druntime, but no need to add yet another layer on top of those. Let's leave them be. Getting the right recommendations fostered for the larger set of contributors must start with the leadership observing them. Thanks. |
|
@andralex: I agree, but I think this point is irrelevant here. The functions discussed here are in |
|
Exposing this in |
The trailing ; means it is a declaration, not a definition. A wrapper is not required. |
|
Okay, I'll do nothing but smile and move on. Move on from D. |
|
@ibuclaw: You have a point there, although the functions could certainly be versioned off. Maybe a different module would be better? Or stick with with the "hidden" functions despite all their shortcomings, but then we'd need to make up for that with much better documentation than usual. |
|
What's all the discussion about? There are 3 internal functions that need to be documented and made available for usage and it just makes sense to do that in the same form as the rest of the core.runtime API. |
So any suggestion on how to deal with this @ibuclaw? Apparently we need the same settings for LDC. Maybe add assertions or better make them noops? |
Those functions arent't currently exposed and I still explicitly did not rename them, not sure why you're making that argument.
That's not true for our static libraries (we only link used functions) and dynamic libraries (they contain all code). We could also use an alias, but that's worse for documentation. It is simply an API decision, and as the GDC/LDC discussion shows |
|
@MartinNowak maybe |
|
Please, take the wrappers out. |
|
Done |
|
Thanks! |
|
Auto-merge toggled on |
fix Issue 14464 - coverage merge doesn't work
Issue 14464 – coverage merge doesn't work