httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roy T. Fielding" <>
Subject Re: vetoing hide.h
Date Wed, 01 Apr 1998 06:58:37 GMT
>This means that old modules have to include this new header and set
>this EXPECTED_APACHE_API, then they supposedly (unless 
>EXPECTED_APACHE_API is a big lie) can't use new things that are added
>anyway, so then module authors will have to go through and rename
>all their functions anyway instead of using an old static
>version of the API forever, and then they have to do the same thing
>for 2.0, and we have all the bickering that goes along with trying
>to set this up, and when that is all done I don't see us ending up 
>with anything better than what we have right now with hide.h.

Apparently you didn't consider what the default would be if
EXPECTED_APACHE_API is first checked to see if it is defined,
and if not the compatibility file selects the API corresponding to 1.3b5.
The include can be in httpd.h -- the only effective difference is that
the core uses visible symbol names and the source file declares up-front
what it is expecting.

Even if there is some future change that makes such a compatibility
adjustment impossible (or just not worth our effort), we can at least
have the source document what needs to be fixed in the module.
That's a hell of a lot better than what the user currently gets when
they download and compile the source to an old module.

>Note we _can't_ just use one prefix without having it become
>completely meaningless because it will include all the non-static
>functions that aren't part of the API.  That will effectively remove
>whatever name we choose from future use to avoid major brain
>grenades when a new API does come.

Yes, except that the only thing I want "meaningful" in the prefix 
is the symbol-collision-avoidance.  I happen to believe that all of
our external symbols define the API, whether we like it or not,
and the right way to segregate functionality is to either make it
static or place it in an exclusive library.  The rest of your concerns
are already present in HIDE=yes (it is just invisible to you, but
not to people like me who occasionally have to play with Ada95 interfaces
and the like).


View raw message