mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
Tidied up somewhat.
This commit is contained in:
parent
c08d10f5f3
commit
b0d10ba69f
1 changed files with 87 additions and 390 deletions
477
NEWS
477
NEWS
|
@ -12,7 +12,7 @@ Each release reports the NEWS in the following sections:
|
|||
* Changes to the C interface
|
||||
|
||||
|
||||
Changes since the stable branch:
|
||||
Changes since the 1.6.x series:
|
||||
|
||||
* Changes to the distribution
|
||||
|
||||
|
@ -23,37 +23,21 @@ Changes since the stable branch:
|
|||
** Guile now requires GNU MP (http://swox.com/gmp).
|
||||
|
||||
Guile now uses the GNU MP library for arbitrary precision arithmetic.
|
||||
At the moment it is being used to handle Guile's bignums.
|
||||
|
||||
** Guile now has separate private and public configuration headers.
|
||||
|
||||
Guile now has config.h and libguile/scmconfig.h. The former is not
|
||||
installed and is private. The latter is installed and used by Guile's
|
||||
public headers. config.h is generated by configure and autoheader,
|
||||
and scmconfig.h is generated by a small C program, gen-scmconfig at
|
||||
build time based in part on the contents of config.h.
|
||||
|
||||
Seen libguile/__scm.h and gen-scmconfig.c for more information.
|
||||
|
||||
Note too that nearly all public defines are now set to either 1 or 0
|
||||
rather than being set to 1 or left undefined. See gen-scmconfig.c and
|
||||
the GNU Coding Guidelines for the rationale. However, pre-existing
|
||||
defines that were not renamed were not changed. i.e. GUILE_DEBUG is
|
||||
still either 1 or undefined.
|
||||
|
||||
** The INSTALL file is now the generic automake installed one.
|
||||
|
||||
Guile specific instructions can be found in the README.
|
||||
That is, things like HAVE_STRING_H no longer leak from Guile's
|
||||
headers.
|
||||
|
||||
** Guile now provides and uses an "effective" version number.
|
||||
|
||||
Guile now provides scm_effective_version and effective-version
|
||||
functions which return the "effective" version number. This is just
|
||||
the normal full version string without the final micro-version number,
|
||||
so the current effective-version is "1.6". The effective version
|
||||
so the current effective-version is "1.7". The effective version
|
||||
should remain unchanged during a stable series, and should be used for
|
||||
items like the versioned share directory name
|
||||
i.e. /usr/share/guile/1.6.
|
||||
i.e. /usr/share/guile/1.7.
|
||||
|
||||
Providing an unchanging version number during a stable release for
|
||||
things like the versioned share directory can be particularly
|
||||
|
@ -86,6 +70,8 @@ you don't trust the thread safety of most of your program, but
|
|||
where you have some section(s) of code which you consider can run
|
||||
in parallel to other sections.
|
||||
|
||||
### move rest to manual
|
||||
|
||||
They "flag" (with dynamic extent) sections of code to be of
|
||||
"serial" or "parallel" nature and have the single effect of
|
||||
preventing a serial section from being run in parallel with any
|
||||
|
@ -126,7 +112,8 @@ This is an implementation of SRFI-31 which provides a special form
|
|||
** The modules (srfi srfi-13) and (srfi srfi-14) have been merged with
|
||||
the core, making their functionality always available.
|
||||
|
||||
The are still available, tho.
|
||||
The modules are still available, tho, and you use them together with a
|
||||
renaming import, for example.
|
||||
|
||||
** Guile now includes its own version of libltdl.
|
||||
|
||||
|
@ -188,7 +175,7 @@ writing
|
|||
For example (@ (ice-9 pretty-print) pretty-print) will directly access
|
||||
the pretty-print variable exported from the (ice-9 pretty-print)
|
||||
module. You don't need to 'use' that module first. You can also use
|
||||
'@' with 'set!'.
|
||||
'@' as a target of 'set!', as in (set! (@ mod var) val).
|
||||
|
||||
The related syntax (@@ MODULE-NAME VARIABLE-NAME) works just like '@',
|
||||
but it can also access variables that have not been exported. It is
|
||||
|
@ -205,12 +192,12 @@ dropped.
|
|||
** 'call-with-current-continuation' is now also available under the name
|
||||
'call/cc'.
|
||||
|
||||
** Checking for duplicate bindings in module system
|
||||
** The module system now checks for duplicate bindings.
|
||||
|
||||
The module system now can check for name conflicts among imported
|
||||
bindings.
|
||||
|
||||
The behavior can be controlled by specifying one or more duplicates
|
||||
The behavior can be controlled by specifying one or more 'duplicates'
|
||||
handlers. For example, to make Guile return an error for every name
|
||||
collision, write:
|
||||
|
||||
|
@ -234,6 +221,8 @@ can add the line:
|
|||
|
||||
to your .guile init file.
|
||||
|
||||
### move rest to manual
|
||||
|
||||
The syntax for the :duplicates option is:
|
||||
|
||||
:duplicates HANDLER-NAME | (HANDLER1-NAME HANDLER2-NAME ...)
|
||||
|
@ -286,7 +275,13 @@ a prefix to all imported bindings.
|
|||
will import all bindings exported from bar, but rename them by adding
|
||||
the prefix `bar:'.
|
||||
|
||||
** Merging generic functions
|
||||
** Conflicting generic functions can be automatically merged.
|
||||
|
||||
When two imported bindings conflict and they are both generic
|
||||
functions, the two functions can now be merged automatically. This is
|
||||
activated with the 'duplicates' handler 'merge-generics'.
|
||||
|
||||
### move the rest to the manual
|
||||
|
||||
It is sometimes tempting to use GOOPS accessors with short names.
|
||||
For example, it is tempting to use the name `x' for the x-coordinate
|
||||
|
@ -349,10 +344,10 @@ Returns the "effective" version number. This is just the normal full
|
|||
version string without the final micro-version number. See "Changes
|
||||
to the distribution" above.
|
||||
|
||||
** Futures: future, make-future, future-ref
|
||||
** New feature, 'futures': future, make-future, future-ref
|
||||
|
||||
Futures are like promises, but begun immediately in a new thread. See
|
||||
the "Futures" section in the reference manual.
|
||||
Futures are like promises, but begin execution immediately in a new
|
||||
thread. See the "Futures" section in the reference manual.
|
||||
|
||||
** New threading functions: parallel, letpar, par-map, and friends
|
||||
|
||||
|
@ -376,7 +371,7 @@ A fair condition variable must be used together with a fair mutex,
|
|||
just as a standard condition variable must be used together with a
|
||||
standard mutex.
|
||||
|
||||
** New functions: make-fair-mutex, make-fair-condition-variable'
|
||||
*** New functions: make-fair-mutex, make-fair-condition-variable'
|
||||
|
||||
Make a new fair mutex and a new fair condition variable respectively.
|
||||
|
||||
|
@ -528,9 +523,9 @@ Previously, (odd? 1.0) would signal an error since only exact integers
|
|||
were recognized as integers. Now (odd? 1.0) returns #t, (odd? 2.0)
|
||||
returns #f and (odd? 1.5) signals an error.
|
||||
|
||||
** We now have uninterned symbols.
|
||||
** Guile now has uninterned symbols.
|
||||
|
||||
The new function 'make-symbol' will return a uninterned symbol. This
|
||||
The new function 'make-symbol' will return an uninterned symbol. This
|
||||
is a symbol that is unique and is guaranteed to remain unique.
|
||||
However, uninterned symbols can not yet be read back in.
|
||||
|
||||
|
@ -556,9 +551,9 @@ when evaluated and simply be ignored in a definition context.
|
|||
|
||||
** Deprecated: procedure->macro
|
||||
|
||||
Change your code to use either procedure->memoizing-macro or, probably better,
|
||||
to use r5rs macros. Also, be aware that macro expansion will not be done
|
||||
during evaluation, but prior to evaluation.
|
||||
Change your code to use 'define-macro' or r5rs macros. Also, be aware
|
||||
that macro expansion will not be done during evaluation, but prior to
|
||||
evaluation.
|
||||
|
||||
** Soft ports now allow a `char-ready?' procedure
|
||||
|
||||
|
@ -577,39 +572,6 @@ chapter in the reference manual.
|
|||
|
||||
There is no replacement for undefine.
|
||||
|
||||
** call-with-output-string doesn't segv on closed port
|
||||
|
||||
Previously call-with-output-string would give a segmentation fault if
|
||||
the string port was closed by the called function. An exception is
|
||||
raised now.
|
||||
|
||||
** (ice-9 popen) duplicate pipe fd fix
|
||||
|
||||
open-pipe, open-input-pipe and open-output-pipe left an extra copy of
|
||||
their pipe file descriptor in the child, which was normally harmless,
|
||||
but it can prevent the parent seeing eof or a broken pipe immediately
|
||||
and has now been fixed.
|
||||
|
||||
** source-properties and set-source-properties! fix
|
||||
|
||||
Properties set with set-source-properties! can now be read back
|
||||
correctly with source-properties.
|
||||
|
||||
** SRFI-1 fixes
|
||||
|
||||
delete and delete! now call the "=" procedure with arguments in the
|
||||
order described by the SRFI-1 specification
|
||||
|
||||
list-copy now accepts improper lists, per the specification.
|
||||
|
||||
** SRFI-4 fixes
|
||||
|
||||
Larger values in 64-bit vectors should print correctly now.
|
||||
|
||||
** SRFI-19 fixes
|
||||
|
||||
date-week-number now correctly respects the requested day of week
|
||||
starting the week.
|
||||
|
||||
* Changes to the C interface
|
||||
|
||||
|
@ -667,15 +629,15 @@ Use scm_c_make_rectangular instead.
|
|||
** The INUM macros have been deprecated.
|
||||
|
||||
A lot of code uses these macros to do general integer conversions,
|
||||
although they only work correctly with fixnums. Use the following
|
||||
alternatives.
|
||||
although the macros only work correctly with fixnums. Use the
|
||||
following alternatives.
|
||||
|
||||
SCM_INUMP -> scm_is_integer or similar
|
||||
SCM_NINUMP -> !scm_is_integer or similar
|
||||
SCM_MAKINUM -> scm_from_int or similar
|
||||
SCM_INUM -> scm_to_int or similar
|
||||
|
||||
SCM_VALIDATE_INUM_* -> Do not use these, scm_to_int, etc. will
|
||||
SCM_VALIDATE_INUM_* -> Do not use these; scm_to_int, etc. will
|
||||
do the validating for you.
|
||||
|
||||
** The scm_num2<type> and scm_<type>2num functions and scm_make_real
|
||||
|
@ -720,12 +682,14 @@ easier to use from C.
|
|||
|
||||
They export too many assumptions about the implementation of strings
|
||||
and symbols that are no longer true in the presence of
|
||||
mutation-sharing substrings and later, when Guile switches to some
|
||||
form of Unicode.
|
||||
mutation-sharing substrings and when Guile switches to some form of
|
||||
Unicode.
|
||||
|
||||
When working with strings, it is often best to use the normal string
|
||||
functions provided by Guile, such as scm_c_string_ref,
|
||||
scm_c_string_set_x, scm_string_append, etc.
|
||||
scm_c_string_set_x, scm_string_append, etc. Be sure to look in the
|
||||
manual since many more such functions are now provided than
|
||||
previously.
|
||||
|
||||
When you want to convert a SCM string to a C string, use the
|
||||
scm_to_locale_string function or similar instead. For symbols, use
|
||||
|
@ -735,7 +699,7 @@ and is thus quite efficient.
|
|||
|
||||
** Some string and symbol functions have been discouraged.
|
||||
|
||||
They don't fot into the uniform naming scheme and are not explicit
|
||||
They don't fit into the uniform naming scheme and are not explicit
|
||||
about the character encoding.
|
||||
|
||||
Replace according to the following table:
|
||||
|
@ -747,7 +711,7 @@ Replace according to the following table:
|
|||
scm_str2string -> scm_from_locale_string
|
||||
scm_makfrom0str -> scm_from_locale_string
|
||||
scm_mem2symbol -> scm_from_locale_symboln
|
||||
scm_mem2uninterned_symbol -> scm_make_symbol + scm_from_locale_stringn
|
||||
scm_mem2uninterned_symbol -> scm_from_locale_stringn + scm_make_symbol
|
||||
scm_str2symbol -> scm_from_locale_symbol
|
||||
|
||||
SCM_SYMBOL_HASH -> scm_hashq
|
||||
|
@ -755,7 +719,7 @@ Replace according to the following table:
|
|||
|
||||
** SCM_CELL_WORD_LOC has been deprecated.
|
||||
|
||||
Use the new macro SCM_CELL_OBJECT_LOC instead, which return a pointer
|
||||
Use the new macro SCM_CELL_OBJECT_LOC instead, which returns a pointer
|
||||
to a SCM, as opposed to a pointer to a scm_t_bits.
|
||||
|
||||
This was done to allow the correct use of pointers into the Scheme
|
||||
|
@ -775,9 +739,9 @@ used to get and set the 16 exra bits in the zeroth word of a smob.
|
|||
And finally, there is SCM_SMOB_OBJECT and SCM_SMOB_SET_OBJECT for
|
||||
accesing the first immediate word of a smob as a SCM value, and there
|
||||
is SCM_SMOB_OBJECT_LOC for getting a pointer to the first immediate
|
||||
smob words. Like wise for SCM_SMOB_OBJECT_2, etc.
|
||||
smob word. Like wise for SCM_SMOB_OBJECT_2, etc.
|
||||
|
||||
** New way to deal with non-local exits and reentries.
|
||||
** New way to deal with non-local exits and re-entries.
|
||||
|
||||
There is a new set of functions that essentially do what
|
||||
scm_internal_dynamic_wind does, but in a way that is more convenient
|
||||
|
@ -837,229 +801,46 @@ On platforms that have them, these types are identical to intmax_t and
|
|||
uintmax_t, respectively. On other platforms, they are identical to
|
||||
the largest integer types that Guile knows about.
|
||||
|
||||
** scm_unmemocopy and scm_unmemoize have been removed from public use.
|
||||
|
||||
For guile internal use, the functions scm_i_unmemocopy_expr,
|
||||
scm_i_unmemocopy_body and scm_i_unmemoize_expr are provided to replace
|
||||
scm_unmemocopy and scm_unmemoize. User code should not have used
|
||||
scm_unmemocopy and scm_unmemoize and thus should not use the replacement
|
||||
functions also.
|
||||
|
||||
Background: Formerly, scm_unmemocopy and scm_unmemoize would have allowed to
|
||||
unmemoize a single expression as well as a sequence of body forms. This would
|
||||
have lead to problems when unmemoizing code of the new memoizer. Now the two
|
||||
cases have to be distinguished.
|
||||
** The functions scm_unmemocopy and scm_unmemoize have been removed.
|
||||
|
||||
You should not have used them.
|
||||
|
||||
** Many public #defines with generic names have been made private.
|
||||
|
||||
#defines with generic names like HAVE_FOO or SIZEOF_FOO have been made
|
||||
private or renamed with a more suitable public name. See below for
|
||||
the ones which have been renamed.
|
||||
|
||||
** HAVE_STDINT_H and HAVE_INTTYPES_H have been removed from public use.
|
||||
|
||||
HAVE_STDINT_H and HAVE_INTTYPES_H removed from public use. These are
|
||||
no longer needed since the older uses of stdint.h and inttypes.h are
|
||||
now handled by configure.in and gen-scmconfig.c.
|
||||
|
||||
** USE_DLL_IMPORT is no longer defined publically.
|
||||
|
||||
gen-scmconfig now uses it to decide what contents to place in the
|
||||
public scmconfig.h header without adding the USE_DLL_IMPORT itself.
|
||||
|
||||
** HAVE_LIMITS_H has been removed from public use.
|
||||
|
||||
gen-scmconfig now just uses HAVE_LIMITS_H to decide whether or not to
|
||||
add a limits.h include in scmconfig.h.
|
||||
|
||||
** time.h, sys/time.h, etc. #ifdefery has been removed from public headers.
|
||||
|
||||
gen-scmconfig now just uses the same logic to decide what time related
|
||||
#includes to add to scmconfig.h.
|
||||
|
||||
** HAVE_STRUCT_TIMESPEC has been removed from public use.
|
||||
|
||||
scmconfig.h now just defines scm_t_timespec.
|
||||
|
||||
** HAVE_PTRDIFF has been removed from public use and Guile doesn't
|
||||
define ptrdiff_t.
|
||||
|
||||
Guile now publically defines scm_t_ptrdiff and
|
||||
SCM_SIZEOF_SCM_T_PTRDIFF in scmconfig.h, and all occurrences of
|
||||
ptrdiff_t have been replaced with scm_t_ptrdiff.
|
||||
|
||||
Guile defines its own type this rather than just relying on ptrdiff_t
|
||||
and SCM_SIZEOF_PTRDIFF_T because Guile actually typedefs long to
|
||||
scm_t_ptrdiff when ptrdiff_t isn't available. A public "typedef long
|
||||
ptrdiff_t" could conflict with other headers.
|
||||
|
||||
** HAVE_UINTPTR_T and HAVE_UINTPTR_T have been removed from public use.
|
||||
|
||||
They are replaced by public definitions of SCM_SIZEOF_UINTPTR_T and
|
||||
SCM_SIZEOF_INTPTR_T. These are defined to 0 if the corresponding type
|
||||
is not available.
|
||||
|
||||
** The public #define STDC_HEADERS has been renamed to SCM_HAVE_STDC_HEADERS.
|
||||
|
||||
The previous name was too generic for the global public namespace.
|
||||
|
||||
** The public #define HAVE_SYS_SELECT has been renamed to
|
||||
SCM_HAVE_SYS_SELECT_H.
|
||||
|
||||
The previous name was too generic for the global public namespace.
|
||||
|
||||
** The public #define HAVE_FLOATINGPOINT_H has been renamed to
|
||||
SCM_HAVE_FLOATINGPOINT_H.
|
||||
|
||||
The previous name was too generic for the global public namespace.
|
||||
|
||||
** The public #define HAVE_IEEEFP_H has been renamed to SCM_HAVE_IEEEFP_H.
|
||||
|
||||
The previous name was too generic for the global public namespace.
|
||||
|
||||
** The public #define HAVE_NAN_H has been renamed to SCM_HAVE_NAN_H.
|
||||
|
||||
The previous name was too generic for the global public namespace.
|
||||
|
||||
** The public #define HAVE_WINSOCK2_H has been renamed to SCM_HAVE_WINSOCK2_H.
|
||||
|
||||
The previous name was too generic for the global public namespace.
|
||||
|
||||
** The public #define HAVE_ARRAYS has been renamed to SCM_HAVE_ARRAYS.
|
||||
|
||||
The previous name was too generic for the global public namespace.
|
||||
|
||||
** The public #define STACK_GROWS_UP has been renamed to SCM_STACK_GROWS_UP.
|
||||
|
||||
The previous name was too generic for the global public namespace.
|
||||
|
||||
** The public #define USE_PTHREAD_THREADS has been renamed to
|
||||
SCM_USE_PTHREAD_THREADS.
|
||||
|
||||
The previous name was too generic for the global public namespace.
|
||||
|
||||
** The public #define USE_NULL_THREADS has been renamed to
|
||||
SCM_USE_NULL_THREADS.
|
||||
|
||||
The previous name was too generic for the global public namespace.
|
||||
|
||||
** The public #define USE_COOP_THREADS has been renamed to
|
||||
SCM_USE_COOP_THREADS.
|
||||
|
||||
The previous name was too generic for the global public namespace.
|
||||
|
||||
** SCM_C_INLINE is publically defined if possible.
|
||||
|
||||
If the platform has a way to define inline functions, SCM_C_INLINE
|
||||
will be defined to that text. Otherwise it will be undefined. This
|
||||
is a little bit different than autoconf's normal handling of the
|
||||
inline define via AC_C_INLINE.
|
||||
|
||||
** Guile now publically defines some basic type infrastructure.
|
||||
|
||||
Guile always defines
|
||||
|
||||
SCM_SIZEOF_CHAR
|
||||
SCM_SIZEOF_UNSIGNED_CHAR
|
||||
SCM_SIZEOF_SHORT
|
||||
SCM_SIZEOF_UNSIGNED_SHORT
|
||||
SCM_SIZEOF_LONG
|
||||
SCM_SIZEOF_UNSIGNED_LONG
|
||||
SCM_SIZEOF_INT
|
||||
SCM_SIZEOF_UNSIGNED_INT
|
||||
SCM_SIZEOF_LONG_LONG /* defined to 0 if type not available */
|
||||
SCM_SIZEOF_UNSIGNED_LONG_LONG /* defined to 0 if type not available */
|
||||
|
||||
scm_t_int8
|
||||
scm_t_uint8
|
||||
scm_t_int16
|
||||
scm_t_uint16
|
||||
scm_t_int32
|
||||
scm_t_uint32
|
||||
|
||||
Guile always defines these to 0 or 1
|
||||
|
||||
SCM_HAVE_T_INT64
|
||||
SCM_HAVE_T_UINT64
|
||||
|
||||
and when either of these are defined to 1, also defines
|
||||
|
||||
scm_t_int64
|
||||
scm_t_uint64
|
||||
|
||||
respectively.
|
||||
|
||||
Guile always defines
|
||||
|
||||
scm_t_timespec
|
||||
|
||||
** The macro SCM_IFLAGP now only returns true for flags
|
||||
|
||||
User code should never have used this macro anyway. And, you should not use
|
||||
it in the future either. Thus, the following explanation is just for the
|
||||
impropable case that your code actually made use of this macro, and that you
|
||||
are willing to depend on internals which will probably change in the near
|
||||
future.
|
||||
|
||||
Formerly, SCM_IFLAGP also returned true for evaluator bytecodes created with
|
||||
SCM_MAKSPCSYM (short instructions) and evaluator bytecodes created with
|
||||
SCM_MAKISYM (short instructions). Now, SCM_IFLAG only returns true for
|
||||
Guile's special constants created with SCM_MAKIFLAG. To achieve the old
|
||||
behaviour, instead of
|
||||
|
||||
SCM_IFLAGP(x)
|
||||
|
||||
you would have to write
|
||||
|
||||
(SCM_ISYMP(x) || SCM_IFLAGP(x))
|
||||
private or renamed with a more suitable public name.
|
||||
|
||||
** The macro SCM_TYP16S has been deprecated.
|
||||
|
||||
This macro is not intended for public use. However, if you allocated types
|
||||
with tc16 type codes in a way that you would have needed this macro, you are
|
||||
expected to have a deep knowledge of Guile's type system. Thus, you should
|
||||
know how to replace this macro.
|
||||
This macro is not intended for public use.
|
||||
|
||||
** The macro SCM_SLOPPY_INEXACTP has been deprecated.
|
||||
|
||||
Use SCM_INEXACTP instead.
|
||||
Use scm_is_true (scm_inexact_p (...)) instead.
|
||||
|
||||
** The macro SCM_SLOPPY_REALP has been deprecated.
|
||||
|
||||
Use SCM_REALP instead.
|
||||
Use scm_is_real instead.
|
||||
|
||||
** The macro SCM_SLOPPY_COMPLEXP has been deprecated.
|
||||
|
||||
Use SCM_COMPLEXP instead.
|
||||
Use scm_is_complex instead.
|
||||
|
||||
** The preprocessor define USE_THREADS has been deprecated.
|
||||
** Some preprocessor defines have been deprecated.
|
||||
|
||||
Going forward, assume that the thread API is always present.
|
||||
These defines indicated whether a certain feature was present in Guile
|
||||
or not. Going forward, assume that the features are always present.
|
||||
|
||||
** The preprocessor define GUILE_ISELECT has been deprecated.
|
||||
The macros are: USE_THREADS, GUILE_ISELECT, READER_EXTENSIONS,
|
||||
DEBUG_EXTENSIONS, DYNAMIC_LINKING.
|
||||
|
||||
Going forward, assume that scm_internal_select is always present.
|
||||
|
||||
** The preprocessor define READER_EXTENSIONS has been deprecated.
|
||||
|
||||
Going forward, assume that the features represented by
|
||||
READER_EXTENSIONS are always present.
|
||||
|
||||
** The preprocessor define DEBUG_EXTENSIONS has been deprecated.
|
||||
|
||||
Going forward, assume that the features represented by
|
||||
DEBUG_EXTENSIONS are always present.
|
||||
|
||||
** The preprocessor define DYNAMIC_LINKING has been deprecated.
|
||||
|
||||
Going forward, assume that the features represented by
|
||||
DYNAMIC_LINKING are always present.
|
||||
The following macros have been removed completely: MEMOIZE_LOCALS,
|
||||
SCM_RECKLESS, SCM_CAUTIOUS.
|
||||
|
||||
** The preprocessor define STACK_DIRECTION has been deprecated.
|
||||
|
||||
There should be no need to know about the stack direction for ordinary
|
||||
programs. (Do not use.)
|
||||
programs.
|
||||
|
||||
** New function: scm_effective_version
|
||||
|
||||
|
@ -1125,7 +906,7 @@ GUILE_INIT_SEGMENT_SIZE_1, and GUILE_MIN_YIELD_2 should be used.
|
|||
|
||||
The name scm_definedp is deprecated.
|
||||
|
||||
** The struct scm_cell has been renamed to scm_t_cell
|
||||
** The struct scm_cell type has been renamed to scm_t_cell
|
||||
|
||||
This is in accordance to Guile's naming scheme for types. Note that
|
||||
the name scm_cell is now used for a function that allocates and
|
||||
|
@ -1151,11 +932,6 @@ The old functions for memory management have been deprecated. They
|
|||
are: scm_must_malloc, scm_must_realloc, scm_must_free,
|
||||
scm_must_strdup, scm_must_strndup, scm_done_malloc, scm_done_free.
|
||||
|
||||
** New function: scm_str2string
|
||||
|
||||
This function creates a scheme string from a 0-terminated C string. The input
|
||||
string is copied.
|
||||
|
||||
** Declarations of exported features are marked with SCM_API.
|
||||
|
||||
Every declaration of a feature that belongs to the exported Guile API
|
||||
|
@ -1168,15 +944,16 @@ If you `#define SCM_IMPORT' before including <libguile.h>, SCM_API
|
|||
will expand into "__declspec (dllimport) extern", which is needed for
|
||||
linking to the Guile DLL in Windows.
|
||||
|
||||
There are also SCM_RL_IMPORT, QT_IMPORT, SCM_SRFI1314_IMPORT, and
|
||||
There are also SCM_RL_IMPORT, SCM_SRFI1314_IMPORT, and
|
||||
SCM_SRFI4_IMPORT, for the corresponding libraries.
|
||||
|
||||
** SCM_NEWCELL and SCM_NEWCELL2 have been deprecated.
|
||||
|
||||
Use the new functions scm_cell and scm_double_cell instead. The old macros
|
||||
had problems because with them allocation and initialization was separated and
|
||||
the GC could sometimes observe half initialized cells. Only careful coding by
|
||||
the user of SCM_NEWCELL and SCM_NEWCELL2 could make this safe and efficient.
|
||||
Use the new functions scm_cell and scm_double_cell instead. The old
|
||||
macros had problems because with them allocation and initialization
|
||||
was separated and the GC could sometimes observe half initialized
|
||||
cells. Only careful coding by the user of SCM_NEWCELL and
|
||||
SCM_NEWCELL2 could make this safe and efficient.
|
||||
|
||||
** CHECK_ENTRY, CHECK_APPLY and CHECK_EXIT have been deprecated.
|
||||
|
||||
|
@ -1189,105 +966,35 @@ Use scm_c_source_property_breakpoint_p instead.
|
|||
|
||||
** Deprecated: scm_makmacro
|
||||
|
||||
Change your code to use either scm_makmmacro or, probably better, to use r5rs
|
||||
macros. Also, be aware that macro expansion will not be done during
|
||||
evaluation, but prior to evaluation.
|
||||
|
||||
** Removed from scm_root_state: def_inp, def_outp, def_errp, together
|
||||
with corresponding macros scm_def_inp, scm_def_outp and scm_def_errp.
|
||||
These were undocumented and unused copies of the standard ports at the
|
||||
time that Guile was initialised. Normally the current ports should be
|
||||
used instead, obtained from scm_current_input_port () etc. If an
|
||||
application needs to retain earlier ports, it should save them in a
|
||||
gc-protected location.
|
||||
|
||||
** Removed compile time option MEMOIZE_LOCALS
|
||||
|
||||
Now, caching of local variable positions during memoization is mandatory.
|
||||
However, the option to disable the caching has most probably not been used
|
||||
anyway.
|
||||
|
||||
** Removed compile time option SCM_RECKLESS
|
||||
|
||||
Full number of arguments checking of closures is mandatory now. However, the
|
||||
option to disable the checking has most probably not been used anyway.
|
||||
|
||||
** Removed compile time option SCM_CAUTIOUS
|
||||
|
||||
Full number of arguments checking of closures is mandatory now. However, the
|
||||
option to disable the checking has most probably not been used anyway.
|
||||
|
||||
** Deprecated configure flags USE_THREADS and GUILE_ISELECT
|
||||
|
||||
Previously, when the C preprocessor macro USE_THREADS was defined,
|
||||
libguile included a thread API. This API is now always included, even
|
||||
when threads are not really supported. Thus, you don't need to test
|
||||
for USE_THREADS.
|
||||
|
||||
Analogously, GUILE_ISELECT was defined when the function
|
||||
scm_internal_select was provided by Guile. This function is now
|
||||
always defined, and GUILE_ISELECT with it.
|
||||
Change your code to use either scm_makmmacro or to define macros in
|
||||
Scheme, using 'define-macro'.
|
||||
|
||||
** New function scm_c_port_for_each.
|
||||
|
||||
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
|
||||
** Many definitions have been removed that were previously deprecated.
|
||||
|
||||
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 helper functions for evaluation and application:
|
||||
scm_m_expand_body, scm_macroexp
|
||||
|
||||
These functions were used in the implementation of the evaluator. It's
|
||||
unlikely that they have been used by user code.
|
||||
|
||||
** Deprecated functions and variables for evaluation and application:
|
||||
scm_ceval, scm_deval and scm_ceval_ptr
|
||||
|
||||
These functions and variables were used in the implementation of the
|
||||
evaluator. It's unlikely that they have been used by user code. If you have
|
||||
used these functions, switch to scm_eval or scm_eval_x.
|
||||
|
||||
** Deprecated functions for unmemoization: scm_unmemocar
|
||||
|
||||
** Deprecated definitions for iloc and isym handling
|
||||
|
||||
SCM_ILOC00, SCM_IDINC, SCM_IDSTMSK, SCM_IFRINC, SCM_ICDR, SCM_IFRAME,
|
||||
SCM_IDIST, SCM_ICDRP, SCM_ISYMNUM, SCM_ISYMCHARS, scm_isymnames.
|
||||
|
||||
These definitions 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,
|
||||
scm_debug_newcell2, scm_tc16_allocated, SCM_SET_SYMBOL_HASH,
|
||||
SCM_IM_NIL_IFY, SCM_IM_T_IFY, SCM_IM_0_COND, SCM_IM_0_IFY,
|
||||
SCM_IM_1_IFY, SCM_GC_SET_ALLOCATED, scm_debug_newcell,
|
||||
scm_debug_newcell2, 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_top_level_lookup_closure_var, *top-level-lookup-closure*,
|
||||
scm_system_transformer, scm_eval_3, scm_eval2,
|
||||
root_module_lookup_closure, SCM_SLOPPY_STRINGP, SCM_RWSTRINGP,
|
||||
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_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_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, scm_debug_newcell2,
|
||||
scm_tc16_allocated, SCM_SET_SYMBOL_HASH, SCM_IM_NIL_IFY, SCM_IM_T_IFY,
|
||||
SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY, SCM_GC_SET_ALLOCATED,
|
||||
scm_debug_newcell, scm_debug_newcell2, 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_top_level_lookup_closure_var,
|
||||
*top-level-lookup-closure*, scm_system_transformer, scm_eval_3,
|
||||
scm_eval2, root_module_lookup_closure, SCM_SLOPPY_STRINGP,
|
||||
SCM_RWSTRINGP, 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_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_CONST_LONG, SCM_VCELL,
|
||||
|
@ -1301,16 +1008,6 @@ SCM_NECONSP, SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL,
|
|||
SCM_GLOC_VAL_LOC, scm_make_gloc, scm_gloc_p, scm_tc16_variable,
|
||||
SCM_CHARS, SCM_LENGTH, SCM_SET_STRING_CHARS, SCM_SET_STRING_LENGTH.
|
||||
|
||||
** Deprecated definitions for debugging: scm_debug_mode, SCM_DEBUGGINGP
|
||||
|
||||
These functions were used in the implementation of the evaluator. It's
|
||||
unlikely that they have been used by user code.
|
||||
|
||||
** Removed macro SCM_MAKSPCSYM
|
||||
|
||||
This macro was used for defining byte codes of the evaluator. It is almost
|
||||
impossible that user code has used this macro.
|
||||
|
||||
|
||||
Changes since Guile 1.4:
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue