system should be called Godot: "This is the one you've been waiting
for."
-In release 1.4:
-- remove names evalext.c: serial-map,
- ramap.c: serial-array-copy!, serial-array-map!
-- remove module (ice-9 getopt-gnu-style)
-- remove kw.h, scm_tc16_kw
-- remove genio.h
-- remove deprecated function scm_newsmob.
-- remove deprecated function scm_make_named_hook.
+=== 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.
+
+=== In release 1.6.0:
+
+- Q: Was SCM_FLOBUFLEN only deprecated publically, or was it supposed
+ to be removed from numbers.c as well?
+
+- remove code related to the name property of hooks. Also, check init.c,
+ since the dependency between hooks and objprop will then be eliminated.
+
+=== In release 1.8.0:
+
+- 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
+ scm_register_module_xxx
+ etc.
+- remove deprecated variables:
+ scm_top_level_lookup_closure_var
+- 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
+- remove deprecated procedures:
+ boot-9.scm: eval-in-module, id
+- 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
+- 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
Modules sort.c and random.c should be factored out into separate
modules (but still be distributed with guile-core) when we get a new
directory.
* 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
+ grep 'Copyright' * | grep -v 1999
and looking for files you know you've worked on a lot.
* Make sure NEWS, INSTALL and the docs are up to date:
+ Scan the ChangeLogs for user-visible changes, marked with an asterisk
* Make sure the downloading addresses and filenames in README are
current. (But don't bump the version number yet. We do that below.)
* Check that the versions of aclocal, automake, autoconf, and autoheader
- in your PATH match those given in README. Note that the `make
+ in your PATH match those given in HACKING. Note that the `make
dist' process always invokes these tools, even when all the
generated files are up to date.
* Rebuild all generated files in the source tree:
+ Run autoheader.
+ Run automake.
* Verify that Guile builds and runs in your working directory.
-* Run the test suite, in guile-modules/test-suite.
+* Run the test suite, in guile-core/test-suite.
* Commit all changes to the CVS repository.
* Build a test distribution.
+ BEFORE doing 'make dist', configure the source tree for build
- in the same tree with configuration option --with-threads.
+ in the same tree with configuration options
+ --enable-maintainer-mode --enable-debug-malloc --with-threads.
+ Make sure that readline was enabled correctly.
+ Build the tree.
(If the above steps are not done, the dependencies won't be properly
included in the generated Makefile.in files.)
+ Then do 'make dist'.
+ + Check that the dependencies in guile-readline/Makefile look OK.
+ (We currently use a kludge which edits the dependencies generated
+ by automake so that Guile can be built in a directory separate
+ from the source tree also with non-GNU make programs.)
* Give the test disty to various people to try. Here's what you should do:
+ Unset GUILE_LOAD_PATH.
+ Remove automake and autoconf from your path, or turn off their
version numbers of the form "N.M.L", where L is odd.
* Start a new section of the NEWS file.
* Start a new THANKS file.
-* Send mail to majordomo-owner@cygnus.com updating the message you
- get when you ask majordomo for "info guile".