1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

*** empty log message ***

This commit is contained in:
Mikael Djurfeldt 2000-06-20 02:38:36 +00:00
parent 5b99c4a9e7
commit b5074b2374
7 changed files with 134 additions and 12 deletions

View file

@ -1,3 +1,10 @@
2000-06-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
* GUILE-VERSION: Changed to work also when included by a Makefile
(e.g. debian/rules). (Thanks to Karl M. Hegbloom.)
(LIBGUILE_MAJOR_VERSION): Bumped to 9.
(GUILE_MINOR_VERSION): Bumped to 4.
2000-06-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se> 2000-06-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
* libguile.h: Removed #include "libguile/kw.h". * libguile.h: Removed #include "libguile/kw.h".

84
NEWS
View file

@ -183,6 +183,53 @@ when this hook is run in the future.
C programmers: Note the new C level hooks scm_before_gc_c_hook, C programmers: Note the new C level hooks scm_before_gc_c_hook,
scm_before_sweep_c_hook, scm_after_gc_c_hook. scm_before_sweep_c_hook, scm_after_gc_c_hook.
** Improvements to garbage collector
Guile 1.4 has a new policy for triggering heap allocation and
determining the sizes of heap segments. It fixes a number of problems
in the old GC.
1. The new policy can handle two separate pools of cells
(2-word/4-word) better. (The old policy would run wild, allocating
more and more memory for certain programs.)
2. The old code would sometimes allocate far too much heap so that the
Guile process became gigantic. The new code avoids this.
3. The old code would sometimes allocate too little so that few cells
were freed at GC so that, in turn, too much time was spent in GC.
4. The old code would often trigger heap allocation several times in a
row. (The new scheme predicts how large the segments needs to be
in order not to need further allocation.)
The new GC scheme also is prepared for POSIX threading. Threads can
allocate private pools of cells ("clusters") with just a single
function call. Allocation of single cells from such a cluster can
then proceed without any need of inter-thread synchronization.
** New environment variables controlling GC parameters
GUILE_MAX_SEGMENT_SIZE Maximal segment size
(default = 2097000)
Allocation of 2-word cell heaps:
GUILE_INIT_SEGMENT_SIZE_1 Size of initial heap segment in bytes
(default = 360000)
GUILE_MIN_YIELD_1 Minimum number of freed cells at each
GC in percent of total heap size
(default = 40)
Allocation of 4-word cell heaps
(used for real numbers and misc other objects):
GUILE_INIT_SEGMENT_SIZE_2, GUILE_MIN_YIELD_2
(See entry "Way for application to customize GC parameters" under
section "Changes to the scm_ interface" below.)
* Changes to Scheme functions and syntax * Changes to Scheme functions and syntax
** close-input-port and close-output-port are now R5RS ** close-input-port and close-output-port are now R5RS
@ -215,6 +262,16 @@ Returns #t if PORT is closed or #f if it is open.
The list* functionality is now provided by cons* (SRFI-1 compliant) The list* functionality is now provided by cons* (SRFI-1 compliant)
** New procedure: cons* ARG1 ARG2 ... ARGn
Like `list', but the last arg provides the tail of the constructed list,
returning (cons ARG1 (cons ARG2 (cons ... ARGn))).
Requires at least one argument. If given one argument, that argument
is returned as result.
This function is called `list*' in some other Schemes and in Common LISP.
** Removed deprecated: serial-map, serial-array-copy!, serial-array-map! ** Removed deprecated: serial-map, serial-array-copy!, serial-array-map!
* Changes to the gh_ interface * Changes to the gh_ interface
@ -464,6 +521,26 @@ are run when the heap is locked. These are intended for extension of
the GC in a modular fashion. Examples are the weaks and guardians the GC in a modular fashion. Examples are the weaks and guardians
modules. modules.
** Way for application to customize GC parameters
The application can set up other default values for the GC heap
allocation parameters
GUILE_INIT_HEAP_SIZE_1, GUILE_MIN_YIELD_1,
GUILE_INIT_HEAP_SIZE_2, GUILE_MIN_YIELD_2,
GUILE_MAX_SEGMENT_SIZE,
by setting
scm_default_init_heap_size_1, scm_default_min_yield_1,
scm_default_init_heap_size_2, scm_default_min_yield_2,
scm_default_max_segment_size
respectively before callong scm_boot_guile.
(See entry "New environment variables ..." in section
"Changes to the stand-alone interpreter" above.)
** Deprecated type tags: scm_tc16_flo, scm_tc_flo, scm_tc_dblr, scm_tc_dblc ** Deprecated type tags: scm_tc16_flo, scm_tc_flo, scm_tc_dblr, scm_tc_dblc
Guile does not provide the float representation for inexact real numbers any Guile does not provide the float representation for inexact real numbers any
@ -475,6 +552,13 @@ and scm_tc16_complex, respectively.
** Removed deprecated function scm_newsmob ** Removed deprecated function scm_newsmob
** Warning: scm_make_smob_type_mfpe might become deprecated in a future release
There is an ongoing discussion among the developers whether to
deprecate `scm_make_smob_type_mfpe' or not. Please use the current
standard interface (scm_make_smob_type, scm_set_smob_XXX) in new code
until this issue has been settled.
** Removed deprecated type tag scm_tc16_kw ** Removed deprecated type tag scm_tc16_kw
** Added type tag scm_tc16_keyword ** Added type tag scm_tc16_keyword

26
README
View file

@ -1,8 +1,4 @@
This is not a Guile release; it is a source tree retrieved via This is version 1.4 of Guile, Project GNU's extension language
anonymous CVS or as a nightly snapshot at some random time after the
Guile 1.3.4 release.
This is version 1.3.5 of Guile, Project GNU's extension language
library. Guile is an interpreter for Scheme, packaged as a library library. Guile is an interpreter for Scheme, packaged as a library
that you can link into your applications to give them their own that you can link into your applications to give them their own
scripting language. Guile will eventually support other languages as scripting language. Guile will eventually support other languages as
@ -18,14 +14,22 @@ representation of data types in Guile. The example-smob directory
contains example source code for the "Defining New Types (Smobs)" chapter. contains example source code for the "Defining New Types (Smobs)" chapter.
The incomplete Guile reference manual is available at The incomplete Guile reference manual is available at
ftp://ftp.red-bean.com/pub/guile/snapshots/guile-doc-snap.tar.gz
There is a plan to distribute the reference manual with guile-core, ftp://ftp.red-bean.com/pub/guile/snapshots/guile-doc-snap.tar.gz
with much of the text generated from the docstrings in the sources.
The docstrings are likely to be more up-to-date than the reference Neil Jerram is working on the new reference manual, which will be
manual at present (see libguile/guile-procedures.txt which is distributed with guile-core. The new manual will be synchronized with
the docstrings in the sources. Until then, please be aware that the
docstrings are likely to be more up-to-date than the old reference
manual (use `(help)' or see libguile/guile-procedures.txt which is
generated by the build process). generated by the build process).
The Guile WWW page is at
http://www.gnu.org/software/guile/guile.html
It contains a link to the Guile FAQ.
Guile License ================================================== Guile License ==================================================
The license of Guile consists of the GNU GPL plus a special statement The license of Guile consists of the GNU GPL plus a special statement
@ -164,7 +168,7 @@ Obtaining Guile ======================================================
The latest official Guile release is available via anonymous FTP from The latest official Guile release is available via anonymous FTP from
ftp://ftp.gnu.org/pub/gnu/guile/guile-1.3.4.tar.gz ftp://ftp.gnu.org/pub/gnu/guile/guile-1.4.tar.gz
The mailing list `guile@sourceware.cygnus.com' carries discussions, The mailing list `guile@sourceware.cygnus.com' carries discussions,
questions, and often answers, about Guile. To subscribe, send mail to questions, and often answers, about Guile. To subscribe, send mail to

View file

@ -121,6 +121,10 @@ Spiffing checklist:
(If the above steps are not done, the dependencies won't be properly (If the above steps are not done, the dependencies won't be properly
included in the generated Makefile.in files.) included in the generated Makefile.in files.)
+ Then do 'make dist'. + Then do 'make dist'.
+ Check that the dependencies in guile-readline/Makefile look OK.
(We currently use a kludge which edits the dependencies generated
by automake so that Guile can be built in a directory separate
from the source tree also with non-GNU make programs.)
* Give the test disty to various people to try. Here's what you should do: * Give the test disty to various people to try. Here's what you should do:
+ Unset GUILE_LOAD_PATH. + Unset GUILE_LOAD_PATH.
+ Remove automake and autoconf from your path, or turn off their + Remove automake and autoconf from your path, or turn off their

3
THANKS
View file

@ -24,7 +24,8 @@ For fixes or providing information which led to a fix:
Mark Galassi Mark Galassi
Ian Grant Ian Grant
Greg Harvey Greg Harvey
Jon Hellan Karl M. Hegbloom
Jon Hellan
Richard Kim Richard Kim
Brad Knotwell Brad Knotwell
Tim Mooney Tim Mooney

View file

@ -1,3 +1,8 @@
2000-06-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
* session.scm: Use module (ice-9 regex).
(help): Regexp-quote a name given as a symbol.
2000-06-16 Dirk Herrmann <D.Herrmann@tu-bs.de> 2000-06-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
* common-list.scm (list*): Removed, since this function is * common-list.scm (list*): Removed, since this function is

View file

@ -1,3 +1,20 @@
2000-06-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
* gc.c, gc.h (scm_default_init_heap_size_1,
scm_default_min_yield_1, scm_default_init_heap_size_2,
scm_default_min_yield_2, scm_default_max_segment_size): New global
variables. Can be customized by the application before booting
Guile. (We might want to be able to control these parameters
dynamically through the "options interface" in the future, but
note that that is additional functionality. Here we're giving
default values which the environment variables can override.)
* list.c (scm_cons_star): Updated comment.
* smob.h: Changed comments for scm_make_smob_type and
scm_make_smob_type_mfpe, warning that the latter might be
deprecated in a future release.
2000-06-19 Dirk Herrmann <D.Herrmann@tu-bs.de> 2000-06-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
* list.[ch] (scm_cons_star/cons*): Renamed from * list.[ch] (scm_cons_star/cons*): Renamed from