On Mon, Jul 15, 2002 at 12:34:52AM -0400, Melvin Smith wrote:
> At 09:27 PM 7/14/2002 -0700, Brent Dax wrote:
> 
> Wow, Brent lives! :)
> 
> >Here's the rules, roughly as they stand right now:
> >
> >        -Functions start with Parrot_[a-z] or just [a-z].
> >        -Typedefed names start with Parrot_[A-Z] or just [A-Z].
> >        -Macros and constants start with PARROT_[A-Z] or just [A-Z].
> >        -Struct names are of the form parrot_[a-z_]+_t.
> >
> >Perhaps we should change the rules to this:
> >
> >        -Public functions start with Parrot_[a-z].
> >        -Typedefed names start with Parrot_[A-Z] or just [A-Z].
> >        -Macros and constants start with PARROT_[A-Z] or just [A-Z].
> >        -Struct names are of the form parrot_[a-z_]+_t.
> >        -Private functions start with parrot_[a-z] or just [a-z].
> >
> >If people want that scheme, speak now or forever hold your peace.  :^)
> >
> ># Here's four:
> >#
> >#   Parrot
> >#   parrot
> >#   _Parrot
> >#   _parrot
> >#
> ># Here's two more:
> >#
> >#   __Parrot
> >#   __parrot
> >
> >The last four are reserved by various C and C++ standards.

So are type names ending in _t, so that makes the Struct names rule above
naughty too

> So, I say use Parrot, _Parrot, or __Parrot with abandon and forever put
> this ANSI/POSIX collision argument to bed.

Although I agree it is unlikely we're going to collide, unless we encounter
a POSIX standard parrot.
(Camels have been jokingly described as a horse designed by a committee, so
 what would a parrot designed by committee look like?)

On Mon, Jul 15, 2002 at 11:26:34AM -0700, Brent Dax wrote:

> If at some point in the future, we no longer need Parrot_time, I don't
> think we should have to leave it in for backwards compatibility with
> embedders.  Perhaps we should export it *if they ask for it somehow*,
> but not by default, and not in a way that implies that it'll always be
> there till the end of time.

Which is why I think it would be really useful to be damn clear in what
functions are part of the public API, and which are private and may go away,
so that anyone with a copy of grep and nm could work out the public API by
filtering the list of functions defined by the parrot library.
(As we can't hide functions that need to be seen in multiple parrot object
files, but aren't for public consumption)

Nicholas Clark
-- 
Even better than the real thing:        http://nms-cgi.sourceforge.net/

Reply via email to