sbcl.git
14 years ago1.0.37.43: add RAW-INSTANCE-INIT/* VOPs for PPC
Nathan Froyd [Tue, 6 Apr 2010 14:32:42 +0000 (14:32 +0000)]
1.0.37.43: add RAW-INSTANCE-INIT/* VOPs for PPC

14 years ago1.0.37.42: Add DEFKNOWN for %FAILED-AVER...
Tobias C. Rittweiler [Tue, 6 Apr 2010 12:43:56 +0000 (12:43 +0000)]
1.0.37.42: Add DEFKNOWN for %FAILED-AVER...

..so the compiler knows that it won't return.

14 years ago1.0.37.41: Improved ASSERT-NO-CONSING reporting in test suite.
Tobias C. Rittweiler [Tue, 6 Apr 2010 11:09:31 +0000 (11:09 +0000)]
1.0.37.41: Improved ASSERT-NO-CONSING reporting in test suite.

An hooray to FORMAT:

  (assert-no-consing (sleep 0.0001)) results in

      Expected the form
          (SLEEP 1.e-4)
      NOT to cons, yet running it for 10000 times resulted in the
      allocation of 1290440 bytes (129.044 per run).

14 years ago1.0.37.40: More informative UNEXPECTED-FAILURE reporting...
Tobias C. Rittweiler [Tue, 6 Apr 2010 10:07:22 +0000 (10:07 +0000)]
1.0.37.40: More informative UNEXPECTED-FAILURE reporting...

..by making it report the actual error message as well.

14 years ago1.0.37.39: Use WITH-TEST consistently in dynamic-extent.impure.lisp.
Tobias C. Rittweiler [Tue, 6 Apr 2010 10:04:29 +0000 (10:04 +0000)]
1.0.37.39: Use WITH-TEST consistently in dynamic-extent.impure.lisp.

14 years ago1.0.37.38: micro-optimizations of CONCATENATE bits
Nathan Froyd [Mon, 5 Apr 2010 20:04:19 +0000 (20:04 +0000)]
1.0.37.38: micro-optimizations of CONCATENATE bits

- Don't insert array bounds checks when inlining CONCATENATE.  This
  particularly helps when smushing together constant strings.

- Don't insert array bounds checks in the out-of-line CONCATENATE functions.

- While we're here, tweak the REPLACE transforms to avoid bounds checking
  under appropriate policy.

14 years ago1.0.37.37: fix CONCATENATE FIXME
Nathan Froyd [Mon, 5 Apr 2010 13:03:03 +0000 (13:03 +0000)]
1.0.37.37: fix CONCATENATE FIXME

Collapse helper macros and functions into CONCATENATE as simple FLETs,
reducing noise and providing a marginally more efficient CONCATENATE, since
we're no longer APPLY'ing and &RESTing lists unnecessarily.

14 years ago1.0.37.36: revisit FIND/POSITION bounds checking on lists
Nikodemus Siivola [Sun, 4 Apr 2010 09:03:08 +0000 (09:03 +0000)]
1.0.37.36: revisit FIND/POSITION bounds checking on lists

  The spec doesn't actually /require/ us to signal an error if we
  are not in danger of running out of bounds as far as I can tell.

  So don't traverse the entire list during forward searches if we
  find what we are looking for before specified :END or the list end.

  Patch by Alec Berryman.

  This revisits lp#452008, and fixed lp#554385.

14 years ago1.0.37.35: Rename WAITQUEUE-DATA to WAITQUEUE-TOKEN.
Tobias C. Rittweiler [Sat, 3 Apr 2010 19:56:28 +0000 (19:56 +0000)]
1.0.37.35: Rename WAITQUEUE-DATA to WAITQUEUE-TOKEN.

Naming it that way makes more sense because the slot's value is used
as token. It's also easier to refer to a waitqueue's token rather than
a waitqueue's datum in discussions.

14 years ago1.0.37.34: Fix lost wakeup bug between CONDITION-WAIT and CONDITION-NOTIFY.
Tobias C. Rittweiler [Sat, 3 Apr 2010 18:06:37 +0000 (18:06 +0000)]
1.0.37.34: Fix lost wakeup bug between CONDITION-WAIT and CONDITION-NOTIFY.

(Patch and write up below are actually due to Nikodemus.)

Use the waitqueue object as the data item in CONDITION-NOTIFY, and the
thread in CONDITION-WAIT.

It doesn't matter if multiple notifies use the same object -- single
thread notifying multiple times has the same meaning as multiple
threads sending one notification each, but multiple waiters must use
different objects as per following scenario:

   1) Thread A calls CONDITION-WAIT on a condition variable CVAR.

      Thread A sets CVAR's waitqueue-data to token A.

      Thread A is preempted after the (RELEASE-MUTEX), before the
      FUTEX-WAIT.

   2) Thread B is run. Thread B invokes CONDITION-NOTIFY.

      Thread B sets CVAR's waitqueue-data to a token B.

      Thread B invokes FUTEX-WAKE which is NO-OP because no thread is
      yet waiting on the futex.

   3) Thread C is run. Thread C invokes CONDITION-WAIT.

      Thread C sets CVAR's waitqueue-data to token C.

   4) Thread A is finally run again. The call to FUTEX-WAIT compares
      CVAR's waitqueue-data with token A. If token A == token C, the
      wakeup is lost.

Similarly, if step 3 does not happen, and token A == token B, the
wakeup is lost.

Furthermore, consider if thread A == thread B, and step 3 does not
happen.  (This can occur due to an interrupt.) Hence CONDITION-NOTIFY
cannot use the thread object as the token.

14 years ago1.0.37.33: Add SB-THREAD:GRAB-MUTEX.
Tobias C. Rittweiler [Sat, 3 Apr 2010 16:46:04 +0000 (16:46 +0000)]
1.0.37.33: Add SB-THREAD:GRAB-MUTEX.

  * I unintentionally comitted the bulk of what was supposed to become
    this commit with 1.0.37.31. Sorry.

  * SB-THREAD:GRAB-MUTEX is like GET-MUTEX except it takes &key, not
    &optional parameters.

  * Also add a :TIMEOUT key parameter on non-lutex platforms.

  * Tests included. News updated. Phew.

14 years ago1.0.37.32: Adapt test :GC-DEADLOCK due to 1.0.37.30.
Tobias C. Rittweiler [Sat, 3 Apr 2010 14:57:14 +0000 (14:57 +0000)]
1.0.37.32: Adapt test :GC-DEADLOCK due to 1.0.37.30.

14 years ago1.0.37.31: Use (WITH-TEST ...) consistently in threads.impure.lisp.
Tobias C. Rittweiler [Sat, 3 Apr 2010 14:55:37 +0000 (14:55 +0000)]
1.0.37.31: Use (WITH-TEST ...) consistently in threads.impure.lisp.

14 years ago1.0.37.30: OAOOize type of NAME slots between THREAD, MUTEX &c.
Tobias C. Rittweiler [Sat, 3 Apr 2010 13:25:34 +0000 (13:25 +0000)]
1.0.37.30: OAOOize type of NAME slots between THREAD, MUTEX &c.

  * Introduce new type THREAD-NAME; it expands to SIMPLE-STRING for
    now; that's what some of the thread-related data structures
    (MUTEX, WAITQUEUE) used in past whereas others allowed anything
    (THREAD).

  * Use that type consistently for THREADs, MUTEXes, WAITQUEUES,
    SPINLOCKs and SEMAPHOREs.

14 years ago1.0.37.29: Cleanup from fasl format and fasdump logic changes.
Alastair Bridgewater [Sat, 3 Apr 2010 00:42:24 +0000 (00:42 +0000)]
1.0.37.29: Cleanup from fasl format and fasdump logic changes.

  * Bump fasl format version.

  * Remove fop-normal-load and fop-maybe-cold-load now that they're not
used.

  * Remove *cold-load-dump* logic, now that it's not used.

  * Remove various fop-normal-load-related logic from genesis.

14 years ago1.0.37.28: Remove fop-normal-load games when dumping stuff.
Alastair Bridgewater [Sat, 3 Apr 2010 00:41:50 +0000 (00:41 +0000)]
1.0.37.28: Remove fop-normal-load games when dumping stuff.

  * Layouts, fixup-kinds, and assembly-routine names are named by
interned symbols, which genesis now knows how to read with cold-fops.

14 years ago1.0.37.27: Add new named-package FOPs for simpler package fasdumping.
Alastair Bridgewater [Sat, 3 Apr 2010 00:41:04 +0000 (00:41 +0000)]
1.0.37.27: Add new named-package FOPs for simpler package fasdumping.

 * A new cloned-fop pair, fop-named-package-save and
fop-small-named-package-save, taking an inlined string and doing the
package lookup, save to fasl-table, etc.

 * Defined in genesis as new clone-cold-fop pair, as genesis needs host
package objects in its fasl table.

 * Package references now dumped using the new fop pair, instead of
faffing about with switching between cold and normal loads, dumping the
package name, dumping a fop-package and dumping fop-pop.

 * Old fop-package retained for use by the fopcompiler.

14 years ago1.0.37.26: Remove FASL-DUMP-COLD-LOAD-FORM and its one use.
Alastair Bridgewater [Sat, 3 Apr 2010 00:40:26 +0000 (00:40 +0000)]
1.0.37.26: Remove FASL-DUMP-COLD-LOAD-FORM and its one use.

  * Used in one place, when doing the assembly pass over the
assembly-routine source, to dump an in-package form.

  * Said in-package form is useless, as symbols are only ever dumped in
relation to an explicit home package, not the current package.

14 years ago1.0.37.25: Defer interning symbols to cold-core as long as possible.
Alastair Bridgewater [Sat, 3 Apr 2010 00:39:25 +0000 (00:39 +0000)]
1.0.37.25: Defer interning symbols to cold-core as long as possible.

 * Don't cold-intern symbols in cold-load-symbol.

 * Use host symbols NIL and T for fop-empty-list and fop-truth.

 * Do cold-intern symbols-as-value in write-wordindexed.

 * Warm-fun-name of a symbol is the symbol itself, modulo uncrossing
packages (SB-XC -> COMMON-LISP).

 * Type declaration fixups to allow passing symbols as well as
descriptors in some places.

14 years ago1.0.37.24: Genesis deFIXMEification: Symbol allocation gspace.
Alastair Bridgewater [Sat, 3 Apr 2010 00:38:18 +0000 (00:38 +0000)]
1.0.37.24: Genesis deFIXMEification: Symbol allocation gspace.

  * Removed *cold-symbol-allocation-gspace*

  * Added keyword argument for allocation gspace to allocate-symbol.

  * Added keyword argument for allocation space to cold-intern, changing
optional package argument to be a keyword argument as well.

  * Changed initialize-non-nil-symbols to pass explicit gspace arguments
to cold-intern instead of using *cold-symbol-allocation-gspace*.

  * Fixed the one use of the package argument to cold-intern for the
keyword-argument version.

14 years ago1.0.37.23: saner SB-PROFILE::COUNTER-COUNT handling
Nikodemus Siivola [Fri, 2 Apr 2010 15:34:56 +0000 (15:34 +0000)]
1.0.37.23: saner SB-PROFILE::COUNTER-COUNT handling

 * Each overflow accounts for (1+ +MOST-POSITIVE-WORD+) instead of
   +MOST-POSITIVE-WORD+, just like in

     0x01 + [0x00,0xff] = [0x01,0x00]

   ...one less ATOMIC-INCF needed for the overflow case.

14 years ago1.0.37.22: SB-PROFILE improvements
Nikodemus Siivola [Thu, 1 Apr 2010 17:36:02 +0000 (17:36 +0000)]
1.0.37.22: SB-PROFILE improvements

 * More efficient counters: use CAS to increment the overflow, no need
   for a separate spinlock.

 * Current off-by-one in the event of counter-overflows.

 * Report per-function GC overhead. (patch by John Fremlin)

14 years ago1.0.37.21: :AUTO-CLOSE and better FD-STREAM-NAME for socket streams
Nikodemus Siivola [Thu, 1 Apr 2010 12:52:04 +0000 (12:52 +0000)]
1.0.37.21: :AUTO-CLOSE and better FD-STREAM-NAME for socket streams

 Fixed launchpad bug #540413.

14 years ago1.0.37.20: Make stress test for SB-CONCURRENCY:MAILBOX more robust.
Tobias C. Rittweiler [Wed, 31 Mar 2010 19:35:11 +0000 (19:35 +0000)]
1.0.37.20: Make stress test for SB-CONCURRENCY:MAILBOX more robust.

  * The MAILBOX.INTERRUPT-SAFETY.1 test kills threads randomly while
    stress-testing a mailbox--in the test we made sure that at least
    one receiver remains to properly finish the test; however, some of
    the receiver threads were written with a specific upper bound of
    runs. In the unlikely event that only those receivers remain,
    there was a chance that they could not properly finish the test.

  * We rewrite the receivers to do their work until they receive a
    special FIN token as message. After all senders are done, we make
    sure to send enough FIN for all receivers to shut down.

  * Also gather some more information during the test so in case of
    failure we can gain understanding on what went wrong.

14 years ago1.0.37.19: Forgot to add sb-queue/package.lisp in last commit.
Tobias C. Rittweiler [Tue, 30 Mar 2010 21:40:39 +0000 (21:40 +0000)]
1.0.37.19: Forgot to add sb-queue/package.lisp in last commit.

14 years agostill 1.0.38.18; forgot to delete old sb-queue files.
Tobias C. Rittweiler [Tue, 30 Mar 2010 10:48:08 +0000 (10:48 +0000)]
still 1.0.38.18; forgot to delete old sb-queue files.

14 years ago1.0.37.18: New contrib SB-CONCURRENCY.
Tobias C. Rittweiler [Tue, 30 Mar 2010 10:46:43 +0000 (10:46 +0000)]
1.0.37.18: New contrib SB-CONCURRENCY.

sb-concurrency related changes:

  * create contrib/sb-concurrency/

  * add the implementation of lock-free Queues from sb-queue.

  * add a new implementation of Mailboxes on top of the Queues.

sb-queue related changes:

  * merged into sb-concurrency

  * deprecated now, but the system / package is still retained for
    backwards compatibility; the package simply reexports from
    sb-concurrency.

doc changes:

  * add section for sb-concurrency to manual

14 years ago1.0.37.17: multiplication-by-one misoptimization in (FLOAT-ACCURACY 0) policies
Nikodemus Siivola [Tue, 30 Mar 2010 10:09:04 +0000 (10:09 +0000)]
1.0.37.17: multiplication-by-one misoptimization in (FLOAT-ACCURACY 0) policies

 * Our transforms optimized (* <int> 1.0) into <int>. Oops.

14 years ago1.0.37.16: fix build
Nikodemus Siivola [Mon, 29 Mar 2010 15:31:25 +0000 (15:31 +0000)]
1.0.37.16: fix build

 * Oops. Missing package prefixes and wrong slot type
   for SEMAPHORE-WAITCOUNT.

14 years ago1.0.37.15: Make SB-THREAD:TRY-SEMAPHORE decrement count by N.
Tobias C. Rittweiler [Mon, 29 Mar 2010 10:54:08 +0000 (10:54 +0000)]
1.0.37.15: Make SB-THREAD:TRY-SEMAPHORE decrement count by N.

Add an &optional N parameter to SB-THREAD:TRY-SEMAPHORE as an
optimization so a user who wants to do so does not need to
acquire a semaphore's lock multiple times but just once.

14 years ago1.0.37.14: fix the other half of the WAIT-ON-SEMAPHORE buglet
Nikodemus Siivola [Mon, 29 Mar 2010 08:05:11 +0000 (08:05 +0000)]
1.0.37.14: fix the other half of the WAIT-ON-SEMAPHORE buglet

 * ATOMIC-DECF doesn't do any good if the other write isn't atomic as
   well: even though we are always holding the lock while incrementing
   the waitcount, the possibly unlocked but atomic decrement means the
   increment needs to be atomic too.

14 years ago1.0.37.13: Make SIGNAL-SEMAPHORE interruptable.
Tobias C. Rittweiler [Sun, 28 Mar 2010 20:08:38 +0000 (20:08 +0000)]
1.0.37.13: Make SIGNAL-SEMAPHORE interruptable.

Although a SEMAPHORE's mutex is private to that SEMAPHORE, and the
mutex is released during the wait in WAIT-ON-SEMAPHORE, it's still
possible to starve in SIGNAL-SEMAPHORE while waiting to acquire the
mutex because a deadline handler around WAIT-ON-SEMAPHORE could be
running in the implicitly called CONDITION-WAIT which reacquires the
mutex.

Hence make sure that the call to GET-MUTEX in SIGNAL-SEMAPHORE is
interruptable.

14 years ago1.0.37.12: Fix typo in "Reporting bugs" section of the manual.
Tobias C. Rittweiler [Sun, 28 Mar 2010 17:44:49 +0000 (17:44 +0000)]
1.0.37.12: Fix typo in "Reporting bugs" section of the manual.

  s/call_backtrace_from_fp/call backtrace_from_fp/

  fixes lp#541771

  (The last commit message contained a bogus commit version header
   of "1.0.37.6"; it was "1.0.37.11", of course.)

14 years ago1.0.37.6: Add SB-SYS:CANCEL-DEADLINE restart to DEADLINE-TIMEOUTs.
Tobias C. Rittweiler [Sun, 28 Mar 2010 17:35:37 +0000 (17:35 +0000)]
1.0.37.6: Add SB-SYS:CANCEL-DEADLINE restart to DEADLINE-TIMEOUTs.

  * Establish an SB-SYS:CANCEL-DEADLINE restart in SIGNAL-DEADLINE.

  * Add an SB-SYS:CANCEL-DEADLINE restart function.

  * Make SB-INT:READ-EVALUATED-FORM take an optional prompt. This
    function is commonly used to query the user for input in restarts.
    Use it in the SB-SYS:DEFER-DEADLINE restart in SIGNAL-DEADLINE.

  * Bind *DEADLINE-SECONDS* in SB-THREAD:MAKE-THREAD. Not binding it
    does not seem to have severe consequences, but that's not obvious
    so just bind both so humans won't waste brain cycles on
    it. SB-KERNEL:SUB-GC also binds both.

  * Add usage of WITH-TEST to tests/deadline.impure.lisp. Also add
    a test case for the new CANCEL-DEADLINE restart.

14 years ago1.0.37.10: docs, docs are good
Nikodemus Siivola [Sun, 28 Mar 2010 16:36:30 +0000 (16:36 +0000)]
1.0.37.10: docs, docs are good

 * Add ATOMIC-INCF, ATOMIC-DECF, COMPARE-AND-SWAP, and TRY-SEMAPHORE
   to the manual.

 * Teach docstrings.lisp to skip &ENVIRONMENT and &WHOLE in
   lambda-lists. (Needed by the above.)

14 years ago1.0.37.9: atomic STOREW for large integer constants on x86-64
Nikodemus Siivola [Sun, 28 Mar 2010 16:29:13 +0000 (16:29 +0000)]
1.0.37.9: atomic STOREW for large integer constants on x86-64

 * First move the constant into TEMP-REG-TN, then into memory -- not
   into memory in two stages. Even though memory is probably
   write-combining, an interrupt could still leave us with a bogus
   value.

14 years ago1.0.37.8: add ATOMIC-DECF, fix WAIT-ON-SEMAPHORE-BUGLET
Nikodemus Siivola [Sun, 28 Mar 2010 15:19:11 +0000 (15:19 +0000)]
1.0.37.8: add ATOMIC-DECF, fix WAIT-ON-SEMAPHORE-BUGLET

 * We already had SB-EXT:ATOMIC-INCF, so this seems a sensible
   companion. I really cannot remember why I didn't do things like
   this in the first place -- lack of time, maybe?

 * Use ATOMIC-DECF instead of DECF in WAIT-ON-SEMAPHORE to decrement
   the waitcount: if we unwind from CONDITION-WAIT due to timeout the
   mutex might no longer be ours.

14 years ago1.0.37.7: RETRY restart for NO-APPLICABLE-METHOD and NO-PRIMARY-METHOD
Nikodemus Siivola [Sun, 28 Mar 2010 13:44:46 +0000 (13:44 +0000)]
1.0.37.7: RETRY restart for NO-APPLICABLE-METHOD and NO-PRIMARY-METHOD

 Wrap calling the NO-FOO gf in a CALL-NO-FOO function which provides
 the restart.

 Can't do the same easily for NO-NEXT-METHOD, as return-value from
 CALL-NEXT-METHOD would get messed up.

14 years ago1.0.37.6: Add SB-THREAD:TRY-SEMAPHORE.
Tobias C. Rittweiler [Sun, 28 Mar 2010 13:37:22 +0000 (13:37 +0000)]
1.0.37.6: Add SB-THREAD:TRY-SEMAPHORE.

14 years ago1.0.37.5: remove a redundant IF
Nikodemus Siivola [Sun, 28 Mar 2010 12:16:02 +0000 (12:16 +0000)]
1.0.37.5: remove a redundant IF

  (IF BOOL X X) == X

  The duplication occurred at 0.9.3.32 when INSTANCE-LAMBDA in the
  first leg was be replaced with a regular LAMBDA.

14 years ago1.0.37.4: robuster page table pickup
Nikodemus Siivola [Sun, 28 Mar 2010 10:51:51 +0000 (10:51 +0000)]
1.0.37.4: robuster page table pickup

 The Problem:

   It is rare, but apparently possible, for there to be free pages in
   the middle of allocated pages even after the double-collection we
   do in gc_and_save().

   Previously this was not an issue, since the static space pickup
   mechanism just ended up marking those pages as boxed and full --
   so we could get a page or few of (0 . 0) in the static generation.
   No biggie.

   Now, however, we save page table information into the core (for
   normal, not cold cores). This means that a would get a page marked
   as free, but since it was below alloc_ptr gencgc_pickup_dynamic()
   would mark it having bytes_used=PAGE_BYTES, etc.

   ...and later, find_freeish_pages() would look at the page and
   cry out in existential anguish becaue it should be free but
   didn't have bytes_used==0. Oh Noes!

 The Fix:

   gencgc_pickup_dynamic() needs to be careful about pages marked free
   if partial pickup has already been done from the core.

14 years ago1.0.37.3: make *STANDARD-INPUT*, *STANDARD-OUTPUT*, and *ERROR-OUTPUT* bivalent
Nikodemus Siivola [Sun, 28 Mar 2010 10:44:04 +0000 (10:44 +0000)]
1.0.37.3: make *STANDARD-INPUT*, *STANDARD-OUTPUT*, and *ERROR-OUTPUT* bivalent

 * Also allow bivalent output streams to use :LINE buffering: take it
   to mean :FULL for binary output.

14 years ago1.0.37.2.: document UNLOAD-SHARED-OBJECT in the manual
Nikodemus Siivola [Sun, 28 Mar 2010 09:38:46 +0000 (09:38 +0000)]
1.0.37.2.: document UNLOAD-SHARED-OBJECT in the manual

14 years ago1.0.37.1: more correct restart text for MAKE-PACKAGE
Nikodemus Siivola [Sun, 28 Mar 2010 09:37:39 +0000 (09:37 +0000)]
1.0.37.1: more correct restart text for MAKE-PACKAGE

 * Selecting CONTINUE will clobber the existing package, not leave
   it alone.

14 years ago1.0.37: will be tagged as sbcl_1_0_37
Christophe Rhodes [Sun, 28 Mar 2010 09:02:28 +0000 (09:02 +0000)]
1.0.37: will be tagged as sbcl_1_0_37

14 years ago1.0.36.40: fix PPC build
Nikodemus Siivola [Fri, 26 Mar 2010 12:59:25 +0000 (12:59 +0000)]
1.0.36.40: fix PPC build

 * Resent unknown-type reparsing changes could result in LVAR-TYPE
   being #<UNKNOWN-TYPE RESTART> but _behaving_ as if it actually was
   #<STRUCTURE-CLASSOID RESTART> -- make PRIMITIVE-TYPE reparse the type
   if appropriate so that the right template can be found.

 * This problem was masked on x86oids as they have %INSTANCE-REF arg
   type *, whereas PPC had INSTANCE.

 Fixes launchpad bug #542894.

14 years ago1.0.36.39: report location correctly in run-sbcl.sh
Nikodemus Siivola [Thu, 25 Mar 2010 12:24:39 +0000 (12:24 +0000)]
1.0.36.39: report location correctly in run-sbcl.sh

 * Thanks to Attila Lendvai for noticing. In despite the freeze.

14 years ago1.0.36.38: unBREAK
Nikodemus Siivola [Tue, 23 Mar 2010 18:06:05 +0000 (18:06 +0000)]
1.0.36.38: unBREAK

 ...oops.

14 years ago1.0.36.37: fix minor regression from 1.0.36.33
Nikodemus Siivola [Tue, 23 Mar 2010 17:52:10 +0000 (17:52 +0000)]
1.0.36.37: fix minor regression from 1.0.36.33

 * Don't patch the &REST into the type when it has * for args.

14 years ago1.0.36.36: Update release checklist
Juho Snellman [Sun, 21 Mar 2010 06:32:04 +0000 (06:32 +0000)]
1.0.36.36: Update release checklist

     * Add a note about chmoding the release directories to
       group-writable.
     * Remove the obsolete and commented out upload instructions.

14 years ago1.0.36.35: More accurate WHO-CALLS / WHO-EXPANDS information
Tobias C. Rittweiler [Sat, 20 Mar 2010 16:08:06 +0000 (16:08 +0000)]
1.0.36.35: More accurate WHO-CALLS / WHO-EXPANDS information

  * Fix for .34 which also affects WHO-EXPANDS; instead of pointing at
    the toplevel form, actually point into the right subform.

  * Bug due to typo: CDDR was used instead of CADDR.

14 years ago1.0.36.34: WHO-CALLS information for source transformed calls
Nikodemus Siivola [Fri, 19 Mar 2010 21:33:08 +0000 (21:33 +0000)]
1.0.36.34: WHO-CALLS information for source transformed calls

 * Generalize the solution used for macroexpansion XREFs to take care
   of other source-level stuff: this includes both source-transforms
   and compiler-macros.

 Fixes launchpad bug #542174.

 Note re. 1.0.36.33: the commit message is erronous. The real commit
 message would have noted that since FIND-OPTIONAL-DISPATCH-TYPES
 doesn't rightly consider &REST mismatch a lossage in the presence of
 &KEY, we need to make sure the type assigned to the leaf has a &REST
 type if the function actually has a &REST argument.

14 years ago1.0.36.33: handle missing &REST in proclamations
Nikodemus Siivola [Fri, 19 Mar 2010 20:35:15 +0000 (20:35 +0000)]
1.0.36.33: handle missing &REST in proclamations

 * FIND-OPTIONAL-DISPATCH-TYPES cannot skip &REST verification in the
   presence of &KEY.

 Fixes launchpad bug #458354.

14 years ago1.0.36.32: reparsing undefined types when necessary
Nikodemus Siivola [Thu, 18 Mar 2010 18:58:20 +0000 (18:58 +0000)]
1.0.36.32: reparsing undefined types when necessary

 In type methods for unknown types that have since parsing become
 defined, update the type as necessary.

 Fixes bug #309128.

14 years ago1.0.36.30: on x86-64 split MOVE-TO-SINGLE into -REG and -STACK versions
Nikodemus Siivola [Thu, 18 Mar 2010 11:17:01 +0000 (11:17 +0000)]
1.0.36.30: on x86-64 split MOVE-TO-SINGLE into -REG and -STACK versions

 * More accurate lifetime for the temporary in both, to avoid spurious
   moves, as per patch.

 * When moving from control stack to reg, untag in the XMM register
   instead of a GP register, as per patch.

 * Missing commas in SSE shuffle instruction printers.

 Adapted from patch by Lutz Euler on sbcl-devel 2009-10-12.

14 years ago1.0.36.30: print_generation_stats even if heap exhaustion happens during allocation
Nikodemus Siivola [Thu, 18 Mar 2010 08:16:50 +0000 (08:16 +0000)]
1.0.36.30: print_generation_stats even if heap exhaustion happens during allocation

 Ditto for various GC control variables. Handling heap exhaustion is
 tricky enough that puking more information is better than less.

14 years ago1.0.36.29: better Control-C signaling
Nikodemus Siivola [Wed, 17 Mar 2010 16:51:55 +0000 (16:51 +0000)]
1.0.36.29: better Control-C signaling

  Actually SIGNAL the SB-SYS:INTERACTIVE-INTERRUPT so that handlers
  can run.

14 years ago1.0.36.28: real LOAD-LOGICAL-PATHNAME-TRANSLATIONS
Nikodemus Siivola [Wed, 17 Mar 2010 14:28:00 +0000 (14:28 +0000)]
1.0.36.28: real LOAD-LOGICAL-PATHNAME-TRANSLATIONS

 * Read translations from SYS:SITE;HOST.TRANSLATIONS.NEWEST.

 Patch by Michael Weber on sbcl-devel.

14 years ago1.0.36.27: less mprotect calls in GENCGC
Nikodemus Siivola [Wed, 17 Mar 2010 12:35:29 +0000 (12:35 +0000)]
1.0.36.27: less mprotect calls in GENCGC

 * In unprotect_oldspace(), instead of calling os_protect() for every
   page that needs unprotecting separately, call it once for every
   contiguous region of pages. (Thanks to Vitaly Mayatskikh.)

 * Replace the unprotection calls from free_oldspace() and
   copy_large_object() with asserts: unprotect_oldspace should already
   have unprotected everything of interest.

14 years ago1.0.36.26: bug using OF-TYPE VECTOR in LOOP
Nikodemus Siivola [Wed, 17 Mar 2010 11:53:29 +0000 (11:53 +0000)]
1.0.36.26: bug using OF-TYPE VECTOR in LOOP

 Case of :ELEMENT-TYPE * vs T confusion.

 Fixes launchpad bug #540186.

14 years ago1.0.36.25: stuff silly putty into pipe to stop ASDF-INSTALL leaking
Nikodemus Siivola [Mon, 15 Mar 2010 09:36:41 +0000 (09:36 +0000)]
1.0.36.25: stuff silly putty into pipe to stop ASDF-INSTALL leaking

 * ...or the moral equivalent thereof.

14 years ago1.0.36.24: FIND/POSITION bounds checking on lists
Nikodemus Siivola [Mon, 15 Mar 2010 09:13:59 +0000 (09:13 +0000)]
1.0.36.24: FIND/POSITION bounds checking on lists

 * Signal an error if the list is shorter than required, and also
   check for circularity.

   Based on patch by: Jorge Tavares

   Fixes launchpad bug #452008.

 * Also add declarations for some error signaling functions used by
   sequence code so that compiler knows they never return.

14 years ago1.0.36.23: more consistent handling of ignored DX declarations
Nikodemus Siivola [Fri, 12 Mar 2010 12:37:12 +0000 (12:37 +0000)]
1.0.36.23: more consistent handling of ignored DX declarations

 * Use COMPILER-STYLE-WARN if the declaration is for an unbound
   variable or function.

 * Use COMPILER-NOTIFY is the declaration is free, but the
   var/function is bound.

 * Take care not to create an entry in *FREE-VARS* due to processing
   a DX declaration.

 Fixed launchpad bug #497321.

14 years ago1.0.36.22: bogus style-warning in DEFSTRUCT edge-case
Nikodemus Siivola [Fri, 12 Mar 2010 11:23:09 +0000 (11:23 +0000)]
1.0.36.22: bogus style-warning in DEFSTRUCT edge-case

 * Using initformless &AUX to specify uninitialized structure slots
   caused a bogus style-warning.

   Patch by: Adlai Chandrasekhar <Munchking@gmail.com>

 Fixed launchpad bug #528807.

14 years ago1.0.36.21: stricter handling of invalid backquote expressions
Nikodemus Siivola [Fri, 12 Mar 2010 09:38:25 +0000 (09:38 +0000)]
1.0.36.21: stricter handling of invalid backquote expressions

 Based on patch by: Stas Boukarev <stassats@gmail.com>

 Fixed launchpad bug #309093.

14 years ago1.0.36.20: prettier WITH-COMPILATION-UNIT documentation
Nikodemus Siivola [Thu, 11 Mar 2010 17:09:46 +0000 (17:09 +0000)]
1.0.36.20: prettier WITH-COMPILATION-UNIT documentation

 * Adjust the docstring for the benefit of the manual, and
   teach docstrings.lisp more about parsing embedded examples.

14 years ago1.0.36.19: WITH-COMPILATION-UNIT :POLICY
Nikodemus Siivola [Thu, 11 Mar 2010 13:53:49 +0000 (13:53 +0000)]
1.0.36.19: WITH-COMPILATION-UNIT :POLICY

 * Allows binding *POLICY* and *POLICY-RESTRICTIONS*. Read the
   docstring and weep.

 * Document both RESTRICT-COMPILER-POLICY and WITH-COMPILER-POLICY in
   the manual.

 * Also make DECLARATION-INFORMATION heed *POLICY-RESTRICTIONS*.
   Based on patch by: Tobias C. Rittweiler <tcr@freebits.de>

   Fixes Launchpad bug #313337.

14 years ago1.0.36.18: remove *MERGE-SORT-TEMP-VECTOR* and *ZAP-ARRAY-DATA-TEMP*
Nikodemus Siivola [Thu, 11 Mar 2010 10:11:44 +0000 (10:11 +0000)]
1.0.36.18: remove *MERGE-SORT-TEMP-VECTOR* and *ZAP-ARRAY-DATA-TEMP*

 * STABLE-SORT no longer uses a pre-allocated temporary vector, but
   rather allocates it as-required.

   Based on patch by: Keith James <dev@deoxybyte.co.uk>

 * ADJUST-ARRAY no longer uses a pre-allocated temporary vector, but
   rather allocates is as-required.

 In both cases after the temporary vector is done with, it is
 truncated to 0-length to prevent garbage retention.

 Fixes Launchpad bug #496249.

14 years ago1.0.36.17: SB-INTROSPECT building without SB-EVAL
Nikodemus Siivola [Thu, 11 Mar 2010 08:33:59 +0000 (08:33 +0000)]
1.0.36.17: SB-INTROSPECT building without SB-EVAL

 Patch by: Stas Boukarev <stassats@gmail.com>

 Fixes Launchpad bug #535658.

14 years ago1.0.36.16: allocation profiling for new threads
Nikodemus Siivola [Tue, 9 Mar 2010 09:57:29 +0000 (09:57 +0000)]
1.0.36.16: allocation profiling for new threads

 Patch by: Leslie Polzer <polzer@gnu.org>

 Fixes Launchpad bug #472499.

14 years ago1.0.36.15: upgraded array element-type of unions and intersections
Nikodemus Siivola [Mon, 8 Mar 2010 17:05:41 +0000 (17:05 +0000)]
1.0.36.15: upgraded array element-type of unions and intersections

 * Rename EXTRACT-UPGRADED-ELEMENT-TYPE and
   EXTRACT-DECLARED-ELEMENT-TYPE ARRAY-TYPE-UPGRADED-ELEMENT-TYPE and
   ARRAY-TYPE-DECLARED-ELEMENT-TYPE, and make them work on array types
   instead of LVARs.

 * Make ARRAY-TYPE-UPGRADED-ELEMENT-TYPE able to handle general
   intersection and union types. Code by "Gustavo"
   <gugamilare@gmail.com>.

 * Make ARRAY-TYPE-DIMENSIONS-OR-GIVE-UP able to handle general
   intersection and union types.

 Fixes Launchpad bug #316078.

14 years ago1.0.36.14: better differences of numeric types
Nikodemus Siivola [Mon, 8 Mar 2010 13:44:58 +0000 (13:44 +0000)]
1.0.36.14: better differences of numeric types

 Handle differences of numeric types accurately in TYPE-DIFFERENCE (no
 change unless both arguments are number-types.)

 Fixes Launchpad bug #309124.

14 years ago1.0.36.13: Fix test case clos.impure.lisp / BUG-520366.
Alastair Bridgewater [Mon, 1 Mar 2010 17:31:03 +0000 (17:31 +0000)]
1.0.36.13: Fix test case clos.impure.lisp / BUG-520366.

  * Fix rename failure quux -> quux-520366.

14 years ago1.0.36.12: Make sb-posix build on win32 again.
Alastair Bridgewater [Mon, 1 Mar 2010 16:54:00 +0000 (16:54 +0000)]
1.0.36.12: Make sb-posix build on win32 again.

  * Don't support accessing d_ino on win32.

14 years ago1.0.36.11: Make slam.sh work on Win32.
Alastair Bridgewater [Mon, 1 Mar 2010 16:51:17 +0000 (16:51 +0000)]
1.0.36.11: Make slam.sh work on Win32.

  * This is just a matter of changing the userinit and sysinit to
    version.lisp-expr like was done back when for make.sh.

14 years ago1.0.36.10: UD2-BREAKPOINTS for Win32
Alastair Bridgewater [Mon, 1 Mar 2010 16:32:55 +0000 (16:32 +0000)]
1.0.36.10: UD2-BREAKPOINTS for Win32

  * Make UD2-BREAKPOINTS work on Win32.

  * Add :ud2-breakpoints as a feature affecting fasl format, as it
    changes the trap code used in compiled code.

14 years ago1.0.36.9: UD2-BREAKPOINTS feature for x86oid systems
Alastair Bridgewater [Mon, 1 Mar 2010 13:09:00 +0000 (13:09 +0000)]
1.0.36.9: UD2-BREAKPOINTS feature for x86oid systems

  * Add new feature UD2-BREAKPOINTS, enabled by default only on x86oid
darwin targets.

  * Use said feature instead of DARWIN for breakpoint trap selection.

  * Make breakpoints work when using UD2-BREAKPOINTS (tested on x86 and
x86-64 linux).

  * This patch brought to you by lp#309067, which remains valid for
three reasons: First, the test case is still disabled.  Second, this
only fixes for x86oids, not for PPC.  And third, I didn't actually test
this on a darwin system.

14 years ago1.0.36.8: deal with environment argument in TYPEP transforms
Nikodemus Siivola [Sun, 28 Feb 2010 20:26:43 +0000 (20:26 +0000)]
1.0.36.8: deal with environment argument in TYPEP transforms

 Thanks to Karol Swietlicki.

 Launchpad bug #309788

14 years ago1.0.36.7: fix SB-C::CLASS-INFO printing
Nikodemus Siivola [Sun, 28 Feb 2010 19:40:40 +0000 (19:40 +0000)]
1.0.36.7: fix SB-C::CLASS-INFO printing

 Launchpad bug #514762

14 years ago1.0.36.6: array data vector type derivation
Nikodemus Siivola [Sun, 28 Feb 2010 19:37:09 +0000 (19:37 +0000)]
1.0.36.6: array data vector type derivation

 * Needs to be done for ARRAY-STORAGE-VECTOR and %ARRAY-DATA-VECTOR
   in addition to %DATA-VECTOR-AND-INDEX.

 * If the array is simple, we may be able to derive the exact length
   of the data vector, not just the element type.

14 years ago1.0.36.5: delay transforms for SLOT-VALUE and (SETF SLOT-VALUE)
Nikodemus Siivola [Sun, 28 Feb 2010 19:05:39 +0000 (19:05 +0000)]
1.0.36.5: delay transforms for SLOT-VALUE and (SETF SLOT-VALUE)

 Fixes launchpad bug #520366

14 years ago1.0.36.4: muffle style-warnings for undefined slot writers
Nikodemus Siivola [Sun, 28 Feb 2010 18:51:56 +0000 (18:51 +0000)]
1.0.36.4: muffle style-warnings for undefined slot writers

 * Reported by Frederik Tolf on sbcl-help.

14 years ago1.0.36.3: FUNCTION-LAMBDA-EXPRESSION and declarations in interpreted functions
Nikodemus Siivola [Sun, 28 Feb 2010 17:52:37 +0000 (17:52 +0000)]
1.0.36.3: FUNCTION-LAMBDA-EXPRESSION and declarations in interpreted functions

 * Don't throw them away, that is.

 Fixes launchpad bug #524707

14 years ago1.0.36.2: buglet in LVAR-MATCHES
Nikodemus Siivola [Sun, 28 Feb 2010 17:37:12 +0000 (17:37 +0000)]
1.0.36.2: buglet in LVAR-MATCHES

 * LVAR-USE where it should have been LVAR-USES.

 Fixes launchpad bug #523612.

14 years ago1.0.36.1: Improve backtrace from THROW to unknown tag on x86oids.
Alastair Bridgewater [Sun, 28 Feb 2010 17:13:59 +0000 (17:13 +0000)]
1.0.36.1: Improve backtrace from THROW to unknown tag on x86oids.

  * Essentially, just fake up another stack frame before hitting the
    error trap.

14 years ago1.0.36: will be tagged as sbcl_1_0_36
Christophe Rhodes [Sun, 28 Feb 2010 15:59:05 +0000 (15:59 +0000)]
1.0.36: will be tagged as sbcl_1_0_36

14 years ago1.0.35.23: restore buildability on clisp
Christophe Rhodes [Sat, 27 Feb 2010 16:47:49 +0000 (16:47 +0000)]
1.0.35.23: restore buildability on clisp

Problem report and fix from Josh Elasser sbcl-devel 2010-02-16.

14 years ago1.0.35.22: fix building on Darwin when sysctl is not in PATH
Nathan Froyd [Sat, 27 Feb 2010 16:46:05 +0000 (16:46 +0000)]
1.0.35.22: fix building on Darwin when sysctl is not in PATH

Thanks to Robert Goldman for the fix.

14 years ago1.0.35.21: ANSI-fy random-state seeding changes
Nathan Froyd [Sat, 27 Feb 2010 16:43:12 +0000 (16:43 +0000)]
1.0.35.21: ANSI-fy random-state seeding changes

Thanks to Fare for redoing his patch.

14 years ago1.0.35.20: More robust checking for DEFMETHOD argument specializers
Nathan Froyd [Sat, 27 Feb 2010 16:22:56 +0000 (16:22 +0000)]
1.0.35.20: More robust checking for DEFMETHOD argument specializers

Fixes lp#525916, reported by Reinout Stevens.

14 years ago1.0.35.19: fix SB-EXT:GENERATION-* accessors for generation > 0
Nathan Froyd [Sat, 27 Feb 2010 16:01:21 +0000 (16:01 +0000)]
1.0.35.19: fix SB-EXT:GENERATION-* accessors for generation > 0

Add the `lutexes' slot to `struct generation' as defined from Lisp.
Not paying attention to OAOO bites again.  Unfortunately, several things
are still OAOOM...

14 years ago1.0.35.18: Fix type-derivation for EXPT
Nathan Froyd [Mon, 22 Feb 2010 21:54:31 +0000 (21:54 +0000)]
1.0.35.18: Fix type-derivation for EXPT

A small thinko in the condition checking for (EXPT <RATIONAL> <RATIONAL>).

14 years ago1.0.35.17: micro-optimize x86-64 MOVE-TO-SINGLE
Nathan Froyd [Tue, 16 Feb 2010 04:45:25 +0000 (04:45 +0000)]
1.0.35.17: micro-optimize x86-64 MOVE-TO-SINGLE

Sometimes we move a descriptor -> float -> stack.  Teach MOVE-TO-SINGLE
how to do descriptor -> stack in one step.

14 years ago1.0.35.16: Whitespace damage.
Alastair Bridgewater [Sun, 14 Feb 2010 20:17:36 +0000 (20:17 +0000)]
1.0.35.16: Whitespace damage.

14 years ago1.0.35.15: Add and export various functions related to type specifiers.
Tobias C. Rittweiler [Sat, 13 Feb 2010 01:04:44 +0000 (01:04 +0000)]
1.0.35.15: Add and export various functions related to type specifiers.

  * TYPEXPAND-1, TYPEXPAND, TYPEXPAND-ALL work like their MACROEXPAND
    counterparts except that they expand type specifiers.

  * DEFINED-TYPE-NAME-P returns whether a symbol is known to name a
    type specifier.

  * VALID-TYPE-SPECIFIER-P returns whether a (possibly compound) type
    specifier is known, and syntactically / structurally correct. A
    type specifier is valid if it is to be accepted as second argument
    by TYPEP -- except that VALID-TYPE-SPECIFIER-P can also deal with
    FUNCTION and VALUES type specifiers.

  * Export these functions from SB-EXT.

14 years ago1.0.35.14: Remove unused function PRINT-CONTINUATION.
Tobias C. Rittweiler [Sat, 13 Feb 2010 00:12:52 +0000 (00:12 +0000)]
1.0.35.14: Remove unused function PRINT-CONTINUATION.

14 years ago1.0.35.12: Minor cleanup in %TARGET-DEFSTRUCT.
Tobias C. Rittweiler [Thu, 11 Feb 2010 22:11:07 +0000 (22:11 +0000)]
1.0.35.12: Minor cleanup in %TARGET-DEFSTRUCT.

  * Minor refactoring: split MAKE-DEFSTRUCT-PREDICATE and
    MAKE-DEFSTRUCT-COPIER out of %TARGET-DEFSTRUCT.

  * Remove FIXME: MAKE-DEFSTRUCT-COPIER now returns a closure which
    type checks its argument for proper layout before passing it to
    COPY-STRUCTURE.

14 years ago1.0.35.12: Add SB-INTROSPECT:FUNCTION-TYPE.
Tobias C. Rittweiler [Thu, 11 Feb 2010 22:04:03 +0000 (22:04 +0000)]
1.0.35.12: Add SB-INTROSPECT:FUNCTION-TYPE.

  * New function which takes a function designator and returns the
    function's declared, or derived FTYPE.

14 years ago1.0.35.11: Minor cleanup in MAKE-FUN-TYPE / MAKE-VALUES-TYPE
Tobias C. Rittweiler [Thu, 11 Feb 2010 18:11:20 +0000 (18:11 +0000)]
1.0.35.11: Minor cleanup in MAKE-FUN-TYPE / MAKE-VALUES-TYPE

  * MAKE-FUN-TYPE and MAKE-VALUES-TYPE took an :ARGS key parameter
    to translate from a list type-specifier to a ctype. This
    was used in the type-translators for FUNCTION and VALUES, only.
    So I removed :ARGS, and put that code into those type-translators.

  * Renamed ARGS-TYPES helper function to PARSE-ARGS-TYPES.

14 years ago1.0.35.10: d_ino access in SB-POSIX
Nathan Froyd [Thu, 11 Feb 2010 03:37:26 +0000 (03:37 +0000)]
1.0.35.10: d_ino access in SB-POSIX

Thanks to Philipp Marek and Pierre THIERRY for independent, nearly
identical patches.