* Deprecated scm_makfromstr and added scm_mem2string as a replacement.
[bpt/guile.git] / RELEASE
diff --git a/RELEASE b/RELEASE
index 7b76132..15fd897 100644 (file)
--- a/RELEASE
+++ b/RELEASE
@@ -7,14 +7,117 @@ absinthe, etc.  However, the first release containing the module
 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:
+
+- Make sure that the deprecation mechanism explained in INSTALL and
+  README is completed and works.
+
+=== In release 1.8.0:
+
+- 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 srfi13.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
+- 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.
 
 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
@@ -75,9 +178,9 @@ Spiffing checklist:
   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:
+* 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.
@@ -85,10 +188,11 @@ Spiffing checklist:
     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.)
 * 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:
@@ -98,15 +202,21 @@ Spiffing checklist:
   + 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.
-    Make sure that readline was enabled correctly.
-    If this is not done, there will be missing dependencies in two
-    Makefile.in.
+    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
@@ -137,6 +247,7 @@ Punting checklist:
 * Add "Guile N.M released." entry to the top-level ChangeLog, and commit it.
 * Tag the entire source tree with a tag of the form "release_N_M" 
   or "release_N_M_L".
+* Do a 'make dist'.
 * Put the distribution up for FTP somewhere, and send mail to
   ftp-upload@gnu.org, asking them to put it on prep.
 * Send an announcement message to gnu-announce@gnu.org.  Put a brief
@@ -154,5 +265,3 @@ Punting checklist:
   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".