weakening hairy integer types
Fixes lp#913232.
Deal with intersection types and unions including non-integer component
types, such as:
(OR (INTEGER * -1) (AND (SATISFIES ODDP) (INTEGER 1)))
- [DH] NEWS
- [DH] src/compiler/array-tran.lisp
- [DH] src/compiler/checkgen.lisp
- [DH] tests/compiler.pure.lisp
(January 23, 2012 12:27 PM)
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.
- [DH] src/pcl/methods.lisp
(January 22, 2012 03:21 AM)
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 /".
- [DH] contrib/sb-posix/interface.lisp
- [DH] contrib/sb-posix/posix-tests.lisp
- [DH] src/runtime/bsd-os.c
(January 17, 2012 04:14 PM)
1.0.55: will be tagged as "sbcl-1.0.55"
(January 9, 2012 02:08 AM)
Mark :no-consing :specialized-dx-vectors as failing on x86.
- [DH] tests/dynamic-extent.impure.lisp
(January 9, 2012 02:05 AM)
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.
- [DH] git/README
- [DH] git/post-receive
- [DH] git/update
(January 2, 2012 10:18 AM)
twiddle script.test.sh
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.
- [DH] tests/script.test.sh
(January 2, 2012 09:56 AM)
use %VECTOR-RAW-BITS in %BIT-POSITION/[0|1]
No need to pin, and it even performs a tiny bit better than using explicit
word -> byte address computations.
- [DH] src/code/bit-bash.lisp
- [DH] src/pcl/defclass.lisp
(December 30, 2011 01:07 PM)
package locks and compile-time effects of DEFCLASS
DEFCLASS FTYPE used to break SBCL, but package locks didn't catch it.
- [DH] NEWS
- [DH] src/pcl/defclass.lisp
- [DH] tests/package-locks.impure.lisp
(December 30, 2011 12:54 PM)
stack-allocatable fill-initialized specialized arrays, part tres
lp#902351
Mark %CHECK-BOUND as DX-SAFE, so that vectors of unknown size can be stack
allocated.
- [DH] NEWS
- [DH] src/compiler/fndb.lisp
- [DH] tests/dynamic-extent.impure.lisp
(December 29, 2011 06:32 PM)
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.
(December 14, 2011 07:43 PM)
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
MAYBE-PRINT-SEGMENT-OVERRIDE, called from PRINT-MEM-ACCESS, not to make
the latter more lengthy.
Here is an example to show the difference in disassembler output:
Old:
; 0E6: 64 FS-SEGMENT-PREFIX
; 0E7: 8910 MOV [EAX], EDX
; 0E9: 64 FS-SEGMENT-PREFIX
; 0EA: 8B0528000000 MOV EAX, [#x28]
New:
; 0E6: 648910 MOV FS:[EAX], EDX
; 0E9: 648B0528000000 MOV EAX, FS:[#x28]
- [DH] NEWS
- [DH] src/compiler/x86/insts.lisp
- [DH] src/compiler/x86/target-insts.lisp
(December 14, 2011 05:11 PM)
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
position.
An example of the changes in the disassembler output (on x86-64):
Old:
; 5FFC: F0 LOCK
; 5FFD: 480FB171F9 CMPXCHG [RCX-7], RSI
New:
; 4C: F0480FB171F9 LOCK CMPXCHG [RCX-7], RSI
- [DH] src/compiler/x86-64/insts.lisp
- [DH] src/compiler/x86/insts.lisp
(December 14, 2011 05:11 PM)