* convert.c: include <string.h> for convert_i.c.
[bpt/guile.git] / TODO
1 The Guile TODO List (actually, an -*-outline-*-)
2
3 * Protocol
4
5 These TODO items are grouped by target release version. The first group is
6 the "Eventually" group, which is not associated w/ any particular version.
7 Items should be initially added to this group, and then later moved under a
8 version upon either ownership or sponsorship.
9
10 Maintainers (w/ write privs) indicate ownership by `[USERNAME]'. Use
11 `[ACTUAL-OWNER:MAINTAINER]' to indicate sponsorship, where both elements are
12 usernames.
13
14 Upon completion, simply change the "-" to a "+", but do not delete the item.
15 At release time, the "+" entries will be deleted after review to make sure
16 that user-visible changes are reflected in NEWS.
17
18
19 * Eventually
20
21 - [after signal handling and threading have been fixed] remove the code
22 corresponding to GUILE_OLD_ASYNC_CLICK and the corresponding
23 GUILE_OLD_ASYNC_CLICK macro.
24 - implement and integrate generational garbage collection
25 - add POSIX thread support
26 - factor thread support out of libguile
27 - protect common resources using mutecis from the new interface
28 - remove the dynamic roots
29 - revise the fluid implementation
30 - implement the GC thread synchronization (all threads: go to sleep!)
31 - implementing the libguileposix threads glue library
32 - develop better representation for GOOPS objects
33 - write Orbit CORBA interface
34 - [after new module system] factor out modules sort.c and random.c should be
35 factored out into separate modules
36 - include malloc debugging code in an optional file in libguile
37 - fix looking up procedure names in environment in backtraces
38 - implement srcprops using double cells
39 - use "real" procprops
40 - add facilities for easily debugging Scheme programs from Emacs
41 - write good interface to Tk
42 - write translators for additional languages
43 - Perl
44 - Python
45 - TCL
46 - Emacs Lisp
47 - Rexx
48 - make GDB work with Guile
49 - use the SCM trick of tagging environments with immediates (see m_letrec1)
50 to convert source correctly in unmemocopy
51 - eliminate argument checking for closures
52 - Implement a thread-safe alternative to SCM's environment caches
53 - rename ice-9 to something more obvious
54 - implement implicitly shared substrings (thread-safe, copy on write). In
55 this context, the concept of read-only-strings might be re-introduced to
56 implement the symbol->string semantics of R5RS.
57 - implement internationalized strings
58 - revise the uniform vector implementation
59 - make the set of error signalling functions more consistent
60 - Fix bug reported by Sven.Hartrumpf@fernuni-hagen.de 2001-08-31:
61 (debug-disable 'debug) has no effect if it is the first form in ~/.guile.
62 - provide a non-extended implementation of 'define' for the R5RS module.
63
64
65 * Before releasing 1.8.0:
66
67 - deprecate old uniform vector interface.
68
69 - add DLL support [ela] <-- set by ttn (my bad)
70
71 - write emacs/patch.el [ttn]
72 + outgoing
73 - incoming
74
75 + sync srfi-modules.texi [ttn]
76
77 - For GOOPS: [ttn]
78 - rewrite method cache management in C
79 - rewrite core macros (define-class et al) in C
80 - define C API
81
82 - Compile with --enable-error-on-warning without failure. Requires a
83 number of fixes, including num2integral.i.c and on some platforms
84 gc_os_dep.c. Also SCM_FIXABLE etc. will produce unavoidable
85 warnings on some platforms with some vars as written now. i.e. on
86 alphas, SCM_FIXABLE(some_int) is always true. We need more
87 conditional compilation or similar.
88
89 - Move sample .gdbinit in HACKING to somewhere more appropriate (manual?).
90
91 - Make sure we have appropriate interface numbers for shared
92 libraries, and that we document and use the libtool
93 conventions. [rlb].
94
95 - Update the version numbers in GUILE-VERSION and README. [rlb]
96
97 - Start a new section of the NEWS file.
98
99
100 * Before releasing 1.10.0:
101
102 - in boot-9.scm:
103 remove deprecated function `feature?ยด.
104
105 - gc.c and gc.h:
106 remove deprecated macros SCM_NEWCELL and SCM_NEWCELL2 together with
107 their support staffing scm_deprecated_newcell,
108 scm_deprecated_newcell2, scm_tc16_allocated, mark_allocated.
109
110 - in gc.c and gc.h:
111 Remove deprecated functions scm_must_malloc,
112 scm_must_realloc, scm_must_free, scm_done_malloc, scm_done_free,
113 scm_must_strndup, scm_must_strdup.
114
115 - Change return types of smob and port free functions to void.
116 They should all return zero by now.
117
118 [TODO ends here]