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:
parent
5b99c4a9e7
commit
b5074b2374
7 changed files with 134 additions and 12 deletions
|
@ -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>
|
||||
|
||||
* libguile.h: Removed #include "libguile/kw.h".
|
||||
|
|
84
NEWS
84
NEWS
|
@ -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,
|
||||
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
|
||||
|
||||
** 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)
|
||||
|
||||
** 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!
|
||||
|
||||
* 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
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
** 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
|
||||
|
||||
** Added type tag scm_tc16_keyword
|
||||
|
|
26
README
26
README
|
@ -1,8 +1,4 @@
|
|||
This is not a Guile release; it is a source tree retrieved via
|
||||
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
|
||||
This is version 1.4 of Guile, Project GNU's extension language
|
||||
library. Guile is an interpreter for Scheme, packaged as a library
|
||||
that you can link into your applications to give them their own
|
||||
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.
|
||||
|
||||
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,
|
||||
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
|
||||
manual at present (see libguile/guile-procedures.txt which is
|
||||
ftp://ftp.red-bean.com/pub/guile/snapshots/guile-doc-snap.tar.gz
|
||||
|
||||
Neil Jerram is working on the new reference manual, which will be
|
||||
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).
|
||||
|
||||
The Guile WWW page is at
|
||||
|
||||
http://www.gnu.org/software/guile/guile.html
|
||||
|
||||
It contains a link to the Guile FAQ.
|
||||
|
||||
Guile License ==================================================
|
||||
|
||||
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
|
||||
|
||||
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,
|
||||
questions, and often answers, about Guile. To subscribe, send mail to
|
||||
|
|
4
RELEASE
4
RELEASE
|
@ -121,6 +121,10 @@ Spiffing checklist:
|
|||
(If the above steps are not done, the dependencies won't be properly
|
||||
included in the generated Makefile.in files.)
|
||||
+ 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:
|
||||
+ Unset GUILE_LOAD_PATH.
|
||||
+ Remove automake and autoconf from your path, or turn off their
|
||||
|
|
1
THANKS
1
THANKS
|
@ -24,6 +24,7 @@ For fixes or providing information which led to a fix:
|
|||
Mark Galassi
|
||||
Ian Grant
|
||||
Greg Harvey
|
||||
Karl M. Hegbloom
|
||||
Jon Hellan
|
||||
Richard Kim
|
||||
Brad Knotwell
|
||||
|
|
|
@ -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>
|
||||
|
||||
* common-list.scm (list*): Removed, since this function is
|
||||
|
|
|
@ -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>
|
||||
|
||||
* list.[ch] (scm_cons_star/cons*): Renamed from
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue