1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-09 07:00:23 +02:00
guile/TODO
2001-07-18 20:23:52 +00:00

235 lines
8.9 KiB
Text

-*-text-*-
These TODO items are grouped by target release version. The first group is
the "Eventually" group, which is not associated w/ any particular version.
Move these items under a version upon completion (or better yet, ownership).
Upon completion, simply change the "-" to a "+", but do not delete the item.
At release time, the "+" entries will be deleted after review to make sure
that user-visible changes are reflected in NEWS (and that proper credit is
applied :-).
Ownership is indicated by `[USERNAME]'. Maintainers (w/ write privs) can
indicate sponsorship by `[ACTUAL-OWNER:MAINTAINER]', where both elements are
usernames.
If you would like to suggest changes or contribute patches, please first email
guile-devel@gnu.org to coordinate efforts. If you distribute this file,
please include the first line and check around on the Internet for updates.
See also file HACKING.
------------------------------------------------------------------------------
=== Eventually:
- deprecate `read-only-string?'
- [after signal handling and threading have been fixed] remove the code
corresponding to GUILE_OLD_ASYNC_CLICK and the corresponding
GUILE_OLD_ASYNC_CLICK macro.
- implement and integrate generational garbage collection
- add POSIX thread support
- factor thread support out of libguile
- protect common resources using mutecis from the new interface
- remove the dynamic roots
- revise the fluid implementation
- implement the GC thread synchronization (all threads: go to sleep!)
- implementing the libguileposix threads glue library
- GOOPS
- develop better representation for GOOPS objects
- rewrite method cache management in C
- rewrite core macros (define-class et al) in C
- define C API
- write Orbit CORBA interface
- [after new module system] factor out modules sort.c and random.c should be
factored out into separate modules
- include malloc debugging code in an optional file in libguile
- fix looking up procedure names in environment in backtraces
- implement srcprops using double cells
- use "real" procprops
- add facilities for easily debugging Scheme programs from Emacs
- write good interface to Tk
- write translators for additional languages
- Perl
- Python
- TCL
- Emacs Lisp
- Rexx
- make GDB work with Guile
- use the SCM trick of tagging environments with immediates (see m_letrec1)
to convert source correctly in unmemocopy
- eliminate argument checking for closures
- Implement a thread-safe alternative to SCM's environment caches
=== Before releasing 1.6.0:
(Also, please try to fold any relevant changes you make into the
unstable tree as well.)
+ write "make check" tests for subdir `examples'
- Make sure that the deprecation mechanism explained in INSTALL and
README is completed and works.
- if we can agree on the interface quickly, add setitmer and getitimer
functions..
- rewrite RELEASE to take CVS stable/unstable branching approach into
account.
- Check for files that have changed a lot, but do not have up-to-date
copyright notices. This can be as simple as doing:
grep 'Copyright' * | grep -v 1999
and looking for files you know you've worked on a lot.
- Make sure NEWS, INSTALL, AUTHORS and THANKS and the docs are up to date
- Scan the ChangeLogs for user-visible changes, marked with an asterisk
at the left margin.
- Update NEWS and the Texinfo documentation as appropriate.
- Remove the user-visible markers from the log entries once they're documented.
- Check for any [[incomplete]] sections of NEWS.
- Fact-check INSTALL.
- Make sure AUTHORS and THANKS are up-to-date.
- Make sure the downloading addresses and filenames in README are
current. (But don't bump the version number yet. We do that below.)
- Make sure we have appropriate interface numbers for shared
libraries, and that we document and use the libtool
conventions. [rlb].
- Update the version numbers in GUILE-VERSION and README. [rlb]
- Reformat the names in THANKS.
- update this TODO file, removing all "+" relevant to 1.6.0 after
making sure that user-visible changes are reflected in NEWS (and
that proper credit is applied :-).
- perform testing cycles.
- wait for rlb to release.
=== Before releasing 1.8.0:
- Make sure we have appropriate interface numbers for shared
libraries, and that we document and use the libtool
conventions. [rlb].
- Update the version numbers in GUILE-VERSION and README. [rlb]
- Start a new section of the NEWS file.
- Start a new THANKS file.
- remove deprecated functions scm_read_0str, scm_eval_0str.
- remove deprecated "scm_*_t" type names in libguile.h.
- remove re-exporting behaviour of `export'.
in boot-9.scm, remove begin-deprecated part of `module-export!'
in format.scm, remove kluge at top
in srfi-13.scm, likewise
in srfi-1.scm, likewise
- remove deprecated subr and gsubr functions
in procs.h, procs.c: scm_make_subr, scm_make_subr_opt,
scm_make_subr_with_generic,
in gsubr.h, gsubr.c: scm_make_gsubr, scm_make_gsubr_with_generic.
- remove deprecated C interface to modules
in modules.h, modules.c:
root_module_lookup_closure, scm_sym_app, scm_sym_modules,
module_prefix, make_modules_in_var, beautify_user_module_x_var,
scm_the_root_module, scm_make_module, scm_ensure_user_module,
scm_load_scheme_module
- remove vcell and obarray support.
Remove all code bracketed by `#if SCM_ENABLE_VCELLS'.
Remove SCM_ENABLE_VCELLS itself.
Also remove `variable-set-name-hint' completely.
- remove compatability module (ice-9 and-let*). It
has been replaced by (ice-9 and-let-star) and/or (srfi srfi-2).
- remove support for autoloading compiled-code modules:
try-module-linked
try-module-dynamic-link
init-dynamic-module, etc.
scm_register_module_xxx
scm_registered_modules
scm_clear_registered_modules
- remove deprecated variables:
scm_top_level_lookup_closure_var
scm_scm_system_transformer
Remove all code that still sets them:
`use-syntax', scm_set_current_module, ...
- remove deprecated functions:
eval.c: scm_eval2, scm_eval_3
load.c: scm_read_and_eval_x
smob.c: scm_make_smob_type_mfpe, scm_set_smob_mfpe
gc.c: scm_remember
string.c: scm_makstr, scm_makfromstr
- remove deprecated procedures:
boot-9.scm: eval-in-module, id, -1+, return-it, string-character-length,
flags
- remove deprecated macros: SCM_OUTOFRANGE, SCM_NALLOC, SCM_HUP_SIGNAL,
SCM_INT_SIGNAL, SCM_FPE_SIGNAL, SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL,
SCM_ALRM_SIGNAL, SCM_GC_SIGNAL, SCM_TICK_SIGNAL, SCM_SIG_ORD,
SCM_ORD_SIG, SCM_NUM_SIGS, SCM_SLOPPY_STRINGP, SCM_VALIDATE_STRINGORSUBSTR,
SCM_FREEP, SCM_NFREEP, SCM_CHARS, SCM_UCHARS, SCM_VALIDATE_ROSTRING,
SCM_VALIDATE_ROSTRING_COPY, SCM_VALIDATE_NULLORROSTRING_COPY, SCM_ROLENGTH,
SCM_LENGTH, SCM_HUGE_LENGTH, SCM_SUBSTRP, SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET,
SCM_COERCE_SUBSTR, SCM_ROSTRINGP, SCM_RWSTRINGP, SCM_VALIDATE_RWSTRING,
SCM_ROCHARS, SCM_ROUCHARS, SCM_SETLENGTH, SCM_SETCHARS, SCM_LENGTH_MAX,
SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16, SCM_GCCDR,
SCM_SUBR_DOC, SCM_OPDIRP, SCM_VALIDATE_OPDIR, SCM_WTA, RETURN_SCM_WTA,
SCM_WNA, SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
SCM_VALIDATE_NUMBER_DEF_COPY, SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP,
SCM_SETAND_CDR, SCM_SETOR_CDR, SCM_SETAND_CAR, SCM_SETOR_CAR,
SCM_ARRAY_CONTIGUOUS,
SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9
- remove scm_listify
- remove scm_vector_set_length_x
- remove function scm_call_catching_errors
(replaced by catch functions from throw.[ch])
- remove support for "#&" reader syntax in (ice-9 optargs).
- remove scm_make_shared_substring
- remove scm_read_only_string_p
- remove scm_strhash
- remove scm_tc7_ssymbol
- remove scm_tc7_msymbol
- remove scm_tcs_symbols
- remove scm_sloppy_memq, scm_sloppy_memv, scm_sloppy_member
- consider removing the automatic loading of (ice-9 rdelim) when guile
starts up. This would be a brave move, since a lot of code will
assume that read-line is available by default. However it would make
it easier to use alternative implementations of this module, e.g., a
strictly scsh-compatible version which uses multiple values. For
interactive use it would be easy to load the module in ~/.guile.
- remove scm_close_all_ports_except
- remove scm_strprint_obj
- remove SCM_CONST_LONG
- remove scm_wta
- remove deprecated typedefs: long_long, ulong_long, scm_sizet
- remove deprecated macros: scm_contregs, scm_port_rw_active,
scm_port, scm_ptob_descriptor, scm_debug_info, scm_debug_frame,
scm_fport, SCM_FIXNUM_BIT, scm_option, scm_subr_entry, scm_rstate,
scm_rng, scm_i_rstate, scm_srcprops, scm_srcprops_chunk,
scm_info_frame, scm_stack, scm_array, scm_array_dim.
- remove deprecated functions: scm_mkbig, scm_big2num, scm_adjbig,
scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl.
- remove deprecated functions: scm_protect_object,
scm_unprotect_object, scm_create_hook.
[TODO ends here]