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.
** GOOPS longer creates layout entries for non-instance slots.
** syntax-case bugs have been fixed
a) Macro expansion is no longer disturbed if the value of
(current-module) changes. This was the cause of a number of
different bugs people have reported.
b) Syntax-case now expands Guile's own macros as a part of the
macro expansion process. Previously, Guile macro calls were
treated as applications.
c) Objects which are constant data and which Guile considers
self-evaluating are no longer quoted.
One good consequence of these fixes is that it's now possible to
use syntax-case macro expansion together with GOOPS code.
** scm_readline now checks that it's using an output (not input) port.
Changes since Guile 1.6.0:
* Changes to the distribution
** Guile now provide and uses an "effective" version number.
** Guile now uses it's own version of libltdl.
** The Emacs interface has been fixed.
** The SRFI C headers are now installed.
* Changes to Scheme functions and syntax
** New function: effective-version
* Changes to the C interface
** New function: scm_effective_version
libguile, which has a reference to __floatdidf, which is part of libgcc
and will only be resolved at program link time.
XXX libtool, of Solaris ld bug ?
* installation fix: (ice-9 and-let*) has been renamed to (ice-9 and-let-star)
* build fix: net_db.c `inet_aton' declaration now properly conditionalized
* bugfix: `expt' now handles negative exponents correctly
* installation fix: some programs are no longer installed
* guile-snarf usage now internalizes output-file creation/deletion
* installation fix: libltdl now "installable" instead of "convenience"
* library versioning now more disciplined
* "make check" now works
* provisional documentation available
* interface summarization available
Summary of changes:
- removal of USE_GTEXINFO
- addition of mk/texinfo.mk
- inclusion of this file in package Makefiles requiring it
- `install-info' substituted by `${INSTALL_INFO}' in PLISTs
- tuning of mk/bsd.pkg.mk:
removal of USE_GTEXINFO
INSTALL_INFO added to PLIST_SUBST
`${INSTALL_INFO}' replace `install-info' in target rules
print-PLIST target now generate `${INSTALL_INFO}' instead of `install-info'
- a couple of new patch files added for a handful of packages
- setting of the TEXINFO_OVERRIDE "switch" in packages Makefiles requiring it
- devel/cssc marked requiring texinfo 4.0
- a couple of packages Makefiles were tuned with respect of INFO_FILES and
makeinfo command usage
See -newly added by this commit- section 10.24 of Packages.txt for
further information.
CXXFLAGS, and LDFLAGS by the buildlink.mk files so remove the extra
definitions to add them from the package Makefiles. As advised by the
bsd.buildlink.mk file, also ensure that the buildlink.mk files are
included prior to defining any package-specific CFLAGS/LDFLAGS to ensure
that the buildlink directories are at the head of the compiler search
paths.
out of date - it was based on a.out OBJECT_FMT, and added entries in the
generated PLISTs to reflect the symlinks that ELF packages uses. It also
tried to be clever, and removed and recreated any symbolic links that were
created, which has resulted in some fun, especially with packages which
use dlopen(3) to load modules. Some recent changes to our ld.so to bring
it more into line with other Operating Systems also exposed some cracks.
+ Modify bsd.pkg.mk and its shared object handling, so that PLISTs now contain
the ELF symlinks.
+ Don't mess about with file system entries when handling shared objects in
bsd.pkg.mk, since it's likely that libtool and the BSD *.mk processing will
have got it right, and have a much better idea than we do.
+ Modify PLISTs to contain "ELF symlinks"
+ On a.out platforms, delete any "ELF symlinks" from the generated PLISTs
+ On ELF platforms, no extra processing needs to be done in bsd.pkg.mk
+ Modify print-PLIST target in bsd.pkg.mk to add dummy symlink entries on
a.out platforms
+ Update the documentation in Packages.txt
With many thanks to Thomas Klausner for keeping me honest with this.
** The module (ice-9 getopt-gnu-style) has been removed.
** New module (ice-9 documentation)
** Debugging facilities for guile script are much improved.
** Improvements to garbage collector
** Speed/efficieny improvements.
** Better compliance to standards.
Add a new USE_LIBTOOL definition that uses the libtool package instead of
pkglibtool which is now considered outdated.
USE_PKGLIBTOOL is available for backwards compatibility with old packages
but is deprecated for new packages.
- New, optional Makefile variable HOMEPAGE, specifies a URL for
the home page of the software if it has one.
- The value of HOMEPAGE is used to add a link from the
README.html files.
- pkglint updated to know about it. The "correct" location for
HOMEPAGE in the Makefile is after MAINTAINER, in that same
section.
INSTALL_* macros in configure instead of patching around them. Remove
aclocal directory if this is the last pkg using it.
Portlint: reformat DESCR to <80 columns.