httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Stoddard" <>
Subject Re: A couple of important features for 2.0
Date Mon, 20 Mar 2000 21:06:02 GMT

> Well, there are a couple of things we can do to try to keep modules
> backwards compatable.
> 1)  Add some void space at the end of internal structures to allow them to
> grow without breaking binary compatability.
This would help but is not in itself a solution.

> 2)  Freeze the current API.  When a new feature is required, add a new
> function instead of modifying the old one.
This with 1) helps even more. Bloats the code, stifles creativity and just
doesn't fit in with open source development philosophy. If an API is just
not right, it should be changed.  Maintaining deprecated APIs is common
practice in commercial software development but there is a price to pay in
complexity. And complexity is an open source project killer, IMHO; it raises
the project entry barrier and bugs increase non-linearly with complexity.

> 3)  Try to make the API dynamic.  (I'm not sure if this is even feasible).
> Basically, the module registers the level of the API that it expects, and
> we try to accomodate this.
Hummm... Looking forward to your thoughts...

> I'm still looking into this issue.

Why not create a stable API designed for those who cannot or do not wish to
recompile modules (ISAPI, NSAPI, et. al)?  It will not be as functional, but
maybe we could capture 90% of the functionality with stable function
wrappers. And of course this API would NOT allow frobbing internal
structures directly. I think Rasmus was, at one time, interested in this.

All of these options are less than satisfying. Bleh.


View raw message