(New help facility): Add blurb about "(help (my module))" support.
[bpt/guile.git] / NEWS
diff --git a/NEWS b/NEWS
index 5c5fae7..59a973f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -8,11 +8,42 @@ Changes since Guile 1.4:
 
 * Changes to the distribution
 
+** As per RELEASE directions, deprecated items have been removed
+
+*** Macros removed
+
+  SCM_INPORTP, SCM_OUTPORTP SCM_ICHRP, SCM_ICHR, SCM_MAKICHR
+  SCM_SETJMPBUF SCM_NSTRINGP SCM_NRWSTRINGP SCM_NVECTORP
+
+*** Functions removed
+
+  scm_sysmissing
+
+  gc-thunk - replaced by after-gc-hook.
+
+** New SRFI modules have been added:
+
+(srfi srfi-2) exports and-let*.
+
+(srfi srfi-6) is a dummy module for now, since guile already provides
+  all of the srfi-6 procedures by default: open-input-string,
+  open-output-string, get-output-string.
+
+(srfi srfi-8) exports receive.
+
+(srfi srfi-9) exports define-record-type.
+
+(srfi srfi-11) exports let-values and let*-values.
+
+(srfi srfi-13) implements the SRFI String Library.
+
+(srfi srfi-14) implements the SRFI Character-Set Library.
+
 ** New module (ice-9 stack-catch):
 
 stack-catch is like catch, but saves the current state of the stack in
-the the-last-stack fluid for the debugger to inspect or in able to
-re-throw an error.
+the fluid the-last-stack.  This fluid can be useful when using the
+debugger and when re-throwing an error.
 
 ** The module (ice-9 and-let*) has been renamed to (ice-9 and-let-star)
 
@@ -20,9 +51,9 @@ This has been done to prevent problems on lesser operating systems
 that can't tolerate `*'s in file names.  The exported macro continues
 to be named `and-let*', of course.
 
-On systems that support it, there is also a compatability module named
+On systems that support it, there is also a compatibility module named
 (ice-9 and-let*).  It will go away in the next release.
-   
+
 ** New modules (oop goops) etc.:
 
   (oop goops)
@@ -79,8 +110,8 @@ Asking for the type of an object
 
   (is-a? v <2D-vector>) --> #t
 
-See further in the GOOPS tutorial available in the guile-doc
-distribution in info (goops.info) and texinfo formats.
+See further in the GOOPS manual and tutorial in the `doc' directory,
+in info (goops.info) and texinfo formats.
 
 ** New module (ice-9 rdelim).
 
@@ -117,6 +148,38 @@ http://www.star-lab.com/wright/code.html 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
+underlying source of input that reads and returns its input in chunks.
+The underlying input source is a Scheme procedure, specified by the
+caller, which the port invokes whenever it needs more input.
+
+This is useful when building an input port whose back end is Readline
+or a UI element such as the GtkEntry widget.
+
+** Documentation
+
+The reference and tutorial documentation that was previously
+distributed separately, as `guile-doc', is now included in the core
+Guile distribution.  The documentation consists of the following
+manuals.
+
+- The Guile Tutorial (guile-tut.texi) contains a tutorial introduction
+  to using Guile.
+
+- The Guile Reference Manual (guile.texi) contains (or is intended to
+  contain) reference documentation on all aspects of Guile.
+
+- The GOOPS Manual (goops.texi) contains both tutorial-style and
+  reference documentation for using GOOPS, Guile's Object Oriented
+  Programming System.
+
+- The Revised^5 Report on the Algorithmic Language Scheme
+  (r5rs.texi).
+
+See the README file in the `doc' directory for more details.
+
 * Changes to the stand-alone interpreter
 
 ** Evaluation of "()", the empty list, is now an error.
@@ -199,19 +262,10 @@ 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.
 
-** `port-for-each' makes an additional guarantee.
-
-From the docstring: @var{proc} is applied exactly once to every port
-that exists in the system at the time @var{port-for-each} is invoked.
-Changes to the port table while @var{port-for-each} is running have no
-effect as far as @var{port-for-each} is concerned.
-
-This guarantee is important to make (ice-9 popen) work reliable.
-
 ** The semantics of guardians have changed.
 
 The changes are for the most part compatible.  An important criterion
-was to keep the typical usage of guardians as simple as before, but to 
+was to keep the typical usage of guardians as simple as before, but to
 make the semantics safer and (as a result) more useful.
 
 *** All objects returned from guardians are now properly alive.
@@ -256,6 +310,21 @@ objects are usually permanent.
 ** Escape procedures created by call-with-current-continuation now
 accept any number of arguments, as required by R5RS.
 
+** New function `call-with-deprecation'
+
+Call a thunk, displaying a deprecation message at the first call:
+
+  (define (id x)
+    (call-with-deprecation "`id' is deprecated.  Use `identity' instead."
+      (lambda ()
+       (identity x))))
+
+  guile> (id 1)
+  ;; `id' is deprecated.  Use `identity' instead.
+  1
+  guile> (id 1)
+  1
+
 ** New function `make-object-property'
 
 This function returns a new `procedure with setter' P that can be used
@@ -380,8 +449,12 @@ Determines whether a given object is a port that is related to a file.
 
 ** New function: port-for-each proc
 
-Apply PROC to each port in the Guile port table in turn.  The
-return value is unspecified.
+     Apply PROC to each port in the Guile port table in turn.  The
+     return value is unspecified.  More specifically, PROC is applied
+     exactly once to every port that exists in the system at the time
+     PORT-FOR-EACH is invoked.  Changes to the port table while
+     PORT-FOR-EACH is running have no effect as far as PORT-FOR-EACH is
+     concerned.
 
 ** New function: dup2 oldfd newfd
 
@@ -433,6 +506,7 @@ Set or get the hostname of the machine the current process is running
 on.
 
 ** New function: mkstemp! tmpl
+
 mkstemp creates a new unique file in the file system and returns a
 new buffered port open for reading and writing to the file.  TMPL
 is a string specifying where the file should be created: it must
@@ -442,7 +516,7 @@ of the temporary file.
 ** New function: open-input-string string
 
 Return an input string port which delivers the characters from
-`string'.  This procedure, together with `open-input-string' and
+`string'.  This procedure, together with `open-output-string' and
 `get-output-string' implements SRFI-6.
 
 ** New function: open-output-string
@@ -454,9 +528,41 @@ The data can then be retrieved by `get-output-string'.
 
 Return the contents of an output string port.
 
-** Deprecated: close-all-ports-except.  This was intended for closing
-ports in a child process after a fork, but it has the undesirable side
-effect of flushing buffers.  port-for-each is more flexible.
+** New function: identity
+
+Return the argument.
+
+** socket, connect, accept etc., now have support for IPv6.  IPv6 addresses
+   are represented in Scheme as integers with normal host byte ordering.
+
+** New function: inet-pton family address
+
+     Convert a printable string network address into an integer.  Note
+     that unlike the C version of this function, the result is an
+     integer with normal host byte ordering.  FAMILY can be `AF_INET'
+     or `AF_INET6'.  e.g.,
+          (inet-pton AF_INET "127.0.0.1") => 2130706433
+          (inet-pton AF_INET6 "::1") => 1
+
+** New function: inet-ntop family address
+
+     Convert an integer network address into a printable string.  Note
+     that unlike the C version of this function, the input is an
+     integer with normal host byte ordering.  FAMILY can be `AF_INET'
+     or `AF_INET6'.  e.g.,
+          (inet-ntop AF_INET 2130706433) => "127.0.0.1"
+          (inet-ntop AF_INET6 (- (expt 2 128) 1)) =>
+          ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+
+** Deprecated: id
+
+Use `identity' instead.
+
+** Deprecated: close-all-ports-except.
+
+This was intended for closing ports in a child process after a fork,
+but it has the undesirable side effect of flushing buffers.
+port-for-each is more flexible.
 
 ** The (ice-9 popen) module now attempts to set up file descriptors in
 the child process from the current Scheme ports, instead of using the
@@ -541,7 +647,7 @@ behaviour is undefined - it may even crash or loop endlessly.  Further, for
 the case that the object is not found in the list, scm_c_memq returns #f which
 is similar to scm_memq, but different from scm_sloppy_memq's behaviour.
 
-** New functions: scm_remember_upto_here_1, scm_remember_upto_here_2, 
+** New functions: scm_remember_upto_here_1, scm_remember_upto_here_2,
 scm_remember_upto_here
 
 These functions replace the function scm_remember.
@@ -572,26 +678,26 @@ of this variable is (and has been) not fully safe anyway.
 
 Use these instead of SCM_LENGTH_MAX.
 
-** New macros:  SCM_CONTINUATION_LENGTH, SCM_CCLO_LENGTH, SCM_STACK_LENGTH, 
+** New macros:  SCM_CONTINUATION_LENGTH, SCM_CCLO_LENGTH, SCM_STACK_LENGTH,
 SCM_STRING_LENGTH, SCM_SYMBOL_LENGTH, SCM_UVECTOR_LENGTH,
 SCM_BITVECTOR_LENGTH, SCM_VECTOR_LENGTH.
 
 Use these instead of SCM_LENGTH.
 
-** New macros:  SCM_SET_CONTINUATION_LENGTH, SCM_SET_STRING_LENGTH, 
+** New macros:  SCM_SET_CONTINUATION_LENGTH, SCM_SET_STRING_LENGTH,
 SCM_SET_SYMBOL_LENGTH, SCM_SET_VECTOR_LENGTH, SCM_SET_UVECTOR_LENGTH,
 SCM_SET_BITVECTOR_LENGTH
 
 Use these instead of SCM_SETLENGTH
 
-** New macros:  SCM_STRING_CHARS, SCM_SYMBOL_CHARS, SCM_CCLO_BASE, 
+** New macros:  SCM_STRING_CHARS, SCM_SYMBOL_CHARS, SCM_CCLO_BASE,
 SCM_VECTOR_BASE, SCM_UVECTOR_BASE, SCM_BITVECTOR_BASE, SCM_COMPLEX_MEM,
 SCM_ARRAY_MEM
 
 Use these instead of SCM_CHARS, SCM_UCHARS, SCM_ROCHARS, SCM_ROUCHARS or
 SCM_VELTS.
 
-** New macros:  SCM_SET_BIGNUM_BASE, SCM_SET_STRING_CHARS, 
+** New macros:  SCM_SET_BIGNUM_BASE, SCM_SET_STRING_CHARS,
 SCM_SET_SYMBOL_CHARS, SCM_SET_UVECTOR_BASE, SCM_SET_BITVECTOR_BASE,
 SCM_SET_VECTOR_BASE
 
@@ -607,9 +713,9 @@ Use instead of SCM_COERCE_SUBSTR.
 
 For directory objects, use these instead of SCM_OPDIRP and SCM_OPN.
 
-** 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, 
+** 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_SYMBOL_SLOTS, SCM_SLOTS, SCM_SLOPPY_STRINGP,
 SCM_VALIDATE_STRINGORSUBSTR, SCM_FREEP, SCM_NFREEP, SCM_CHARS, SCM_UCHARS,
 SCM_VALIDATE_ROSTRING, SCM_VALIDATE_ROSTRING_COPY,
@@ -620,7 +726,8 @@ 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_CONST_LONG,
 SCM_WNA, SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
-SCM_VALIDATE_NUMBER_DEF_COPY
+SCM_VALIDATE_NUMBER_DEF_COPY, SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP,
+SCM_SETAND_CDR, SCM_SETOR_CDR, SCM_SETAND_CAR, SCM_SETOR_CAR
 
 Use SCM_ASSERT_RANGE or SCM_VALIDATE_XXX_RANGE instead of SCM_OUTOFRANGE.
 Use scm_memory_error instead of SCM_NALLOC.
@@ -628,7 +735,7 @@ Use SCM_STRINGP instead of SCM_SLOPPY_STRINGP.
 Use SCM_VALIDATE_STRING instead of SCM_VALIDATE_STRINGORSUBSTR.
 Use SCM_FREE_CELL_P instead of SCM_FREEP/SCM_NFREEP
 Use a type specific accessor macro instead of SCM_CHARS/SCM_UCHARS.
-Use a type specific accessor instead of SCM(_|_RO|_HUGE_)LENGTH. 
+Use a type specific accessor instead of SCM(_|_RO|_HUGE_)LENGTH.
 Use SCM_VALIDATE_(SYMBOL|STRING) instead of SCM_VALIDATE_ROSTRING.
 Use SCM_STRING_COERCE_0TERMINATION_X instead of SCM_COERCE_SUBSTR.
 Use SCM_STRINGP or SCM_SYMBOLP instead of SCM_ROSTRINGP.
@@ -649,6 +756,8 @@ Use SCM_MISC_ERROR or SCM_WRONG_TYPE_ARG instead of SCM_WTA.
 Use SCM_MISC_ERROR or SCM_WRONG_TYPE_ARG instead of RETURN_SCM_WTA.
 Use SCM_VCELL_INIT instead of SCM_CONST_LONG.
 Use SCM_WRONG_NUM_ARGS instead of SCM_WNA.
+Use SCM_CONSP instead of SCM_SLOPPY_CONSP.
+Use !SCM_CONSP instead of SCM_SLOPPY_NCONSP.
 
 ** Removed function:  scm_struct_init
 
@@ -811,6 +920,7 @@ This is useful when debugging your .guile init file or scripts.
 Usage: (help NAME) gives documentation about objects named NAME (a symbol)
        (help REGEXP) ditto for objects with names matching REGEXP (a string)
        (help ,EXPR) gives documentation for object returned by EXPR
+       (help (my module)) gives module commentary for `(my module)'
        (help) gives this text
 
 `help' searches among bindings exported from loaded modules, while
@@ -849,7 +959,7 @@ Linux POSIX threads due to their use of the stack pointer to find the
 thread context.  This has now been fixed with a workaround which uses
 the pthreads to allocate the stack.
 
-** New primitives: `pkgdata-dir', `site-dir', `library-dir' 
+** New primitives: `pkgdata-dir', `site-dir', `library-dir'
 
 ** Positions of erring expression in scripts
 
@@ -889,11 +999,6 @@ an exception with a key of 'unbound-variable instead of 'misc-error.
 ** The initial default output port is now unbuffered if it's using a
 tty device.  Previously in this situation it was line-buffered.
 
-** gc-thunk is deprecated
-
-gc-thunk will be removed in next release of Guile.  It has been
-replaced by after-gc-hook.
-
 ** New hook: after-gc-hook
 
 after-gc-hook takes over the role of gc-thunk.  This hook is run at
@@ -1080,13 +1185,13 @@ Thus, the use of SCM_HOOK_NAME and scm_make_hook_with_name is deprecated.
 
 You can emulate this feature by using object properties.
 
-** Deprecated macros: SCM_INPORTP, SCM_OUTPORTP, SCM_CRDY, SCM_ICHRP, 
+** Deprecated macros: SCM_INPORTP, SCM_OUTPORTP, SCM_CRDY, SCM_ICHRP,
 SCM_ICHR, SCM_MAKICHR, SCM_SETJMPBUF, SCM_NSTRINGP, SCM_NRWSTRINGP,
 SCM_NVECTORP
 
 These macros will be removed in a future release of Guile.
 
-** The following types, functions and macros from numbers.h are deprecated:  
+** The following types, functions and macros from numbers.h are deprecated:
 scm_dblproc, SCM_UNEGFIXABLE, SCM_FLOBUFLEN, SCM_INEXP, SCM_CPLXP, SCM_REAL,
 SCM_IMAG, SCM_REALPART, scm_makdbl, SCM_SINGP, SCM_NUM2DBL, SCM_NO_BIGDIG
 
@@ -1358,7 +1463,7 @@ now possible to use `defined?' to check whether the facility is
 available.
 
 ** Procedures which depend on the timezone should now give the correct
-result on systems which cache the TZ environment variable, even if TZ 
+result on systems which cache the TZ environment variable, even if TZ
 is changed without calling tzset.
 
 * Changes to the networking interfaces:
@@ -1868,7 +1973,7 @@ when the hook was created.
     in a regular expression will still match before a line-break or
     end-of-file.  The default is `regexp/noteol'.
 
-*** The expect-strings macro now uses a variable 
+*** The expect-strings macro now uses a variable
     `expect-strings-compile-flags' for the flags to be supplied to
     `make-regexp'.  The default is `regexp/newline', which was previously
     hard-coded.
@@ -2346,7 +2451,7 @@ string, and the source and destination areas may overlap; in all
 cases, the function behaves as if all the characters were copied
 simultanously.
 
-*** Extended functions: substring-move-left! substring-move-right! 
+*** Extended functions: substring-move-left! substring-move-right!
 
 These functions now correctly copy arbitrarily overlapping substrings;
 they are both synonyms for substring-move!.
@@ -2380,7 +2485,7 @@ Each option can have the following (PROPERTY VALUE) pairs:
   (value BOOL) --- If BOOL is #t, the option accepts a value; if
             it is #f, it does not; and if it is the symbol
             `optional', the option may appear in ARGS with or
-            without a value. 
+            without a value.
   (predicate FUNC) --- If the option accepts a value (i.e. you
             specified `(value #t)' for this option), then getopt
             will apply FUNC to the value, and throw an exception
@@ -2458,10 +2563,10 @@ So, for example:
              (single-char #\v)
              (value #f))
     (x-includes (single-char #\x))
-    (rnet-server (single-char #\y) 
+    (rnet-server (single-char #\y)
                  (predicate ,string?))))
 
-(getopt-long '("my-prog" "-vk" "/tmp" "foo1" "--x-includes=/usr/include" 
+(getopt-long '("my-prog" "-vk" "/tmp" "foo1" "--x-includes=/usr/include"
                "--rnet-server=lamprod" "--" "-fred" "foo2" "foo3")
                grammar)
 => ((() "foo1" "-fred" "foo2" "foo3")
@@ -2476,10 +2581,10 @@ It will be removed in a few releases.
 
 ** New syntax: lambda*
 ** New syntax: define*
-** New syntax: define*-public   
+** New syntax: define*-public
 ** New syntax: defmacro*
 ** New syntax: defmacro*-public
-Guile now supports optional arguments. 
+Guile now supports optional arguments.
 
 `lambda*', `define*', `define*-public', `defmacro*' and
 `defmacro*-public' are identical to the non-* versions except that
@@ -2488,17 +2593,17 @@ syntax (parentheses are literal, square brackets indicate grouping,
 and `*', `+' and `?' have the usual meaning):
 
    ext-param-list ::= ( [identifier]* [#&optional [ext-var-decl]+]?
-      [#&key [ext-var-decl]+ [#&allow-other-keys]?]? 
+      [#&key [ext-var-decl]+ [#&allow-other-keys]?]?
       [[#&rest identifier]|[. identifier]]? ) | [identifier]
 
-   ext-var-decl ::= identifier | ( identifier expression )  
+   ext-var-decl ::= identifier | ( identifier expression )
 
 The semantics are best illustrated with the following documentation
 and examples for `lambda*':
 
  lambda* args . body
    lambda extended for optional and keyword arguments
-   
+
  lambda* creates a procedure that takes optional arguments. These
  are specified by putting them inside brackets at the end of the
  paramater list, but before any dotted rest argument. For example,
@@ -2518,11 +2623,11 @@ and examples for `lambda*':
  Optional and keyword arguments can also be given default values
  which they take on when they are not present in a call, by giving a
  two-item list in place of an optional argument, for example in:
-   (lambda* (foo #&optional (bar 42) #&key (baz 73)) (list foo bar baz)) 
+   (lambda* (foo #&optional (bar 42) #&key (baz 73)) (list foo bar baz))
  foo is a fixed argument, bar is an optional argument with default
  value 42, and baz is a keyword argument with default value 73.
  Default value expressions are not evaluated unless they are needed
- and until the procedure is called.  
+ and until the procedure is called.
 
  lambda* now supports two more special parameter list keywords.
 
@@ -2828,7 +2933,7 @@ SIZE to the system.  The return value is a tag that is used in
 creating instances of the type.  If SIZE is 0, then no memory will
 be allocated when instances of the smob are created, and nothing
 will be freed by the default free function.
-    
+
 *** Function: void scm_set_smob_mark (long tc, SCM (*mark) (SCM))
 This function sets the smob marking procedure for the smob type
 specified by the tag TC. TC is the tag returned by
@@ -3213,7 +3318,7 @@ For example:
     the-scm-module: backtrace       #<primitive-procedure backtrace>
     the-scm-module: after-backtrace-hook    ()
     the-scm-module: has-shown-backtrace-hint?       #f
-    guile> 
+    guile>
 
 ** There are new functions and syntax for working with macros.
 
@@ -3245,7 +3350,7 @@ values are:
     The symbol `syntax' --- a macro created by procedure->syntax.
     The symbol `macro' --- a macro created by procedure->macro.
     The symbol `macro!' --- a macro created by procedure->memoizing-macro.
-    The boolean #f --- if OBJ is not a macro object.  
+    The boolean #f --- if OBJ is not a macro object.
 
 *** New function: (macro-name MACRO)
 Return the name of the macro object MACRO's procedure, as returned by
@@ -3263,7 +3368,7 @@ top-level environment.  TRANSFORMER is an expression evaluated in the
 resulting environment which must yield a procedure to use as the
 module's eval transformer: every expression evaluated in this module
 is passed to this function, and the result passed to the Guile
-interpreter. 
+interpreter.
 
 *** macro-eval! is removed.  Use local-eval instead.
 
@@ -3338,7 +3443,7 @@ Function: with-fluids* FLUIDS VALUES THUNK
 
     FLUIDS is a list of fluids and VALUES a corresponding list of
     values for these fluids.  Before THUNK gets called the values are
-    installed in the fluids and the old values of the fluids are 
+    installed in the fluids and the old values of the fluids are
     saved in the VALUES list.  When the flow of control leaves THUNK
     or reenters it, the values get swapped again.  You might think of
     this as a `safe-fluid-excursion'.  Note that the VALUES list is
@@ -3885,7 +3990,7 @@ Here is a small example that works on GNU/Linux:
 See the file `libguile/DYNAMIC-LINKING' for additional comments.
 
 ** The #/ syntax for module names is depreciated, and will be removed
-in a future version of Guile.  Instead of 
+in a future version of Guile.  Instead of
 
        #/foo/bar/baz
 
@@ -4508,7 +4613,7 @@ argument.
 
 ** Changes to I/O functions
 
-*** The functions `read', `primitive-load', `read-and-eval!', and 
+*** The functions `read', `primitive-load', `read-and-eval!', and
 `primitive-load-path' no longer take optional arguments controlling
 case insensitivity and a `#' parser.
 
@@ -4526,7 +4631,7 @@ syntax of Guile Scheme in a somewhat controlled way.
 
   The reader applies PROC to two arguments: CHAR and an input port.
 
-*** The new functions read-delimited and read-delimited! provide a 
+*** The new functions read-delimited and read-delimited! provide a
 general mechanism for doing delimited input on streams.
 
 (read-delimited DELIMS [PORT HANDLE-DELIM])
@@ -4645,7 +4750,7 @@ and `recvfrom!'.  They no longer accept a size for a second argument;
 you must pass a string to hold the received value.  They no longer
 return the buffer.  Instead, `recv' returns the length of the message
 received, and `recvfrom' returns a pair containing the packet's length
-and originating address. 
+and originating address.
 
 *** The file descriptor datatype has been removed, as have the
 `read-fd', `write-fd', `close', `lseek', and `dup' functions.
@@ -4771,17 +4876,17 @@ internet protocols:
 
   Component                 Accessor
   ========================= ===============
-  official service name     servent:name   
+  official service name     servent:name
   alias list               servent:aliases
-  port number              servent:port   
-  protocol to use          servent:proto  
+  port number              servent:port
+  protocol to use          servent:proto
 
 *** There are new accessors for the sockaddr structures returned by
 `accept', `getsockname', `getpeername', `recvfrom!':
 
   Component                                Accessor
   ======================================== ===============
-  address format (`family')                sockaddr:fam 
+  address format (`family')                sockaddr:fam
   path, for file domain addresses         sockaddr:path
   address, for internet domain addresses   sockaddr:addr
   TCP or UDP port, for internet                   sockaddr:port
@@ -4953,7 +5058,7 @@ command interpreter.  For details, see "Changes to the stand-alone
 interpreter" above.
 
 ** The new functions scm_get_meta_args and scm_count_argv help you
-implement the SCSH-style meta-argument, `\'.  
+implement the SCSH-style meta-argument, `\'.
 
 char **scm_get_meta_args (int ARGC, char **ARGV)
   If the second element of ARGV is a string consisting of a single
@@ -4961,7 +5066,7 @@ char **scm_get_meta_args (int ARGC, char **ARGV)
   named by the following argument, parse arguments from it, and return
   the spliced command line.  The returned array is terminated by a
   null pointer.
-  
+
   For details of argument parsing, see above, under "guile now accepts
   command-line arguments compatible with SCSH..."