git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2] Make fetch-pack a builtin with an internal API

From
Theodore Tso <tytso@mit.edu>
Date
Jul 9, 2007, 14:40 UTC
Message-ID
<20070709144030.GE16032@thunk.org>
In-Reply-To
<200707091416.39949.andyparkins@gmail.com>
On Mon, Jul 09, 2007 at 02:16:35PM +0100, Andy Parkins wrote:
Show 13 quoted lines
> On Monday 2007 July 09, Theodore Tso wrote:
> > On Sun, Jul 08, 2007 at 10:39:41PM -0700, Junio C Hamano wrote:
> > > Are _identifiers with leading underscore Kosher thing to do, I
> > > wonder...  We do have ones with trailing ones (mostly qsort
> > > functions) and I think they are done that way for the sake of
> > > standards conformance.
> >
> > _[a-z]* is kosher for file scopes or function scoping:
> 
> Perhaps I'm reading it wrong but:
> 
> "All identifiers beginning with an underscore are reserved for ordinary 
> identifiers (functions, variables, typedefs, enumeration constants) with file 
                                                                      ^^^^^^^^^
> scope."
  ^^^^^^
> 
> Doesn't agree with what you've said.  I think that you _can_ use _[a-z]* for 
> labels or structure members - however, not within file or function scope.

I think the above does agree with what I said. It says that you can use functions, variables, typdefs, enumeration constants (not just labels or structure members) WITH FILE SCOPE. I.e., so long as it doesn't leak across a .o linkage. So one .o file can use a static _my_strdup, and another .o file can use a static _my_strdup, and they don't have to worry about multiply defined function conflicts, since they are static functions with file or smaller scoping.

And if it's safe to use a file-level static scoping, then obviously it would be safe to use a function-level static scoping.

Show 5 quoted lines
> However, the rule of thumb I've always used is "don't start identifiers with 
> underscore".  I can't think of a situation that would mean you have to use an 
> underscore to start an identifier - so why get into detailed worries about 
> where it's allowed and where it isn't.  Just don't use it.  The document you 
> linked to gives exactly this advice:

Yep, this is the safer thing to do if you don't want to remember the more complicated rule. But it's not *necessary*; no system library will use a single underscore followed by a lower-case letter, since that's reserved for programs for local file-level scoping. A system library will use for its private function identifiers that begin either a double underscore, or a underscore followed by an uppercase latter.

Regards,
							- Ted
Previous: Andy ParkinsNext: Florian Weimer
Message 8 of 10 in “Make fetch-pack a builtin with an internal API”
  1. Make fetch-pack a builtin with an internal APIDaniel Barkalow, Jul 9, 2007
  2. Junio C HamanoJul 9, 2007
  3. Daniel BarkalowJul 9, 2007
  4. René ScharfeJul 9, 2007
  5. Daniel BarkalowJul 9, 2007
  6. Theodore TsoJul 9, 2007
  7. Andy ParkinsJul 9, 2007
  8. Theodore TsoJul 9, 2007
  9. Florian WeimerJul 9, 2007
  10. Andy ParkinsJul 9, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.