* Changed implementation on ALLOCATE-VECTOR on X86: ... two VOPs: A-V-ON-HEAP and A-V-ON-STACK; ... choice between them is made with LTN-ANALYZEr; ... A-V-ON-STACK always fills vector with zeroes (fixes bug reported by Brian Downing).
* Binaries built on OS X 10.4 will not run on OS X 10.2.8 "Jaguar" * Add a . at the end of a gethostbyname test in sb-bsd-sockets to both work around a resolver bug on Tiger and robustify the test * Thanks to Gary Byers for the alternate sigreturn bug fix * Bump the upcoming version number in NEWS to 0.9.0 (woohoo!)
* As suggested by CSR, when (> SAFETY 0) allocate vector on stack only when it provably fits in one page. * Properly order *POLICY-DEPENDENT-QUALITIES*: later qualities may refer earlier.
Merge patch (from Wendall Marvel) for unchecked method group when there is a single group with pattern *
* On X86 simple forms of MAKE-ARRAY can allocate result on stack. ... ALLOCATE-VECTOR is now a VOP on X86.
Merge patch (Zach Beane sbcl-devel 2005-04-13) for redefining classes whose previous definition had an accessor which collided with a function.
Fix bug reported by Cyrus Harmon sbcl-devel 2005-04-14 ... remove AVER CLASS and AVER BUILT-IN-TYPE, because those can be tickled by wrong but well-intentioned user code.
* don't transform EQL to EQ if either argument is known to be a fixnum, as we have backend magic to deal with that. The effect of the previous "improvement" was rather horrible for bignums. Still apply the transform if the fixnumness is in question.
Fix bug in scoping of free special declarations. CLHS 3.3.4: "The scope of free declarations specifically does not include initialization forms for bindings established by the form containing the declarations." * Add a :BINDING-FORM-P parameter to PROCESS-DECLS. If true, return a list of the VARs created by PROCESS-SPECIAL-DECL for free bindings instead of adding them into the lexenv immediately. * PROCESSING-DECLS optionally uses :BINDING-FORM-P and binds the list to a supplied variable in the PROCESSING-DECLS body. * Calls to PROCESS-DECLS / PROCESSING-DECLS related to binding forms use the above changes. * The VAR list is threaded through a bunch of IR1 lambda translation utility functions, all of which sooner or later end up calling IR1-CONVERT-AUX-BINDINGS. * Before IR1-CONVERT-AUX-BINDINGS converts the body, add the variables in the list to the lexenv.
Various cleanup to remove (a) code used only in the pre-futex queue system, (b) some threading code copied blindly from the x86 backend to x86-64 but is unlikely ever to actually work there
Add TRACE-FILE to the allowed options in build-order.lisp-expr. This causes a foo.trace file to be emitted containing grungey VOP/template/assembly/etc information which may help when debugging a backend
* transform EQL to EQ when at least other argument is known to be (OR FIXNUM (NOT NUMBER)).
* mark duplicate keyword arguments as ignored in CONVERT-MORE-CALL.
* annotate the inline/notinline fun with type-restrictions from the environment.
* record bug. * add test-case for other platform. * test normal trace for good measure.
PPC allocate-vector fix, plus OpenMCL buildability ... ... write a 0 at the end of the allocated vector to ensure all of its pages are unprotected. Otherwise if one is passed off to C (by READ-N-BYTES for example) the GC trigger can be hit in foreign code. (Compare to SPARC) ... revert "#+cmu #+cmu a b" back to "#+cmu a #+cmu b", as OpenMCL and ACL's readers have buggy implementations of CLHS 126.96.36.199.
How to lose friends and alienate people... ... actually make constant-folding failure a full warning in the cross-compiler (but not the target). ... fix the problem this reveals on x86-64. Meanwhile, "uname -p"? Change to -m.
... sufficiently well to make less of a hogwash of the FINALIZE documentation at any rate.
* The C runtime is no longer relinked after running nm, which should avoid some cases where symbols moved when linking in the read-only space reservation object. This was previously observed as segfaults in target-2 and could be worked around by choosing a different C compiler. * Space is now reserved for each of our fixed-address spaces on OS X, currently: * read-only space * static space * dynamic-1 and dynamic-2 spaces * linkage table space Should Apple ever decide to move the malloc heap again, none of these spaces will be picked because their virtual memory ranges will have been reserved by the linker.
* sprinkle WITHOUT-GCING around, so that we won't enter GC while holding the lock on finalizer store. * specify that finalizers run in an unpredictable dynamic scope and must be fully re-entrant. Add a few examples for good measure. * add finalizer, weak pointer, and after gc hook documentation to the manual.
* Fix misc.548: weakening of (VALUES (MEMBER A B C) &OPTIONAL) produces (VALUES &OPTIONAL SYMBOL) with different number of required/optional parameters. * Fix DATA-VECTOR-SET-C/SIMPLE-BIT-VECTOR on Alpha-32: srl-sll does not clean up upper bit (found by regression tests).
TRACE :ENCAPSULATE NIL was broken by a recent function signature change in the debugger internals. Fix this, and add support for :ENCAPSULATE NIL on x86-64. * Pass stream to PRINT-FRAME-CALL from ntrace.lisp. * Port over some of Daniel Barlow's fixes to x86-64-assem.S from amd64-pthreads-branch, fix fun_end_breakpoint_guts. * Fixed some magic constants in the x86-64 runtime * Various 64-bit cleanups, #ifdef cleanups in the runtime
* Constant folding of undefined function now causes full warning in the cross-compiler as suggested by CSR. * Define cross-compiler versions of all modular functions. * Fix a constant reference in a type specifier.
Fix for "Apparent memory leak in (eval '(lambda () ...))" (Kevin Reid sbcl-devel 2004-02-26 ... don't name the EVAL-TMP function.
* when summarizing a compilation unit print the final newline outside the logical block.
* last vestiges of before GC hooks have been removed. * after GC hooks are now left for user-code. * call UNSAFE-CLEAR-ROOTS before GC proper as the moral replacement of old before GC hooks for internal use only: on unithread SBCL scrub the stack and clear ctype-of cache, on threaded just scrub the stack. * finalizers and after GC hooks moved outside the GC proper, with interrupts enabled and all threads running; it is now safe to allocate in them as re-entry to GC is possible. * put a lock on the global finalizers list, as per Gabor Mellis' patch. Gratuitiously change the name of the selfsame global variable to flush out anyone diddling with it. * tighten the finalizer spec with a note that they may run in any thread. * add a stress-test for finalizers. [1. Not actually tested on threaded SBCL.]
Maybe make two-dimensional array type testing faster.
* move e-a-n from SB-VM to SB-SYS, and from target/vm.lisp to foreign.lisp. * move all e-a-n calls to FIND-FOREIGN-SYMBOL-IN-TABLE and GET-DYNAMIC-FOREIGN-SYMBOL-ADDRESS. * reader conditionalize e-a-n behaviour on :ELF and :MACH-O; explicitly add the relevant feature for each OS in make-config.sh. * delete unused file ppc/print.lisp (duplicates ppc/show.lisp). * increment fasl-format number. note: affects all backends; tested on ppc/darwin, x86/freebsd, and sparc/sunos.
Patch SLEEP to use nanosleep() and to restart the sleep if interrupted e.g. by a signal, instead of returning early. Thanks to Gabor Melis (ref sbcl-help, "Oddity with make-thread and sleep")
* Merge more x86-64 disassembler improvements from Lutz Euler. (sbcl-devel "Re: Improving the x86-64 disassembler" on 2005-04-05). * Bump compact-info-env-entries-bits to allow purify on images with large amounts of functions (sbcl-devel "purify failure when compact-info-env-entries-bits is too small" on 2005-03-26 by Cyrus Harmon).
Patch from Thiemo Seufer / Peter van Eynde for MIPS assembly code ... maybe fixes stability problems.
Fix fixnum / sb!xc:fixnum xc bug (as in discussion with Bruno Haible sbcl-devel 2005-03/2005-04) ... don't use the CL:FIXNUM type in immediate-constant-sc; ... write and use a test in before-xc.