Changes in 1.8.8 (since 1.8.7)
* Bugs fixed
** Fix possible buffer overruns when parsing numbers
** Fix random number generator on 64-bit platforms
Previously the `scm_c_random' function would crash or return only 32-bit
worth of randomness. In addition, the new `scm_c_random64' function
explicitly returns 64 bits of randomness.
** Add missing range checks in `vector-move-left!' and `vector-move-right!'
Previously these procedures could write past the end of a vector.
** Avoid clash with system setjmp/longjmp on IA64
** Don't dynamically link an extension that is already registered
** Fix `wrong type arg' exceptions with IPv6 addresses
** Fix typos in `(srfi srfi-19)'
** Have `(srfi srfi-35)' provide named struct vtables
** Fix C documentation extraction ("snarfing") with recent GCC versions
** Fix some Interix build problems
** Fix Tru64 build problems
** Fix GC-related build issues on Solaris 10 x86 with Sun Studio 12
** Several small documentation fixes
Changes in 1.8.7 (since 1.8.6)
* Bugs fixed
** Fix compilation with `--disable-deprecated'
** Fix %fast-slot-ref/set!, to avoid possible segmentation fault
** Fix MinGW build problem caused by HAVE_STRUCT_TIMESPEC confusion
** Fix build problem when scm_t_timespec is different from struct timespec
** Fix build when compiled with -Wundef -Werror
** More build fixes for `alphaev56-dec-osf5.1b' (Tru64)
** Build fixes for `powerpc-ibm-aix5.3.0.0' (AIX 5.3)
** With GCC, always compile with `-mieee' on `alpha*' and `sh*'
** Better diagnose broken `(strftime "%z" ...)' in `time.test' (bug #24130)
** Fix parsing of SRFI-88/postfix keywords longer than 128 characters
** Fix reading of complex numbers where both parts are inexact decimals
** Allow @ macro to work with (ice-9 syncase)
Previously, use of the @ macro in a module whose code is being
transformed by (ice-9 syncase) would cause an "Invalid syntax" error.
Now it works as you would expect (giving the value of the specified
module binding).
** Have `scm_take_locale_symbol ()' return an interned symbol (bug #25865)
** Fix potential deadlocks when running on multiple threads
** Fix problems building with the i586-mingw32msvc cross-compiler
It's now possible to build Guile for Windows by using the
i586-mingw32msvc cross-compiler on GNU/Linux. This kind of build
produces DLLs and a main program that can be copied to and used on a
Windows PC. For how to do this, see the `Cross building Guile'
section in `README'.
pthread_getattr_np(), just different,
needed for get_thread_stack_base() to work which is needed for
the scm_init_guile() API
approved by gdt
bump PKGREVISION
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
was there because guile was built against gmp etc. from /usr/pkg, not
present to let programs find -lguile. Therefore, add in rpath for
$(libdir) when we add in -L for libdir.
This looks ok to me, but I will be away AFK most of the day, so feel
free to remove the line in distinfo and re-commit if this turns out to
be bad.
merging to the new guile-config code, and it turns out not to be
necessary since there is some other mechanism to add rpath. Arguably
it should still be added, as the later rpath might only be there for
dependencies. (Plus, depending programs should use pkg-config
instead.)
Delete patch-aa as the whole lt_preloaded_symbols bit is gone upstream.
Changes in 1.8.6 (since 1.8.5)
* New features (see the manual for details)
** New convenience function `scm_c_symbol_length ()'
** Single stepping through code from Emacs
When you use GDS to evaluate Scheme code from Emacs, you can now use
`C-u' to indicate that you want to single step through that code. See
`Evaluating Scheme Code' in the manual for more details.
** New "guile(1)" man page!
* Changes to the distribution
** Automake's `AM_MAINTAINER_MODE' is no longer used
Thus, the `--enable-maintainer-mode' configure option is no longer
available: Guile is now always configured in "maintainer mode".
** `ChangeLog' files are no longer updated
Instead, changes are detailed in the version control system's logs. See
the top-level `ChangeLog' files for details.
* Bugs fixed
** `symbol->string' now returns a read-only string, as per R5RS
** Fix incorrect handling of the FLAGS argument of `fold-matches'
** `guile-config link' now prints `-L$libdir' before `-lguile'
** Fix memory corruption involving GOOPS' `class-redefinition'
** Fix possible deadlock in `mutex-lock'
** Fix build issue on Tru64 and ia64-hp-hpux11.23 (`SCM_UNPACK' macro)
** Fix build issue on mips, mipsel, powerpc and ia64 (stack direction)
** Fix build issue on hppa2.0w-hp-hpux11.11 (`dirent64' and `readdir64_r')
** Fix build issue on i386-unknown-freebsd7.0 ("break strict-aliasing rules")
** Fix misleading output from `(help rationalize)'
** Fix build failure on Debian hppa architecture (bad stack growth detection)
** Fix `gcd' when called with a single, negative argument.
** Fix `Stack overflow' errors seen when building on some platforms
** Fix bug when `scm_with_guile ()' was called several times from the
same thread
** The handler of SRFI-34 `with-exception-handler' is now invoked in the
dynamic environment of the call to `raise'
** Fix potential deadlock in `make-struct'
** Fix compilation problem with libltdl from Libtool 2.2.x
** Fix sloppy bound checking in `string-{ref,set!}' with the empty string
changes:
-new module: `(srfi srfi-88)'
-New `postfix' read option, for SRFI-88 keyword syntax
-Some I/O primitives have been inlined, which improves I/O performance
-New object-based traps infrastructure
-New support for working on Guile code from within Emacs
-bugfixes
pkgsrc note: added a patch which affects builds without thread
support only (fixes crash on termination)
approved by gdt
Changes in 1.8.3 (since 1.8.2)
* New modules (see the manual for details)
** `(srfi srfi-35)'
** `(srfi srfi-37)'
* Bugs fixed
** The `(ice-9 slib)' module now works as expected
** Expressions like "(set! 'x #t)" no longer yield a crash
** Warnings about duplicate bindings now go to stderr
** A memory leak in `make-socket-address' was fixed
** Alignment issues (e.g., on SPARC) in network routines were fixed
** A threading issue that showed up at least on NetBSD was fixed
** Build problems on Solaris and IRIX fixed
* Implementation improvements
** The reader is now faster, which reduces startup time
** Procedures returned by `record-accessor' and `record-modifier' are faster
functions clog and cexp (but presence of complex.h), reported in
pkg/36555. The patch in the PR is from gentoo and has already been
applied upstream along guile's 1.8 branch.
others required significant adjustment due to upstream changes.
Tested on NetBSD-current/i386.
Changes in 1.8.2 (since 1.8.1):
* New procedures (see the manual for details)
** set-program-arguments
** make-vtable
* Incompatible changes
** The body of a top-level `define' no longer sees the binding being created
In a top-level `define', the binding being created is no longer visible
from the `define' body. This breaks code like
"(define foo (begin (set! foo 1) (+ foo 1)))", where `foo' is now
unbound in the body. However, such code was not R5RS-compliant anyway,
per Section 5.2.1.
* Bugs fixed
** Fractions were not `equal?' if stored in unreduced form.
(A subtle problem, since printing a value reduced it, making it work.)
** srfi-60 `copy-bit' failed on 64-bit systems
** "guile --use-srfi" option at the REPL can replace core functions
(Programs run with that option were ok, but in the interactive REPL
the core bindings got priority, preventing SRFI replacements or
extensions.)
** `regexp-exec' doesn't abort() on #\nul in the input or bad flags arg
** `kill' on mingw throws an error for a PID other than oneself
** Procedure names are attached to procedure-with-setters
** Array read syntax works with negative lower bound
** `array-in-bounds?' fix if an array has different lower bounds on each index
** `*' returns exact 0 for "(* inexact 0)"
This follows what it always did for "(* 0 inexact)".
** SRFI-19: Value returned by `(current-time time-process)' was incorrect
** SRFI-19: `date->julian-day' did not account for timezone offset
** `ttyname' no longer crashes when passed a non-tty argument
** `inet-ntop' no longer crashes on SPARC when passed an `AF_INET' address
** Small memory leaks have been fixed in `make-fluid' and `add-history'
** GOOPS: Fixed a bug in `method-more-specific?'
** Build problems on Solaris fixed
** Build problems on HP-UX IA64 fixed
** Build problems on MinGW fixed
are present if the complex.h header exists. csqrt on the contrary
is actively checked. For now, disable complex double handling on
DragonFly to work around this.
in lang/guile16. Many, many changes since the last 1.6.x release including
bug fixes, build fixes, and many feature additions. See the NEWS file for the
full (> 1,000 lines) list of changes.
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++