Well, it has been suggested that we create a new "APR utility" library. The discussion on that *just* opened today. It looks like we have several +1 on the concept, and I posted an outline of my thoughts on it.
Presuming nobody pops up with a "Dood. Big, Bad Idea.", then we'll probably start on that path. How soon will depend a lot on what kind of discussion occurs when people wake up tomorrow :-) In any case... what I'm saying is that your idea may have merit, but it is probably easier to start with just one more library and go from there. Cheers, -g On Tue, Nov 28, 2000 at 06:45:57PM -0800, Cliff Woolley wrote: > > --- "William A. Rowe, Jr." <[EMAIL PROTECTED]> wrote: > > But any which way, we should be providing these simple data types to > > make c coding easier and more portable across platforms. > > I was thinking the same thing. > > At the risk of adding too much complexity, let me make a suggestion. Part of > the > problem in all of this is the confusion about what goes where because of > unclear > definitions created by an attempt to stick too broad a set of functionality > into too > few packages. What we have now, obviously, is: > > Apache > | > APR > > Duh. The problem, though, is what to do with the stuff that we want to > separate > from Apache such that it can be used by other packages if it isn't a perfect > fit for > APR (or over-extends the definition of APR, depending on how you look at it). > > So aputil was suggested on the Apache list to sit between Apache and APR and > to be > sort of a kitchen-sink of all the non-Apache specific but non-APR-ideal > functionality. > > But what goes in aputil versus Apache versus APR is unclear, because there's > no > consistency there. (Among the suggestions for those of you who weren't > listening on > new-httpd: a generic dbm interface; buckets, rings, SHA1, base64, URI, and > XML from > Apache; tables, arrays, and hashes from APR.) > > Apache > | > APUTIL (dbm, buckets, rings, SHA1, base64, URI, XML, and > | maybe tables, arrays, and hashes) > | > APR (fundamental data types (eg apr_uint32_t), pools and whichever of > the above are needed by APR) > > The "whichever of the above are needed by APR" seems artificial to me... that > might > change over time. Say we shift arrays up into aputil for now, but then really > really need them later in APR. They move back down. UGH. > > Ryan said that his vision of aputil had been that it would be a sort of > User-Agent > utility library for things such as URI parsing. base64 and SHA1 might also > fit in > with that. > > As for the DBM thing, if you ask me that's a portability issue (not OS > portability, > but DBM-implementation portability), so it should be at least as low as the > APR > layer. > > I say "as low as" because I think there should be four layers: > > Apache > | > APUTIL (URI, XML, SHA1, base64, (maybe MD5?)) > | > APR ("advanced" fundamental data types (eg apr_file_t), "advanced" > buckets) > | > APRDATA ("basic" fundamental data types, pools, tables, > arrays, hashes, "basic" buckets, rings) > > > Obviously this still leaves a little room for discussion, but at least to me > it > seems to make things a little more straight-forward. > > Pros: > (1) APRDATA is standalone, so even really simple programs can benefit from > the > nice programming environment it provides (eg pools, etc). Also, all of these > data > structures get to live in the same place. > (2) APR becomes much more focused: Portability as opposed to Portable > Code... this > is largely I/O, of course, but also DSO's, the translation stuff and all of > the > other APR goodies. > (3) APUTIL is a somewhat more sensible set of functionality. > > Cons: > (1) Obviously some functionality of the data structures (eg file, mmap, > socket, > and pipe buckets) is dependent upon APR. Therefore only the basic buckets go > in > APRDATA... bucket types that depend upon APR functionality are APR extensions > to > APRDATA. That's the whole point of extensible buckets, but do we want to > have some > buckets defined in one place and others in another place? Call this a > potential > con. > (2) Yet ANOTHER layer... this might be getting too complicated. > (3) Other problems I haven't thought of yet (I'm sure you all will. ;-) > > So APRDATA and APUTIL can be separate libraries (separate configuration and > all for > easy extrication), but APRDATA can be packaged with APR and APUTIL with > Apache. > > What do people think? > > --Cliff > > __________________________________________________ > Do You Yahoo!? > Yahoo! Shopping - Thousands of Stores. Millions of Products. > http://shopping.yahoo.com/ -- Greg Stein, http://www.lyra.org/