sbcl.git
17 years ago1.0.4.58: fix lisp object start address calculations in x86-64
Cyrus Harmon [Tue, 10 Apr 2007 21:43:44 +0000 (21:43 +0000)]
1.0.4.58: fix lisp object start address calculations in x86-64
  * use logandc2 obj sb!vm:lowtag-mask instead of logand obj
    #xfffffffffffffff8 (which should have been #xfffffffffffffff0)
    to compute obj-start-addr.

17 years ago1.0.4.57: Make the compiler's bit-vector functions use standard CL idioms
Nathan Froyd [Tue, 10 Apr 2007 18:10:31 +0000 (18:10 +0000)]
1.0.4.57: Make the compiler's bit-vector functions use standard CL idioms

* We can do this and still get inline loops because of the
  REPLACE/UB*-BASH-COPY/SUBSEQ/COPY-SEQ work committed early;
* ...and, as a nice bonus, make them slightly faster by doing so.

17 years ago1.0.4.56: Make case-insensitive string and character comparisons non-consing
Nathan Froyd [Tue, 10 Apr 2007 16:36:08 +0000 (16:36 +0000)]
1.0.4.56: Make case-insensitive string and character comparisons non-consing

* Create two-arg versions of case-insensitive character comparison
  functions;
* Use said functions in the general case;
* Make source transforms for the general functions use the two-arg
  functions, thereby avoiding the &REST consing of the general
  functions.

17 years ago1.0.4.55: Optimized REPLACE and UB*-BASH-COPY routines
Nathan Froyd [Tue, 10 Apr 2007 13:50:43 +0000 (13:50 +0000)]
1.0.4.55: Optimized REPLACE and UB*-BASH-COPY routines

* Expand simple cases of UB*-BASH-COPY inline to avoid full call
  overhead and generate better code generally;
* Handle more cases of REPLACE; we now optimize REPLACE on all
  simple specialized array types (only element types <= n-word-bits
  are handled generally, though);
* Use a single COPY-SEQ and SUBSEQ transform rather than one per
  specialized array type; generate inline copies for these too
  when possible;
* Tests;
* Backend cleanup: introduce a FIND-SAETP to eliminate duplicate code;
* Backend cleanup: change %{SET-,}VECTOR-RAW-BITS on x86 to use
  the *-WITH-OFFSET machinery.

17 years ago1.0.4.54: x86-64/darwin preliminary threads support
Cyrus Harmon [Tue, 10 Apr 2007 04:18:10 +0000 (04:18 +0000)]
1.0.4.54: x86-64/darwin preliminary threads support
 * add sb-lutex to features via make-config.sh
 * preserve_pointer context registers in gencgc.c
 * use lock/cmpxchg on darwin
 * GSYM/GNAME asm hacks
 * add -arch options when appropriate for building threads-foreign.so

17 years ago1.0.4.53: Apply Lutz Euler's improved character VOPs patch
Nathan Froyd [Tue, 10 Apr 2007 01:20:24 +0000 (01:20 +0000)]
1.0.4.53: Apply Lutz Euler's improved character VOPs patch

17 years ago1.0.4.52: fix GET-SPINLOCK, broken by the COMPARE-AND-EXCHANGE patch
Nikodemus Siivola [Mon, 9 Apr 2007 09:48:26 +0000 (09:48 +0000)]
1.0.4.52: fix GET-SPINLOCK, broken by the COMPARE-AND-EXCHANGE patch
 * It was behaving as "TRY-SPINLOCK". Oops.
 * Our test suite did catch this, but it was being masked by other errors.

17 years ago1.0.4.51: no blksize_t on OS X Panther
Nikodemus Siivola [Sun, 8 Apr 2007 17:34:45 +0000 (17:34 +0000)]
1.0.4.51: no blksize_t on OS X Panther
 * Grovel a new feature :os-provides-blksize-t.

 Note: as the number of os-provides-foo features increases, it starts
 seeming prudent to move them to a separate feature list.

17 years ago1.0.4.50: more x86 backend
lisphacker [Sun, 8 Apr 2007 15:25:39 +0000 (15:25 +0000)]
1.0.4.50: more x86 backend
  * Fixing a missed pair of frame-byte-offsets from 1.0.4.42.

17 years ago1.0.4.49: revert debugger hackery
Cyrus Harmon [Sun, 8 Apr 2007 15:16:26 +0000 (15:16 +0000)]
1.0.4.49: revert debugger hackery
 * back out my x86-64/macos inspired top-frame workaround. This has
   the unfortunate side-effect of re-breaking the debugger on
   x86-64/macos, but that needs a proper fix.

17 years ago1.0.4.48: ROOM patch by Lutz Euler
Nikodemus Siivola [Sun, 8 Apr 2007 13:20:57 +0000 (13:20 +0000)]
1.0.4.48: ROOM patch by Lutz Euler
 * More correct reporting on x86-64.

17 years ago1.0.4.47: correct the mess of 1.0.4.46
Nikodemus Siivola [Sun, 8 Apr 2007 13:12:28 +0000 (13:12 +0000)]
1.0.4.47: correct the mess of 1.0.4.46
 * Previous was an accidental commit. Sorry.

17 years ago1.0.4.46: allow &environment and disallow &aux in DEFSETF lambda-lists
Nikodemus Siivola [Sun, 8 Apr 2007 12:51:34 +0000 (12:51 +0000)]
1.0.4.46: allow &environment and disallow &aux in DEFSETF lambda-lists
 * Reported by Samium Gromoff.
 * Test-cases.

17 years ago1.0.4.45: workaround for bug #412 & undefined variable cleanup
Nikodemus Siivola [Sun, 8 Apr 2007 12:38:18 +0000 (12:38 +0000)]
1.0.4.45: workaround for bug #412 & undefined variable cleanup

 * When converting dead references to global variables, convert using
   SYMBOL-VALUE. Results in the same code, but prevents dead unbound
   variable references from being flushed.

 * Collect XREF information for constant SYMBOL-VALUE cases.

 * Fix one dead reference to *LEXENV* in SBCL codebase.

 * Fix other undefined variables in contribs.

 * Test-case.

17 years ago1.0.4.44: More x86 disassembler work
lisphacker [Sun, 8 Apr 2007 05:23:48 +0000 (05:23 +0000)]
1.0.4.44: More x86 disassembler work

  * Added a prefix instruction for operand-size-prefix, making MOV
    [EDX], AX (for example) disassemble correctly.

  * Hacked up map-segment-instructions to work for prefix instructions
    again.

17 years ago1.0.4.43: x86 assembler/disassembler tweaks
lisphacker [Sat, 7 Apr 2007 21:43:04 +0000 (21:43 +0000)]
1.0.4.43: x86 assembler/disassembler tweaks
  * Made fs-segment-prefix disassemble as such instead of as byte #x64.
  * Added gs-segment-prefix, for symmetry.

17 years ago1.0.2.42: x86 backend cleanups
lisphacker [Sat, 7 Apr 2007 20:00:24 +0000 (20:00 +0000)]
1.0.2.42: x86 backend cleanups
  * Defined frame-byte-offset and frame-word-offset for calculating
    offsets within a stack frame.
  * Modified most direct references to stack data to use
    frame-byte-offset and frame-word-offset instead of an inline
    calculation.

17 years ago1.0.4.41: unbreak threaded build
Nikodemus Siivola [Sat, 7 Apr 2007 18:27:05 +0000 (18:27 +0000)]
1.0.4.41: unbreak threaded build
 * move the newflangled DEFINE-STRUCTURE-SLOT-FOOs later in the
   build, so as to have SB!VM:INSTANCE-SLOTS-OFFSET available.

 * STRUCTURE-SLOT-INDEX unused -- oops in cherrypicking from a different
   tree.

17 years ago1.0.4.40: small fixes
Nikodemus Siivola [Sat, 7 Apr 2007 17:42:05 +0000 (17:42 +0000)]
1.0.4.40: small fixes

 * / is not flushable, but unsafely-flushable. Reported by Marco
   Monteiro, patch by Kevin Reid. Test-case added to compiler.pure.lisp.

 * #include "globals.h" for funcall.c, should unbreak the build for non-x86oids.

 * s/(AND (UNSIGNED-BYTE FIXNUM))/(AND UNSIGNED-BYTE FIXNUM)/ in combin.lisp,
   discovered by James Anderson.

17 years ago1.0.4.39: get rid of hardcoded mutex and spinlock slot indexes
Nikodemus Siivola [Sat, 7 Apr 2007 13:58:57 +0000 (13:58 +0000)]
1.0.4.39: get rid of hardcoded mutex and spinlock slot indexes

 * DEFINE-STRUCTURE-SLOT-COMPARE-AND-EXCHANGE can be used to define
   nice wrappers for %INSTANCE-SLOT-CONDITIONAL using just the
   structure and slot name.

   Note to self: it would probably make sense to give something along
   these lines for users to use as well, so that they can implement
   lockless algorithms in lisp.

 * DEFINE-STRUCTURE-SLOT-ADDRESSOR does the same for getting the
   slot address.

 * SB-PCL::GET-STRUCTURE-DD moved to host and renamed
   SB-KERNEL:FIND-DEFSTRUCT-DESCRIPTION.

 * SB-THREAD now uses SB-KERNEL.

 (threads.impure.lisp currently fail, but not due to this)

17 years ago1.0.4.38: unbreak win32 build, again
Nikodemus Siivola [Sat, 7 Apr 2007 09:38:47 +0000 (09:38 +0000)]
1.0.4.38: unbreak win32 build, again
 * Thanks to Yaroslav Kavenchuk.

17 years ago1.0.4.37: Delete some dead code in pack.lisp
Nathan Froyd [Sat, 7 Apr 2007 01:17:36 +0000 (01:17 +0000)]
1.0.4.37: Delete some dead code in pack.lisp

17 years ago1.0.4.36: Commit Kevin Reid's "safer *break-on-signals*" patch.
Nathan Froyd [Sat, 7 Apr 2007 01:13:23 +0000 (01:13 +0000)]
1.0.4.36: Commit Kevin Reid's "safer *break-on-signals*" patch.

17 years ago1.0.4.35: Commit Kevin Reid's "Test failure in core.test.sh" patch
Nathan Froyd [Sat, 7 Apr 2007 01:07:05 +0000 (01:07 +0000)]
1.0.4.35: Commit Kevin Reid's "Test failure in core.test.sh" patch

17 years ago1.0.4.34: return true from GET-SPINLOCK
Nikodemus Siivola [Fri, 6 Apr 2007 21:48:29 +0000 (21:48 +0000)]
1.0.4.34: return true from GET-SPINLOCK

 * unbreak threaded build: since we now depend on the return
   value of GET-SPINLOCK in WITH-SPINLOCK, NIL isn't too hot.

 ...and I could have sworn I made a threaded test build for this...

17 years ago1.0.4.33: check that context is not a null-alien
Cyrus Harmon [Fri, 6 Apr 2007 17:24:26 +0000 (17:24 +0000)]
1.0.4.33: check that context is not a null-alien
 * when using the nth-interrupt-context check to make sure that it is
   not a null-alien and use the %caller-frame-and-pc if it is.

17 years ago1.0.4.32: De-pessimize >= and <= transforms
Nathan Froyd [Fri, 6 Apr 2007 12:55:58 +0000 (12:55 +0000)]
1.0.4.32: De-pessimize >= and <= transforms

Wait until we've computed type information for all the code we've
  introduced in this optimization pass before making the transform.
  We once again produce decent code for:

(defun foo (x y)
  (declare (simple-vector x y))
  (do ((i 0 (1+ i))
       (end (length x)))
      ((>= i end) y)
    (setf (aref y i) (aref x i))))

17 years ago1.0.4.31: remove *internal-error-context*
Cyrus Harmon [Fri, 6 Apr 2007 11:13:54 +0000 (11:13 +0000)]
1.0.4.31: remove *internal-error-context*
 * use nth-interrupt-context to find the context in top-frame instead
   of squirreling it away in *internal-error-context*.
 * moved the defun for nth-interrupt-context up before top-frame.
 * updated NEWS to reflect non-experimental status of x86-64/darwin
   port.

17 years ago1.0.4.30: make WITH-SPINLOCK-AND-WITHOUT-GCING inhibit interrupts as well
Nikodemus Siivola [Fri, 6 Apr 2007 09:58:08 +0000 (09:58 +0000)]
1.0.4.30: make WITH-SPINLOCK-AND-WITHOUT-GCING inhibit interrupts as well

 * Previously we could catch an interrupt while GC was inhibited, and
   hence any locks the interrupt handler was using could not know if
   they were being used with GC enabled or not => GC deadlocks.

 * Since this was detected by the runtime warning in WITH-INTERRUPTS
   about re-enabling interrupts while GC is inhibited keep it around
   in case we have more places this can happen.

 * Make MAYBE-HANDLE-PENDING-GC check for pending interrupts as well.

 * While we're at it, make WITH-SPINLOCK slightly safer: don't release
   locks we didn't obtain, and make us grab the lock inside the UWP.
   ...not 100% given in the presence of asynch unwinds, but better.

 * Also move *INTERRUPTS-ENABLED* and *INTERRUPT-PENDING* to SB-SYS.

 * Whitespace in WITHOUT-INTERRUPTS.

17 years ago1.0.4.29: Update expected test status on FreeBSD
NIIMI Satoshi [Thu, 5 Apr 2007 15:56:45 +0000 (15:56 +0000)]
1.0.4.29: Update expected test status on FreeBSD

* (:throw :no-such-tag)
Does not fail.

* (:undefined-function :bug-346)
Fails.
I'll investigate in the future.

17 years ago1.0.4.28: optimize GET-INTERNAL-REAL-TIME on Unix.
Nikodemus Siivola [Thu, 5 Apr 2007 12:24:27 +0000 (12:24 +0000)]
1.0.4.28: optimize GET-INTERNAL-REAL-TIME on Unix.
 * Avoid bignum computations, and cache the final result for reuse.

17 years ago1.0.4.27: more darwin/x86-64 fixes
Cyrus Harmon [Thu, 5 Apr 2007 00:42:27 +0000 (00:42 +0000)]
1.0.4.27: more darwin/x86-64 fixes
 * use sb!vm:fixnum-tag-mask instead of #b11 to mask off high bits in
   debug-int/control-stack-pointer-valid-p
 * add special variable sb-kernel::*internal-error-context* to
   squirrel away (let) the context so that we can use it in the
   debugger to get the frame and pc pointers. rebind this
 * top-frame gets frame and pc pointer from squirreled-away context
   and set to nil in case we trigger another error in the debugger
 * mark (trace :encapsulate nil) and (trace-recursive :encapsulate
   nil) tests as failing on x86-64 darwin (FIXME: we should
   reinvestigate why these are failing)
 * in foreign-stack-alignment.impure.lisp, use -arch x86_64 when
   #+(and x86-64 darwin).

17 years ago1.0.4.26: fix wrapped stat struct for darwin
Cyrus Harmon [Thu, 5 Apr 2007 00:33:21 +0000 (00:33 +0000)]
1.0.4.26: fix wrapped stat struct for darwin
 * st-size should be on off-t on darwin, instead of unsigned-int and
   st-blksize should be an unsigned-int instead of an unsigned-long
 * use dev_t and off_t on darwin to figure out the size of st_rdev and
   st_size
 * add ffi_blksize_t for wrapped_st_blksize

17 years ago1.0.4.25: 16 byte align asm functions
Cyrus Harmon [Thu, 5 Apr 2007 00:24:29 +0000 (00:24 +0000)]
1.0.4.25: 16 byte align asm functions
 * we probably don't need to do this but, for consistency's sake
   anyway, 16-byte align the alloc asm functions.

17 years ago1.0.4.24: documentation spelling fixes
Cyrus Harmon [Thu, 5 Apr 2007 00:21:27 +0000 (00:21 +0000)]
1.0.4.24: documentation spelling fixes
 * invokation -> invocation (thanks to Dan Barlwo for pointing this
   out).

17 years ago1.0.4.23: sb-grovel x86-64/darwin fix
Cyrus Harmon [Wed, 4 Apr 2007 23:52:11 +0000 (23:52 +0000)]
1.0.4.23: sb-grovel x86-64/darwin fix
 * sb-grovel was compiling the C file in 32-bit mode (the default) on
   darwin even when being run from in x86-64 mode. add "-arch"
   "x86_64" to args to CC.
 * remove darwin sepecific version of the stat structure. Turns out
   the original stat struct was really ok but that we were getting
   thrown off by the wrong types coming back from sb-grovel.

17 years ago1.0.4.22: trivial cleanup
Nikodemus Siivola [Wed, 4 Apr 2007 14:02:27 +0000 (14:02 +0000)]
1.0.4.22: trivial cleanup
  * Deleted empty #ifdef leg.

17 years ago1.0.4.21: merge redundant funcallN definitions in the runtime
Nikodemus Siivola [Wed, 4 Apr 2007 13:11:15 +0000 (13:11 +0000)]
1.0.4.21: merge redundant funcallN definitions in the runtime
 * We need only two implementations, not one per arch: put them into
   a new file "funcall.c".

17 years ago1.0.4.20: Win32 build fix
lisphacker [Tue, 3 Apr 2007 15:54:48 +0000 (15:54 +0000)]
1.0.4.20: Win32 build fix

  * interrupt_handle_pending turned out to be required on win32.

  * whitespace damage.

17 years ago1.0.4.19: oops, broken win32 build
Nikodemus Siivola [Mon, 2 Apr 2007 17:28:12 +0000 (17:28 +0000)]
1.0.4.19: oops, broken win32 build
 ...add missing declaration

17 years ago1.0.4.18: trap handling cleanup continues
Nikodemus Siivola [Mon, 2 Apr 2007 15:20:39 +0000 (15:20 +0000)]
1.0.4.18: trap handling cleanup continues

 * handle_trap is even better then maybe_handle_trap: if we can't
   handle the trap sanely pass the buck to unhandled_trap_error
   instead of generic signal handling routines.

 * implement Windows trap handling on top of handle_trap, not
   sigtrap_handler: some copy-paste from x86-arch.c later Windows is
   now almost free of the "signal handling" remnants.

 * Replace the bogus lossage messages saying
   "fake_foreign_function_call fell through" with things that actually
   make sense.

17 years ago1.0.4.17: interrupt handler spring cleaning
Nikodemus Siivola [Mon, 2 Apr 2007 13:40:48 +0000 (13:40 +0000)]
1.0.4.17: interrupt handler spring cleaning

 * interrupt_handle_now was always called with the real context, not
   a void context: remove the useless cast. Also fix
   FOREIGN_FUNCTION_CALL_FLAG usage there.

 * low_level_interrupt_handle_now was also always called with the real
   context, not a void context: useless cast is now gone. It also
   needs no FP control restoration or Darwin context fixage.

 * maybe_now_maybe_later and low_level_maybe_now_maybe_later were
   missing the Darwin context fix on one codepath.

 * interrupt_handle_now_handler was missing the FP control fixage.

17 years ago1.0.4.16: some GC and interrupt refactoring
Nikodemus Siivola [Mon, 2 Apr 2007 08:37:36 +0000 (08:37 +0000)]
1.0.4.16: some GC and interrupt refactoring

 * Conditionalize foreign_function_call_active on
   FOREIGN_FUNCTION_CALL_FLAG for clarity, and excice it from x86
   assember code.

 * Rename interrupt_maybe_gc to cheyneygc_handle_wp_violation, and
   move it cheyneygc.c. Don't pretend it is a signal handler, but pass
   in just the context and faulting address it needs.

 * Make gc_trigger_hit to accept the faulting address directly, since
   we already have it handy, and move it to cheneygc.c.

 * Rename interrupt_maybe_gc_int to maybe_gc, and move it to
   gc-common.c. Don't pretend it is a signal handler, but pass in just
   the context it needs.

 * maybe_gc_pending unused, deleted.

 * Only a single bytes_consed_between_gcs declaration, in gc.h.

 * Whitespace.

 No significant functional changes. Tested on x86/GENCGC, PPC/GENCGC,
 and PPC/Cheney.

 ...did you know that stepping is broken on PPC/Cheney but not on
 PPC/GENCGC?

17 years ago1.0.4.15:
Thiemo Seufer [Sun, 1 Apr 2007 19:49:25 +0000 (19:49 +0000)]
1.0.4.15:
Add missing void parameters.

17 years ago1.0.4.14: oops! duplicate definition of print_unknown
Nikodemus Siivola [Sun, 1 Apr 2007 19:40:00 +0000 (19:40 +0000)]
1.0.4.14: oops! duplicate definition of print_unknown
 * ECHERRYPICK.

17 years ago1.0.4.13: refactor trap handling
Nikodemus Siivola [Sun, 1 Apr 2007 19:36:16 +0000 (19:36 +0000)]
1.0.4.13: refactor trap handling

 * All architectures had an essentially identical switch(trap){...}
   for different trap codes. Pull this into a single shared
   handle_trap function, which dispatches to architecture specific
   functions where necessary.

 * Remove unnecessary signal and siginfo arguments from breakpoint
   handling functions and interrupt_internal_error as a tentative step
   towards admitting that POSIX is not the only world out there.

 * Clean up some compiler warnings from the runtime, and a missing
   anti-copyright header.

 * Fix the PPC build... at least on G4 Darwin 10.3: no suseconds_t
   here.

 Tested on x86, x86-64, and PPC. Sparc, MIPS (and Alpha) testing
 needed.

17 years ago1.0.4.12: stale bugs
Nikodemus Siivola [Sat, 31 Mar 2007 10:51:20 +0000 (10:51 +0000)]
1.0.4.12: stale bugs
 * bug 27 has not been observed in ages, and our interrupt handling has
   changed sufficiently since to consider the case closed.
 * bug 78 has ...evolved.
 * bug 256.b has been fixed (test added now.)
 * bug 381 was fixed a while back by MAYBE-CYCLIC-P.

17 years ago1.0.4.11: trivial hash-table cleanup / optimization
Nikodemus Siivola [Sat, 31 Mar 2007 10:12:15 +0000 (10:12 +0000)]
1.0.4.11: trivial hash-table cleanup / optimization

 * Hash table code does lots of AREFs using indexes (* 2 i) and (1+ (* 2 i)),
   where I obviously has to be less then (floor array-dimension-limit 2),
   for which both calculations are known to fit into a fixnum.

 * Define such a type (aka INDEX/2) and use it where appropriate. We
   were already doing this in WITH-HASH-TABLE-ITERATOR, but not
   elsewhere.

17 years ago1.0.4.10: conditionalize bignum-character line writing test
Nikodemus Siivola [Thu, 29 Mar 2007 18:33:34 +0000 (18:33 +0000)]
1.0.4.10: conditionalize bignum-character line writing test
 * Takes too long on 64 bit platforms!

17 years ago1.0.4.9: writing bignum characters onto a single line
Nikodemus Siivola [Thu, 29 Mar 2007 18:08:47 +0000 (18:08 +0000)]
1.0.4.9: writing bignum characters onto a single line
 * FD-STREAM-CHAR-POS can run into bignums. It might be prudent to
   stop incrementing it for stupendously long lines, but this will
   do for now.

17 years ago1.0.4.8:
William Harold Newman [Wed, 28 Mar 2007 17:59:16 +0000 (17:59 +0000)]
1.0.4.8:
"What's old is new again" or "what was he thinking?"
At least in the wisdom of hindsight I can see that my new RANDOM
is not ready for release, so I have reverted it. This
version should be essentially 1.0.4.5 with a new version
number. (It also has an extra, orphaned file in
src/compiler/integer-tran.lisp. When I revisit the
problem later, that should be cleaned up one way or
another, meanwhile I don't feel like deleting it and
then likely recreating it later.)
Sorry about the confusion.:-(

17 years ago1.0.4.7:
William Harold Newman [Wed, 28 Mar 2007 14:32:08 +0000 (14:32 +0000)]
1.0.4.7:
Argh! My shiny new RANDOM-of-INTEGER in 1.0.4.6 was badly broken
for 64-bit CPUs.
Replace RANDOM-CHUNK with %RANDOM-WORD (mostly) or %RANDOM32
(for code which implicitly knows which foo-FLOAT bit
subsequences are <=32 bits).

17 years ago1.0.4.6:
William Harold Newman [Tue, 27 Mar 2007 16:20:38 +0000 (16:20 +0000)]
1.0.4.6:
rewrote RANDOM for INTEGER case to eliminate (small) bias
Alas, it doesn't seem practical to test this properly. (Difficulty
of building a nice test suite seems to be a pervasive
problem for randomized code.) I could write a test case
narrowly targeted to detect the old bug, but I don't
think I could make even that single test simultaneously
fast enough and reliable enough that it would be
a good candidate for run-tests.sh. And aiming at a
more comprehensive set of tests just makes the
making-it-fast-enough problem that much harder.

17 years ago1.0.4.5 slot reader/writer documentation in the manual
Rudi Schlatte [Tue, 27 Mar 2007 05:58:07 +0000 (05:58 +0000)]
1.0.4.5  slot reader/writer documentation in the manual
  * Also remove writers for sb-bsd-sockets:host-ent class slots
  * Thanks to Richard M Kreuter

17 years ago1.0.4.4: simplify JOIN-THREAD interface
Gabor Melis [Mon, 26 Mar 2007 15:30:02 +0000 (15:30 +0000)]
1.0.4.4: simplify JOIN-THREAD interface

17 years ago1.0.4.3: interrupt and GC issues
Nikodemus Siivola [Mon, 26 Mar 2007 10:30:21 +0000 (10:30 +0000)]
1.0.4.3: interrupt and GC issues
 * Add WITHOUT-INTERRUPTS to WITHOUT-GCING.
 * Warn if WITH-INTERRUPTS nested in WITHOUT-GCING.
 * Make sure that SIG_STOP_FOR_GC and SIG_RESUME_FROM_GC are enabled on
   threaded builds before calling into SUB-GC from the runtime.
 * Better WITHOUT-GCING, WITHOUT-INTERRUPTS, and WITH-INTERRUPTS
   documentation.
 * Internals documentation about POSIX signal safety rules.

17 years ago1.0.4.2: really commit darwin sb-posix fixes
Cyrus Harmon [Mon, 26 Mar 2007 02:23:05 +0000 (02:23 +0000)]
1.0.4.2: really commit darwin sb-posix fixes
 * see commit log message for 1.0.4.1. the sb-posix files didn't get
   properly committed.
 * in short, revert sb-posix st_atime, st_mtime, and st_ctime behavior
   to the way it was before I tried to fix things for the
   x86-64/darwin port.

17 years ago1.0.4.1: fix sb-posix atime/mtime/ctime
Cyrus Harmon [Mon, 26 Mar 2007 00:57:09 +0000 (00:57 +0000)]
1.0.4.1: fix sb-posix atime/mtime/ctime
 * st_atime, st_mtime and st_ctime were broken in a perhaps misguided
   attempt to fix these for x86-64 by exposing the timespec struct
   instead of just passing the first time_t (which is really the
   tv_sec field of the struct) as the return value. This patch
   restores the previous behavior. This may cause a regression for
   x86_64/darwin, but we should find a better fix. We should also
   consider removing the wrapped_stat bit and the corresponding C code
   wrapper.

17 years ago1.0.4: release, will be tagged as sbcl_1_0_4
William Harold Newman [Sun, 25 Mar 2007 16:39:54 +0000 (16:39 +0000)]
1.0.4: release, will be tagged as sbcl_1_0_4

17 years ago1.0.3.48: mark JOIN-THREAD as experimental
Gabor Melis [Fri, 23 Mar 2007 16:09:49 +0000 (16:09 +0000)]
1.0.3.48: mark JOIN-THREAD as experimental

17 years ago1.0.3.47: fixed threads tests
Gabor Melis [Wed, 21 Mar 2007 08:26:19 +0000 (08:26 +0000)]
1.0.3.47: fixed threads tests

17 years ago1.0.3.46: De-pessimized x86 sub-byte DATA-VECTOR-SET/* VOPs.
lisphacker [Sun, 18 Mar 2007 23:46:07 +0000 (23:46 +0000)]
1.0.3.46: De-pessimized x86 sub-byte DATA-VECTOR-SET/* VOPs.
  Reduced register usage requirements by one (much needed) register.

17 years ago1.0.3.45: added JOIN-THREAD
Gabor Melis [Sun, 18 Mar 2007 19:30:25 +0000 (19:30 +0000)]
1.0.3.45: added JOIN-THREAD

Implementation by NIIMI Satoshi. Added more docstrings and changed the
interface according to the styling advice of Thomas F. Burdick.

17 years ago1.0.3.44: x86-64 print vop preserves 16-byte stack alignment
Cyrus Harmon [Sun, 18 Mar 2007 17:36:55 +0000 (17:36 +0000)]
1.0.3.44: x86-64 print vop preserves 16-byte stack alignment
 * rework the x86-64 print (really should be debug-print or some such)
   to preserve 16-byte stack alignment. This was breaking
   x86-64/darwin sb-show builds.

17 years ago1.0.3.43: Restore manual autobuildability
Andreas Fuchs [Sun, 18 Mar 2007 01:57:45 +0000 (01:57 +0000)]
1.0.3.43: Restore manual autobuildability

Adding a dependency of ../../output/sbcl.core in the manual's Makefile goes
against the ability of specifying the SBCL_SYSTEM to the build process. This
change should restore the old behavior.

17 years ago1.0.3.42: two LOOP buglets
Nikodemus Siivola [Sun, 18 Mar 2007 00:06:52 +0000 (00:06 +0000)]
1.0.3.42: two LOOP buglets
 * Avoid bogus package-lock violations from LOOP, don't declare types
   for special variables in COMMON-LISP. Reported by Eric Marsen on
   sbcl-devel.
 * Avoid attempts to coerce loop variable initialization values to
   range-limited types. Reported by Andras Simon on sbcl-devel.

17 years ago1.0.3.41:
Nathan Froyd [Sat, 17 Mar 2007 21:24:59 +0000 (21:24 +0000)]
1.0.3.41:
Use a local variable for %%CURRENT-{VOP,SEGMENT}%% rather than a
  dynamic variable; eliminates spurious BOUNDP checks and
  generates smaller code for VOP emitters.  Saves ~170k on core
  size on x86-64/linux.

17 years ago1.0.3.40: :EXECUTABLE T implies --noinform
Juho Snellman [Fri, 16 Mar 2007 03:57:08 +0000 (03:57 +0000)]
1.0.3.40: :EXECUTABLE T implies --noinform

        * Patch from Kevin Reid.
* Not the right solution. This can be revisited once somebody
          implements the mythical saving of command-line parameters into the
          core.
        * Also check in some fixes to the build process of the manual (patch
          by Richard Kreuter).

17 years ago1.0.3.39: larger heap size for x86-64/darwin
Cyrus Harmon [Thu, 15 Mar 2007 15:14:15 +0000 (15:14 +0000)]
1.0.3.39: larger heap size for x86-64/darwin
 * removed darwin specific params for space locations.
 * modify gettimeofday of call on darwin x86-64 to not pass in a
   timezone pointer as this causes the gettimeofday syscall to
   occasionally fail. This is a temporary hack and should be fixed.

17 years ago1.0.3.38: record bug #411, disable NAN-COMPARISONS test on x86-64
Nikodemus Siivola [Mon, 12 Mar 2007 12:04:14 +0000 (12:04 +0000)]
1.0.3.38: record bug #411, disable NAN-COMPARISONS test on x86-64
 ...avaiting the attention of x86-64 hackers...

17 years ago1.0.3.37: Oops, fix bad argument types in the new x86-64 modular arithmetic VOPs
Juho Snellman [Thu, 8 Mar 2007 18:09:32 +0000 (18:09 +0000)]
1.0.3.37: Oops, fix bad argument types in the new x86-64 modular arithmetic VOPs

17 years ago1.0.3.36: Don't fail on timeout on contrib/sb-simple-streams tests.
sa2c [Thu, 8 Mar 2007 11:12:21 +0000 (11:12 +0000)]
1.0.3.36: Don't fail on timeout on contrib/sb-simple-streams tests.

Timeout may occur on the restricted systems (e.g. FreeBSD with
jail(8) or blackhole(4) is used) when connecting to even localhost.

17 years ago1.0.3.35: fix problem with backtraces showing NIL as the function name
Juho Snellman [Wed, 7 Mar 2007 05:20:27 +0000 (05:20 +0000)]
1.0.3.35: fix problem with backtraces showing NIL as the function name

        * Reported by Edi Weitz
        * Might also fix the debug.impure failures that some people have
          reported on BSDs

17 years ago1.0.3.34:
Nathan Froyd [Wed, 7 Mar 2007 02:12:56 +0000 (02:12 +0000)]
1.0.3.34:
Make (SETF C-STRING->LISP-STRING) substantially faster and cons less.

17 years ago1.0.3.33: sb-bsd-sockets fixes for x86-64/darwin
Cyrus Harmon [Tue, 6 Mar 2007 23:26:32 +0000 (23:26 +0000)]
1.0.3.33: sb-bsd-sockets fixes for x86-64/darwin
 * add gethostbyname2 (#+darwin)
 * make ai_addrlen be a socklen_t (#+darwin)
 * turn off :sb-bsd-sockets-addrinfo on x86-64/darwin as this seems
   to be broken
 * workaround gethostbyname length bug by alllowing length 4 or 8
   on x86-64 darwin

17 years ago1.0.3.32: make-local-alien stack alignment simplification
Cyrus Harmon [Tue, 6 Mar 2007 18:29:54 +0000 (18:29 +0000)]
1.0.3.32: make-local-alien stack alignment simplification
 * treat x86-64/darwin stack like x86-64/linux rather than x86/darwin
 * remove stack-pointer saving vops as we don't need to save and
   restore the stack in order to preserve 16-byte alignment as the
   stack should already be 16-byte aligned

17 years ago1.0.3.31: fix new = and /= transformations for NaNs
Nikodemus Siivola [Mon, 5 Mar 2007 16:58:26 +0000 (16:58 +0000)]
1.0.3.31: fix new = and /= transformations for NaNs
 * (= nan nan) is false, and (/= nan nan) is true, as pointed out by
   CSR.
 * More tests.

17 years ago1.0.3.30: More compact typechecks on x86-64
Juho Snellman [Mon, 5 Mar 2007 00:57:52 +0000 (00:57 +0000)]
1.0.3.30: More compact typechecks on x86-64

        * Patch by Lutz Euler

17 years ago1.0.3.29: kill a bogus "variable defined but not used" warning in FORMATTER
Juho Snellman [Sun, 4 Mar 2007 23:52:39 +0000 (23:52 +0000)]
1.0.3.29: kill a bogus "variable defined but not used" warning in FORMATTER

17 years ago1.0.3.28: handle output for fatal-compiler-errors more consistently
Juho Snellman [Sun, 4 Mar 2007 23:47:58 +0000 (23:47 +0000)]
1.0.3.28: handle output for fatal-compiler-errors more consistently

* Format the output like it's done for other errors / warnings
        * Output to *error-output*
        * Output unconditionally regardless of the value of *compiler-verbose*

17 years ago1.0.3.27: disable test for get-host-by-name for non-existing hosts
Juho Snellman [Sun, 4 Mar 2007 23:42:32 +0000 (23:42 +0000)]
1.0.3.27: disable test for get-host-by-name for non-existing hosts

* Many people have DNS setups where this test will always fail.

17 years ago1.0.3.26: port modular-xor/fixnum changes from x86 to x86-64
Juho Snellman [Sun, 4 Mar 2007 23:39:34 +0000 (23:39 +0000)]
1.0.3.26: port modular-xor/fixnum changes from x86 to x86-64

* Code like (logand most-positive-fixnum (logxor (the fixnum x)
                                                         (the fixnum y))
          would end up with a full call to SB-VM::LOGXOR-MOD64.

17 years ago1.0.3.25: freebsd sb-bsd-sockets fixes
Cyrus Harmon [Sat, 3 Mar 2007 20:53:15 +0000 (20:53 +0000)]
1.0.3.25: freebsd sb-bsd-sockets fixes
 * SO_NO_CHECK doesn't exist on freebsd. Make this #-freebsd.
 * EAI-ADDRFAMILY and EAI-NODATA are deprecated and don't exist on
   freebsd. Make these #-freebsd.

17 years ago1.0.3.24: remove win32 alien-timeval
Cyrus Harmon [Sat, 3 Mar 2007 20:19:26 +0000 (20:19 +0000)]
1.0.3.24: remove win32 alien-timeval
 * remove alien-timeval struct defintion
 * make define-protocol-class timeval be #-win32

17 years ago1.0.3.23: fix sb-posix timeval struct
Cyrus Harmon [Sat, 3 Mar 2007 18:58:48 +0000 (18:58 +0000)]
1.0.3.23: fix sb-posix timeval struct
 * add timeval struct for #+win32 and use long instead of suseconds_t

17 years ago1.0.3.22: fix with-pinned-object buglets
Cyrus Harmon [Sat, 3 Mar 2007 18:28:43 +0000 (18:28 +0000)]
1.0.3.22: fix with-pinned-object buglets
 * on ppc types and variables were unused, which was causing a warning
   which was getting promoted to an error. make them ignorable.
 * #+(or x86 x86-64) -> #!+(or x86 x86-64) which should help building
   from non sbcl hosts.
 * also fix indentation in timeval struct definition

17 years ago1.0.3.21: suseconds_t -> long on win32
Cyrus Harmon [Sat, 3 Mar 2007 17:52:46 +0000 (17:52 +0000)]
1.0.3.21: suseconds_t -> long on win32
 * suseconds_t doesn't exist on win32, so use long instead

17 years ago1.0.3.20: better SEARCH transform
Nikodemus Siivola [Sat, 3 Mar 2007 17:21:58 +0000 (17:21 +0000)]
1.0.3.20: better SEARCH transform

 * Better type declarations for index variables -- fixes the
   performance regression in BENCH-STRINGS from the NaN-comparison
   changes.

 * Extend the transform to work with general vectors, arbitrary :TEST and
   :KEY, and constant but arbitrary :FROM-END.

 * Tests.

17 years ago1.0.3.19: the count argument in DOTIMES is known to be an integer
Nikodemus Siivola [Sat, 3 Mar 2007 10:49:26 +0000 (10:49 +0000)]
1.0.3.19: the count argument in DOTIMES is known to be an integer
 * Declaring it as such for the non-constant expansion of dotimes
   allows the inversion of >= to < kick in for the termination test.

17 years ago1.0.3.18: Fix build on FreeBSD/amd64
sa2c [Sat, 3 Mar 2007 07:19:36 +0000 (07:19 +0000)]
1.0.3.18: Fix build on FreeBSD/amd64

17 years ago1.0.3.17: fix x86-64-assem.S build
Cyrus Harmon [Sat, 3 Mar 2007 06:24:38 +0000 (06:24 +0000)]
1.0.3.17: fix x86-64-assem.S build
 * on darwin, use GSYM(GNAME(all_threads)),%rax, on linux use
   GNAME(all_threads). This is isn't the cleanest fix, but it should
   restore buildability while I work out a proper fix.

17 years ago1.0.3.16: experimental x86-64/darwin suport
Cyrus Harmon [Sat, 3 Mar 2007 00:42:01 +0000 (00:42 +0000)]
1.0.3.16: experimental x86-64/darwin suport
 * fix sb-posix time structs to match headers on darwin
 * comment out mtime sb-posix test as this isn't working ATM
 * add UD2A trap stuff to x86-64 and corresponding word-imm support
 * remove bogus extern-alien-name in boxed_region fixups
 * add compiler parameters for Darwin
 * add x86-64 darwin config file
 * some type safety fixes (proper types) in darwin-dlshim.c
 * use setpgid on Darwin
 * add signal context support x86-64/darwin
 * report trap instead of si_code for trap_Error/trap_Cerror
 * unsigned -> unsigned long in purify.c
 * add mach exception handler support for x86-64/darwin
 * x86-64 assembly hacks to make darwin's assembler happy
 * update x86-64-bsd-os.c to suppot darwin and mach exceptions
 * add x86-64-darwin-os.c/h
 * update LDSO stubs for x86-64 darwin

17 years ago1.0.3.15: timeval tv-usec should be suseconds-t not time-t
Cyrus Harmon [Fri, 2 Mar 2007 22:43:43 +0000 (22:43 +0000)]
1.0.3.15: timeval tv-usec should be suseconds-t not time-t
 * add suseconds-t to grovel-headers
 * fix timeval struct such that tv-usec is a suseconds-t instead of time-t
 * fix whitespace

17 years ago1.0.3.14: fix print_obj on x86-64
Cyrus Harmon [Fri, 2 Mar 2007 17:52:55 +0000 (17:52 +0000)]
1.0.3.14: fix print_obj on x86-64
 * debugging code in print_obj was hardcoded to use 3-bit lowtags.
   Now it's hardcoded to use appropriate 4-bit lowtags on x86-64.
 * Added a fixme about how this should be fixed properly at some point.

17 years ago1.0.3.13: working NaN comparison tests outside Darwin
Nikodemus Siivola [Fri, 2 Mar 2007 17:03:09 +0000 (17:03 +0000)]
1.0.3.13: working NaN comparison tests outside Darwin
 * Other platforms have invalid operation traps normally in effect.

17 years ago1.0.3.13: "Oops"
Juho Snellman [Fri, 2 Mar 2007 06:08:37 +0000 (06:08 +0000)]
1.0.3.13: "Oops"

17 years ago1.0.3.12: Use the interpreter when creating functions for undeclared aliens
Juho Snellman [Fri, 2 Mar 2007 05:05:32 +0000 (05:05 +0000)]
1.0.3.12: Use the interpreter when creating functions for undeclared aliens

          * No sense in invoking the compiler, since the functions will
            just be discarded after one use.
          * Undeclared aliens should no longer be hideously expensive

17 years ago1.0.3.11: Fix deportation gc safety bug
Juho Snellman [Fri, 2 Mar 2007 04:35:58 +0000 (04:35 +0000)]
1.0.3.11: Fix deportation gc safety bug

          * Pin objects that are deported by taking a SAP to a GCd object
          * In some cases the object that the SAP is taken to isn't actually
            EQ to the one that was deported -> split deportation into
            separate alien-type-class-methods for the allocation and the
            actual deportation.
          * Don't do pinning on non-x86oids, since we can't really disable
            the GC during all alien calls.

17 years ago1.0.3.10: Add -D_REENTRANT to Solaris CFLAGS
Juho Snellman [Fri, 2 Mar 2007 03:16:31 +0000 (03:16 +0000)]
1.0.3.10: Add -D_REENTRANT to Solaris CFLAGS

         * Otherwise localtime_r in time.c won't be found.
         * Problem and solution reported by Thomas Burdick.

17 years ago1.0.3.9: Allow characters as string designators for SHADOW
Juho Snellman [Fri, 2 Mar 2007 02:02:01 +0000 (02:02 +0000)]
1.0.3.9: Allow characters as string designators for SHADOW

         * Patch by Eric Marsden