sbcl Log

Commit Date  
[622d65] by Joshua Elsasser Joshua Elsasser

Remove an OpenBSD note in the README which is no longer necessary.

OpenBSD's behavior has not changed, but the default SBCL allocation
size was changed some time ago to work with the default OpenBSD
resource limits.

2012-02-19 22:53:51 Tree
[cb1734] by Stas Boukarev Stas Boukarev

coreparse.c: Fix a typo WORD_FTMX -> WORD_FMTX.

2012-02-19 04:00:08 Tree
[eee9d1] by Stas Boukarev Stas Boukarev

getf: Correct docstring.

Use `PLACE' instead of `Place' when referring to the variable.

Fixes lp#930751

2012-02-11 21:54:27 Tree
[5a2c88] by Nikodemus Siivola Nikodemus Siivola

weakening hairy integer types

Fixes lp#913232.

Deal with intersection types and unions including non-integer component
types, such as:


2012-01-23 13:21:32 Tree
[26d8f7] by Stas Boukarev Stas Boukarev

maybe-update-info-for-gf: Use KEYWORD-SPEC-NAME for keyword parameters.

Use KEYWORD-SPEC-NAME instead of KEYWORDICATE to handle keyword
parameter definitions like ((:keyword var) default).

Patch by Andy Hefner.

2012-01-22 03:21:10 Tree
[654875] by Jim Wise Jim Wise

Add patches from Aymeric Vincent to fix sb-posix on recentish NetBSD.

There is some possibility that this will break one of the sb-posix tests on FreeBSD:

The "rmdir" patch needs some input from FreeBSD users.
"rmdir /" returns EBUSY on NetBSD. Given the recent commit
2a9b33fc45842ec0335fef2988e07337ae8f1fc7 on october, 17. 2011, it looks
like OpenBSD and Darwin return EISDIR, but it's clearly not the case of
NetBSD with a (usual) FFS file system.

In short, either sbcl is currently broken on FreeBSD wrt the rmdir test
and my patch will fix it, or my patch will break it and we need to include
freebsd in the list of OSes producing EISDIR upon "rmdir /".

2012-01-17 16:14:41 Tree
[abb03f] (sbcl-1.0.55) by Juho Snellman Juho Snellman

1.0.55: will be tagged as "sbcl-1.0.55"

2012-01-09 02:08:08 Tree
[9aa842] by Juho Snellman Juho Snellman

Mark :no-consing :specialized-dx-vectors as failing on x86.

2012-01-09 02:05:53 Tree
[1e9235] by Nikodemus Siivola Nikodemus Siivola

git: add missing git hook scripts from SourceForge

We've been using these for a while now, but I neglected to stash copies in
the repository.

Also instructions for updating them, since it isn't the most intuitive thing
in the world.

2012-01-02 10:19:55 Tree
[dd5c05] by Nikodemus Siivola Nikodemus Siivola


Can't open /dev/stdout on all platforms -- but happily for the behaviour we
want to test we don't have to.

Also add a compile of variations on the theme.

2012-01-02 10:19:55 Tree
[568d94] by Nikodemus Siivola Nikodemus Siivola

runtime: handle KERN_ABORTED in the darwin semaphore implementation

Analogous to EINTR.

2011-12-30 21:06:59 Tree
[f73e45] by Nikodemus Siivola Nikodemus Siivola

defknown SC-NUMBER-OR-LOSE as foldable

No point calling it all the time with constant arguments.

2011-12-30 21:06:59 Tree
[ba319c] by Nikodemus Siivola Nikodemus Siivola


No need to pin, and it even performs a tiny bit better than using explicit
word -> byte address computations.

2011-12-30 13:52:40 Tree
[737f1f] by Nikodemus Siivola Nikodemus Siivola

package locks and compile-time effects of DEFCLASS

DEFCLASS FTYPE used to break SBCL, but package locks didn't catch it.

2011-12-30 12:54:52 Tree
[ddc81e] by Nikodemus Siivola Nikodemus Siivola

stack-allocatable fill-initialized specialized arrays, part tres


Mark %CHECK-BOUND as DX-SAFE, so that vectors of unknown size can be stack

2011-12-29 18:40:46 Tree
[41cb42] by Nikodemus Siivola Nikodemus Siivola

faster FIND and POSITION on bit-vectors

Read data a word at a time for efficiency's sake.

Could do even better with VOPs, but this already wins hugely on sparse
vectors -- and works on all backends. (Tested on both little- and big-endian

This also makes constraint propagation in sparse universes a bit less sucky.

2011-12-29 18:25:42 Tree
[14bf77] by Alastair Bridgewater Alastair Bridgewater

Fix control stack scavenging for dynamic-extent allocation.

* Non-CONS objects on the control stack can cause... problems
in scavenge(). Rewrite scavenge_control_stack() to contain the
appropriate (simpler) scavenge code directly.

2011-12-15 14:46:48 Tree
[aab1cd] by Alastair Bridgewater Alastair Bridgewater

Move control-stack scavenging to gc-common.c.

* Instead of having slightly-divergent copies of the control
stack scavenging logic for both GENCGC and CHENEYGC, move the
GENCGC version (which is a separate function) to gc-common.c,
and alter CHENEYGC to use it instead of doing its own thing

2011-12-15 14:46:48 Tree
[5b73de] by Alastair Bridgewater Alastair Bridgewater

tests: Raw instances shouldn't stack-allocate on most targets.

* We possibly should be testing to make sure that they /do/
cons, but we can live with not having an expected failure
message for a situation that would take a lot of careful work
on the compiler and GC to improve.

2011-12-15 14:46:48 Tree
[4b19ef] by Alastair Bridgewater Alastair Bridgewater , pushed by Alastair Bridgewater Alastair Bridgewater

DX structs with raw slots only allowed on conservative gencgc.

* Unless the control stack is conservatively scavenged, any
unboxed data could lead the GC to either corrupt the stack,
corrupt the heap, or just die screaming.

* Thus, all unboxed data must be stored on the number stack
on such systems. However, the number stack isn't scavenged
for boxed data, so we can't store any object that contains
both boxed and unboxed words if the unboxed words can appear
to the GC as anything other than a FIXNUM (thus, aligned
pointers are safe to store on the control stack).

* All INSTANCE objects have a boxed slot, the LAYOUT slot.
If an instance also has raw slots then it cannot go on either
stack, and must be heap-allocated.

* And none of this applies if the stack is conservatively
scavenged, which means (and gencgc c-stack-is-control-stack).
On such targets, we can dump whatever we want to the control
stack, and the GC won't complain at all.

2011-12-15 14:41:53 Tree
[6753b5] by Alastair Bridgewater Alastair Bridgewater

Fix build on non-GENCGC targets.

* Commit 8ee61a7761181511d15690246eb52d100e233935 introduced a
function with a parameter that is only used on gencgc targets.
Declare it to be ignored on non-gencgc targets.

2011-12-14 19:43:39 Tree
[de6d4c] by Lutz Euler Lutz Euler

x86: Better disassembly of segment-prefixes.

Thanks to Alastair Bridgewater who originally provided these changes
(and the headline above). I adapted his work to fit into the prefix
instruction infrastructure now available. Of his original comments
the following three still apply:

* Establish a SEG prefix for segment overrides similar
to the X66 data-width prefix.

* Have the SEG prefilter set an instruction property
for the specific segment being used.

* Alter PRINT-MEM-ACCESS to output a suitable prefix
for memory addresses when the appropriate instruction
property has been set.

I have abstracted out the segment prefix printing into the new function
the latter more lengthy.

Here is an example to show the difference in disassembler output:


; 0E7: 8910 MOV [EAX], EDX
; 0EA: 8B0528000000 MOV EAX, [#x28]


; 0E6: 648910 MOV FS:[EAX], EDX
; 0E9: 648B0528000000 MOV EAX, FS:[#x28]

2011-12-14 17:11:53 Tree
[65bdee] by Lutz Euler Lutz Euler

Improve handling of x86[-64] prefix instructions in the disassembler.

Make LOCK, REP, REX and #x66 true prefix instructions on x86[-64].
This changes only the disassembler part of the instruction definitions;
with respect to assembly LOCK already was a true prefix instruction and
REP/REPE/REPNE remain instructions in their own right.

Delete the scores of instruction formats and printer clauses that are
made obsolete by this change. Two printer clauses are still needed for
each of those SSE instructions that use the REX prefix in an infix

An example of the changes in the disassembler output (on x86-64):

; 5FFD: 480FB171F9 CMPXCHG [RCX-7], RSI


; 4C: F0480FB171F9 LOCK CMPXCHG [RCX-7], RSI

2011-12-14 17:11:53 Tree
[b83ac6] by Lutz Euler Lutz Euler

Corrections to disassembly of SHLD, SHRD and LEA on x86[-64].

The double shifts were wrongly matching the bit pattern of some CMOV
variants. Corrected by using another instruction format on x86-64 and
by adding a constraint on the WIDTH field on x86. This made it possible
to enable the variant with an immediate shift count. On x86-64, changed
the maximum immediate shift count from 31 to 63.

Also, on x86-64, one of the printers for LEA was missing a WIDTH field
restriction, thus wrongly matching a "MOV to segment register", too.

2011-12-14 17:11:53 Tree
[4d7a5b] by Lutz Euler Lutz Euler

Make some disassembler parameters effectual.

In the context of changing the treatment of prefix instructions in the
disassembler I came across somewhat broken code to parametrize it.
This might as well be repaired, so:

Correct the calculation of the DSTATE's ARGUMENT-COLUMN which is
intended to set a minimal field width for the opcode column. It needs
to take *DISASSEM-INST-COLUMN-WIDTH* and a few more column separators
into account. So as not to confuse users, restore the previous behaviour

Don't emit instruction bytes when *DISASSEM-INST-COLUMN-WIDTH* is 0.

Whitespace correction in ALIGNMENT-HOOK.

Playing with these two parameters allows to select different disassembly
formats (example from x86-64):


; E11: L7: 4881FB17001020 CMP RBX, 537919511
; E18: 0F8480000000 JEQ L13


; E11: L7: CMP RBX, 537919511
; E18: JEQ L13


; E11: L7: CMP RBX, 537919511
; E18: JEQ L13

2011-12-14 17:11:53 Tree
Older >