X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/f3f70257a3befb6495760923d167e52d5cdfddae..42b54c05a9ba541cfe15eb071ad96b42de19d908:/NEWS diff --git a/NEWS b/NEWS index 724a3589e..01d04af58 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,8 @@ Changes since Guile 1.4: * Changes to the distribution +** A top-level TODO file is included. + ** Guile now uses a versioning scheme similar to that of the Linux kernel. Guile now always uses three numbers to represent the version, @@ -35,13 +37,34 @@ The new configure option `--enable-deprecated=LEVEL' and the environment variable GUILE_WARN_DEPRECATED control this mechanism. See INSTALL and README for more information. +** New functions: setitimer and getitimer. + +These implement a fairly direct interface to the libc functions of the +same name. + +** The #. reader extension is now disabled by default. + +For safety reasons, #. evaluation is disabled by default. To +re-enable it, set the fluid read-eval? to #t. For example: + + (fluid-set read-eval? #t) + +but make sure you realize the potential security risks involved. With +read-eval? enabled, reading a data file from an untrusted source can +be dangerous. + ** New SRFI modules have been added: 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-4) implements homogeneous numeric vector datatypes. + (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. @@ -136,14 +159,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 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 +184,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 +216,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 +239,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 +360,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 +675,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 +701,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 +721,34 @@ 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 functions: scm_list_1, scm_list_2, scm_list_3, scm_list_4, scm_list_5 + +Create a list of the given number of elements. + +** Renamed function: scm_listify has been replaced by scm_list_n. + +** Deprecated macros: SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, +SCM_LIST5, SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9. + +Use functions scm_list_N instead. + ** 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. @@ -959,7 +1044,7 @@ 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 +With the exception of the mysterious 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 @@ -978,6 +1063,23 @@ types and Scheme numbers. 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. + Changes since Guile 1.3.4: