summaryrefslogtreecommitdiff
path: root/ROADMAP
blob: 4dd2b4ed4458776c40746aa29082ac85b7af39d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
APACHE 2.x ROADMAP:

Last modified at [$Date: 2002/09/28 17:33:31 $]

DEFERRRED FOR APACHE 2.1

    * Source code should follow style guidelines.
      OK, we all agree pretty code is good.  Probably best to clean this
      up by hand immediately upon branching a 2.1 tree.
      Status: Justin volunteers to hand-edit the entire source tree ;)

      Justin says:
        Recall when the release plan for 2.0 was written:
            Absolute Enforcement of an "Apache Style" for code.
        Watch this slip into 3.0.

      David says:
        The style guide needs to be reviewed before this can be done.
        http://httpd.apache.org/dev/styleguide.html
        The current file is dated April 20th 1998!

        OtherBill offers:
          It's survived since '98 because it's welldone :-)  Suggest we
          simply follow whatever is documented in styleguide.html as we
          branch the next tree.  Really sort of straightforward, if you
          dislike a bit within that doc, bring it up on the dev@httpd
          list prior to the next branch.

WORKS IN PROGRESS (PERHAPS DEFERRED FOR 2.1 or 3.0)

    * revamp the input filter syntax to provide for ordering of
      filters created with the Set{Input|Output}Filter and the
      Add{Input|Output}Filter directives.  A 'relative to filterx' 
      syntax is definately preferable.

    * Platforms that do not support fork (primarily Win32 and AS/400)
      Architect start-up code that avoids initializing all the modules 
      in the parent process on platforms that do not support fork.

    . Better yet - not only inform the startup of which phase it's in,
      but allow the parent 'process' to initialize shared memory, etc,
      and create a module-by-module stream to pass to the child, so the
      parent can actually arbitrate the important stuff.

    * Replace stat [deferred open] with open/fstat in directory_walk.
      Justin, Ian, OtherBill all interested in this.  Implies setting up
      the apr_file_t member in request_rec, and having all modules use
      that file, and allow the cleanup to close it [if it isn't a shared,
      cached file handle.]

    * The Async Apache Server implemented in terms of APR.
      [Bill Stoddard's pet project.]
      Message-ID: <008301c17d42$9b446970$01000100@sashimi> (dev@apr)

        OtherBill notes that this can proceed in two parts...

           Async accept, setup, and tear-down of the request 
           e.g. dealing with the incoming request headers, prior to
           dispatching the request to a thread for processing.
           This doesn't need to wait for a 2.x/3.0 bump.

           Async delegation of the entire request processing chain
           Too many handlers use stack storage and presume it is 
           available for the life of the request, so a complete 
           async implementation would need to happen 3.0 release.

    * Add a string "class" that combines a char* with a length
      and a reference count.  This will help reduce the number
      of strlen and strdup operations during request processing.
      Including both the length and allocation will save us a ton 
      of reallocation we do today, in terms of string manipulation.

        OtherBill asks if this is really an APR issue, not an HTTPD issue?