I've done some searching around here and through several Google searches, and I'm not really seeing an answer to my question, so here we go...
Is there any sort of accepted/expected naming conventions specifically for libraries or just 3rd party units in general, insofar as naming them in such a way that they are easily identified as being from those units? I don't mean things like prefixing type names with "T" or the intended usage of "Get", "Set", "Do" and whatnot. I'm talking about how in the BaseUnix unit, most functions are prefixed with "fp", although I get the feeling that the only reason some of these units that ship with FPC that have use this kind of naming is because they are based on or translated from equivalent C headers that used the same or similar prefixing.
As an example of what I mean, for my own units that I've written for my own purposes, their names are prefixed with "gem" (gemutil, gemimage, gemaudio, gemtypes, gemmath, etc...), and the types, constants, global variables and functions inside them are also prefixed with "gem" or some variant in some way.
TGEM* for types (TGEMOpenGLWindow, TGEMDirectory)
gem* for global functions/procedures (gemAngle(), gemNormalizeGain())
GEM_* for constants (GEM_EXEPATH, GEM_RED_F)
I do this primarily so that I can identify what is coming from my own units, and also avoid naming conflicts (System.Move and ncurses.move come to mind). My naming style is pretty C-like, I like to think, simply because I learned my conventions from C and C++ before ever touching Pascal, and Pascal is pretty C-like itself in many ways.
I have a lot of units I've written to do things I couldn't find other units for, or to otherwise do them in a way that made more sense for some use cases, and I've been considering cleaning many of them up and putting them out there, on offer to whoever might happen across them and want to use them. I'd like them to be as user friendly as far as naming and coherency goes, though, before I do that.
Edit: I guess I should also ask if there are any good reasons to not name things this way. I could just not and then I or some hypothetical user could just unitname.function, but then in my head that still leaves the possibility of using the wrong function from the wrong unit, and also makes the code look inconsistent, specifying unit names in some places but not others. Maybe that's just one of my personal hang ups, what with being used to C++ namespaces (std::function, glm::vec3, etc...).