GCL 2.6.10 RELEASE NOTES
Greetings! The GCL team is happy to announce the release of version
2.6.10, the latest achievement in the 'stable' (as opposed to
'development') series. Please see http://www.gnu.org/software/gcl for
downloading information.
This release addresses many of the issues introduced by the 2.6.9
developments, in addition to using gmp for random number generation,
adding fast immediate fixnum operations for most functions, and
accelerating garbage collection and hash table lookups. From the git
log:
- randomize addresses as hash keys
- refine readdir
- optimize gethash loop
- opendir,readdir,closedir functions
- make object_to_string safe for text strings
- no SGC on ia64 pending fix to getc/fread restart failure and hang
- ensure-directories-exist and wild-pathname-p
- changes for latest mingw on windows
- Don't use TMP in configure for windows
- prevent relocatable maxpage from extending beyond real_maxpage due to hole
- no gprof on ia64, possible function descriptor corruption due to mcount
- robustify allocation of environment and argument space in unrandomize.h
- main.c typo fix
- limit startup relblock pages to 5% of available_pages
- NOFREE_ERR for ia64
- fix trailing slash removal pre lstat on mingw
- optimize number_expt
- add mpz_ui_pow_ui and mpz_pow_ui to gmp_wrappers.h
- ensure that lstat takes no trailing slashes on mingw
- reserve 8M stack on mingw, and start alloc probe at 0x20000000 for wine
- initialize c stack variables in make_bignum before gc calling mpz_init_set
- allow for nreloc overflow in coff, restoring acl2 on mingw
- abandon stabs debug format on mingw as is now too small
- limit text start search, restoring s390 build
- make equal explicitly tail recursive on mingw to overcome compiler deficiency
- add sys and child sys values to get-internal-run-time
- optimize number_abs and number_signum
- inlines for gcd and lcm
- ctzl instruction, and defaults for clzl and ctzl when absent
- fix type-and to properly order t and object
- fix safe_mul, clz and fixnum_shft for corner cases
- remove lfun prop to eq, eql, equal and equalp
- remove redundant mod code
- fix integer_divide1 call in number_expt
- faster integer log functions
- prototypes and optimization inlines for immnum functions
- faster division algorithms -- FIXME centralize mod, do round
- centralize inlined immnum logic in new immnum.h header
- remove 'c1conditional property of 'boole
- use clz in fixnum_times where available
- try mpz_init_set in make_bignum -- FIXME stack of pre initialized bignums
- don't mark link array when not collecting relblock
- fix shifti bug
- add gmp wrappers for the various division rounding modes
- fix type-and so that t < '(values t t)
- fix sublis1-inline for new predicate macros
- faster eq,eql,equal, and equalp predicates
- configure check for clzl instruction
- define OBJNULL for hurd
- separately protect mark_link_array from non-data cfd
- remove unnecessary branches to marking of cfd code
- backport #? inline string directive to ensure 'first' vararg is initialized
- sgc mark phase typo
- only sgc mark old contiguous data when collecting contiguous
- remove null value error in mv-ref to accommodate low immediate fixnums
- fix bds_top capture bug in bds_bind macro (e.g. arg eval changes bds_top)
- scale initial relblock with heap size instead of available_pages
- try initial relblock scale of twice heap pages
- unset si::*optimize-maximum-pages* in raw image to limit unexec file size
- clear gcc warnings regarding ignored function return values
- function def typo
- scale maxrbpage and new_holepage with available_pages on startup
- clarify room report
- disable safecdr by default
- widecons configure option
- memcpy to speed up relocatable gc
- set_bits fix for i1==i2
- edit_double overflow fix
- set_bits fix
- get_sgc_bits bug fix
- get_bits debugging 2
- fix to get_bits
- get_bits/set_bits debugging
- update tm_maxpage in sgc_start
- report low immfix in (room t)
- use tee in test_results target
- imcdr typo fix
- default to high immfix, check cstack for low immfix
- enable-safecdr and enable-safecdrdbg configure options
- gbc accelerations
- support for low immediate fixnums
- box all fixnums in cdr, and speed all object typing
- gethash/hash-set optimizers
- add safety page to relocatable gc to workaround unexplained overwrite FIXME
- make sure gprof arrays are writable in sgc
- fix edit_double, failure to print 1d-6
- rework sane default to contiguous and relocatable tm_table parameters
- simplify and speedup marking of old data on sgc pages
- make sure contiguous sgc_minfree gets initialized with sane value
- revert set_type_of to preserve sgc bit, init stack objects with static
- reinit_gmp prototype
- reinit_gmp on mips to fix (random), where LD_BIND_NOW is also required
- correct cpage macro for new sgc contblock bit
- zero mark bits on contblock allocation
- define ADDR_COMPAT_LAYOUT and ADDR_LIMIT_3GB if not present in configure
- eliminate preclear of contblock mark bits
- sgc bit for contiguous pages, need low mem for code on 64bit
- prefer low memory when loading code to satisfy jump bit constraints
- backport of gmp random numbers from master
- lintian fix to VirtualFree call in unexnt.c
- rehardwire heap start address on windows
- try not fixing heap start address on windws
- try for up to 2 Gb heap on windows
- try to fix deallocation in windows heap probe
- clean windows heap size probe
- don't rely on errno on macosx heap size probe
- try to probe heap size on windows
- Use brk wrapper around sbrk to consolidate behavior when latter is emulated
- probe heap size up to 32Gb on macosx
- allocate gcl_zone_body in static area, as malloc_create_zone returns a pointer to read-only memory in macosx 10.8
- work around unlinkable profile prototype in macosx 10.8 64bit
- clear prototype mismatch warning
- Set windows heap start to stable 0x10100000 of 2.6.8 for now
- place parenthesis around argument to cast in make_fixnum, fix invalid lvalue
- support for empty filenames following -f on command line
- fix documentation formatting errors
- zero firstword in set_type_of macro to handle C stack objects
For the latest information, capabilities, and status of GCL stable, please see the 2.6.2 release notes here