sbcl Log


Commit Date  
[950096] by Paul Khuong Paul Khuong

Fix disassembly of CMP[PS][SD] instructions on x86-64

The relevant instruction formats wrongly defined a fixed position for
the immediate byte which broke disassembly when a memory argument was
used.

Fix this by using a prefilter to read the immediate like most other
instructions do.

Refactor for more OAOO-ness: Drop the instruction formats that were
used only for these comparison instructions; instead use others that
are nearly identical. This forces more copy-and-paste in the printer
definitions, so instead abstract the generation of printer lists for
SSE instructions into a separate function and use that here.

Add tests.

Fixes lp#814702.

Patch by Lutz Euler.

2011-08-01 18:06:28 Tree
[e7b2c5] by Nikodemus Siivola Nikodemus Siivola

more robust backtraces for syscalls on x86

* new optimization policy: ALIEN-FUNCALL-SAVES-FP-AND-PC Set to 3 for
self-build on x86 to get reliable more backtraces there, and 0 for
other platforms. (1 matches the old SPEED <= DEBUG behaviour.)

* When using a saved FP, and an interrupt context has a bogus
FP, assume it is an interrupted syscall frame.

2011-08-01 15:30:15 Tree
[913cf0] by Nikodemus Siivola Nikodemus Siivola

add -fno-omit-frame-pointer to x86 builds

GCC >= 4.6 omits it by default, leading to broken backtraces.

2011-08-01 15:29:00 Tree
[af0f0f] by Nikodemus Siivola Nikodemus Siivola

make SBCL_ARCH=x86 build work on 64-bit linux without chroot

(Assuming all the compatibility libs, etc, have been installed.)

2011-08-01 14:57:51 Tree
[8f1d4a] by Nikodemus Siivola Nikodemus Siivola

fixed-format floating point printing: zero and scaling factors

Now that FLONUM-TO-DIGITS handles zero, we need to check against
zero before adding in the scaling factor.

Also make sure not to print extra digits when E is negative.

Adjust FORMAT-AUX-EXP to not print the extra-zero: FLONUM-TO-STRING
provides it now.

Fixes lp#811386.

2011-07-29 13:50:36 Tree
[181bb0] by Nikodemus Siivola Nikodemus Siivola

add missing bug number to NEWS for 816564

EOM

2011-07-29 11:06:50 Tree
[2deecb] by Nikodemus Siivola Nikodemus Siivola

obsolete instance protocol and class-slots

UPDATE-INSTANCE-FOR-REDEFINED-CLASS needs to be called when
the set of class-slots changes.

...we /tried/ to do that, but embarrasingly

(LOOP FOR X IN LIST1
FOR Y IN LIST2
ALWAYS ...)

returns T if either list has elements missing from the other in the
tail as the iteration terminates when list runs out. Oops.

2011-07-29 10:20:14 Tree
[c4ea50] by Joshua Elsasser Joshua Elsasser

Have the float.pure.lisp / RANGE-REDUCTION test fail on all x86-64.

It was already marked as failing on Linux, Darwin and Solaris; rather
than add OpenBSD to that list I'm going ahead and assuming that it
fails on FreeBSD and NetBSD too.

Also add a generated header file to .gitignore.

2011-07-28 13:27:26 Tree
[4b3617] by Stas Boukarev Stas Boukarev

Fix xref for (setf name) names.

Use EQUAL instead of EQL when comparing names.

2011-07-28 12:08:51 Tree
[7f5221] by Nikodemus Siivola Nikodemus Siivola

make sure LVAR-EXTERNALLY-CHECKABLE-TYPE always returns a type

Fixes bug reported by Eric Marsden on sbcl-devel.

2011-07-27 13:21:52 Tree
[191802] by Christophe Rhodes Christophe Rhodes

fix COERCE to unfinalized extended sequence classes

Just before we're about to create an object, finalize the class if it
isn't already finalized, so that we can get at the class prototype.

2011-07-24 05:11:40 Tree
[7a4a93] by Jim Wise Jim Wise

Minor tweak for Solaris /bin/sh compatibility.

2011-07-22 19:43:46 Tree
[9d2548] by Paul Khuong Paul Khuong

Correct RIP-relative offset for strange x86-64 instructions

CMP[PS][SD] and shuffle instructions have extra noise *after* the
reg/mem operand. Take that into account when emitting RIP-relative
EAs.

Their disassembler definition is still broken.

Fixes lp#814688, reported by Eric Marsden on sbcl-devel.

2011-07-22 15:52:48 Tree
[da8bc5] (sbcl-1.0.50) by Juho Snellman Juho Snellman

1.0.50: will be tagged as "sbcl-1.0.50"

2011-07-11 22:14:03 Tree
[75b433] by Juho Snellman Juho Snellman

Fix generate_version.sh for release tarballs

2011-07-11 22:05:01 Tree
[26cad2] by Paul Khuong Paul Khuong

Fix a non-gencgc build failure in UNSAFE-CLEAR-ROOTS

Introduced in 4084b6b9 (armload of DEFINE-HASH-CACHE changes).

2011-07-08 17:04:07 Tree
[ba12c5] by Paul Khuong Paul Khuong

Small cleanups

* Wrap some asserts with with-test in defstruct.impure.lisp

* Remove two unused variables in remap_free_pages.

* Fix the allocation region size estimate in sb-sprof.

2011-07-06 06:16:17 Tree
[0bce93] by Paul Khuong Paul Khuong

More conservative defaults in GENCGC

* Set GENCGC-ALLOC-GRANULARITY to 0, and thus fully disable the minimal
allocation size logic by default.

* Explicitly zero out pages that fall outside GENCGC-RELEASE-GRANULARITY,
instead of leaving them dirty, when releasing address space.

* Set large_object_size to 4 * MAX(PAGE_SIZE, GENCGC_ALLOC_GRANULARITY,
GENCGC_RELEASE_GRANULARITY).

* I'm getting very strange failures in some branches that I can't replicate
on master, but let's be extra careful for now.

2011-07-06 01:46:06 Tree
[c179ad] by Paul Khuong Paul Khuong

Fix the build - gencgc broken since 1.0.49.73 (4 commits ago)

Sloppy merge.

2011-07-03 17:25:27 Tree
[c2404a] by Nikodemus Siivola Nikodemus Siivola

teach debugger about &MORE arguments

LIST-LOCALS displays SB-DEBUG::MORE = (...list of more args...)
in addition to the more-context and count.

EVAL-IN-FRAME bindss SB-DEBUG::MORE when appropriate.

2011-07-03 17:07:10 Tree
[4cd96b] by Nikodemus Siivola Nikodemus Siivola

inhibit &REST -> &MORE conversion when DEBUG is 3

Explicitly inhibit in BREAK.

2011-07-03 17:07:10 Tree
[e8571b] by Paul Khuong Paul Khuong

Allocate at least gencgc_alloc_granularity bytes at a time, if possible

* While we have large cards, it doesn't really matter, but tuning that
might help some applications that cons a lot of medium-sized objects.

* Defaults to GENCGC_ALLOC_GRANULARITY, and should always be a multiple
of GENCGC_CARD_BYTES.

* GENCGC_ALLOC_GRANULARITY defaults to BACKEND_PAGE_BYTES, so this patch
is a no-op.

2011-07-03 16:45:42 Tree
[87cce4] by Paul Khuong Paul Khuong

Release address space to the OS at gencgc_release_granularity

* Some platforms perform better on large, aligned mmap/munmap calls.
The GC will only perform such calls in chunks of
gencgc_release_granularity bytes, aligned at that many bytes.

* gencgc_release_granularity defaults to GENCGC_RELEASE_GRANULARITY,
and should always be a power of 2, as well as a multiple of the OS
page size and of GENCGC_CARD_BYTES.

* GENCGC_RELEASE_GRANULARITY defaults to BACKEND_PAGE_BYTES, making
this patch a no-op.

* Also, fix an assumption that BACKEND_PAGE_BYTES = 1024*sizeof(long)
in a safety check in gc_free_heap.

2011-07-03 16:45:42 Tree
[5c0a88] by Paul Khuong Paul Khuong

Split GENCGC_PAGE_BYTES in 3 constants

* We still have BACKEND_PAGE_BYTES, which should be a conservative
over-approximation of the OS's page size.

* GENCGC_PAGE_BYTES is mostly replaced by GENCGC_CARD_BYTES, the
byte granularity at which we track writes to old generations.
While we're using mprotect-based write barriers, this should be
a multiple of BACKEND_PAGE_BYTES.

* GENCGC_ALLOC_GRANULARITY is the minimum size we attempt to make
each allocation region. Should be a multiple of GENCGC_CARD_BYTES.
While we have largeish cards, this shouldn't ever be an issue, but
it might if we ever go down to < 1k cards.

* GENCGC_RELEASE_GRANULARITY is the minimum size at which we release
address space to the OS. This should always be a multiple of
BACKEND_PAGE_BYTES.

* For now, all three new constants are equal to BACKEND_PAGE_BYTES.

2011-07-03 16:45:42 Tree
[9effe6] by Paul Khuong Paul Khuong

Lazier zero_dirty_pages in gencgc

Upon allocation, only zero out pages that haven't already been cleared.

2011-07-03 01:52:50 Tree
Older >