Document new procedures
[bpt/guile.git] / NEWS
diff --git a/NEWS b/NEWS
index 8e87f1e..0a7b8ea 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
 Guile NEWS --- history of user-visible changes.  -*- text -*-
-Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
 See the end for copying conditions.
 
 Please send Guile bug reports to bug-guile@gnu.org.
@@ -8,6 +8,12 @@ Changes since Guile 1.4:
 
 * Changes to the distribution
 
+** 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 module (ice-9 and-let*) has been renamed to (ice-9 and-let-star)
 
 This has been done to prevent problems on lesser operating systems
@@ -109,8 +115,15 @@ This module includes Andrew K. Wright's pattern matcher:
 See ice-9/match.scm for brief description or
 http://www.star-lab.com/wright/code.html for complete documentation.
 
+This module requires SLIB to be installed and available from Guile.
+
 * Changes to the stand-alone interpreter
 
+** Evaluation of "()", the empty list, is now an error.
+
+Previously, you could for example write (cons 1 ()); now you need to
+be more explicit and write (cons 1 '()).
+
 ** It's now possible to create modules with controlled environments
 
 Example:
@@ -321,6 +334,10 @@ Instead, use scm_c_memq or scm_memq, scm_memv, scm_member.
         * return 0 if the request is for 0 bytes, with no end-of-file
           check
 
+** New function: object->string OBJ
+
+Return a Scheme string obtained by printing a given object.
+
 ** New function: port? X
 
 Returns a boolean indicating whether X is a port.  Equivalent to
@@ -352,6 +369,53 @@ close: Ports and File Descriptors.), the file descriptor will be
 closed even if a port is using it.  The return value is
 unspecified.
 
+** New function: crypt password salt
+
+Encrypts `password' using the standard unix password encryption
+algorithm.
+
+** New function: chroot path
+
+Change the root directory of the running process to `path'.
+
+** New functions: getlogin, cuserid
+
+Return the login name or the user name of the current effective user
+id, respectively.
+
+** New functions: getpriority which who, setpriority which who prio
+
+Get or set the priority of the running process.
+
+** New function: getpass prompt
+
+Read a password from the terminal, first displaying `prompt' and
+disabling echoing.
+
+** New function: flock file operation
+
+Set/remove an advisory shared or exclusive lock on `file'.
+
+** New functions: sethostname name, gethostname
+
+Set or get the hostname of the machine the current process is running
+on.
+
+** 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
+`get-output-string' implements SRFI-6.
+
+** New function: open-output-string
+
+Return an output string port which collects all data written to it.
+The data can then be retrieved by `get-output-string'.
+
+** New function: 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.
@@ -366,10 +430,42 @@ There is no such concept as a weak binding any more.
 
 ** Removed constants:  bignum-radix, scm-line-incrementors
 
+** define-method: New syntax mandatory.
+
+The new method syntax is now mandatory:
+
+(define-method (NAME ARG-SPEC ...) BODY ...)
+(define-method (NAME ARG-SPEC ... . REST-ARG) BODY ...)
+
+  ARG-SPEC ::= ARG-NAME | (ARG-NAME TYPE)
+  REST-ARG ::= ARG-NAME
+
+If you have old code using the old syntax, import
+(oop goops old-define-method) before (oop goops) as in:
+
+  (use-modules (oop goops old-define-method) (oop goops))
+
 * Changes to the gh_ interface
 
 * Changes to the scm_ interface
 
+** 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.
+Same semantics as libc read, except that scm_c_read only returns less
+than SIZE bytes if at end-of-file.
+
+Warning: Doesn't update port line and column counts!
+
+** New function: scm_c_write (SCM port, const void *ptr, scm_sizet size)
+
+Used by an application to write arbitrary number of bytes to an SCM
+port.  Similar semantics as libc write.  However, unlike libc
+write, scm_c_write writes the requested number of bytes and has no
+return value.
+
+Warning: Doesn't update port line and column counts!
+
 ** New function: scm_init_guile ()
 
 In contrast to scm_boot_guile, scm_init_guile will return normally
@@ -476,7 +572,7 @@ 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_OPDIRP, SCM_VALIDATE_OPDIR, SCM_WTA, RETURN_SCM_WTA
 
 Use SCM_ASSERT_RANGE or SCM_VALIDATE_XXX_RANGE instead of SCM_OUTOFRANGE.
 Use scm_memory_error instead of SCM_NALLOC.
@@ -501,6 +597,8 @@ Use SCM_CLRGCMARK instead of SCM_CLRGC8MARK.
 Use SCM_TYP16 instead of SCM_GCTYP16.
 Use SCM_CDR instead of SCM_GCCDR.
 Use SCM_DIR_OPEN_P instead of SCM_OPDIRP.
+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.
 
 ** Removed function:  scm_struct_init
 
@@ -543,6 +641,10 @@ Use scm_make_smob_type and scm_set_smob_XXX instead.
 
 This can be used to set an apply function to a smob type.
 
+** Deprecated function:  scm_strprint_obj
+
+Use scm_object_to_string instead.
+
 \f
 Changes since Guile 1.3.4: