News for scm_call_N and scm_apply_N.
[bpt/guile.git] / NEWS
diff --git a/NEWS b/NEWS
index 395da23..f55f705 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -40,6 +40,9 @@ See INSTALL and README for more information.
 SRFI-0 `cond-expand' is now supported in Guile, without requiring
 using a module.
 
+(srfi srfi-1) is a library containing many useful pair- and list-processing
+  procedures.
+
 (srfi srfi-2) exports and-let*.
 
 (srfi srfi-6) is a dummy module for now, since guile already provides
@@ -136,14 +139,22 @@ can be used for similar functionality.
 ** New module (ice-9 rw)
 
 This is a subset of the (scsh rw) module from guile-scsh.  Currently
-it defines a single procedure:
+it defines two single procedures:
 
 *** New function: read-string!/partial str [port_or_fdes [start [end]]]
 
-     Read characters from an fport or file descriptor into a string
-     STR.  This procedure is scsh-compatible and can efficiently read
+     Read characters from a port or file descriptor into a string STR.
+     A port must have an underlying file descriptor -- a so-called
+     fport.  This procedure is scsh-compatible and can efficiently read
      large strings.
 
+*** New function: write-string/partial str [port_or_fdes [start [end]]]
+
+     Write characters from a string STR to a port or file descriptor.
+     A port must have an underlying file descriptor -- a so-called
+     fport.  This procedure is mostly compatible and can efficiently
+     write large strings.
+
 ** New module (ice-9 match)
 
 This module includes Andrew K. Wright's pattern matcher.  See
@@ -153,8 +164,6 @@ ice-9/match.scm for brief description or
 
 for complete documentation.
 
-This module requires SLIB to be installed and available from Guile.
-
 ** New module (ice-9 buffered-input)
 
 This module provides procedures to construct an input port from an
@@ -187,6 +196,8 @@ manuals.
 
 See the README file in the `doc' directory for more details.
 
+** There are a couple of examples in the examples/ directory now.
+
 * Changes to the stand-alone interpreter
 
 ** New command line option `--use-srfi'
@@ -208,6 +219,12 @@ guile> (receive (x z) (values 1 2) (+ 1 2))
 guile> (string-pad "bla" 20)
 "                 bla"
 
+** Guile now always starts up in the `(guile-user)' module.
+
+Previously, scripts executed via the `-s' option would run in the
+`(guile)' module and the repl would run in the `(guile-user)' module.
+Now every user action takes place in the `(guile-user)' module by
+default.
 
 * Changes to Scheme functions and syntax
 
@@ -323,6 +340,13 @@ work on the top level.  The forms `define-public' and
 behave just like `define' and `defmacro', respectively, when they are
 used in a lexical environment.
 
+Also, `export' will no longer silently re-export bindings imported
+from a used module.  It will emit a `deprecation' warning and will
+cease to perform any re-export in the next version.  If you actually
+want to re-export bindings, use the new `re-export' in place of
+`export'.  The new `re-export' will not make copies of variables when
+rexporting them, as `export' did wrongly.
+
 ** The semantics of guardians have changed.
 
 The changes are for the most part compatible.  An important criterion
@@ -631,7 +655,16 @@ return.
 
 * Changes to the C interface
 
-** Deprecated feature have been removed.
+** Types have been renamed from scm_*_t to scm_t_*.
+
+This has been done for POSIX sake.  It reserves identifiers ending
+with "_t".  What a concept.
+
+The old names are still available with status `deprecated'.
+
+** scm_t_bits (former scm_bits_t) is now a unsigned type.
+
+** Deprecated features have been removed.
 
 *** Macros removed
 
@@ -648,6 +681,10 @@ return.
   scm_tc_dblc - replaced by scm_tc16_complex.
   scm_list_star - replaced by scm_cons_star.
 
+** Deprecated: scm_makfromstr
+
+Use scm_mem2string instead.
+
 ** Deprecated: scm_make_shared_substring
 
 Explicit shared substrings will disappear from Guile.
@@ -664,6 +701,23 @@ Guile.
 
 Instead, use scm_c_memq or scm_memq, scm_memv, scm_member.
 
+** New functions: scm_call_0, scm_call_1, scm_call_2, scm_call_3
+
+Call a procedure with the indicated number of arguments.
+
+Example:
+
+  scm_call_1 (proc, arg1);
+
+** New functions: scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3
+
+Call a procedure with the indicated number of arguments and a list
+of arguments.
+
+Example:
+
+  scm_apply_1 (proc, arg1, args);
+
 ** New function: scm_c_read (SCM port, void *buffer, scm_sizet size)
 
 Used by an application to read arbitrary number of bytes from a port.
@@ -940,6 +994,61 @@ scm_internal_with_fluids is available as a deprecated function.
 Just like scm_c_with_fluids, but takes one fluid and one value instead
 of lists of same.
 
+** Deprecated typedefs: long_long, ulong_long.
+
+They are of questionable utility and they pollute the global
+namespace.
+
+** Deprecated typedef: scm_sizet
+
+It is of questionable utility now that Guile requires ANSI C, and is
+oddly named.
+
+** Deprecated typedefs: scm_port_rw_active, scm_port,
+   scm_ptob_descriptor, scm_debug_info, scm_debug_frame, scm_fport,
+   scm_option, scm_rstate, scm_rng, scm_array, scm_array_dim.
+
+Made more compliant with the naming policy by adding a _t at the end.
+
+** Deprecated functions: scm_mkbig, scm_big2num, scm_adjbig,
+   scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl
+
+With the exception of the misterious scm_2ulong2big, they are still
+available under new names (scm_i_mkbig etc).  These functions are not
+intended to be used in user code.  You should avoid dealing with
+bignums directly, and should deal with numbers in general (which can
+be bignums).
+
+** New functions: scm_short2num, scm_ushort2num, scm_int2num,
+   scm_uint2num, scm_size2num, scm_ptrdiff2num, scm_num2short,
+   scm_num2ushort, scm_num2int, scm_num2uint, scm_num2ptrdiff,
+   scm_num2size.
+
+These are conversion functions between the various ANSI C integral
+types and Scheme numbers.
+
+** New number validation macros:
+   SCM_NUM2{SIZE,PTRDIFF,SHORT,USHORT,INT,UINT}[_DEF]
+
+See above.
+
+** New functions: scm_gc_protect_object, scm_gc_unprotect_object
+
+These are just nicer-named old scm_protect_object and
+scm_unprotect_object.
+
+** Deprecated functions: scm_protect_object, scm_unprotect_object
+
+** New functions: scm_gc_[un]register_root, scm_gc_[un]register_roots
+
+These functions can be used to register pointers to locations that
+hold SCM values.
+
+** Deprecated function: scm_create_hook.
+
+Its sins are: misleading name, non-modularity and lack of general
+usefulness.
+
 \f
 Changes since Guile 1.3.4: