Changes since Guile 1.6.7 (changes in 1.6.8):
* Changes to the distribution
** A number of GCC 4.0 related build problems have been fixed.
A number of changes have been made to accomodate GCC 4.0.
* Changes to the stand-alone interpreter
** `readline-set!' now works.
* Changes to Scheme functions and syntax
** Guile now allows multiple line comments to end without a trailing newline.
Previously Guile would throw an exception if a multiple line comment
ended without a trailing newline. Now "!#" will end a multiple line
comment regardless of what follows.
** Guile supports newer versions of SLIB more cleanly.
Guile now relies on the upstream SLIB code (guile.init) to handle the
load process. Previously Guile relied on its own copy of that code,
which was incorrect, at least for more recent versions of SLIB.
If you still need to use Guile with an older version of SLIB, and the
new approach doesn't work for you, please add the following definition
to your code before (ice-9 slib) is loaded for the first time:
(define *guile-use-old-ice-9-slib* #t)
This will cause Guile to revert to the old load behavior.
** The r5rs numerator and denominator functions have been added.
These are now available in the default environment.
** `/' fix to <any>/0-<y>i complex division case, avoiding divide-by-zero
** `array-map!' fix, accepts just a destination array again
** `cons*', `list' fix to not clobber source list when called via `apply'
** `string-index', `split-string' and other string func fixes for 8-bit chars
** `number->string' fix for parsing of polar complex number with invalid angle
** (ice-9 poe) bug fixes
** srfi-1 `lset-adjoin' fix to actually use given equality procedure
** srfi-1 `lset-union' fixes to operate in the way specified by the SRFI
Note in particular that if the first list is empty then the first
non-empty is the starting point, and duplicates are not cast out of
that. So
(lset-union = '() '(1 1 1)) => '(1 1 1)
where previously it was '(1). This, though perhaps unhelpful, comes
from the SRFI spec (that if list A is empty then the result is B).
** srfi-1 `lset=', `list=' fix to equality procedure argument order
** srfi-17 avoid deprecation warnings about reexport
** srfi-19 new 2005 leap second
** srfi-39 new parameter versions of `current-output-port' etc, per SRFI
** make-stack can now correctly construct a stack from a continuation.
** Output string port speed problems have been improved
Output string port (open-output-string, etc) writing was very slow at
about 50 to 100 kbytes or above. This affected various things, in
particular regexp-substitute/global on a large string, and stack
backtraces with a large object.
** Bug fix: printing values no longer protects them from GC
A bug in the printing code used to mean that printing a value (using
`display' or `write') would incorrectly protect that value from GC for
a while afterwards. This has now been fixed.
* Changes to the C interface
Ok gdt@
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
makeinfo if no native makeinfo executable exists. Honor TEXINFO_REQD
when determining whether the native makeinfo can be used.
* Remove USE_MAKEINFO and replace it with USE_TOOLS+=makeinfo.
* Get rid of all the "split" argument deduction for makeinfo since
the PLIST module already handles varying numbers of split info files
correctly.
NOTE: Platforms that have "makeinfo" in the base system should check
that the makeinfo entries of pkgsrc/mk/tools.${OPSYS}.mk are
correct.
guile.init. A bit hackish, but restores slib functionality, which
should restore gnucash to working order. (The underlying problem is
that slib 3a2 has new primitives that dialect-specific init files are
supposed to define, and ice-9/slib.scm doesn't define one of them.
The slib way is to read slib's guile.init, but guile's way was to have
an implementation of the same interface, know known to be a moving
target.)
PKGREVISION++
Changes since Guile 1.6.6 (changes in 1.6.7):
* Changes to the distribution
** A build problem has been fixed.
Previously, on some systems, the build would fail when libguile-ltdl
couldn't be found during the build. This should now be fixed.
* Changes to Scheme functions and syntax
** array-map! and array-map-in-order! now correctly require at least one source
A mistake caused a call with just one source array to be rejected,
this has been fixed.
** string->number and octal constant bignums
An incorrect bignum size calculation has been fixed, this caused
overflow errors in string->number on bases other than 2, 10 and 16,
including octal literal constants in code or the reader.
** SRFI-1 alist-delete equality argument order fixed.
In the srfi-1 module alist-delete and alist-delete!, the order of the
arguments to the "=" procedure now matches the SRFI-1 specification.
** SRFI-13 string-any and string-every tail calls
string-any and string-every now make a tail call to their predicate
function on reaching the last character in the string, per the SRFI-13
specification.
Changes since Guile 1.6.5 (changes in 1.6.6):
* Changes to the distribution
** srfi-39 should work now - a file was missing from the distribution.
** A libltdl related build problem has been fixed.
* Changes to the C interface
** A bug has been fixed that caused uvec_equalp to function improperly.
** In scm_charnames and scm_charnums, sp is now an alias for space.
it before someone else does too :)
Changes since Guile 1.6.4 (changes in 1.6.5):
* Changes to the distribution
** Bugs have been fixed that prevented the (re)generation of psyntax.pp.
** SRFI-31 has been added (special form `rec' for recursive evaluation)
(use-modules (srfi srfi-31)) will now provide support for SRFI-31.
See the Guile info pages for more documentation.
** SRFI-39 has been added (parameter objects)
** Guile is now compiled with -fno-strict-aliasing when gcc is detected.
** The --enable-htmldoc option has been removed from 'configure'.
Support for translating the documentation into HTML is now always
provided. Use 'make html'.
* Changes to the stand-alone interpreter
** GC bug fixed.
The use of scm_must_realloc() for memory which is scanned by GC, could
trigger a GC scan of a free()d block of memory. This is now fixed.
* Changes to Scheme functions and syntax
** array-map! and array-map-in-order! now require at least one source array.
Previously a call without any source arrays like (array-map! array
proc) would cause a segfault. Now such calls are properly rejected.
** srfi-4 has been overhauled
Bugs have been fixed, and performance may be improved in certain
situations. Among other things, large 64-bit values should print
correctly now.
** gethost no longer causes an exception when trying to throw an exception
** 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 delete equality argument order fixed.
In the srfi-1 module delete and delete!, the order of the arguments to
the "=" procedure now matches the SRFI-1 specification.
** SRFI-19 date-week-number fix
date-week-number now correctly respects the requested day of week
starting the week.
* Changes to the C interface
automatically by pthread.buildlink3.mk. Also, factor out the pthread
library out of PTHREAD_LDFLAGS into a standalone variable PTHREAD_LIBS
and use it in packages where necessary (usually the ones that don't
have a GNU configure script).
Unfortunately, guile{,14}/buildlink3.mk directly includes it, and I don't
know which dependencies actually need libltdl, so it was a recursive bump.
Hopefully this recursive inclusion can be ripped out of
guile{,14}/buildlink3.mk at some point and bubble down to dependencies that
actually use libltdl, avoiding this headache in the future....
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
by moving the inclusion of buildlink3.mk files outside of the protected
region. This bug would be seen by users that have set PREFER_PKGSRC
or PREFER_NATIVE to non-default values.
BUILDLINK_PACKAGES should be ordered so that for any package in the
list, that package doesn't depend on any packages to the left of it
in the list. This ordering property is used to check for builtin
packages in the correct order. The problem was that including a
buildlink3.mk file for <pkg> correctly ensured that <pkg> was removed
from BUILDLINK_PACKAGES and appended to the end. However, since the
inclusion of any other buildlink3.mk files within that buildlink3.mk
was in a region that was protected against multiple inclusion, those
dependencies weren't also moved to the end of BUILDLINK_PACKAGES.
XXX: Package fails the same regression test 1.6.3 failed (scfi-19).
Changes since Guile 1.6.3 (i.e. changes for 1.6.4):
* Changes to the distribution
** Various architecture (and compiler optimization) related bugs fixed.
These changes should improve the situation on at least ia64, alpha,
and powerpc.
* Changes to the stand-alone interpreter
** Readline prompt problem fixed.
Previously, the readline prompt disappeared when running Guile in
non-echoing terminal mode (for example under GDB in Emacs). This has
been fixed.
** Printing bug fixed.
Previously, the state of writingp in the print state could be altered
by recursive calls to printing functions.
** Append mode in hooks.
Append mode in hooks (adding the hook last in the list) now works
correctly.
** GOOPS/GC bug fixed.
The class layout slot, which informs the GC about which slots to GC
protect, is now initialized correctly.
** GOOPS class redefinition bug fixed.
The class redefinition protocol now properly removes the old accessor
methods from their accessors.
** GOOPS method dispatch bug fixed.
Previously, the code updating the method cache in generic functions
got confused if handed method code created in a null environment
(environment = empty list). It now stands every environment
imaginable (think about it!).
** GOOPS init-thunks can now be primitive procedures
Previously, attempts to provide something else than a closure as value
for the #:init-thunk slot option would yield a segmentation fault.
Now, it's possible to supply a primitive procedure as init-thunk.
Non-allowed values result in an error.
** Garbage collection frequency improved for large malloc heaps
The decision when to run the GC is now done in a way that avoids GCs
with a small yield for heaps with a large amount of malloced storage.
The minimum expected yield for malloc storage is now relative to the
heap size, and not a fixed amount as it was previously.
* Changes to Scheme functions and syntax
** %fast-slot-ref no longer checks slot boundness
This makes the <active-class> metaclass in (oop goops active-slot)
working again.
** eqv? and equal? are now primitive generic functions
This means that it is possible to provide custom comparisons for new
classes by specializing `eqv?' and `equal?' to those classes.
* Changes to the C interface
** New snarf macros: SCM_PRIMITIVE_GENERIC, SCM_PRIMITIVE_GENERIC_1
These provide a way of adding primitive generics which is equivalent
to SCM_DEFINE and SCM_DEFINE1.
curses.buildlink2.mk. This was wrong because we _really_ do want to
express that we want _n_curses when we include the buildlink2.mk file.
We should have a better way to say that the NetBSD curses doesn't
quite work well enough. In fact, it's far better to depend on ncurses
by default, and exceptionally note when it's okay to use NetBSD curses
for specific packages. We will look into this again in the future.