Alastair Bridgewater [Tue, 3 Feb 2009 04:13:13 +0000 (04:13 +0000)]
1.0.25.2: Eliminate untagged pointers to heap space in cold-init
Load-time value fixups encountered by genesis are added as a kind of
toplevel form to be patched during cold-init. The reference to the
location to fix up was being dumped as a SAP pointing to the correct
point in heap space. Instead of dumping a SAP, we now dump the
containing object and an offset within the object, thus removing one
obstacle to running the GC or doing other heap-space relocation prior
to running the cold-toplevels.
Alastair Bridgewater [Tue, 3 Feb 2009 04:11:05 +0000 (04:11 +0000)]
1.0.25.1: x86-64 code fixup recording for gc / slash-and-burn
x86-64 code segments do not have absolute references to within
themselves, nor do they have relative references to without themselves,
making them relocatable without patching. The GC has long since been
updated to reflect this, but the fixup recording code originally part
of the x86 port had been retained.
* Removed x86-64 code-object fixup recording code everywhere.
* Added some commentary to x86iod fixup handling in genesis.
Juho Snellman [Tue, 3 Feb 2009 02:49:12 +0000 (02:49 +0000)]
1.0.25: release, will be tagged as sbcl_1_0_25
Juho Snellman [Mon, 26 Jan 2009 01:54:47 +0000 (01:54 +0000)]
1.0.24.48: Do explicit sign-extension of small signed alien return values
* gcc 4.3 has a different interpretation of the ABI, and
zero-extends signed chars, shorts and (on x86-64) ints.
Christophe Rhodes [Wed, 21 Jan 2009 17:29:08 +0000 (17:29 +0000)]
1.0.24.47: Fix 1.0.21.29 regression with enums in structs.
This is not the most elegant of fixes, but arrange to return the old
structure where applicable, and make incompatible mentions cause a
CERROR with clobber continue semantics, to parallel what I think is the
logic in the union/struct case.
Nikodemus Siivola [Sat, 17 Jan 2009 10:56:47 +0000 (10:56 +0000)]
1.0.24.46: SB-BSD-SOCKETS workingness from saved cores on Windows
* Need to call WSA-STARTUP on init.
* Reported by Stephen Westfold, fix by Rudi Schlatte.
Nikodemus Siivola [Sat, 17 Jan 2009 10:43:57 +0000 (10:43 +0000)]
1.0.24.45: handle IO errors in LDB and when saving the core
* In LDB, if users response cannot be read, assume y.
* Check fwrite() called when saving the core, and report the error.
* Patch by Daniel Lowe.
Nikodemus Siivola [Fri, 16 Jan 2009 12:13:40 +0000 (12:13 +0000)]
1.0.24.44: bug in INVALID-ARRAY-INDEX-ERROR, leaving EXPECTED-TYPE slot unbound
* It's :EXPECTED-TYPE, not :TYPE. ...having compiler check calls to ERROR like
this would be nice.
* Marginally better test to catch this.
Nikodemus Siivola [Thu, 15 Jan 2009 09:19:31 +0000 (09:19 +0000)]
1.0.24.43: DEFTYPE to accept bodies consisting a single symbol
* Regression from 1.0.22.8, reported by Ariel Badichi.
Nikodemus Siivola [Wed, 14 Jan 2009 18:37:20 +0000 (18:37 +0000)]
1.0.24.42: fix bug 235a
AKA https://bugs.launchpad.net/sbcl/+bug/309141
* Replace DEFINED-FUN-FUNCTIONAL with DEFINED-FUN-FUNCTIONALS, and reuse
the functional only if policy matches.
Nikodemus Siivola [Mon, 12 Jan 2009 16:52:19 +0000 (16:52 +0000)]
1.0.24.41: add necessary disambiguating curly braces to runtime
* When QSHOW is undefined FSHOW(...) expands into nothing, leading to unexpected
results for code like
if (gencgc_verbose)
FSHOW(...)
as the conditional will then apply to the next syntactic element.
* Patch by Daniel Lowe.
Nikodemus Siivola [Mon, 12 Jan 2009 16:20:37 +0000 (16:20 +0000)]
1.0.24.40: fix regression from 1.0.24.37
* TNs with KIND :CONSTANT don't have leaves if they represent load
time values.
* Reported by Attila Lendvai.
Gabor Melis [Mon, 12 Jan 2009 15:00:21 +0000 (15:00 +0000)]
1.0.24.39: mutex changes
- do what a FIXME suggests and rename MUTEX-VALUE to MUTEX-OWNER
- in the process, make sure that the value returned is less stale
- keep MUTEX-VALUE around for compatibility for a while
- also add HOLDING-MUTEX-P
- to make MUTEX-OWNER and HOLDING-MUTEX-P useful make unithread builds
keep track of the owner of mutex
Gabor Melis [Mon, 12 Jan 2009 14:57:08 +0000 (14:57 +0000)]
1.0.24.38: improve test scripts
- robustify threads.test.sh even more
- fix the same bug related to $! in finalize.test.sh
- make condition-wait-sigcont.lisp work unithread builds
Nikodemus Siivola [Mon, 12 Jan 2009 11:47:57 +0000 (11:47 +0000)]
1.0.24.37: full raw-instance-slot support on HPPA
* Patch by Larry Valkama.
Nikodemus Siivola [Mon, 12 Jan 2009 11:26:42 +0000 (11:26 +0000)]
1.0.24.36: don't print the array object when reporting index out of bounds
* Report the type of the array instead, and encapsulate the array object in the
condition object so that it can still be inspected manually.
* Suggested by Stas Boukarev.
Paul Khuong [Sun, 11 Jan 2009 18:39:07 +0000 (18:39 +0000)]
1.0.24.35: Flag-setting VOPs on x86[-64] and conditional moves
* Most :CONDITIONAL VOPs only specify which condition flags they set
* GENERIC-{EQL,=,<,>} are :CONDITIONAL VOPs, but don't show up as
calls anymore
* Values may be selected with CMOVcc if applicable (and :CMOV is
in *backend-subfeatures*, for x86):
- Values that are represented, unboxed, in GPRs are CMOVed using
custom VOPs
- Unboxed float and complex types aren't converted
- Other types are assumed to be boxed and CMOVed as descriptors
* A test to try and to cover an interesting cross-section of flags
and values to move conditionally.
Paul Khuong [Sun, 11 Jan 2009 18:33:31 +0000 (18:33 +0000)]
1.0.24.34: IR2: additional representation for predicates, conditional moves
* :CONDITIONAL VOPs can now specify how to interpret the test
they compute without performing the branch directly. How the
test is specified is completely platform-dependent and only
affects new-style :CONDITIONAL VOPs and a new BRANCH-IF VOP
(src/compiler/$ARCH/pred.lisp).
* Candidates for conversion to conditional moves are found
and may be converted, depending on CONVERT-CONDITIONAL-MOVE-P,
a new VM support routine. C-C-M-P returns NIL to punt on the
conversion, or 5 values:
1. name of the VOP to use
2. TN for the first argument (NIL if none)
3. TN for the second argument (NIL if none)
4. TN for the result
5. A list of info data, which will be appended to the flags
The correct values will be MOVEd in the argument TNs if needed
before computing the condition, and the result MOVEd to the right
TN after the conditional move VOP.
Nikodemus Siivola [Sun, 11 Jan 2009 16:34:00 +0000 (16:34 +0000)]
1.0.24.33: fix bug 316075
https://bugs.launchpad.net/sbcl/+bug/316075
* In DEFINE-ALIEN-ROUTINE, if the return-type is VOID, don't return
the result of ALIEN-FUNCALL but a literal NIL instead.
Gabor Melis [Sun, 11 Jan 2009 15:56:03 +0000 (15:56 +0000)]
1.0.24.32: undo parts of 1.0.24.26
No need for memory barriers when unlocking a spinlock on x86/x86-64.
The ordering rules and the cache coherency mechanism together
guarantee this. However, the compiler must be prevented from
reordering instructions with the unlock (at least in one direction).
This is now done in the runtime, but not in Lisp as the Lisp compiler
does no reordering.
Nikodemus Siivola [Sun, 11 Jan 2009 15:38:46 +0000 (15:38 +0000)]
1.0.24.31: robustify threads.test.sh some more
* Missed --no-userinit --no-sysinit --disable-debugger, causing it to
fail for some setups.
Nikodemus Siivola [Sat, 10 Jan 2009 11:19:22 +0000 (11:19 +0000)]
1.0.24.30: fixed and tested some more cleanups on hppa-hpux
* Fix a stray #+ -> #!+.
* Removed unneeded nops.
* Explanation of magic numbers (but not yet substituted.)
(Above changes in patch by Larry Valkama)
* Fix a bunch of comments in the HPPA backend to use the right number
of semicolons, and use FIXME-lav instead of FIX-lav to mark things
(better grepping for the rest of us.)
Nikodemus Siivola [Sat, 10 Jan 2009 10:51:13 +0000 (10:51 +0000)]
1.0.24.29: fix a typo in documentation
Gabor Melis [Fri, 9 Jan 2009 17:47:47 +0000 (17:47 +0000)]
1.0.24.28: make unbind in the runtime zero the value of the binding
... to parallel what the Lisp side does. As far as I see the rationale
for doing that (in doc/internals/specials.texinfo) does not apply here
since signals are blocked when the dynbind functions are called. That
said, instead of adding documentation let's fix it.
Gabor Melis [Fri, 9 Jan 2009 16:45:17 +0000 (16:45 +0000)]
1.0.24.27: target-thread cosmetics
- in the docstring of CONDITION-NOTIFY document that the mutex must be held
- remove and explain fixme in CONDITION-WAIT
- respect 80 char limit
- use ; ;; ;;; and ;;;; where appropriate
- fill the comment paragraphs
- add form feeds (^L) to separate pages
Gabor Melis [Fri, 9 Jan 2009 16:43:56 +0000 (16:43 +0000)]
1.0.24.26: fix release spinlock
Both in the runtime and in Lisp releasing a spinlock was a simple
assignment. That doesn't work because the new value may not make it to
main memory by the time another CPU wants to acquire it making it
needlessly slow. Worse, it also allows the CPU to reorder instructions
from the critical section after the release.
There is a spinlock implementation for MIPS in the runtime, but it's
not used as we don't have threads on that platform. I don't know if
it's broken too.
Gabor Melis [Fri, 9 Jan 2009 16:42:09 +0000 (16:42 +0000)]
1.0.24.25: add volatile after asm in spinlock and swap_lispobjs
... to prevent the compiler from optimizing away certain calls or
maybe reorder them. Test for swap_lispobj.
Gabor Melis [Thu, 8 Jan 2009 17:21:08 +0000 (17:21 +0000)]
1.0.24.24: fix threads.test.sh
... so that it doesn't leave stray sbcl child processes around and it
actually tests what it wants to test.
Christophe Rhodes [Mon, 5 Jan 2009 08:55:20 +0000 (08:55 +0000)]
1.0.24.23: fix alien struct struct member offset bug
No-one uses struct struct members, right? Well, academics are
notoriously bad at keeping up to dat with good practice...
Nikodemus Siivola [Sun, 4 Jan 2009 07:49:02 +0000 (07:49 +0000)]
1.0.24.22: mudball of VOP updates for HPPA
* Based on a mix of the old hppa-code and the mips backend.
* Patch by Larry Valkama.
Nikodemus Siivola [Sun, 4 Jan 2009 07:35:53 +0000 (07:35 +0000)]
1.0.24.21: call stub needed to switch between hpux heap-spaces
* Patch by Larry Valkama.
Nikodemus Siivola [Sun, 4 Jan 2009 07:23:03 +0000 (07:23 +0000)]
1.0.24.20: misc HPPA & HPUX updates
* "To make it compile and run".
* Config.hppa-hpux missed from 1.0.24.18.
* Patch by Larry Valkama.
Nikodemus Siivola [Sat, 3 Jan 2009 17:05:44 +0000 (17:05 +0000)]
1.0.24.19: COMPILE-TIME reports timings at millisecond accuracy
* Patch by Luis Oliveira.
Nikodemus Siivola [Sat, 3 Jan 2009 16:26:22 +0000 (16:26 +0000)]
1.0.24.18: new HPUX specific files
* Also more separation of linux stuff versus common stuff (hpux vs linux).
* Patch by Larry Valkama.
Nikodemus Siivola [Sat, 3 Jan 2009 16:17:48 +0000 (16:17 +0000)]
1.0.24.17: grab-bag of fixes to make hpux-os smile
* Patch by Larry Valkama.
Nikodemus Siivola [Sat, 3 Jan 2009 16:14:03 +0000 (16:14 +0000)]
1.0.24.16: updates on how we deal with fixup on HPPA
* Patch by Larry Valkama.
Nikodemus Siivola [Sat, 3 Jan 2009 16:10:19 +0000 (16:10 +0000)]
1.0.24.15: contrib fixes for HPPA
* Fix or disable what breaks in contribs, so not everything breaks.
* Patch by Larry Valkama.
Nikodemus Siivola [Sat, 3 Jan 2009 16:02:31 +0000 (16:02 +0000)]
1.0.24.14: fix what seems to be namespace collision by HPUX headers
* Patch by Larry Valkama.
Nikodemus Siivola [Sat, 3 Jan 2009 15:59:44 +0000 (15:59 +0000)]
1.0.24.13: solve overlapping mmap and munmap slices on HPUX
* Patch by Larry Valkama.
Nikodemus Siivola [Sat, 3 Jan 2009 15:50:46 +0000 (15:50 +0000)]
1.0.24.12: adding and fixing the HPUX/HPPA build target
* Patch by Larry Valkama.
Nikodemus Siivola [Sat, 3 Jan 2009 15:41:58 +0000 (15:41 +0000)]
1.0.24.11: stack allocation support for HPPA
* Thiemo Seufer's MIPS stack allocation work and other things by him
ported over to HPPA.
* Patch by Larry Valkama.
Nikodemus Siivola [Sat, 3 Jan 2009 15:39:38 +0000 (15:39 +0000)]
1.0.24.10: raw slot support for HPPA
* Remove raw slot support workaround on hppa, VOPs implemented
instead.
* Patch by Larry Valkama.
Nikodemus Siivola [Sat, 3 Jan 2009 15:17:44 +0000 (15:17 +0000)]
1.0.24.9: fix overlapping address spaces on sparc
* Patch by Bruce O'Neel.
Gabor Melis [Fri, 2 Jan 2009 18:37:55 +0000 (18:37 +0000)]
1.0.24.8: fix scav_lose
Used to do one pointer dereferencing too many when printing the
widetag of the lispobj leading to memory faults, ultimately obscuring
the backtrace instead of losing cleanly. Memory faults during gc could
cause all kinds of trouble rendering the backtrace even less
informative.
Nikodemus Siivola [Fri, 2 Jan 2009 16:05:28 +0000 (16:05 +0000)]
1.0.24.7: CHAR-CODE type derivation
* Patch by Paul Khuong.
Nikodemus Siivola [Fri, 2 Jan 2009 15:11:08 +0000 (15:11 +0000)]
1.0.24.6: OPTIMIZATION #23 is there already
* Type information for &REST lists is available after constraint
propagation.
Nikodemus Siivola [Fri, 2 Jan 2009 14:24:03 +0000 (14:24 +0000)]
1.0.24.5: SB-INTROSPECT: rename FUNCTION-ARGLIST to FUNCTION-LAMBDA-LIST
* Deprecate FUNCTION-ARGLIST.
* Improve the docstring.
* Original patch by Tobias Rittweiler.
Nikodemus Siivola [Fri, 2 Jan 2009 13:55:36 +0000 (13:55 +0000)]
1.0.24.4: SB-INTROSPECT:DEFTYPE-LAMBDA-LIST
* Patch by Tobias Rittweiler.
Nikodemus Siivola [Fri, 2 Jan 2009 12:42:08 +0000 (12:42 +0000)]
1.0.24.3: sanity check address spaces
* Genesis to check that spaces don't overlap.
* At startup make sure --dynamic-space-size doesn't overflow, or run
into any space possibly on top of dynamic space. (GENCGC only.)
Nikodemus Siivola [Fri, 2 Jan 2009 11:14:27 +0000 (11:14 +0000)]
1.0.24.2: CONSTANTP aware GET-SETF-EXPANDER
* Or rather GET-SETF-METHOD-INVERSE -- check for constant arguments,
which don't need to be rebound. This allows compiler macros for
SETF-functions to see their constant arguments.
* This exposes a small thinko in ACCESSOR-VALUES-INTERNAL (something
gets optimized during PCL build which wasn't before): EARLY-P there
doesn't mean the method is early.
Gabor Melis [Thu, 1 Jan 2009 20:50:41 +0000 (20:50 +0000)]
1.0.24.1: Reading from a TWO-WAY-STREAM need not flush the output stream.
In fact, it unnecessarily complicates writing thread-safe code as
readers and writers access the output stream concurrently.
Christophe Rhodes [Wed, 31 Dec 2008 13:27:21 +0000 (13:27 +0000)]
1.0.24: release, will be tagged as sbcl_1_0_24
Also, include build fix for sparc (Juho Snellman / Bruce O'Neel
sbcl-devel 30-12-2008) and mark test :throw :no-such-tag as failing on
x86/linux and x86-64/linux (because they do for me).
Nikodemus Siivola [Wed, 31 Dec 2008 11:44:37 +0000 (11:44 +0000)]
1.0.23.72: missing NEWS entries for this month
* Also add fill-column to modeline.
Nikodemus Siivola [Wed, 31 Dec 2008 09:51:47 +0000 (09:51 +0000)]
1.0.23.71: fix overlapping spaces on OpenBSD
* Patch by Josh Elsasser. Going is despite the freeze since
overlapping spaces are just plain broken.
* Also mark THROW NO-SUCH-TAG failing on OpenBSD.
Richard M Kreuter [Fri, 26 Dec 2008 18:33:56 +0000 (18:33 +0000)]
1.0.23.70: Add a keyword to DIRECTORY to suppress symlink resolution.
* Contributed by TC-Rucho.
Richard M Kreuter [Fri, 26 Dec 2008 15:43:25 +0000 (15:43 +0000)]
1.0.23.69: Add docstrings to SB-BSD-SOCKETS:SOCKET-MAKE-STREAM.
* Contributed by Robert Goldman.
Richard M Kreuter [Fri, 26 Dec 2008 14:19:06 +0000 (14:19 +0000)]
1.0.23.68: Cleanups in constraint propagation.
* Three changes here:
(1) Have the conset's min slot always be a fixnum. The min and max
slots should now conform to CL sequence bounding index idioms.
(2) Update the extrema in parallel, rather than in sequence, in the
conset-union, -intersection, -difference.
(3) Remove some noise from conset-intersection that probably included
an off-by-one error.
* Fixes a bug reported by Tobias C. Rittweiler on sbcl-devel.
Thiemo Seufer [Thu, 25 Dec 2008 20:36:19 +0000 (20:36 +0000)]
1.0.23.67: Fix MIPS FIXED-ALLOC VOP.
* No observable change in behaviour. Apparently nothing ever allocates
a non-pointer referenced object via this code path.
Thiemo Seufer [Tue, 23 Dec 2008 14:10:23 +0000 (14:10 +0000)]
1.0.23.66: Calculate array sizes in a more reliable way.
* The old implementation depended on the array header size being
an even number of words.
* Also, another micro-optimization for MIPS.
Thiemo Seufer [Tue, 23 Dec 2008 00:52:13 +0000 (00:52 +0000)]
1.0.23.65: MIPS runtime micro-optimization.
Nikodemus Siivola [Mon, 22 Dec 2008 13:38:04 +0000 (13:38 +0000)]
1.0.23.64: fixed bug 395
* Add support for base-strings in fill-pointer output streams.
* Also fix a bug revealed by this change in derivation of
ARRAY-ELEMENT-TYPE return type.
Nikodemus Siivola [Mon, 22 Dec 2008 12:00:24 +0000 (12:00 +0000)]
1.0.23.63: WITH-HASH-TABLE-ITERATOR lambda-list beautification
* Iterator lambda-list name is NAME, not FUNCTION, which was a bit
confusing since it is bound to a macro.
* Thanks to Tobias Rittweiler.
Nikodemus Siivola [Mon, 22 Dec 2008 10:50:35 +0000 (10:50 +0000)]
1.0.23.62: fix bug 357
Originally reported by Bruno Haible, more recently by Stephen Wilson.
* SHARED-INITIALIZE (SLOT-OBJECT) should not check structure slots
versus +SLOT-UNBOUND+: uninitialized slots are zeroed. Since adding
slots to structure classes cannot cause those slots to be added to
structure instances, we don't really have to check for boundness at
all.
* SB-PCL::STRUCTURE-TYPE-SLOT-DESCRIPTION-LIST and
SB-PCL::MAKE-STRUCTURE-CLASS-DEFSTRUCT-FORM did not take overridden
slot specifications into account, and the latter also omitted
initform and type information.
* Delete SB-PCL::ALLOCATE-STRUCTURE-INSTANCE, unused.
* ALLOCATE-INSTANCE (STRUCTURE-OBJECT) should not fall back on
ALLOCATE-STANDARD-INSTANCE.
Thiemo Seufer [Sun, 21 Dec 2008 17:55:18 +0000 (17:55 +0000)]
1.0.23.62: Micro-optimization for MIPS' SYMBOL-HASH VOP.
* MIPS sucks now less.
Nikodemus Siivola [Sun, 21 Dec 2008 15:03:11 +0000 (15:03 +0000)]
1.0.23.61: tweak concurrent hash-table access check
* Moves the with-concurrent-access-check inside the body where
the lock is already held. Patch by Attila Lendvai.
* Fix various attributions in NEWS, caught by TCR.
Nikodemus Siivola [Sun, 21 Dec 2008 09:51:01 +0000 (09:51 +0000)]
1.0.23.60: fix bug 354: XEPs in backtraces, properly this time
* Don't terminate the block in MAYBE-TERMINATE-BLOCK even if the node
is a call to a function that never returns if it is also the tail
end of a XEP -- this allows TCO to deal with the XEP.
* More stale bugs:
** 143 -- cannot replicate, interrupt handling has been robustified
and partially redesigned since than, so confidence that this is
really gone is reasonably high.
** 238 -- has gotten fixed at some point.
Nikodemus Siivola [Fri, 19 Dec 2008 19:00:01 +0000 (19:00 +0000)]
1.0.23.59: bug 3b has been fixed a while now
* Test case added.
Nikodemus Siivola [Fri, 19 Dec 2008 18:03:09 +0000 (18:03 +0000)]
1.0.23.58: bug 405 has been fixed a while now
* Fixed as of 1.0.19.32.
Nikodemus Siivola [Fri, 19 Dec 2008 16:14:58 +0000 (16:14 +0000)]
1.0.23.57: rewrite bug 217
* Case A is a non-issue. SBCL interprets "unpredictable but harmless"
to mean "anything, but heap will no be corrupted, data lost, etc"
-- that is, an error may or may not be signalled, but it the lisp
session will remain sane and operable.
* Case B is negated by the portability argument: since specifying both
is unspecified, we should not build useful-seeming extensions on top
of it, as it will only create portability problems for users.
* Case C remains partially valid, except for the runtime WARNINGs.
Integrated into the new text.
Nikodemus Siivola [Fri, 19 Dec 2008 15:20:43 +0000 (15:20 +0000)]
1.0.23.56: special variables cause special cases in CLOS cleverness
* As we cannot reliably ensure nothing calls SET or (SETF
SYMBOL-VALUE) on the special variable, we need to disable
optimizations perutation vector optimizations for them.
* For the same reason we cannot implicitly declare types for even
local specials in DEFMETHODs.
* Delete bug 276: the issue it refers to was fixed back when we
stopped inserting declarations for special variables.
Nikodemus Siivola [Fri, 19 Dec 2008 13:46:34 +0000 (13:46 +0000)]
1.0.23.55: three stale bugs
* 332, 369, 380: added test-cases which pass.
Nikodemus Siivola [Thu, 18 Dec 2008 20:41:57 +0000 (20:41 +0000)]
1.0.23.54: compiler-macros for WRITE and WRITE-TO-STRING
* The common use-cases have only constant keywords, but due to the
way they are defined inlining doesn't really help -- so do it with
compiler-macros, which bind only those specials specified in the
call.
Nikodemus Siivola [Thu, 18 Dec 2008 20:39:38 +0000 (20:39 +0000)]
1.0.23.53: FORMAT performance tweaking 2
* Rearrange FORMAT-FIXED and open code guts of FORMAT-FIXED-AUX for
both single and double-float cases, gaining ~5% speedup for ~F.
Nikodemus Siivola [Thu, 18 Dec 2008 11:56:47 +0000 (11:56 +0000)]
1.0.23.52: FORMAT performance tweaking
* Handle plain ~D using explicitly bindings and OUTPUT-OBJECT to
avoid paying for WRITE keyword argument parsing.
* Compile format control strings when SPEED = SPACE.
* Always transform FORMAT calls when the second argument is a
function -- trying to save space there doesn't make much sense.
Nikodemus Siivola [Thu, 18 Dec 2008 10:48:21 +0000 (10:48 +0000)]
1.0.23.51: wrong return value from READ-SEQUENCE :START on file streams
* Regression since 1.0.12.22.
* Reported by Daniel Herring, patch by Paul Huong.
* Also tweak the "write a line with bignum characters test" to run a bit faster.
Thiemo Seufer [Thu, 18 Dec 2008 00:53:15 +0000 (00:53 +0000)]
1.0.23.50: Less magic constants in the MIPS backend.
Thiemo Seufer [Wed, 17 Dec 2008 20:36:18 +0000 (20:36 +0000)]
1.0.23.49: Eliminate FCN as function moniker.
Nikodemus Siivola [Wed, 17 Dec 2008 17:34:17 +0000 (17:34 +0000)]
1.0.23.48: REPL recovers from *READ-SUPPRESS* T with a warning
* Reported by Daniel Herring.
Nikodemus Siivola [Wed, 17 Dec 2008 17:12:57 +0000 (17:12 +0000)]
1.0.23.47: binaries built on now Leopard run on Tiger as well
* -mmacosx-version-min=10.4 needed in LINKFLAGS as well.
Thiemo Seufer [Wed, 17 Dec 2008 14:43:26 +0000 (14:43 +0000)]
1.0.23.46: Remove redundant uses of zero-tn in the MIPS backend.
Thiemo Seufer [Wed, 17 Dec 2008 14:42:15 +0000 (14:42 +0000)]
1.0.23.45: Remove superfluous register :offsets in the MIPS backend.
Thiemo Seufer [Wed, 17 Dec 2008 14:39:28 +0000 (14:39 +0000)]
1.0.23.44: Nicer code for MIPS, lifted from the SPARC backend.
* Add some :note annotations.
* Kill a few magic constants.
Thiemo Seufer [Wed, 17 Dec 2008 14:36:11 +0000 (14:36 +0000)]
1.0.23.43: More consistent coding style for mips/array.lisp
Nikodemus Siivola [Tue, 16 Dec 2008 16:37:07 +0000 (16:37 +0000)]
1.0.23.42: don't grab *WORLD-LOCK* in CLASSOID-TYPEP
* A shoddy bandaid to make Slime less prone to deadlock against the
compiler when using :SPAWN.
* Proper fix is to be much, much more principled about grabbing the
*WORLD-LOCK* in the compiler: we should only ever grab it in places
where we cannot end up calling arbitary user code while holding
it.
Nikodemus Siivola [Mon, 15 Dec 2008 09:40:07 +0000 (09:40 +0000)]
1.0.23.41: fix DX-COMBINATION-P
* Punt on multiple result-uses. Reported by Pascal Costanza and
Thiemo Seufer.
* Also check for clean arg flow all cases.
Nikodemus Siivola [Sat, 13 Dec 2008 10:52:07 +0000 (10:52 +0000)]
1.0.23.40: export page sizes to C with LU suffix
* Rename GENCGC-PAGE-SIZE and *BACKEND-PAGE-SIZE* to
GENCGC-PAGE-BYTES and *BACKEND-PAGE-BYTES* respectively.
* Clean up constant.h generation: instead of guessing when to add an
U suffix, specify when the value is "large", and then add an LU
suffix.
* Without the LU suffix some C compilers chose to truncate results of
some operations where these quantities featured, leading at least
to an upper limit of #xffff0000 bytes in dynamic space on certain
64 bit systems.
Nikodemus Siivola [Fri, 12 Dec 2008 15:51:28 +0000 (15:51 +0000)]
1.0.23.39: Red Hat Enterprise 3 mmap randomization workaround
* Patch by Thomas Burdick: RHEL 3 suffers from the randomized mmap
nonesense, and reports kernel version 2.4.21. With the attached
patch, it SBCL runs correctly on these machines.
Nikodemus Siivola [Fri, 12 Dec 2008 13:05:23 +0000 (13:05 +0000)]
1.0.23.38: fix bug 430 (stack alloc by nested defstruct constructors)
* Mark lambdas introduced by the compiler as such, so that
LAMBDA-SYSTEM-LAMBDA-P returns true for them.
* Allow USE-GOOD-FOR-DX-P to inspect COMBINATIONs with CLAMBDA
functionals: if the return value of the function always originates
from a known DX-capable combination, and the arguments of the
original combination are used only by the DX-capable combination,
consider the original combination good for DX.
* Allow USE-GOOD-FOR-DX-P to inspect REFs to LAMBDA-VARs: if the var
is bound by a system lambda, has no other refs, is never set, gets
its value from a single-value combination, and the LVAR it gets its
value from is good for DX ... then the REF is good for DX as well.
* HANDLE-NESTED-DYNAMIC-EXTENT-LVARS handles REFs as well by
recursing on the lvar the REF gets its value from.
Nikodemus Siivola [Fri, 12 Dec 2008 12:27:00 +0000 (12:27 +0000)]
1.0.23.37: more CLOS and classoid thread safety
* Rename *BIG-COMPILER-LOCK* as *WORLD-LOCK*.
* Use it to protect classoids, layouts/wrappers, obsolete instance
updating, etc.
* Rename sevaral functions which assume their callers are holding the
lock to have % prefix. Perhaps we should have a separate prefix
convention for "requires called to lock"? Or a nifty macro layer?
(Actually there are probably places where read/write locks (or
STM!) would be a win...)
* ENSURE-CLASS-USING-CLASS needs to set up type translations only
while PCL is being build.
* DEFCLASS and ENSURE-CLASS-USING-CLASS are now expected to be thread
safe.
* Test-case for parallel defclass and make-instance.
Nikodemus Siivola [Fri, 12 Dec 2008 10:57:52 +0000 (10:57 +0000)]
1.0.23.36: typecheck :ALLOCATION :CLASS slot initforms in safe code
* Initforms for shared slots are not applied at make-instance, but at
class definition time. (See CLHS 4.3.6 and 7.1.) Reported by Didier
Verna.
Nikodemus Siivola [Fri, 12 Dec 2008 10:55:34 +0000 (10:55 +0000)]
1.0.23.35: CLOS tweaking
* Muffle undefined function style-warning for slot-accessors. The
slot-accessor name is an internal detail, and defining functions
accessing slots before classes with such slots are defined is fine.
* Don't double-fetch slot-definition-initfunction in
SHARED-INITIALIZE (SLOT-OBJECT).
* Don't double-fetch various slot-definition properties in
COMPUTE-EFFECTIVE-SLOT-DEFINITION-INITARGS, and declare
type-check-functions as functions.
Thiemo Seufer [Thu, 11 Dec 2008 20:38:32 +0000 (20:38 +0000)]
1.0.23.34: A nicer register dump for ldb.
Thiemo Seufer [Thu, 11 Dec 2008 20:28:13 +0000 (20:28 +0000)]
1.0.23.33: Stack-allocatable vectors for MIPS.
Thiemo Seufer [Thu, 11 Dec 2008 20:26:00 +0000 (20:26 +0000)]
1.0.23.32: Flush icache for MIPS alien callback stub.
Thiemo Seufer [Wed, 10 Dec 2008 22:11:51 +0000 (22:11 +0000)]
1.0.23.31: NFP is not a descriptor-reg.
Thiemo Seufer [Wed, 10 Dec 2008 22:09:59 +0000 (22:09 +0000)]
1.0.23.30: Don't export storage class names.
Thiemo Seufer [Wed, 10 Dec 2008 22:07:06 +0000 (22:07 +0000)]
1.0.23.29: Specify the required double-stack alignment for MIPS.
Thiemo Seufer [Wed, 10 Dec 2008 22:04:13 +0000 (22:04 +0000)]
1.0.23.28: defconstant -> def!constant in the MIPS backend.
Thiemo Seufer [Wed, 10 Dec 2008 22:01:07 +0000 (22:01 +0000)]
1.0.23.27: Less magic constants in the MIPS backend.
Nikodemus Siivola [Fri, 5 Dec 2008 13:47:37 +0000 (13:47 +0000)]
1.0.23.26: AMOPly correct defaulting of direct superclasses
"The class standard-object is the default direct superclass of the
class standard-class. When an instance of the class standard-class
is created, and no direct superclasses are explicitly specified, it
defaults to the class standard-object."
"The same is true for funcallable-standard-class and
funcallable-standard-object."
* Add :DEFAULT-INITARGS to that effect.