sbcl Log


Commit Date  
[b85af7] by Nikodemus Siivola Nikodemus Siivola , pushed by Nikodemus Siivola Nikodemus Siivola

waiting for arbitrary events SB-EXT:WAIT-FOR

While using this to wait for other threads isn't good style,
sometimes it is _much_ easier to just state the thing you're
waiting for than build the synchronization to make it nice.

And sometimes the event lives in the external world, in which case
you really need to poll anyways:

(wait-for (probe-file pathname))

2011-10-28 15:56:49 Tree
[b2036b] by Nikodemus Siivola Nikodemus Siivola

nuke the age-old experimental-thread.patch

Not pertinent anymore.

2011-10-27 14:07:30 Tree
[a32e30] by Alastair Bridgewater Alastair Bridgewater

Minor lowtag-handling cleanup in genesis.

* Instead of explicitly testing a lowtag against two or four
constants (with scary reader conditionals for making the decision)
to determine if a given lowtag is an other-immediate, introduce a
function, IS-OTHER-IMMEDIATE-LOWTAG, paralleling IS-FIXNUM-LOWTAG,
with commentary, operating along the same lines as a similar
function in runtime.h.

2011-10-26 14:38:15 Tree
[8b88c2] by Alastair Bridgewater Alastair Bridgewater

room: KLUDGE-reduction.

* Now that the thread structure doesn't have a lowtag, we can
remove the KLUDGE that prevented even FIXNUMs from being treated
as though they were thread-object-sized instead of a single word.

2011-10-25 22:43:36 Tree
[c86681] by Alastair Bridgewater Alastair Bridgewater

threads: Thread objects don't need a lowtag.

* It was a cute hack, in a way, to force the existing genesis
machinery to produce assembler symbols for thread structure slots.
But it's still a hack, and needs to die. And now it can.

2011-10-25 22:39:29 Tree
[ae9741] by Alastair Bridgewater Alastair Bridgewater

genesis: Export assembly slot offsets for primitive-objects without lowtags.

* If a primitive-object has no lowtag, export its slot offsets
to assembly language as if it had a lowtag of zero.

* While we're here, use SYMBOL-VALUE instead of EVAL to find the
numeric value of a lowtag.

2011-10-25 22:35:03 Tree
[a743f0] by Alastair Bridgewater Alastair Bridgewater

Fix MAYBE-WITH-PINNED-OBJECTS for PPC/GENCGC.

* GENCGC has working WITH-PINNED-OBJECTS on all targets, not
just x86oids. Not using it when necessary is bad, especially
since non-x86oids don't automatically pin references from the
control stack. Fixed.

2011-10-25 20:43:13 Tree
[a18b41] by Alastair Bridgewater Alastair Bridgewater

Fix unhandled error in float.pure.lisp on non-x86oids.

* SB-VM::TOUCH-OBJECT doesn't exist on non-x86oids, and the
package is locked. Disable reading of forms that refer to it
on non-x86oids.

2011-10-25 14:25:25 Tree
[6b0994] by Alastair Bridgewater Alastair Bridgewater

Fix debug.impure.lisp / BUG-310175 for :stack-allocatable-lists targets.

* Not all platforms stack-allocate. Some platforms (PPC) stack-
allocate some things, but not most things.

* PPC, in particular, stack allocates for LIST and LIST* (the
:stack-allocatable-lists feature), but doesn't stack allocate for
CONS. And it turns out that the compiler transforms one-arg-LIST
and two-arg-LIST* to CONS.

* Use two-arg-LIST to force the :stack-allocatable-lists code
path, and mark the test as failing on non-:stack-allocatable-lists
targets.

2011-10-25 14:13:58 Tree
[05bb9b] by Alastair Bridgewater Alastair Bridgewater

Fix fixnum and unsigned-fixnum array cleanups.

* dd04bd449535e9016b5652a708a3cac2ca24c87d removes the specialized
array types with specific fixnum widths in favor of more generic
fixnum and unsigned-fixnum array types.

* In SYS:SRC;CODE;ROOM.LISP, a mistake was made in converting over
to the newer representations, involving an alist of type tag names
to a constant related to the size of array elements. The mistake
was even made inconsistently, so that neither 32-bit nor 64-bit
targets behaved correctly.

* Fixed, to use sb!vm:word-shift instead of literal constants.

* Original report and bisection by akovalenko on #sbcl.

2011-10-24 22:02:50 Tree
[182a7b] by Alastair Bridgewater Alastair Bridgewater

Fix FP traps on OSX/x86.

* De-cripple SB-INT:SET-FLOATING-POINT-MODES for this platform.

* Enable restoring the FPU control word during interrupt handling
on this platform (RESTORE_FP_CONTROL_FROM_CONTEXT).

* Implement restoring the FPU control word on this platform
(os_restore_fp_control).

* Update :FAILS-ON information for the now-passing tests.

* Update the commentary on test float.pure.lisp /
(ADDITION-OVERFLOW BUG-372) to more accurately reflect when it will
provide useful data (only when running float.pure.lisp separately).

2011-10-24 19:25:11 Tree
[c3af3c] by Alastair Bridgewater Alastair Bridgewater

Fix x86oid OSX signal handling emulation assembly fragments.

* Both x86 and x86-64 signal_emulation_wrapper include a small
assembly fragment to simulate "sigreturn" by means of an invalid
instruction trap. This fragment has to load two different pointers
into specific registers before the trap, but historically just told
the compiler to load them into registers and then moved them into
the correct registers, leading to the possibility of clobbering one
of the values. Fixed, by informing the compiler to place them into
the correct registers to begin with.

2011-10-24 18:30:32 Tree
[f60e99] by Alastair Bridgewater Alastair Bridgewater

Fix FP traps on OSX/x86-64.

* De-cripple SB-INT:SET-FLOATING-POINT-MODES for this platform.

* Enable restoring the FPU control word during interrupt handling
on this platform (RESTORE_FP_CONTROL_FROM_CONTEXT).

* Implement restoring the FPU control word on this platform
(os_restore_fp_control).

* Update :FAILS-ON information for the now-passing tests.

* Insert an addtional copy of test float.pure.lisp /
(ADDITION-OVERFLOW BUG-372) to detect failure to restore the FPU
control word in signal handling, with appropriate commentary.

2011-10-24 13:57:44 Tree
[987e39] by Jim Wise Jim Wise

Fix HEAD ref lookups, and compatibility for non-bash shells.

2011-10-24 13:38:25 Tree
[9ae145] by Jim Wise Jim Wise

Update to work with non-bash versions of expr.

2011-10-24 13:24:30 Tree
[7d4072] by Alastair Bridgewater Alastair Bridgewater

Clean up build process for cross-compiled targets.

* Over time, the process for producing an SBCL build for another
target architecture or OS has become more difficult and less
documented.

* Move all make.sh argument processing to make-config.sh.

* Have make-config.sh produce a file, output/build-config,
containing shell commands to set up important build parameters
such as where to find GNUMAKE, what SBCL_XC_HOST is, and so on.

* Source output/build-config in most of the make*.sh scripts.

* The practical upshot of all this is that a cross-compile
build is now a matter of alternating between target and host,
calling make-config.sh, make-host-1.sh, make-target-1.sh,
make-host-2.sh, make-target-2.sh, and following up with a
make-target-contrib.sh on the target, and you wind up with a
usable product. And, as make-config.sh does all of the arg
parsing, you can pass --xc-host= or --dynamic-space-size= or
whatever and it all works out.

2011-10-22 21:10:38 Tree
[c6989d] by Alastair Bridgewater Alastair Bridgewater , pushed by Alastair Bridgewater Alastair Bridgewater

Unwind-to-frame-and-call-VOP doesn't need static symbols.

* The UNWIND procedure takes as parameters a target block and an
unknown-values start/count pair. The old implementation was passing
the block, a zero count, and a garbage start. Pass the function to
call as the start, instead of storing it as a static symbol value as
is done now or reserving an extra stack slot somewhere relative to
the unwind block.

* Delete the static symbol formerly used for this.

* This has been done for both x86 and x86-64.

2011-10-22 17:33:03 Tree
[082940] by Paul Khuong Paul Khuong

Fix a long-standing bug in (PRIMITIVE-TYPE [MEMBER type])

A refactoring in 1.0.12.18 resulted in overly-optimistic primitive
type.

Reported by Eric Marsden on sbcl-devel.

2011-10-22 01:38:00 Tree
[b0920f] by Paul Khuong Paul Khuong

Fix another assumption w.r.t fixnum width and n-lowtag-bits

This time in LOGBITP.

Reported by Eric Marsden on sbcl-devel.

2011-10-22 01:04:55 Tree
[4466e4] by Alastair Bridgewater Alastair Bridgewater , pushed by Alastair Bridgewater Alastair Bridgewater

describe: Better description for complex setf-expanders.

* Rather than simply reporting the documentation string (if any), also
report the lambda-list of the expansion function and the associated
source location.

2011-10-22 00:21:18 Tree
[e0806c] by Alastair Bridgewater Alastair Bridgewater , pushed by Alastair Bridgewater Alastair Bridgewater

setf: Record the original lambda-list for complex setf-expander functions.

* Added an extra parameter to ASSIGN-SETF-MACRO for the lambda-list.

* In ASSIGN-SETF-MACRO, when working with an EXPANDER (as opposed to
an INVERSE), set the %FUN-LAMBDA-LIST of the EXPANDER to the value
passed as the new parameter.

* In all call sites for ASSIGN-SETF-MACRO (two uses in DEFSETF, one in
DEFINE-SETF-EXPANDER), pass the new lambda-list parameter appropriately.

2011-10-22 00:19:39 Tree
[a2654b] by Alastair Bridgewater Alastair Bridgewater , pushed by Alastair Bridgewater Alastair Bridgewater

setf: excise GET-SETF-METHOD and related detritus.

* GET-SETF-METHOD is the CLtL1 version of GET-SETF-EXPANSION, and is
neither used in SBCL nor exported from any package. Kill it.

* Also kill the DEFKNOWN in the compiler for a (different)
GET-SETF-METHOD and GET-SETF-METHOD-MULTIPLE-VALUE (also a CLtL1
function, neither used nor implemented in SBCL).

2011-10-22 00:19:39 Tree
[3c3006] by Alastair Bridgewater Alastair Bridgewater , pushed by Alastair Bridgewater Alastair Bridgewater

setf: pre-defined setf-expanders should handle multiple value places gracefully.

* The GETF, LOGBITP, LDB and MASK-FIELD setf-expanders all take a
PLACE argument, the setf-expansion for which was being obtained via
GET-SETF-METHOD, which is the CLtL1 version of GET-SETF-EXPANSION, but
throws an error if a PLACE multiple values. This also pre-dates the
adoption of VALUES places.

* The most reasonable interpretation of the spec appears to be that
any values after the first are to be ignored upon reading and set to NIL
upon writing.

* To do so, change each use to SB!XC:GET-SETF-EXPANSION instead of
GET-SETF-METHOD, and bind any symbols in the list of new value locations
to NIL before invoking the setter form.

2011-10-22 00:19:36 Tree
[14dbe4] by Alastair Bridgewater Alastair Bridgewater , pushed by Alastair Bridgewater Alastair Bridgewater

setf: read-modify-write macros should deal with multi-value places gracefully.

* In PUSH, PUSHNEW, POP, REMF, INCF, DECF and DEFINE-MODIFY-MACRO the
setf-expansion was being obtained via GET-SETF-METHOD, which is the
CLtL1 version of GET-SETF-EXPANSION, but throws an error if a PLACE has
multiple values. This also pre-dates the adoption of VALUES places.

* The most reasonable interpretation of the spec appears to be that
any values after the first are to be ignored upon reading and set to NIL
upon writing.

* To do so, change each use to SB!XC:GET-SETF-EXPANSION instead
of GET-SETF-METHOD, and bind any symbols in the list of new value
locations to NIL before invoking the setter form.

2011-10-22 00:18:29 Tree
[b910fe] by Alastair Bridgewater Alastair Bridgewater , pushed by Alastair Bridgewater Alastair Bridgewater

setf: Don't use DO to "zip up" temporaries in read-modify-write macros.

* Alter POP, REMF and DEFINE-MODIFY-MACRO to use (MAPCAR #'LIST
DUMMIES VALS) when building LET*-bindings instead of some crazy DO loop
involving PUSH and NREVERSE.

* While we're here, introduce a new temporary in POP rather than
destructively modify a binding.

2011-10-22 00:15:24 Tree
Older >