Conversation
What's the purpose? It makes even less sense in company with "using namespace Firebird" everywhere. It looks like you just wanna to kill every open PR with endless merge conflicts and build errors. |
|
Adriano please in a few words - why is "Put all namespaces inside the Firebird namespace" needed? |
This has been discussed more than one time. Did you see any other software written that uses many top level namespace? Not only in C++... Did you think is correct to need to use :: Firebird everywhere outside common because it's well know fact that headers should not use Did you think it's correct to have part of the software not using namespaces and that adding namespace to it in the way they were being used would make point above even worse? |
|
The sole purpose of namepaces is preventing conflict of names. Including everything into single namespace (global namespace with I wonder: was this PR made using AI? |
|
Alex and others core developers:
In both times part of the proposals was what just I did here and that structure of namespaces had positive (certainly not negative) comments by Dmitry at least. Or maybe the question is that 15 years was not sufficient time for the discussion to fully happen? :) |
IIRC (I haven't looked into this PR yet, so Adriano please correct me if I'm wrong), it's not about moving everything into a single |
Yes, but I see no difference in this case. Effectively from code POV "combining every existing things under single PS: If you are annoyed by typing |
Of course. C++:
boost:
You may start looking others libraries (in C++, C#, Java) and you will see the same pattern. It would be difficult to find something like Firebird is doing. |
Keyword is "libraries". Firebird is an application, not a library. |
|
C#:
This is correct and common schema used to avoid extra qualification of names inside the same software package. I can't agree with any argument against this, sorry. What is discussable is volume of changes. For that, I only re-indented header files part with prototypes that already had the removing of About forks and old branches, well, Firebird must evolve. Shared metadata cache had a lot of changes too, so should it be prohibited to be done? Schemas the same. |
|
Metadata cache was well localized and caused almost no conflicts. Schemas was pain in ass but really affected mostly just database queries. Both of them bring valuable features to Firebird that affect user experience. This PR has no such value and is incomplete: if you are so fond of namespaces, you also had to cleanup old prefixes that served the same purpose, but you keep them. This end up in stupid PS: Years ago I made the same mistake, submitting a big patch just to minimize forward declarations. That time Claudio pointed me to this mistake and I'm thankful to him for this lesson. |
Put all namespaces inside the Firebird namespace.
Avoid qualification of namespace when inside it or in children namespaces.
Put *_proto.h headers in namespaces.