On Jul 8, 2009, at 2:17 PM, Eugene Loh wrote:

In https://svn.open-mpi.org/trac/ompi/wiki/CodingStyle , there is
mention of "the prefix rule."  What is this rule?


In components, you have to prefix all public symbols with "<layer>_<framework>_<component>", where <layer> is one of "mca", "ompi", "orte", or "opal" ("mca" used to be used, but it has fallen out of favor; "ompi", "orte", and "opal" are a bit more common these days -- but still the bulk of existing code probably uses "mca").

Let me ask specifically this.  If I look at
https://svn.open-mpi.org/source/xref/ompi_1.3/ompi/mca/btl/sm/btl_sm_endpoint.h #46 , I see a declaration for "void btl_sm_add_pending". Should that really
have an "mca_" appended to the name?


Prepended. If it's a public symbol, yes. If it's not public, then it can be named whatever you want.

Don't worry about the
particulars. I'm about to change this code. I'm just asking about the
principles.  Because this function is callable from a file other than
where it is defined, should the prefix be "mca_btl_sm_" or does
"btl_sm_" suffice?

Similarly, I see a btl_sm_pending_send_item_t type.  Should that also
have mca_ appended?

Ouch, and this one:  sm_fifo_t.  (This one is my fault.)  I assume it
should be mca_btl_sm_fifo_t, yes?


Correct on all counts -- when in doubt, add the prefix. It never hurts to add the prefix.

Most plaforms will obey the DECLSPEC stuff these days, so this is mostly moot for non-DECLSPEC'ed symbols. But there probably are a handful of platforms/compilers out there that make symbols public even though we don't DECLSPEC them. That being said, I haven't checked in a while to know what the status is in this regard (e.g., if only ancient compilers don't obey DECLSPEC, etc.).

P.S.  Shouldn't the "prefix rule" be explained in the "coding style"
twiki page?



Why?  Then we'd be *clear*...

:-p

I'd volunteer to add something, but I'm heading out on vacation tomorrow afternoon, and have a bagillion things to finish before then -- would you mind adding something?

--
Jeff Squyres
Cisco Systems

Reply via email to