Juho Snellman [Sat, 3 Jun 2006 11:28:31 +0000]
0.9.10.46.lutex-branch.45:
Fix build on Linux with SB-THREAD without SB-LUTEX.
Cyrus Harmon [Thu, 1 Jun 2006 04:35:17 +0000]
0.9.12.26.lutex-branch.44
* unfiy the :restore-tls-segment-register-from-tls and
:restore-segment-register-from-tls by changing both to
:restore-fs-segment-register-from-tls. Restores MacOS
buildability.
Juho Snellman [Thu, 1 Jun 2006 00:07:52 +0000]
0.9.10.46.lutex-branch.43:
Restore non-SB-THREAD buildability.
Juho Snellman [Wed, 31 May 2006 23:21:12 +0000]
0.9.12.26.lutex-branch.42:
* Fix saving purified cores with lutexes
* Clean up remnants of the original semaphore-based lutex implementation
* Automatically set the right features for lutex-using platforms
in make-config.sh
* Remove restoration of %fs from the signal context (obsoleted earlier
by restoring it from TLS)
* Other minor cleanups
Cyrus Harmon [Sun, 21 May 2006 18:33:08 +0000]
0.9.12.26.lutex-branch.41
* go ahead and scavenge the interrupt context, not just the
registers, on Darwin. I'm not sure if this right, but it follows
the logic of the other ports.
* removed os_sem_t declarations
* update x86-darwin-threads internals-note
* removed -framework CoreServices #ifdef stuff in Config.x86-darwin
* removed last traces of CARBON_SEMAPHORES
Cyrus Harmon [Sun, 21 May 2006 01:04:41 +0000]
0.9.12.26.lutex-branch.40
* When scavenging an interrupt_context on Darwin, use the
os_context_register_addr (and .._pc_addr) macros for getting the
address of the registers as these are not members of a struct
member of the context itself, but rather are members of a struct
pointed to by a pointer in the context. This fixes various
GC-related memory corruption problems.
* added lutex_assert and various thread_mutex_[un]lock assertions
* define FREEABLE_STACK_QUEUE_SIZE and set it to 4 instead of
hardcoding 8.
* update x86-darwin-threads internals-note
Juho Snellman [Thu, 18 May 2006 22:39:58 +0000]
0.9.12.26.lutex-branch.39:
Quit pretending that lutexes are futexes, and implement the
Lisp-side waitqueues and mutexes as thinner wrappers around the
pthread equivalents.
Juho Snellman [Thu, 18 May 2006 22:35:00 +0000]
0.9.12.26.lutex-branch.38:
Restore Linux/Solaris lutex buildability.
Cyrus Harmon [Tue, 16 May 2006 21:13:46 +0000]
0.9.12.26.lutex-branch.37
* free the freeable stacks with free_freeable_stacks and change an
fprintf to an FSHOW.
Cyrus Harmon [Tue, 16 May 2006 20:44:12 +0000]
0.9.12.26.lutex-branch.36
* Added a mutex lock for i386_set_ldt calls. Seems to fix kernel
panics on Darwin. timer.impure.lisp now passes, but we still fail
with some sort of memory corruption in threads.impure.lisp.
Cyrus Harmon [Tue, 16 May 2006 16:33:15 +0000]
0.9.12.26.lutex-branch.35
* On Darwin, queue the thread stack to be freed so that the
creating thread frees it the next time through, instead of
having the new child thread free the previously freeable
thread. This works around (?) a SIGILL we're catching somewhere,
but still causes us to kernel panic, although we make it farther
through the tests this way.
Cyrus Harmon [Tue, 16 May 2006 16:30:21 +0000]
0.9.12.26.lutex-branch.34
* adding an #ifdef LISP_FEATURE_RESTORE_SEGMENT_REGISTER_FROM_TLS
bit to restore %fs from pthread_getspecific(specials)
Cyrus Harmon [Mon, 15 May 2006 17:07:50 +0000]
0.9.12.26.lutex-branch.33
* merging 0.9.12.26 changes onto the lutex branch
Cyrus Harmon [Sat, 13 May 2006 17:20:04 +0000]
file fopcompile.lisp was added on branch lutex-branch on 2006-05-15 17:07:51 +0000
Juho Snellman [Sat, 13 May 2006 16:32:13 +0000]
0.9.11.45.lutex-branch.33:
(Déjà vu. Reapplying commit lost in the CVS outage.)
* Lutex finalization.
* Some switches in gencgc were missing a case LUTEX_WIDETAG,
causing mysterious GC crashes.
Cyrus Harmon [Sat, 22 Apr 2006 03:08:05 +0000]
0.9.11.45.lutex-branch.32
* merging 0.9.11.45 changes onto the lutex branch
Cyrus Harmon [Fri, 21 Apr 2006 22:28:01 +0000]
0.9.10.46.lutex-branch.32
* remove various semamphore (and Carbon and mach) includes that are
no longer necessary
Juho Snellman [Fri, 21 Apr 2006 14:06:53 +0000]
0.9.10.46.lutex-branch.31:
Fix a lutex bug where we would always broadcast condition variables
instead of signalling them. Make lutex-branch self-buildable again.
Cyrus Harmon [Thu, 20 Apr 2006 17:29:13 +0000]
file mop-15.impure-cload.lisp was added on branch lutex-branch on 2006-04-22 03:08:06 +0000
Cyrus Harmon [Thu, 20 Apr 2006 14:25:45 +0000]
file mop-14.impure-cload.lisp was added on branch lutex-branch on 2006-04-22 03:08:06 +0000
Juho Snellman [Mon, 10 Apr 2006 08:43:55 +0000]
0.9.10.46.lutex-branch.30:
Restore Linux/lutex buildability.
Juho Snellman [Mon, 10 Apr 2006 07:49:50 +0000]
0.9.10.46.lutex-branch.29:
Implement lutexes as a pthread mutex + a pthread condition variable
instead of as a semaphore. Do some slightly invasive restructuring
at the same time.
All tests seem to be passing on Solaris/x86, including the new
waitqueue ones. (One test isn't really passing, since we still
don't implement lutex finalization. It's just that this
implementation strategy doesn't leak as much memory as the
previous one, so creating 500000 lutexes is no longer
sufficient to trigger the failure).
Juho Snellman [Sun, 9 Apr 2006 01:23:09 +0000]
0.9.10.46.lutex-branch.28:
Thread support on Solaris/x86. Passes all thread tests, except those
added in lutex-branch.27.
Juho Snellman [Sun, 9 Apr 2006 00:20:39 +0000]
0.9.10.46.lutex-branch.27:
Add some tests that fail with :SB-LUTEX.
Cyrus Harmon [Sun, 9 Apr 2006 00:04:30 +0000]
0.9.10.46.lutex-branch.26
* jsnell's thread waiters fixes, before we were always only waking
one thread in condition-notify.
* add waiters field to the waitqueue.
* increment and decrement waiters as apporpriate.
* remove ignorable n declaration in condition-notify.
* wake the minimum of n or the number of waiting threads in
condition-notify, instead of always just waking one thread.
* minor whitespace fix.
Cyrus Harmon [Thu, 6 Apr 2006 23:02:01 +0000]
0.9.10.46.lutex-branch.25
* In arrange_return_to_lisp_function, rework the way we call into
lisp from a signal handler. Allocate a register save area and
copy the registers there. Put a pointer to this save area in ECX
and set the EIP to point to call_into_lisp_tramp.
* Added call_into_lisp_tramp which builds a stack frame from the
save area pointed to in ECX, frees the save area and calls
call_into_lisp.
Cyrus Harmon [Thu, 6 Apr 2006 10:39:35 +0000]
file vector.impure.lisp was added on branch lutex-branch on 2006-04-22 03:08:06 +0000
Cyrus Harmon [Thu, 6 Apr 2006 10:39:33 +0000]
file win32-sockets.lisp was added on branch lutex-branch on 2006-04-22 03:08:08 +0000
Cyrus Harmon [Thu, 6 Apr 2006 10:39:33 +0000]
file win32-constants.lisp was added on branch lutex-branch on 2006-04-22 03:08:08 +0000
Cyrus Harmon [Wed, 5 Apr 2006 06:29:17 +0000]
0.9.10.46.lutex-branch.24
* make a 16-byte aligned stack frame in arrange_return_to_lisp_function
* update x86-darwin-threads notes
Cyrus Harmon [Wed, 29 Mar 2006 17:25:41 +0000]
0.9.10.46.lutex-branch.23
* remove extra #define SIG_RESUME_FROM_GC
* make os_restore_fp_control be #ifdef LISP_FEATURE_FREEBSD for the moment
* use #ifdef LISP_FEATURE_FREEBSD instead of __FreeBSD__ in x86-bsd-os.h
Cyrus Harmon [Wed, 29 Mar 2006 17:06:20 +0000]
0.9.10.46.lutex-branch.22
* WARNING! This compiles and begins to work, but has caused a kernel
panic on my 5.3 freebsd box. caveat user.
* change some freebsd printfs to FSHOW_SIGNALs
* on freebsd also, resotre the fp_control (cw) from the context
* Add shared library build options fro freebsd in threads test
Cyrus Harmon [Wed, 29 Mar 2006 09:46:40 +0000]
0.9.10.46.lutex-branch.21
* added os_restore_tls_segment_register to x86-bsd-os.h.
Cyrus Harmon [Wed, 29 Mar 2006 08:30:33 +0000]
0.9.10.46.lutex-branch.20
* fix grovel-headers to build on freebsd
* don't add SIGUSR1 and SIGUSR2 to deferrable signals on FreeBSD
Cyrus Harmon [Wed, 29 Mar 2006 07:55:22 +0000]
0.9.10.46.lutex-branch.19
* remove debugging FSHOW that was breaking FreeBSD when #defined QSHOW
Cyrus Harmon [Wed, 29 Mar 2006 07:43:22 +0000]
0.9.10.46.lutex-branch.18
* align stack to 16-bytes in arrange_return_to_lisp_function and skip padding
in post_signal_tramp
* updated bugs list and added debugging info for current blockers
* lots of debugging FSHOWs (many of these can go away once things work)
* restore buildability by adding missing #endif and #include "threads.h"
in x86-darwin-os.c
Cyrus Harmon [Wed, 29 Mar 2006 07:19:31 +0000]
0.9.10.46.lutex-branch.17
* preliminary support for building +:sb-thread and +:sb-lutex on FreeBSD
* use #ifdef SIG_RESUME_FROM_GC instead of #ifdef LISP_FEATURE_DARWIN
where appropriate
* added FreeBSD
* move futex_xxx functions from darwin-os.c to bsd-os.c
* move arch_os_thread_init from bsd-os.c to x86-bsd-os.c and x86-darwin-os.c
as appropriate and wrote FreeBSD i386_set_ldt-calling functions
Cyrus Harmon [Wed, 29 Mar 2006 01:04:48 +0000]
0.9.10.46.lutex-branch.16
* Fix typo LISP_FEATURE_SB_MUTEX -> LISP_FEATURE_SB_LUTEX in
grovel-headers.c
Cyrus Harmon [Tue, 28 Mar 2006 18:33:34 +0000]
0.9.10.46.lutex-branch.15
* cleaning up lutex branch build for x86-64/linux
* #ifdef clean up to look for semaphore.h when not building mach
or carbon threads
* make some printfs be FSHOWs
* only define os_sem_t when building with threads on linux
* include lutex.h instead of futex.h when building with threads on
linux
Cyrus Harmon [Mon, 27 Mar 2006 19:45:16 +0000]
0.9.10.46.lutex-branch.14
* align stack to 16-bytes in arrange_return_to_lisp_function and skip padding
in post_signal_tramp
* updated bugs list and added debugging info for current blockers
* lots of debugging FSHOWs (many of these can go away once things work)
Cyrus Harmon [Sun, 26 Mar 2006 18:51:25 +0000]
0.9.10.46.lutex-branch.13
* move {:mach,:carbon}-semaphores and :restore-tls-... into
base-target-features.lisp-expr
* conditional compilation fixes to avoid including things on
-sb-thread builds that shouldn't be
* whitespace fixes
* added a fixme in thread.lisp
Cyrus Harmon [Sat, 25 Mar 2006 22:26:48 +0000]
0.9.10.46.lutex-branch.12
* set initial semaphore value to 0
* MP -> MPCreateSemaphore in FSHOW message
* pin (thread-interruptions-lock thread) when calling futex-destroy
* added internals-notes document x86-darwin-threads
Cyrus Harmon [Sat, 25 Mar 2006 21:20:00 +0000]
0.9.10.46.lutex-branch.11
* Fix type SEMAHPORES -> SEMAPHORES
Cyrus Harmon [Sat, 25 Mar 2006 19:56:40 +0000]
0.9.10.46.lutex-branch.10
* Set the %fs register to 0 before freeing the ldt or really
bad things happen
* Fix #ifdef in darwin-os.c
LISP_FEATURE_CARBON_THREADS -> LISP_FEATURE_CARBON_SEMAPHORES
Cyrus Harmon [Sat, 25 Mar 2006 16:17:58 +0000]
0.9.10.46.lutex-branch.9
* use
LISP_FEATURE_RESTORE_TLS_SEGMENT_REGISTER_FROM_CONTEXT. Surely
there's a better way.
* Add optional support for Carbon semaphores instead of mach
semaphores. Use :carbon-semaphores to turn on.
* install SIG_RESUME_FROM_GC handler
* send SIG_RESUME_FROM_GC instead of SIG_STOP_FOR_GC to tell
threads to start running again.
* Check to make sure that all threads have left the suspended
state before unlocking all_threads_lock and going on our merry
way.
* move #define in thread.c out of function body for readability.
* Add -framework CoreServices to build options when building with
:carbon-semaphores
* Add error checking on the i386_set_ldt call
* Free the LDT at thread cleanup time
* Make LDT stuff be #ifdef LISP_FEATURE_SB_THREAD
* Changed signal numbers and added SIG_RESUME_FROM_GC
(SIG_INTERRUPT_THREAD == SIGINFO, SIG_STOP_FOR_GC == SIGUSR1,
SIG_RESUME_FROM_GC == SIGUSR2)
* Treat SIG_RESUME_FROM_GC appropriately in interrupt.c
Cyrus Harmon [Sat, 25 Mar 2006 15:42:11 +0000]
0.9.10.46.lutex-branch.8
* Add shared library compilation options for Darwin in
tests/threads.impure.lisp
Cyrus Harmon [Sat, 25 Mar 2006 15:39:24 +0000]
0.9.10.46.lutex-branch.7
* We need to pin the lutex in addition to the mutex when calling
futex-wake, futex-wait, etc...
* Call futex-destroy on lutexes when we are done with them. Note
that the lutex and the mutex need to be pinned and it is not at
the moment.
Nathan Froyd [Thu, 23 Mar 2006 04:21:17 +0000]
0.9.10.46.lutex-branch.6:
Minor code cleanups.
... make sure the widetags don't get renumbered on #!-sb-lutex.
... use os_restore_tls_segment_register where appropriate.
Nathan Froyd [Thu, 23 Mar 2006 03:57:35 +0000]
0.9.10.46.lutex-widetag.5:
Fix things so the death of the second thread to exit doesn't hose
the system.
... use pthread_attr_setstack on Darwin, too (I used the separate
size/addr variants before I figured out the stack needed to
be page-aligned...it never occurred to me to check the
semantics of the replacement functions to ensure they'd do
what I thought they did...caveat coder).
Cyrus Harmon [Wed, 22 Mar 2006 23:41:23 +0000]
0.9.10.46.lutex-branch.4
* Fix OOAO violations of restoring the segment register. Add
os_restore_tls_segment_register inline function and call where
appropriate.
* Sprinkle in some more calls to restore %fs
* Some #ifdefs to make sure things don't get included twice
* install interrupt_thread_handler and sig_stop_for_gc_handlers
* use sel_t to specify bitfields for ldt struct instead of doing
this by hand
* add some debugging noise
Cyrus Harmon [Wed, 22 Mar 2006 23:20:52 +0000]
0.9.10.46.lutex-branch.3
* Make the lutex stuff in purify.c be #ifdef LISP_FEATURE_SB_LUTEX
Cyrus Harmon [Tue, 21 Mar 2006 21:29:12 +0000]
0.9.10.46.lutex-branch.2
* make purify deal with LUTEX_WIDETAG objects
Cyrus Harmon [Tue, 21 Mar 2006 19:27:57 +0000]
0.9.10.46.lutex-branch
* Thread and lutex support on MacOS X on Intel
* NJF's lutex work
* x86-darwin support for TLS using %fs
* More detailed description of the changes required to support
threads and lutexes will appear when this gets merged onto
the HEAD.
Rudi Schlatte [Tue, 21 Mar 2006 15:51:51 +0000]
0.9.10.46
Commit sbcl-devel "WIN32 patch v.2. - part1 v.2."
... get default-external-format via api calls on win32
Christophe Rhodes [Mon, 20 Mar 2006 18:01:38 +0000]
0.9.10.45:
Move the dynamic space down a tiny bit on ppc/linux, since some
kernels map the stack at the end of our heap.
Nathan Froyd [Mon, 20 Mar 2006 02:49:16 +0000]
0.9.10.44:
Apply Alastair Bridgewater's "Small inefficiency in tl-symbol-value
access" patch, sbcl-devel 11-02-2006.
... take care of cases in {c-call,cell}.lisp too.
Gabor Melis [Fri, 17 Mar 2006 17:31:29 +0000]
0.9.10.43
* add type constraint to variables in the consequent in situations
similar to (IF (EQL X (LENGTH Y)) ...), where X is of type INDEX.
Christophe Rhodes [Fri, 17 Mar 2006 15:34:51 +0000]
0.9.10.42:
In this exciting world of Windows support, we might have files
named *.FASL not found by a find for *.fasl.
... and, argh, -iname is a GNUism. Try harder to delete things
in contrib/ anyway.
... tidy up asdf-stub.lisp while I'm at it.
Juho Snellman [Thu, 16 Mar 2006 18:57:17 +0000]
0.9.10.41:
Kill the silly *NAME->CLASS->SLOTD-TABLE* PCL cache.
* Remove the code that updated the table
* Rewrite the only user of the data stored in the table
(MAKE-ACCESSOR-TABLE) to recompute it from scratch each time
* Which actually ends up being faster than using the table,
speeding the loading of CLOS-using FASLs a bit
* Reduce core size by a 900 kB on x86-64
Christophe Rhodes [Thu, 16 Mar 2006 14:04:59 +0000]
0.9.10.40:
Fix unithreaded build (and incidentally a potential heap
corruption on purify, given a sufficiently small struct thread
or a sufficiently large UNBOUND_MARKER_WIDETAG)
... #ifdef LISP_FEATURE_SB_THREAD the offending code.
Christophe Rhodes [Thu, 16 Mar 2006 12:01:07 +0000]
0.9.10.39:
Implement and document SB-EXT:*CORE-PATHNAME*.
... communicate from runtime via SB-INT:*CORE-STRING*, rather
than constructing a pathname in C.
Related refactoring.
... since OS-COLD-INIT-OR-REINIT has exactly the same
functionality on all currently supported platforms,
move it into a common file;
... define common *common-static-symbols* and
*c-callable-static-symbols* for use in constructing
the per-backend *static-symbols* list, and to remove
the need for maintaining a separate list of callable
symbols in genesis.
Juho Snellman [Thu, 16 Mar 2006 03:24:13 +0000]
0.9.10.38:
Add #\Uxxxx and #\Uxxxxxxxx read-syntax for characters. Make all
characters readably printable even on non-Unicode streams. Patch by
Robert Macomber (sbcl-devel "Unicode character names", 2006-03-06).
* Also add a test.
Juho Snellman [Wed, 15 Mar 2006 17:48:25 +0000]
0.9.10.37:
The recent changes to LISTEN caused it to sometimes return NIL
even when there was data already in the input buffer. Fix it.
Juho Snellman [Wed, 15 Mar 2006 14:25:29 +0000]
0.9.10.36:
Fix occasional test failures reported by Cyrus Harmon. RUN-PROGRAM
sets up a signal handler which interferes with the test framework,
so it needs to be run as an impure test.
Cyrus Harmon [Wed, 15 Mar 2006 05:39:53 +0000]
0.9.10.35
Removing DOLLARLITERAL and GNAMEDOLLAR macro cruft from
x86-assem.S.
Add generated {x86,ppc}-darwin files to src/runtime/.cvsignore.
Cyrus Harmon [Wed, 15 Mar 2006 04:59:20 +0000]
0.9.10.34
Fix disassembly of break-containing functions on Darwin
... switch on (word-imm-code chunk dstate) instead of
byte-imm-code under Darwin
... whitespace to make word-imm match byte-imm
Juho Snellman [Wed, 15 Mar 2006 04:21:03 +0000]
0.9.10.33:
Fix CL:LISTEN to always return NIL at EOF, as required by
CLTS. (Patch by Stephen Compall on sbcl-devel "Re: fd-stream
listen in fd-stream-misc-routine")
(Also "oops". I somehow attributed 0.9.10.32 to the wrong James).
Juho Snellman [Wed, 15 Mar 2006 04:03:26 +0000]
0.9.10.32:
Make the streams created by RUN-PROGRAM bivalent. Patch by
James Bielman on sbcl-devel, except:
* Also bivalentify (bivalenticate? bivalentize?) the PTY stream
* Add a test
Cyrus Harmon [Wed, 15 Mar 2006 03:04:34 +0000]
0.9.10.31
Fix Darwin instability problems. Darwin isn't reliably firing
SIGTRAP handlers, so use UD2 to generate a SIGILL instead of INT3
to generate a SIGTRAP and we check for this in the SIGILL handler
and DTRT if we see this by calling the sigtrap_handler
... Define TRAP that uses UD2 (0x0b0f or 0F 0B) instead on Darwin
and INT3 elsewhere in x86-assem.S
... Removed the bogus sigaltstack (was Darwin only, now gone) in
bsd-os.c that I added in the course of trying to fix this
problem
... #+darwin use UD2 instead of INT3 in compiler/x86 and add
support for disassembling this as break
Cyrus Harmon [Wed, 15 Mar 2006 03:01:46 +0000]
0.9.10.30:
Fix Darwin instability problems. Darwin isn't reliably firing
SIGTRAP handlers, so use UD2 to generate a SIGILL instead of INT3
to generate a SIGTRAP and we check for this in the SIGILL handler
and DTRT if we see this by calling the sigtrap_handler
... Define TRAP that uses UD2 (0x0b0f or 0F 0B) instead on Darwin
and INT3 elsewhere in x86-assem.S
... Removed the bogus sigaltstack (was Darwin only, now gone) in
bsd-os.c that I added in the course of trying to fix this
problem
... #+darwin use UD2 instead of INT3 in compiler/x86 and add
support for disassembling this as break
Rudi Schlatte [Tue, 14 Mar 2006 22:23:14 +0000]
0.9.10.30
Unbreak the build (thanks to Eric Marsden for the quick patch)
Rudi Schlatte [Tue, 14 Mar 2006 12:27:46 +0000]
0.9.10.29
Linkage tables on win32
... heuristically choose a memory range ("does not break on my two
systems, let's ship it")
... added some leftovers to cleanup.sh
... also #!+sb-doc-conditionalize docstrings in run-program.lisp
Rudi Schlatte [Sat, 11 Mar 2006 19:10:23 +0000]
0.9.10.28
Document run-program
... reformat docstring slightly so the texinfo formatter won't get
confused
... add documentation for the various process struct accessors
Christophe Rhodes [Fri, 10 Mar 2006 17:40:27 +0000]
0.9.10.27:
Fix a typep / classoid / finalize-inheritance bug that was
exposed by removing the class-predicate (which meant that
classes were finalized in a different order).
... always update subclasses when we update a parent class. No,
I don't know why (either Gerd's code or this
modification)
... test case
Gabor Melis [Thu, 9 Mar 2006 13:05:22 +0000]
0.9.10.26
* fixed endless loop on (SUBTYPEP NULL (OR UNK0 UNK1)) in the cross compiler
Juho Snellman [Thu, 9 Mar 2006 12:58:44 +0000]
0.9.10.25:
Port dynamic-extent vector support from x86 to x86-64.
Christophe Rhodes [Wed, 8 Mar 2006 18:49:54 +0000]
0.9.10.24:
Fix (I think) the %INSTANCE-REF build problems on PPC and
probably SPARC.
... the CTYPE-OF failure came about because the system didn't
know that (AND INSTANCE FUNCTION) was NIL. Make it
so...
... and then delete a stale KLUDGE workaround in primtype.lisp
... this then built as far as stream.lisp, where the problem
was that (AND INSTANCE STREAM) was being "simplified"
to just STREAM, and then primtype didn't know that
STREAMs are subtypes of INSTANCE...
... which in fact they're not; CLOS allows us to construct
funcallable streams. So...
... instead teach the system that (AND INSTANCE STREAM)
shouldn't be simplified...
... but (AND INSTANCE FD-STREAM) should.
... (also delete some crufty classoids: BASIC-STRUCTURE-CLASS
and FUNCALLABLE-STRUCTURE-CLASS were never used)
... tests for all the failing things in type.{before,after}-xc
Nathan Froyd [Tue, 7 Mar 2006 22:11:51 +0000]
0.9.10.23:
Unify the FOO and FOO-C VOPs in DEFINE-FULL-{REFFER,SETTER} on x86.
Saves ~100K in core file size.
Nathan Froyd [Tue, 7 Mar 2006 19:06:41 +0000]
0.9.10.22:
Remove spurious VOPs for translating %INSTANCE-{REF,SET}.
... These VOPs were based on SLOT-{REF,SET} and in all ports
there were also translations based on DEFINE-FULL-REFFER or
WORD-INDEX-REF. However, at the very least, the
%INSTANCE-SET VOP based on SLOT-SET was bogus, as it did not
return a value, thereby generating incorrect code.
Therefore, this VOP was either disabled (#+nil) or the
alternative via DEFINE-FULL-REFFER was carefully defined
with a lower :GENERATOR cost so that the VOP based on
SLOT-SET would never be called. This patch eliminates such
magic and eliminates the corresponding %INSTANCE-REF VOP as
well, since it does not appear to have any advantages over
the one created via DEFINE-FULL-REFFER.
... See also sbcl-devel, 2002-02-11, "Dubious VOPs". This patch
does not implement the DEFINE-VOP magic discussed in the
email.
Nathan Froyd [Tue, 7 Mar 2006 18:47:37 +0000]
0.9.10.21:
Add CMOV micro-optimization in GENERATE-CALL-SEQUENCE, too.
Christophe Rhodes [Tue, 7 Mar 2006 12:04:24 +0000]
0.9.10.20:
Move the stub definitions for contrib-type stuff into the
main runtime
... and don't build unix-dsos in contribs any more;
... should make binary distribution easier.
Christophe Rhodes [Tue, 7 Mar 2006 07:34:15 +0000]
0.9.10.19:
Add Alastair Bridgewater's chapter about calling conventions
Nathan Froyd [Mon, 6 Mar 2006 21:20:28 +0000]
0.9.10.18:
Micro-optimize DEFAULT-UNKNOWN-VALUES on x86{,-64} by using CMOV
... guard it with *BACKEND-SUBFEATURES* on the x86.
Nikodemus Siivola [Mon, 6 Mar 2006 17:48:10 +0000]
0.9.10.17: fix bug #400, aka more correct CONSTANTP
* To know that a function call is a constant we need to check that
it doesn't signal an error in addition to knowing that the function
is foldable.
* To know that a THE form is constant we need to check that the
value is of the right type and be prepared to deal with malformed
type specifiers.
* Tests, tests, tests.
...all in all, I'm starting to miss the evaluator branch.
Cyrus Harmon [Mon, 6 Mar 2006 09:59:33 +0000]
0.9.10.16:
x86/Darwin support
... Add Config support and ape the darwin/ppc space fixup stuff.
... Align stack to 16-bytes as per ABI in %alien-funcall,
c-call and show.
... Add darwin space params.
... Use an altstack for handling signals in hopes of giving signal
handlers properly aligned stacks.
... Get registers and flags out of the mcontext properly. Needed
to play some games to get sys/_types included in order to get
the full definition of the mcontext struct which Apple tries
to hide from us.
... Moved os_get_runtime_executable_path from ppc-darwin-os.c to
new file darwin-os.c.
... Fix debugging #ifdefs in runtime.h
... #define hacks to x86-assem.S to keep Apple's brain-dead
assembler happy. In particular, it doesn't like things like
$NIL, so I had to play some games with the precompiler to make
it happy, and it wants .globl instead of .global. Also fixed a
couple raw .aligns that should have used the macros
... Align stack in ppc-assem.S:call_into_c
... Added x86-darwin-os.h
... #- out debug.impure test that causes bad things to happen on
darwin/ppc as it seems to cause bad things on x86/darwin as
well.
... adjust fails for float tests
... LDSO stubs for x86/darwin
Alexey Dejneka [Mon, 6 Mar 2006 04:35:50 +0000]
Oops.
Alexey Dejneka [Mon, 6 Mar 2006 04:33:26 +0000]
0.9.10.15:
Fix typo in (defconstant m-v-prog1); partially fix the bug
in constant-folding reported by Paul F. Dietz in "New compiler
bugs", sbcl-devel 2006-03-05.
Juho Snellman [Sat, 4 Mar 2006 21:45:33 +0000]
0.9.10.14:
Kill some dead code.
Juho Snellman [Sat, 4 Mar 2006 21:12:06 +0000]
0.9.10.13:
Remove the x87 instruction definitions from the x86-64 backend for
a significant core file size reduction. Patch by Lutz Euler.
Juho Snellman [Sat, 4 Mar 2006 21:07:48 +0000]
0.9.10.12:
The error branch in the win32 DLOPEN-OR-LOSE was calling
SHARED-OBJECT-SAP instead of SHARED-OBJECT-HANDLE. (Patch from
by Yaroslav Kavenchuk, sbcl-devel "Re: Where define shared-object-sap"
on 2006-02-26).
Christophe Rhodes [Sat, 4 Mar 2006 19:58:26 +0000]
0.9.10.11:
Merge patch (Alastair Bridgewater 2006-02-06 / CSR 2006-03-03)
implementing a better calling convention on the x86 (and
probably a better one on the x86-64).
... increment fasl version, because mixing calling conventions
is a spectacular no-no.
... take this opportunity to put :gencgc on
*features-potentially-affecting...*, since mixing
gencgc and cheney allocation strategies on the ppc
is also a spectacular no-no.
Cyrus Harmon [Thu, 2 Mar 2006 05:21:16 +0000]
In aliencomp.c #+(and ppc darwin) should be #!+(and ppc darwin), which
allows ppc builds to be able to cross-compile to other
architectures. This bug was originially introduced by yours truly in
the process of bringing the VOPs in question and this call to the over
from CMUCL.
Christophe Rhodes [Wed, 1 Mar 2006 09:10:32 +0000]
0.9.10.9:
Another try at the COPY-MORE-ARGS microoptimization, which was
in fact reverted inadvertantly by the ppc/gencgc merge.
... this time, schedule the instructions by hand to try to
avoid a stall.
... (whitespace. *sigh*.)
Christophe Rhodes [Tue, 28 Feb 2006 14:22:54 +0000]
0.9.10.8:
Maybe fix some gc problems on ppc/gencgc?
... there's a workaround for non-descriptors in descriptor
registers which was previously !GENCGC but in fact should
have been !CONSERVATIVE or possibly !PARTITIONED_REGISTERS.
... whitespace in target-char.lisp
Nikodemus Siivola [Tue, 28 Feb 2006 05:01:20 +0000]
0.9.10.7: oops. re-version last
Nikodemus Siivola [Tue, 28 Feb 2006 04:58:55 +0000]
0.9.10.6: fix non-unicode build
...I was _sure_ I'd tested this...
Juho Snellman [Tue, 28 Feb 2006 04:47:50 +0000]
0.9.10.6:
Restore the old behaviour of never using mmap-tricks for memory
zeroing on Solaris/gencgc, since doing so was causing GC crashes
on Solaris/x86.
Also some whitespace canonicalization.
Nikodemus Siivola [Mon, 27 Feb 2006 15:03:08 +0000]
0.9.10.5: correct CONSTANTP
* fix thinko in interactions between PROGV & IF and add a test to catch
it.
Nikodemus Siivola [Mon, 27 Feb 2006 13:12:34 +0000]
0.9.10.4: better CONSTANTP
* Recognizes constant argument calls to foldable functions and also
deals with some simple special forms like.
* Replace a ton of EVAL calls with CONSTANT-FORM-VALUE.
Nikodemus Siivola [Mon, 27 Feb 2006 11:07:31 +0000]
0.9.10.3: Faster function calls via constant symbols
* Compile (FUNCALL 'FOO) as (FUNCALL (SB-C::GLOBAL-FUNCTION FOO))
which is like (FUNCALL (FUNCTION FOO)) except that inline
functions are not expanded and the lexical functions are ignored.