that they can install to that won't be changed out from under them
with each micro release during a stable series.
-** There are two new thread implementation options: "null" and "coop-pthreads".
+** Thread implementation has changed.
When you configure "--with-threads=null", you will get the usual
threading API (call-with-new-thread, make-mutex, etc), but you can't
is always present, although you might not be able to create new
threads.
-The "coop-pthread" (or shorter: "copt") thread implementation will use
-portable POSIX threads but will restrict them so that only one thread
-can execute 'in Guile' at any one time. This option will give you the
-same basic behavior as the old "coop" option, but hopefully in a more
-portable way.
+When you configure "--with-threads=pthreads" or "--with-threads=yes",
+you will get threads that are implemented with the portable POSIX
+threads. These threads can run concurrently (unlike the previous
+"coop" thread implementation), but need to cooperate for things like
+the GC. See the manual for details. [XXX - write this.]
-The default is now "coop-pthread", unless your platform doesn't have
-pthreads, in which case "null" threads are used.
+The default is "pthreads", unless your platform doesn't have pthreads,
+in which case "null" threads are used.
** New module (ice-9 serialize):
version string without the final micro-version number. See "Changes
to the distribution" above.
-** Futures
+** Futures: future, make-future, future-ref
-Futures is a way of providing an alternative evaluation policy, very
-similar in principle to "promises". Like promises, futures allow the
-main process to continue instantly, but while promises postpone
-evaluation ("lazy" evaluation) until the value is requested, futures
-immediately starts evaluation in a parallel thread.
-
-Futures are good when you want to express that "I'll need the value of
-this computation sometime soon" and want to allow processing to go on
-in the background until that time arrives.
-
-** New syntax: future FORM
-
-Begin evaluation of FORM in a parallel thread and return the future
-immediately. (Akin to 'delay'.)
-
-** New procedure: future-ref FUTURE
-
-Return the computed value of the future. Wait if the computation is
-not finished. (Akin to 'force'.)
+Futures are like promises, but begun immediately in a new thread. See
+the "Futures" section in the reference manual.
** New syntax: parallel FORM ...
You can now use an empty `begin' form. It will yield #<unspecified>
when evaluated and simply be ignored in a definition context.
-** Removed: substring-move-left!, substring-move-right!
-
-Use `substring-move!' instead.
-
** Deprecated: procedure->macro
Change your code to use either procedure->memoizing-macro or, probably better,
This function is like scm_port_for_each but takes a pointer to a C
function as the callback instead of a SCM value.
+** Deprecated definitions of error strings: scm_s_expression, scm_s_test,
+scm_s_body, scm_s_bindings, scm_s_variable, scm_s_clauses, scm_s_formals
+
+These error message strings were used to issue syntax error messages by
+guile's evaluator. It's unlikely that they have been used by user code.
+
+** Deprecated helper macros for evaluation and application: SCM_EVALIM2,
+SCM_EVALIM, SCM_XEVAL, SCM_XEVALCAR
+
+These macros were used in the implementation of the evaluator. It's unlikely
+that they have been used by user code.
+
+** Deprecated macros for iloc handling: SCM_ILOC00, SCM_IDINC, SCM_IDSTMSK
+
+These macros were used in the implementation of the evaluator. It's unlikely
+that they have been used by user code.
+
** Removed definitions: scm_lisp_nil, scm_lisp_t, s_nil_ify,
scm_m_nil_ify, s_t_ify, scm_m_t_ify, s_0_cond, scm_m_0_cond, s_0_ify,
scm_m_0_ify, s_1_ify, scm_m_1_ify, scm_debug_newcell,
*top-level-lookup-closure*, scm_top_level_lookup_closure_var,
scm_system_transformer, scm_eval_3, scm_eval2,
root_module_lookup_closure, SCM_SLOPPY_STRINGP, SCM_RWSTRINGP,
-SCM_STRING_UCHARS, SCM_STRING_CHARS, scm_read_only_string_p,
-scm_makstr, scm_makfromstr, scm_make_shared_substring,
-scm_tc7_substring, sym_huh, scm_variable_set_name_hint,
-scm_builtin_variable, SCM_VARVCELL, SCM_UDVARIABLEP, SCM_DEFVARIABLEP,
-scm_internal_with_fluids, scm_make_gsubr, scm_make_gsubr_with_generic,
-scm_create_hook, list*, SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3,
-SCM_LIST4, SCM_LIST5, SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9,
-scm_listify, scm_sloppy_memq, scm_sloppy_memv, scm_sloppy_member,
-scm_end_of_file_key, scm_read_and_eval_x, scm_mkbig, scm_big2inum,
-scm_adjbig, scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big,
-scm_big2dbl, SCM_FIXNUM_BIT, scm_subr_entry, SCM_SUBR_DOC,
-scm_make_subr_opt, scm_make_subr, scm_make_subr_with_generic,
-setjmp_type, setjmp_type, scm_call_catching_errors,
-scm_make_smob_type_mfpe, scm_set_smob_mfpe, scm_strprint_obj,
-scm_read_0str, scm_eval_0str, SCM_CHARS, SCM_UCHARS, SCM_SETCHARS,
+scm_read_only_string_p, scm_make_shared_substring, scm_tc7_substring,
+sym_huh, SCM_VARVCELL, SCM_UDVARIABLEP, SCM_DEFVARIABLEP, scm_mkbig,
+scm_big2inum, scm_adjbig, scm_normbig, scm_copybig, scm_2ulong2big,
+scm_dbl2big, scm_big2dbl, SCM_FIXNUM_BIT, SCM_SETCHARS,
SCM_SLOPPY_SUBSTRP, SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_LENGTH_MAX,
-SCM_LENGTH, SCM_SETLENGTH, SCM_ROSTRINGP, SCM_ROLENGTH, SCM_ROCHARS,
-SCM_ROUCHARS, SCM_SUBSTRP, SCM_COERCE_SUBSTR, scm_strhash,
-scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
-scm_intern_obarray_soft, scm_intern_obarray, scm_intern, scm_intern0,
-scm_sysintern, scm_sysintern0, scm_sysintern0_no_module_lookup,
-scm_symbol_value0, scm_string_to_obarray_symbol, scm_intern_symbol,
-scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
-scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp,
-scm_init_symbols_deprecated, s_vector_set_length_x,
+SCM_SETLENGTH, SCM_ROSTRINGP, SCM_ROLENGTH, SCM_ROCHARS, SCM_ROUCHARS,
+SCM_SUBSTRP, SCM_COERCE_SUBSTR, scm_sym2vcell, scm_intern,
+scm_intern0, scm_sysintern, scm_sysintern0,
+scm_sysintern0_no_module_lookup, scm_init_symbols_deprecated,
scm_vector_set_length_x, scm_contregs, scm_debug_info,
-scm_debug_frame, SCM_DSIDEVAL, SCM_OPDIRP, scm_fport, scm_option,
-SCM_CONST_LONG, SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
-SCM_GLOBAL_VCELL_INIT, scm_srcprops, scm_srcprops_chunk,
-scm_info_frame, scm_stack, scm_array, scm_array_dim,
-SCM_ARRAY_CONTIGUOUS, SCM_HUGE_LENGTH, SCM_FUNC_NAME, SCM_WTA,
-RETURN_SCM_WTA, SCM_VALIDATE_NUMBER_COPY,
-SCM_VALIDATE_NUMBER_DEF_COPY, SCM_VALIDATE_STRINGORSUBSTR,
-SCM_VALIDATE_ROSTRING, SCM_VALIDATE_ROSTRING_COPY,
-SCM_VALIDATE_NULLORROSTRING_COPY, SCM_VALIDATE_RWSTRING,
-SCM_VALIDATE_OPDIR, DIGITS, scm_small_istr2int, scm_istr2int,
+scm_debug_frame, SCM_DSIDEVAL, SCM_CONST_LONG, SCM_VCELL,
+SCM_GLOBAL_VCELL, SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT,
+SCM_HUGE_LENGTH, SCM_VALIDATE_STRINGORSUBSTR, SCM_VALIDATE_ROSTRING,
+SCM_VALIDATE_ROSTRING_COPY, SCM_VALIDATE_NULLORROSTRING_COPY,
+SCM_VALIDATE_RWSTRING, DIGITS, scm_small_istr2int, scm_istr2int,
scm_istr2flo, scm_istring2number, scm_istr2int, scm_istr2flo,
scm_istring2number, scm_vtable_index_vcell, scm_si_vcell, SCM_ECONSP,
SCM_NECONSP, SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL,