893d1ef054e4ad895c5c0a53042f1a68b4cf1894
[kopensolaris-gnu/glibc.git] / PROJECTS
1 Open jobs for finishing GNU libc:
2 ---------------------------------
3 Status: July 1996
4
5 If you have time and talent to take over any of the jobs below please
6 contact <bug-glibc@prep.ai.mit.edu>
7
8 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9 \f
10 [ 1] Port to new platforms or test current version on formerly supported
11      platforms.
12
13
14 [ 2] Test compliance with standards.  If you have access to recent
15      standards (IEEE, ISO, ANSI, X/Open, ...) and/or test suites you
16      could do some checks as the goal is to be compliant with all
17      standards if they do not contradict each other.
18
19
20 [ 3] Write translations for the GNU libc message for the so far
21      unsupported languages.  GNU libc is fully internationalized and
22      users can immediately benefit from this.
23
24      Take a look at the matrix in
25         ftp://prep.ai.mit.edu/pub/gnu/ABOUT-NLS
26      for the current status (of course better use a mirror of prep).
27
28
29 [ 4] Write wordexp() function; this is described in POSIX.2, The
30      header <wordexp.h> already exists.
31
32      Implementation idea: use some functions from bash.
33
34
35 [ 5] Write reentrant versions of crypt() et.al.
36
37      Implementation idea: Define in <crypt.h>
38
39         struct crypt_data
40         {
41           <... all the needed data ...>
42         };
43
44      and define additional functions
45
46         char *crypt_r (__const char *__key, __const char *__salt,
47                        struct crypt_data *__data);
48
49         void setkey_r (__const char *__key, struct crypt_data *__data);
50
51         void encrypt_r (char *__block, int __edflag,
52                         struct crypt_data *__data);
53
54      If possible the non-reentrant functions should use the reentrant
55      ones.
56
57      Because of the US export restrictions it might be a good idea if
58      some non-american person does this job.
59
60
61 [ 6] Write `long double' versions of the math functions.  This should be
62      done in collaboration with the NetBSD and FreeBSD people.
63
64      The libm is in fact fdlibm (not the same as in Linux libc).
65
66 **** Partly done.
67
68
69 [ 7] If you enjoy assembler programming (as I do --drepper :-) you might
70      be interested in writing optimized versions for some functions.
71      Especially the string handling functions can be optimized a lot.
72
73      Take a look at
74
75         Faster String Functions
76         Henry Spencer, University of Toronto
77         Usenix Winter '92, pp. 419--428
78
79      or just ask.  Currently mostly i?86 optimized versions exist.
80      Alpha versions are on their way, so please ask before working
81      on this.
82
83
84 [ 8] Write nftw() function.  Perhaps it might be good to reimplement the
85      ftw() function as well to share most of the code.
86
87 **** Almost done!
88
89
90 [ 9] Write AVL-tree based tsearch() et.al. functions.  Currently only
91      a very simple algorithm is used.
92      There is a public domain version but using this would cause problems
93      with the assignment.
94
95 [10] Extend regex and/or rx to work with wide characters.
96
97
98 [11] Add mmap() support to malloc().
99      Doug Lea's malloc implementation might give some ideas.  Perhaps
100      switching completly to his implementation is an option if it
101      a) can work without mmap() support (not all system GNU libc
102         is running on have mmap)
103      b) is without mmap support at least as fast as the current
104         implementation
105      c) will be extended with the current hooks and additional functions
106
107      Please contact bug-glibc@prep.ai.mit.edu before starting to avoid
108      duplicated work.
109
110 [12] Write access function for netmasks, bootparams, netgroup, publickey,
111      automount, aliases databases for nss_files and nss_db module.
112      The functions should be embedded in the nss scheme.  This is not
113      hard and not all services must be supported at once.