]>
Commit | Line | Data |
---|---|---|
0200214b RM |
1 | Open jobs for finishing GNU libc: |
2 | --------------------------------- | |
76ebfd75 | 3 | Status: September 2002 |
0200214b RM |
4 | |
5 | If you have time and talent to take over any of the jobs below please | |
2eb45444 | 6 | contact <bug-glibc@gnu.org>. |
0200214b RM |
7 | |
8 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
9 | \f | |
10 | [ 1] Port to new platforms or test current version on formerly supported | |
11 | platforms. | |
12 | ||
9d187dd4 UD |
13 | **** See http://www.gnu.org/software/libc/porting.html for more details. |
14 | ||
0200214b RM |
15 | |
16 | [ 2] Test compliance with standards. If you have access to recent | |
17 | standards (IEEE, ISO, ANSI, X/Open, ...) and/or test suites you | |
18 | could do some checks as the goal is to be compliant with all | |
19 | standards if they do not contradict each other. | |
20 | ||
21 | ||
34b402e5 UD |
22 | [ 3] The IMHO opinion most important task is to write a more complete |
23 | test suite. We cannot get too many people working on this. It is | |
24 | not difficult to write a test, find a definition of the function | |
25 | which I normally can provide, if necessary, and start writing tests | |
26 | to test for compliance. Beside this, take a look at the sources | |
27 | and write tests which in total test as many paths of execution as | |
28 | possible. | |
29 | ||
30 | ||
31 | [ 4] Write translations for the GNU libc message for the so far | |
0200214b RM |
32 | unsupported languages. GNU libc is fully internationalized and |
33 | users can immediately benefit from this. | |
34 | ||
35 | Take a look at the matrix in | |
2eb45444 UD |
36 | ftp://ftp.gnu.org/pub/gnu/ABOUT-NLS |
37 | for the current status (of course better use a mirror of ftp.gnu.org). | |
0200214b RM |
38 | |
39 | ||
34b402e5 | 40 | [ 8] If you enjoy assembler programming (as I do --drepper :-) you might |
0200214b RM |
41 | be interested in writing optimized versions for some functions. |
42 | Especially the string handling functions can be optimized a lot. | |
43 | ||
44 | Take a look at | |
45 | ||
46 | Faster String Functions | |
47 | Henry Spencer, University of Toronto | |
48 | Usenix Winter '92, pp. 419--428 | |
49 | ||
d41c6f61 UD |
50 | or just ask. Currently mostly i?86 and Alpha optimized versions |
51 | exist. Please ask before working on this to avoid duplicate | |
52 | work. | |
0200214b RM |
53 | |
54 | ||
993b3242 | 55 | [11] Write access function for netmasks, bootparams, and automount |
26761c28 | 56 | databases for nss_files and nss_db module. |
78b5ba3e RM |
57 | The functions should be embedded in the nss scheme. This is not |
58 | hard and not all services must be supported at once. | |
d41c6f61 UD |
59 | |
60 | ||
26dee9c4 UD |
61 | [15] Cleaning up the header files. Ideally, each header style should |
62 | follow the "good examples". Each variable and function should have | |
63 | a short description of the function and its parameters. The prototypes | |
64 | should always contain variable names which can help to identify their | |
65 | meaning; better than | |
66 | ||
e4cf5229 | 67 | int foo (int, int, int, int); |
26dee9c4 UD |
68 | |
69 | Blargh! | |
2ad4fab2 | 70 | |
e4cf5229 UD |
71 | *** The conformtest.pl tool helps cleaning the namespace. As far as |
72 | known the prototypes all contain parameter names. But maybe some | |
73 | comments can be improved. | |
74 | ||
31604a65 | 75 | |
ff152e3f UD |
76 | [18] Based on the sprof program we need tools to analyze the output. The |
77 | result should be a link map which specifies in which order the .o | |
78 | files are placed in the shared object. This should help to improve | |
79 | code locality and result in a smaller foorprint (in code and data | |
80 | memory) since less pages are only used in small parts. | |
81 | ||
31604a65 | 82 | |
ff152e3f UD |
83 | [19] A user-level STREAMS implementation should be available if the |
84 | kernel does not provide the support. | |
85 | ||
b85b1334 UD |
86 | *** This is a much lower priority job now that STREAMS are optional in |
87 | XPG. | |
88 | ||
31604a65 | 89 | |
ff152e3f UD |
90 | [20] More conversion modules for iconv(3). Existing modules should be |
91 | extended to do things like transliteration if this is wanted. | |
92 | For often used conversion a direct conversion function should be | |
93 | available. | |
94 | ||
31604a65 | 95 | |
ff152e3f UD |
96 | [21] The nscd program and the stubs in the libc should be changed so |
97 | that each program uses only one socket connect. Take a look at | |
76ebfd75 | 98 | http://people.redhat.com/drepper/nscd.html |
59c3f294 | 99 | |
31604a65 UD |
100 | An alternative approach is to use an mmap()ed file. The idea is |
101 | the following: | |
102 | - the nscd creates the hash tables and the information it stores | |
103 | in it in a mmap()ed region. This means no pointers must be | |
104 | used, only offsets. | |
322d037d UD |
105 | OR |
106 | if POSIX shared memory is available use a named shared memory | |
b85b1334 | 107 | region to put the data in |
31604a65 UD |
108 | - each program using NSS functionality tries to open the file |
109 | with the data. | |
b85b1334 | 110 | - by checking some timestamp (which the nscd renews frequently) |
31604a65 UD |
111 | the programs can test whether the file is still valid |
112 | - if the file is valid look through the nscd and locate the | |
113 | appropriate hash table for the database and lookup the data. | |
114 | If it is included we are set. | |
115 | - if the data is not yet in the database we contact the nscd using | |
116 | the currently implemented methods. | |
117 | ||
118 | ||
67479a70 UD |
119 | [23] The `strptime' function needs to be completed. This includes among |
120 | other things that it must get teached about timezones. The solution | |
121 | envisioned is to extract the timezones from the ADO timezone | |
122 | specifications. Special care must be given names which are used | |
123 | multiple times. Here the precedence should (probably) be according | |
124 | to the geograhical distance. E.g., the timezone EST should be | |
125 | treated as the `Eastern Australia Time' instead of the US `Eastern | |
126 | Standard Time' if the current TZ variable is set to, say, | |
127 | Australia/Canberra or if the current locale is en_AU. | |
dfd2464b | 128 | |
31604a65 UD |
129 | |
130 | [25] Sun's nscd version implements a feature where the nscd keeps N entries | |
131 | for each database current. I.e., if an entries lifespan is over and | |
132 | it is one of the N entries to be kept the nscd updates the information | |
133 | instead of removing the entry. | |
134 | ||
135 | How to decide about which N entries to keep has to be examined. | |
136 | Factors should be number of uses (of course), influenced by aging. | |
137 | Just imagine a computer used by several people. The IDs of the current | |
138 | user should be preferred even if the last user spent more time. | |
69c7e1dd UD |
139 | |
140 | ||
481b550f UD |
141 | [27] We need a second test suite with tests which cannot run during a normal |
142 | `make check' run. This test suite can require root priviledges and | |
143 | can test things like DNS (i.e., require network access), | |
144 | user-interaction, networking in general, and probably many other things. |