Updated my record.
[bpt/guile.git] / TODO
1 [ID: $Id: TODO,v 1.17 2001-06-29 08:10:00 kei Exp $]
2
3 These TODO items are grouped by target release version. The first group is
4 the "Eventually" group, which is not associated w/ any particular version.
5 Move these items under a version upon completion (or better yet, ownership).
6
7 Upon completion, simply change the "-" to a "+", but do not delete the item.
8 At release time, the "+" entries will be deleted after review to make sure
9 that user-visible changes are reflected in NEWS (and that proper credit is
10 applied :-).
11
12 Ownership is indicated by `[USERNAME]'. Maintainers (w/ write privs) can
13 indicate sponsorship by `[ACTUAL-OWNER:MAINTAINER]', where both elements are
14 usernames.
15
16 If you would like to suggest changes or contribute patches, please first email
17 guile-devel@gnu.org to coordinate efforts. If you distribute this file,
18 please include the first line and check around on the Internet for updates.
19
20 See also file HACKING.
21
22 ------------------------------------------------------------------------------
23
24 === Eventually:
25
26 - deprecate `read-only-string?'
27 - [after signal handling and threading have been fixed] remove the code
28 corresponding to GUILE_OLD_ASYNC_CLICK and the corresponding
29 GUILE_OLD_ASYNC_CLICK macro.
30 - implement and integrate generational garbage collection
31 - add POSIX thread support
32 - factor thread support out of libguile
33 - protect common resources using mutecis from the new interface
34 - remove the dynamic roots
35 - revise the fluid implementation
36 - implement the GC thread synchronization (all threads: go to sleep!)
37 - implementing the libguileposix threads glue library
38 - GOOPS
39 - develop better representation for GOOPS objects
40 - rewrite method cache management in C
41 - rewrite core macros (define-class et al) in C
42 - define C API
43 - write Orbit CORBA interface
44 - [after new module system] factor out modules sort.c and random.c should be
45 factored out into separate modules
46
47 === In release 1.6.0:
48
49 - Make sure that the deprecation mechanism explained in INSTALL and
50 README is completed and works.
51
52 === In release 1.8.0:
53
54 - remove deprecated "scm_*_t" type names in libguile.h.
55
56 - remove re-exporting behaviour of `export'.
57 in boot-9.scm, remove begin-deprecated part of `module-export!'
58 in format.scm, remove kluge at top
59 in srfi13.scm, likewise
60
61 - remove deprecated subr and gsubr functions
62 in procs.h, procs.c: scm_make_subr, scm_make_subr_opt,
63 scm_make_subr_with_generic,
64 in gsubr.h, gsubr.c: scm_make_gsubr, scm_make_gsubr_with_generic.
65
66 - remove deprecated C interface to modules
67 in modules.h, modules.c:
68 root_module_lookup_closure, scm_sym_app, scm_sym_modules,
69 module_prefix, make_modules_in_var, beautify_user_module_x_var,
70 scm_the_root_module, scm_make_module, scm_ensure_user_module,
71 scm_load_scheme_module
72
73 - remove vcell and obarray support.
74 Remove all code bracketed by `#if SCM_ENABLE_VCELLS'.
75 Remove SCM_ENABLE_VCELLS itself.
76 Also remove `variable-set-name-hint' completely.
77
78 - remove compatability module (ice-9 and-let*). It
79 has been replaced by (ice-9 and-let-star) and/or (srfi srfi-2).
80
81 - remove support for autoloading compiled-code modules:
82 try-module-linked
83 try-module-dynamic-link
84 init-dynamic-module, etc.
85 scm_register_module_xxx
86 scm_registered_modules
87 scm_clear_registered_modules
88
89 - remove deprecated variables:
90 scm_top_level_lookup_closure_var
91 scm_scm_system_transformer
92 Remove all code that still sets them:
93 `use-syntax', scm_set_current_module, ...
94
95 - remove deprecated functions:
96 eval.c: scm_eval2, scm_eval_3
97 load.c: scm_read_and_eval_x
98 smob.c: scm_make_smob_type_mfpe, scm_set_smob_mfpe
99 gc.c: scm_remember
100 string.c: scm_makstr, scm_makfromstr
101 - remove deprecated procedures:
102 boot-9.scm: eval-in-module, id, -1+, return-it, string-character-length,
103 flags
104 - remove deprecated macros: SCM_OUTOFRANGE, SCM_NALLOC, SCM_HUP_SIGNAL,
105 SCM_INT_SIGNAL, SCM_FPE_SIGNAL, SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL,
106 SCM_ALRM_SIGNAL, SCM_GC_SIGNAL, SCM_TICK_SIGNAL, SCM_SIG_ORD,
107 SCM_ORD_SIG, SCM_NUM_SIGS, SCM_SLOPPY_STRINGP, SCM_VALIDATE_STRINGORSUBSTR,
108 SCM_FREEP, SCM_NFREEP, SCM_CHARS, SCM_UCHARS, SCM_VALIDATE_ROSTRING,
109 SCM_VALIDATE_ROSTRING_COPY, SCM_VALIDATE_NULLORROSTRING_COPY, SCM_ROLENGTH,
110 SCM_LENGTH, SCM_HUGE_LENGTH, SCM_SUBSTRP, SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET,
111 SCM_COERCE_SUBSTR, SCM_ROSTRINGP, SCM_RWSTRINGP, SCM_VALIDATE_RWSTRING,
112 SCM_ROCHARS, SCM_ROUCHARS, SCM_SETLENGTH, SCM_SETCHARS, SCM_LENGTH_MAX,
113 SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16, SCM_GCCDR,
114 SCM_SUBR_DOC, SCM_OPDIRP, SCM_VALIDATE_OPDIR, SCM_WTA, RETURN_SCM_WTA,
115 SCM_WNA, SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
116 SCM_VALIDATE_NUMBER_DEF_COPY, SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP,
117 SCM_SETAND_CDR, SCM_SETOR_CDR, SCM_SETAND_CAR, SCM_SETOR_CAR,
118 SCM_ARRAY_CONTIGUOUS,
119 SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
120 SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9
121 - remove scm_listify
122 - remove scm_vector_set_length_x
123 - remove function scm_call_catching_errors
124 (replaced by catch functions from throw.[ch])
125 - remove support for "#&" reader syntax in (ice-9 optargs).
126 - remove scm_make_shared_substring
127 - remove scm_read_only_string_p
128 - remove scm_strhash
129 - remove scm_tc7_ssymbol
130 - remove scm_tc7_msymbol
131 - remove scm_tcs_symbols
132 - remove scm_sloppy_memq, scm_sloppy_memv, scm_sloppy_member
133 - consider removing the automatic loading of (ice-9 rdelim) when guile
134 starts up. This would be a brave move, since a lot of code will
135 assume that read-line is available by default. However it would make
136 it easier to use alternative implementations of this module, e.g., a
137 strictly scsh-compatible version which uses multiple values. For
138 interactive use it would be easy to load the module in ~/.guile.
139 - remove scm_close_all_ports_except
140 - remove scm_strprint_obj
141 - remove SCM_CONST_LONG
142 - remove scm_wta
143 - remove deprecated typedefs: long_long, ulong_long, scm_sizet
144 - remove deprecated macros: scm_contregs, scm_port_rw_active,
145 scm_port, scm_ptob_descriptor, scm_debug_info, scm_debug_frame,
146 scm_fport, SCM_FIXNUM_BIT, scm_option, scm_subr_entry, scm_rstate,
147 scm_rng, scm_i_rstate, scm_srcprops, scm_srcprops_chunk,
148 scm_info_frame, scm_stack, scm_array, scm_array_dim.
149 - remove deprecated functions: scm_mkbig, scm_big2num, scm_adjbig,
150 scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl.
151 - remove deprecated functions: scm_protect_object,
152 scm_unprotect_object, scm_create_hook.
153
154 [TODO ends here]