sbcl.git
16 years ago1.0.11.5: update tests for newer macos version
Cyrus Harmon [Sat, 3 Nov 2007 08:54:31 +0000 (08:54 +0000)]
1.0.11.5: update tests for newer macos version

 * use MAC_OS_X_VERSION_10_5 instead of __DARWIN_UNIX03

16 years ago1.0.11.4: Unset GREP_OPTIONS when filtering nm output in linux-nm
Rudi Schlatte [Sat, 3 Nov 2007 08:05:03 +0000 (08:05 +0000)]
1.0.11.4: Unset GREP_OPTIONS when filtering nm output in linux-nm
  * Nuke it since there is no grep option (that I could see) to
    reverse -i or ignore the GREP_OPTIONS variable
  * Patch by Daniel Lowe

16 years ago1.0.11.3: belatedly recognizing STREAM-ERROR and PARSE-ERROR printing is OK
William Harold Newman [Fri, 26 Oct 2007 12:48:14 +0000 (12:48 +0000)]
1.0.11.3: belatedly recognizing STREAM-ERROR and PARSE-ERROR printing is OK
* (In my 1.0.9.60 patch, I fixed a READER-ERROR printing bug and
  wrote that parallel PARSE-ERROR and STREAM-ERROR printing bugs
  remained and that I would fix them. Now finally returning to
  fix them, I find that they were fixed already, the tests work
  with with no additional fixes needed.)
* so I just un-#+NILed-out the tests
        * also made a few trivial rearrangements in
          src/code/condition.lisp, moving things around without changing
          meaning

16 years ago1.0.11.2: defer package creation of defpackage
Rudi Schlatte [Fri, 26 Oct 2007 06:23:07 +0000 (06:23 +0000)]
1.0.11.2: defer package creation of defpackage
  Patch by Zach Beane to sbcl-devel 2007-10-09

16 years ago1.0.11.1: Handle set-but-empty environment variables
Rudi Schlatte [Fri, 26 Oct 2007 04:33:34 +0000 (04:33 +0000)]
1.0.11.1: Handle set-but-empty environment variables

  ... SBCL_HOME= sbcl crashed on startup
  ... Patch by Michael Weber

16 years ago1.0.11: release, will be tagged as sbcl_1_0_11
William Harold Newman [Thu, 25 Oct 2007 21:28:03 +0000 (21:28 +0000)]
1.0.11: release, will be tagged as sbcl_1_0_11

16 years ago1.0.10.55: Remove non-portable arguments to find, xargs
Rudi Schlatte [Mon, 22 Oct 2007 04:16:12 +0000 (04:16 +0000)]
1.0.10.55: Remove non-portable arguments to find, xargs

16 years ago1.0.10.54: Fix build with old gcc
NIIMI Satoshi [Sun, 21 Oct 2007 23:25:35 +0000 (23:25 +0000)]
1.0.10.54: Fix build with old gcc

Surround code fragment with braces for variable declarations.

16 years ago1.0.10.53: fix undefined-alien errors on darwin
Cyrus Harmon [Sun, 21 Oct 2007 23:19:12 +0000 (23:19 +0000)]
1.0.10.53: fix undefined-alien errors on darwin

 * the new mach exception handling stuff was checking to see if there
   were two faults on the page by checking the region's protection
   status and bailing out assuming that there were two faults on the
   same page. The problem was that it was following this code path for
   undefined-alien errors (and presumably control-stack-exhausted)
   thereby just resignalling an EXC_BAD_ACCESS, ad infinitum. Moved
   the checks for the page address being undefined_alien_address, or
   the control stack guard pages up before checking the page
   protection.

16 years ago1.0.10.52: fix clean.sh for whitespace-containing source directories
Rudi Schlatte [Sun, 21 Oct 2007 05:15:04 +0000 (05:15 +0000)]
1.0.10.52: fix clean.sh for whitespace-containing source directories

16 years ago1.0.10.51: New function: THREAD-YIELD
NIIMI Satoshi [Sat, 20 Oct 2007 06:27:20 +0000 (06:27 +0000)]
1.0.10.51: New function: THREAD-YIELD

An interface to sched_yield().  And use it in busy loops in some tests.

16 years ago1.0.10.50: short-circuit LVAR type derivation when type becomes T
Nikodemus Siivola [Fri, 19 Oct 2007 13:57:11 +0000 (13:57 +0000)]
1.0.10.50: short-circuit LVAR type derivation when type becomes T

* Even if there are uses we have not considered yet,
  %LVAR-DERIVED-TYPE can stop if the type turns into the universal
  type.

16 years ago1.0.10.49: deadline refinements
Nikodemus Siivola [Fri, 19 Oct 2007 13:25:03 +0000 (13:25 +0000)]
1.0.10.49: deadline refinements

* Deadlines are per-thread. (Children do no inherit their parents
  deadlines.)

* SIGNAL-DEADLINE estabilishes a DEFER-DEADLINE restart.

* Handle SIGNAL-DEADLINE returning due to deferred deadlines where
  necessary.

* Documentation.

16 years ago1.0.10.48: new function TRY-RESTART
Nikodemus Siivola [Thu, 18 Oct 2007 13:23:12 +0000 (13:23 +0000)]
1.0.10.48: new function TRY-RESTART

* Factor out all "find-restart and maybe invoke-restart" logic to one
  place.

16 years ago1.0.10.47: proper fix for "high-debug-known-function-inlining"
Nikodemus Siivola [Thu, 18 Oct 2007 12:56:51 +0000 (12:56 +0000)]
1.0.10.47: proper fix for "high-debug-known-function-inlining"

* Add ALLOW-INSTRUMENTING slot to CLAMBDA, taking it's value
  from *ALLOW-INSTRUMENTING*.

* Require LAMBDA-ALLOW-INSTRUMENTING to be true for emission
  of BIND/UNBIND-SENTINEL.

* Remove the earlier KLUDGE workaround.

16 years ago1.0.10.46: Inline the local functions in MAYBE-REHASH
Juho Snellman [Sun, 14 Oct 2007 23:40:55 +0000 (23:40 +0000)]
1.0.10.46: Inline the local functions in MAYBE-REHASH

        * Fixes small hash-table speed regression introduced in
          1.0.10.14 (and hidden by the other improvements in that
          commit).
        * 15-30% speedup over .14 on common hash operations.

16 years ago1.0.10.45: save typecheck-function in slot-table even if location is not saved
Nikodemus Siivola [Thu, 11 Oct 2007 15:33:55 +0000 (15:33 +0000)]
1.0.10.45: save typecheck-function in slot-table even if location is not saved

 * Otherwise non-standard metaclasses for which optimized instance
   accessors can be used don't get the typecheck-fun from the wrapper
   in the function returned from MAKE-OPTIMIZED-STD-WRITER-FUNCTION.

 * Test-case.

 * Missing NEWS entry for .44.

16 years ago1.0.10.44: BUFFER-P, not BUFFERP
Nikodemus Siivola [Thu, 11 Oct 2007 13:13:07 +0000 (13:13 +0000)]
1.0.10.44: BUFFER-P, not BUFFERP

 * Reported by Yuri Vishnevsky on sbcl-devel.

 * Test-case coming Real Soon.

16 years ago1.0.10.43: Fix NaN comparison on x86-64
NIIMI Satoshi [Thu, 11 Oct 2007 09:20:36 +0000 (09:20 +0000)]
1.0.10.43: Fix NaN comparison on x86-64

Comisd and comiss sets all of ZF, PF, and CF of EFLAGS if its
operand contains NaN.  Because PF is never set by normal
comparison, we use it to check NaN.  This is same as "=" vops.

16 years ago1.0.10.42: change dynamic space area on FreeBSD
NIIMI Satoshi [Thu, 11 Oct 2007 03:19:27 +0000 (03:19 +0000)]
1.0.10.42: change dynamic space area on FreeBSD

If KVA_PAGES is extended from 256 to 384 (1GB to 1.5GB), stack starts
0x9FC00000.  So change dynamic space from 0x60000000-0xA0000000 to
0x58000000-0x98000000.

Nowadays, 4GB of address space is too small, isn't it?

16 years ago1.0.10.41: Remove unnecessary sched_yield()
NIIMI Satoshi [Wed, 10 Oct 2007 21:36:49 +0000 (21:36 +0000)]
1.0.10.41: Remove unnecessary sched_yield()

Don't call sched_yield() on thread creation and retirement, since
the cost of sched_yield() is very high on FreeBSD 7.

16 years ago1.0.10.40: Fix build for windows when source directory contains spaces
Rudi Schlatte [Mon, 8 Oct 2007 11:02:52 +0000 (11:02 +0000)]
1.0.10.40: Fix build for windows when source directory contains spaces

16 years ago1.0.10.39: .gitignore additions for windows
Rudi Schlatte [Mon, 8 Oct 2007 08:34:44 +0000 (08:34 +0000)]
1.0.10.39: .gitignore additions for windows

16 years ago1.0.10.38: fix get-host-by-address on Darwin
Rudi Schlatte [Mon, 8 Oct 2007 06:19:26 +0000 (06:19 +0000)]
1.0.10.38: fix get-host-by-address on Darwin
  sockaddr_in has a length field on Darwin but not on linux

16 years ago1.0.10.37: fix x86-64/darwin build
Cyrus Harmon [Mon, 8 Oct 2007 04:30:21 +0000 (04:30 +0000)]
1.0.10.37: fix x86-64/darwin build

 * use MAC_OS_X_VERSION_10_5 instead of __DARWIN_UNIX03 as the test
   for new style headers as __DARWIN_UNIX03 is defined when building
   x86-64 on 10.4

16 years ago1.0.10.36: support for Darwin versions that support __DARWIN_UNIX03
Cyrus Harmon [Mon, 8 Oct 2007 01:46:30 +0000 (01:46 +0000)]
1.0.10.36: support for Darwin versions that support __DARWIN_UNIX03

 * on some versions of darwin symbols without a leading _ are dropped
   by the linker. Use a leading _ on Darwin ldso_stub functions.

 * Add a FIXME about 128-bit integeer passing being broken on x86-64

 * _DARWIN_UNIX03 support
   ** os_context_t is now __darwin_ucontext
   ** eip -> __eip (and friends) - use macro hackery EIP etc...
   ** use darwin_ucontext/darwin_mcontext instead of struct
      ucontext/mcontext where appropriate.
   ** struct ucontext -> os_context_t where appropriate

 * allow socket-error for the aceptable errors in inet-socket error
   test cases

 * Add a fix me about a rumored OS bug fix that in name-service tests

16 years ago1.0.10.35: fix sb-posix test on linux
Cyrus Harmon [Sun, 7 Oct 2007 20:21:58 +0000 (20:21 +0000)]
1.0.10.35: fix sb-posix test on linux

 * look for sys instead of wheel when testing getgrnam

16 years ago1.0.10.34: Fix sb-posix:get{{gr,pw}nam},pwuid,grgid} for non-existing entries.
Andreas Fuchs [Sun, 7 Oct 2007 11:00:33 +0000 (11:00 +0000)]
1.0.10.34: Fix sb-posix:get{{gr,pw}nam},pwuid,grgid} for non-existing entries.

Used to signal memory fault, now returns NIL on queries for non-existing
users or groups.

16 years ago1.0.10.33: Lesson: Test before commit.
Thiemo Seufer [Sat, 6 Oct 2007 21:53:45 +0000 (21:53 +0000)]
1.0.10.33: Lesson: Test before commit.

16 years ago1.0.10.32: better mach exception handling
Cyrus Harmon [Sat, 6 Oct 2007 17:55:05 +0000 (17:55 +0000)]
1.0.10.32: better mach exception handling

 * Patch from Ole Myren Rohne for better mach exception handling. This
   deals with the case where the kernel started a signal handler
   before our mach exception handler got a chance to run. This was
   causing us to inappropriately SIGILL and die. This patch fixes
   this, along with some general cleanup issues, including the
   call_handler_on_thread wrapper function.

 * TODO: this logic needs to be applied to the x86-64/darwin port as
   well

16 years ago1.0.10.31: sb-posix support for getgrnam and getgrgid
Cyrus Harmon [Sat, 6 Oct 2007 16:53:53 +0000 (16:53 +0000)]
1.0.10.31: sb-posix support for getgrnam and getgrgid

 * add alien-group and group protocol-class

 * add define-gr-call macro a la define-pw-call

 * alien definitions for getgrnam and getgrgid

 * trivial test for above calls

16 years ago1.0.10.30: Fix build without sb-thread
NIIMI Satoshi [Sat, 6 Oct 2007 13:26:32 +0000 (13:26 +0000)]
1.0.10.30: Fix build without sb-thread

16 years ago1.0.10.29: MUTEX refactoring & optimization
Nikodemus Siivola [Fri, 5 Oct 2007 14:48:40 +0000 (14:48 +0000)]
1.0.10.29: MUTEX refactoring & optimization

 * (SETF MUTEX-VALUE) removed entirely. Using it was never sane,
   and in the new setup entirely broken.

 * On futex platforms, keep track of state of the mutex: free, taken,
   or contested (taken and may have one ore more threads waiting).

 * On release, if the mutex is not contested, there is no need to
   perform the wakeup.

 * Document assumptions made by GET-MUTEX & RELEASE-MUTEX better.

 * Update FASL version.

16 years ago1.0.10.28: export semaphore interface
Nikodemus Siivola [Fri, 5 Oct 2007 14:00:08 +0000 (14:00 +0000)]
1.0.10.28: export semaphore interface

 * Semaphores are a fundamental threading construct -- export them.
   Clean up the interface slightly: not (SETF SEMAPHORE-COUNT), note
   that being a subclass of STRUCTURE-OBJECT is not guaranteed, etc.

16 years ago1.0.10.27: Change unportable find option "-path"
NIIMI Satoshi [Fri, 5 Oct 2007 11:30:20 +0000 (11:30 +0000)]
1.0.10.27: Change unportable find option "-path"

The find option "-path" is not portable.  Use "-prune" not to
recurse into CVS directory.

16 years ago1.0.10.26: More sb-posix documentation, thanks to Richard M Kreuter
Rudi Schlatte [Fri, 5 Oct 2007 09:21:28 +0000 (09:21 +0000)]
1.0.10.26: More sb-posix documentation, thanks to Richard M Kreuter

16 years ago1.0.10.25: Build fix, add a missing bit of hashtable rewrite.
Thiemo Seufer [Fri, 5 Oct 2007 00:55:27 +0000 (00:55 +0000)]
1.0.10.25: Build fix, add a missing bit of hashtable rewrite.

16 years ago1.0.10.24: Don't include CVS cruft in binary distributions.
Thiemo Seufer [Thu, 4 Oct 2007 23:02:59 +0000 (23:02 +0000)]
1.0.10.24: Don't include CVS cruft in binary distributions.

16 years ago1.0.10.23: Shuffle def* foo around for less compiler warnings.
Thiemo Seufer [Thu, 4 Oct 2007 23:01:57 +0000 (23:01 +0000)]
1.0.10.23: Shuffle def* foo around for less compiler warnings.

16 years ago1.0.10.22: Code formatting.
Thiemo Seufer [Thu, 4 Oct 2007 23:00:26 +0000 (23:00 +0000)]
1.0.10.22: Code formatting.

16 years ago1.0.10.21: MIPS will soon need an explicit -fPIC flag, too.
Thiemo Seufer [Thu, 4 Oct 2007 22:59:32 +0000 (22:59 +0000)]
1.0.10.21: MIPS will soon need an explicit -fPIC flag, too.

16 years ago1.0.10.20: Code provision for a future MIPS gencgc port.
Thiemo Seufer [Thu, 4 Oct 2007 22:56:15 +0000 (22:56 +0000)]
1.0.10.20: Code provision for a future MIPS gencgc port.

16 years ago1.0.10.19: Check also for MIPS foreign_function_call lossage
Thiemo Seufer [Thu, 4 Oct 2007 22:54:48 +0000 (22:54 +0000)]
1.0.10.19: Check also for MIPS foreign_function_call lossage
... and fix a spelling typo.

16 years ago1.0.10.18: Define __USE_GNU only if it wasn't already defined.
Thiemo Seufer [Thu, 4 Oct 2007 22:52:51 +0000 (22:52 +0000)]
1.0.10.18: Define __USE_GNU only if it wasn't already defined.

16 years ago1.0.10.17: Reformat string, and fix compiler warning.
Thiemo Seufer [Thu, 4 Oct 2007 22:48:45 +0000 (22:48 +0000)]
1.0.10.17: Reformat string, and fix compiler warning.

16 years ago1.0.10.16: Add some documentation for sb-posix
Rudi Schlatte [Thu, 4 Oct 2007 05:12:34 +0000 (05:12 +0000)]
1.0.10.16: Add some documentation for sb-posix

  Mutilated contrib/sb-posix/README, removing
  non-implementation-specific bits and referring to sb-alien instead.
  ... Some examples would be nice.

16 years ago1.0.10.15: Some sb-posix constants for stat().
Rudi Schlatte [Tue, 2 Oct 2007 07:17:26 +0000 (07:17 +0000)]
1.0.10.15: Some sb-posix constants for stat().

    Define S_IFMT and its friends S_IFIFO, S_IFDIR etc.

16 years ago1.0.10.14: remove locking and gc inhibition from hash-tables, power of 2 sizes
Juho Snellman [Sun, 30 Sep 2007 23:18:50 +0000 (23:18 +0000)]
1.0.10.14: remove locking and gc inhibition from hash-tables, power of 2 sizes

        This commit removes a bunch of bottlenecks from the hash-table
        implementation. It speeds up GETHASH, (SETF GETHASH) and
        REMHASH by a factor of 2-4x (on platforms with a real
        WITH-PINNED-OBJECTS) depending on the operation. On the flip
        side, no automatic locking is done on tables any more, so
        multi-threaded applications must do their own locking. (The
        locking done by SBCL was always just an implementation detail,
        not a part of the external interface). By popular demand it's
        also still safe to have multiple readers on the same table
        without locking.

Originally GCs were inhibited during most hash-table
        operations for two reasons. To prevent the GC from rehashing a
        table while a Lisp-side operation is going on, and to prevent
        the GC from moving the key after the hash-value has been
        calculated.

        More recently, most hash-tables operations have acquired a
        lock on the table in order to prevent two concurrent writers
        from corrupting the chains. While it's never been the intent
        for the standard data structures to be automatically
        thread-safe in SBCL, this locking had to be done since corrupt
        tables could lead to infinite GC loops.

        Both the locking and the without-gcing are expensive
        operations relative to the total cost of a hash-table lookup.
        This commit removes both the gc inhibition and the locks.
        Additionally we switch to power of two table size, which
        allows calculating a cheaper hash -> bucket with cheaper
        operations than MOD.

        * The GC no longer does the rehashing itself, but just marks
          the hash-table as needing a rehash, which will then be done
          Lisp-side when the table is next accessed. While it's
          possible to find cases where the former behaviour has better
          performance, they're very contrived.
        * The hash-table operations that work on the chains now check
          for loops in the chains, and signal an error if one is found.
        * The hash-table operations now pin the key before calculating
          the hash value (needed for EQ-based hash functions).
        * Add a GC epoch value that GETHASH can use to check whether
          a GC happened during the lookup. This is needed since another
          thread calling GETHASH on the same table might have caused it
          to be rehashed.
        * Kill the old MUST-REHASH vector header, and replace it with a
          slot in the HASH-TABLE structure. The overloading of the header
          caused missed rehashings when both the GC and %%PUTHASH modified
          it at the same time.
        * Switch to power of two table sizes, with a slightly more complex
          hash value -> bucket calculation than just taking the low bits,
          which in many cases have a very skewed distribution for the existing
          SBCL hash functions. Still a lot faster than using MOD.
        * Leave in locking and GC inhibition during rehashing (needed to
          allow multiple readers to coexist) and for weak hash-tables
          (they need some GC support, and the code is much simpler when
          all of the logic is in the GC instead of interleaved in the GC and
          Lisp-side). Neither of these cases is performance critical.

16 years ago1.0.10.13: trivial change: Print more explicit message upon entering LDB.
William Harold Newman [Sat, 29 Sep 2007 13:27:29 +0000 (13:27 +0000)]
1.0.10.13: trivial change: Print more explicit message upon entering LDB.

16 years ago1.0.10.12: logged bug 417
William Harold Newman [Fri, 28 Sep 2007 12:56:23 +0000 (12:56 +0000)]
1.0.10.12: logged bug 417

16 years ago1.0.10.11: Make FEATUREP accept only symbols or conses.
Andreas Fuchs [Thu, 27 Sep 2007 19:25:25 +0000 (19:25 +0000)]
1.0.10.11: Make FEATUREP accept only symbols or conses.

One more restriction on feature expressions: They can contain only conses
or symbols. The previous implementation allowed conses and atoms.

16 years ago1.0.10.10: theoretical #!+long-float fix to MAKE-MEMBER-TYPE
Nikodemus Siivola [Thu, 27 Sep 2007 15:56:06 +0000 (15:56 +0000)]
1.0.10.10: theoretical #!+long-float fix to MAKE-MEMBER-TYPE

* 0.0l0, not 0.0lo. Thanks to Peter Graves.

16 years ago1.0.10.9: symbol-macro expansion uses *MACROEXPAND-HOOK*
Nikodemus Siivola [Thu, 27 Sep 2007 15:50:43 +0000 (15:50 +0000)]
1.0.10.9: symbol-macro expansion uses *MACROEXPAND-HOOK*

Thanks to Tobias Rittweiler.

16 years ago1.0.10.8: correct nested DX implementation
Nikodemus Siivola [Thu, 27 Sep 2007 15:43:25 +0000 (15:43 +0000)]
1.0.10.8: correct nested DX implementation

* Instead of just checking for BASIC-COMBINATION-P,
  HANDLE-NESTED-DYNAMIC-EXTENT needs to do the same check for each USE
  as RECHECK-DYNAMIC-EXTENT-LVARS does.

* Tests.

16 years ago1.0.10.7: multiply-used DX LVARS
Nikodemus Siivola [Wed, 26 Sep 2007 16:00:44 +0000 (16:00 +0000)]
1.0.10.7: multiply-used DX LVARS

* HANDLE-NESTED-DYNAMIC-EXTENT maps over all the uses of the LVAR,
  collecting their argument lvars as well.

* RECHECK-DYNAMIC-EXTENT-LVARS accepts multiply-used DX LVARs,
  checking that all uses support stack allocation.

* UPDATE-UVL-LIVE-SETS accepts multiply-used DX LVARs, doing that
  lifetime merging with all uses.

* ...and OOPS, move the NEWS entries of .5 and .6 to a new section for
  1.0.11...

16 years ago1.0.10.6: nested DX allocation
Nikodemus Siivola [Wed, 26 Sep 2007 15:54:58 +0000 (15:54 +0000)]
1.0.10.6: nested DX allocation

* RECOGNIZE-DYNAMIC-EXTENT-LVARS needs to propagate DX information to
  combination arguments, so that

  (LET ((X (LIST (LIST 1 2) (LIST 3 4))))
    (DECLARE (DYNAMIC-EXTENT X))
    (FOO X))

  does the right thing.

16 years ago1.0.10.5: dynamic-extent CONS
Nikodemus Siivola [Wed, 26 Sep 2007 15:44:23 +0000 (15:44 +0000)]
1.0.10.5: dynamic-extent CONS

* Extend EMIT-FIXED-ALLOC to support stack-allocation.

* Appropriate DEFOPTIMIZER for CONS.

Note: it seems like it should be a simple matter to support stack
allocation of all primitive objects allocated using the :ALLOC-TRANS
framework.

16 years ago1.0.10.4: Use variable for SIG_MEMORY_FAULT on FreeBSD
NIIMI Satoshi [Wed, 26 Sep 2007 11:42:32 +0000 (11:42 +0000)]
1.0.10.4: Use variable for SIG_MEMORY_FAULT on FreeBSD

When SIGBUS is signalled on FreeBSD 7, or SIGSEGV is signalled on
FreeBSD 6 or earlier, it's very hard to debug if both of the signals
are hooked for GC.

Instead to hook both signals, define SIG_MEMORY_FAULT as variable
and set it at startup.

16 years ago1.0.10.3: Grovel suseconds_t
NIIMI Satoshi [Wed, 26 Sep 2007 11:37:34 +0000 (11:37 +0000)]
1.0.10.3: Grovel suseconds_t

Instead to detect if suseconds_t exists by OS and architecture,
check it in grovel-features.sh.

16 years ago1.0.10.2: Don't link unnecessary undefines.c on FreeBSD/i386
NIIMI Satoshi [Wed, 26 Sep 2007 11:30:50 +0000 (11:30 +0000)]
1.0.10.2: Don't link unnecessary undefines.c on FreeBSD/i386

undefines.c is not required anymore on FreeBSD/i386.  Since I'm not
sure it's required or not on other *BSD, add it to OS_SRC in
Config.x86-*bsd.

16 years ago1.0.10.1: Cleanup code
NIIMI Satoshi [Wed, 26 Sep 2007 11:24:01 +0000 (11:24 +0000)]
1.0.10.1: Cleanup code

Shut GCC warnings up.

16 years ago1.0.10: release, will be tagged as sbcl_1_0_10
William Harold Newman [Tue, 25 Sep 2007 16:18:24 +0000 (16:18 +0000)]
1.0.10: release, will be tagged as sbcl_1_0_10

16 years ago1.0.9.64: Use umtx system call on FreeBSD to emulate futex.
NIIMI Satoshi [Wed, 19 Sep 2007 04:11:44 +0000 (04:11 +0000)]
1.0.9.64: Use umtx system call on FreeBSD to emulate futex.

16 years ago1.0.9.63: Disallow (:not) in #+/#- expressions.
Andreas Fuchs [Tue, 18 Sep 2007 08:05:28 +0000 (08:05 +0000)]
1.0.9.63: Disallow (:not) in #+/#- expressions.

NOT in feature expressions is specified to accept exactly one argument.
The previous implementation of FEATUREP allowed zero or one argument,
so tighten that check.

Might need to fix CLRFI-1, as well (-:

16 years ago1.0.9.62: Performance and stability improvement of threading on FreeBSD
NIIMI Satoshi [Tue, 18 Sep 2007 06:43:42 +0000 (06:43 +0000)]
1.0.9.62: Performance and stability improvement of threading on FreeBSD

* Use GCC's Thread-Local Storage to store current thread.
  (Tested on Linux x86 and x86-64, too)

* Restore lisp level TLS segment register at interrupt handler.

16 years ago1.0.9.61: Fix %report-reader-error
Christophe Rhodes [Mon, 17 Sep 2007 18:38:16 +0000 (18:38 +0000)]
1.0.9.61: Fix %report-reader-error
It was missing an apply (or, equivalently, a ~?) for printing
the simple-condition part of the error.

16 years ago1.0.9.60: partial fix for bug in STREAM-ERROR :REPORT
William Harold Newman [Sun, 16 Sep 2007 12:05:16 +0000 (12:05 +0000)]
1.0.9.60: partial fix for bug in STREAM-ERROR :REPORT
* added a new (partially #+NILed out) test case for a bug in
  STREAM-ERROR :REPORT, where it expects STREAM-ERROR to have
  SIMPLE-CONDITION-like properties
* partial fix for bug in test case:
  ** Define SB-INT:SIMPLE-READER-ERROR which portably behaves
     the way that pre-ANSI code expected READER-ERROR to behave.
  ** Redo most internal references to READER-ERROR as references
     to SB-INT:SIMPLE-READER-ERROR.
* (This is only a partial fix because PARSE-ERROR and
  STREAM-ERROR still have similar issues.)

16 years ago1.0.9.59: Fix ash/smod61 on x86-64 for constant large shifts.
Christophe Rhodes [Wed, 12 Sep 2007 16:14:16 +0000 (16:14 +0000)]
1.0.9.59: Fix ash/smod61 on x86-64 for constant large shifts.
Thanks to Paul Khuong for the translation.

16 years ago1.0.9.58: Fix x86 smod30 ash with a constant large argument.
Christophe Rhodes [Wed, 12 Sep 2007 15:37:05 +0000 (15:37 +0000)]
1.0.9.58: Fix x86 smod30 ash with a constant large argument.
The usual thing: the VOP was written in the belief that the
compiler had already proved that the shift couldn't be
too large.

(Include test cases which should catch the analogous problem on
x86-64 as well as the problem just fixed.)

16 years ago1.0.9.57: allow pv-optimizations for typechecking (SETF SLOT-VALUE)
Nikodemus Siivola [Mon, 10 Sep 2007 21:42:20 +0000 (21:42 +0000)]
1.0.9.57: allow pv-optimizations for typechecking (SETF SLOT-VALUE)

* For each optimized access, store both the slot location and the
  typecheck function in the permutation vector. If the write is in
  safe code, use the typecheck function to validate the new value
  before using it.

* Approximately ~5x as fast as SAFE-SET-SLOT-VALUE -- which is still
  needed in a few places as ACCESSOR-SET-SLOT-VALUE doesn't do type
  checking.

16 years ago1.0.9.56: faster typechecking/optimized std-writer-method-functions
Nikodemus Siivola [Mon, 10 Sep 2007 20:55:11 +0000 (20:55 +0000)]
1.0.9.56: faster typechecking/optimized std-writer-method-functions

* Fetch the type-check-fun from wrapper-slot-table, not
  from the slot-definition.

16 years ago1.0.9.55: trivial src/pcl/vector.lisp cleanup
Nikodemus Siivola [Mon, 10 Sep 2007 20:34:23 +0000 (20:34 +0000)]
1.0.9.55: trivial src/pcl/vector.lisp cleanup

* There hasn't been a :DEFAULT kind in permutation vector code
  for ages -- delete the code that handled it.

16 years ago1.0.9.54: clean up old pv updating code
Nikodemus Siivola [Mon, 10 Sep 2007 14:29:38 +0000 (14:29 +0000)]
1.0.9.54: clean up old pv updating code

* Since the vectors that are updated are referred to by stale
  wrappers, this seems to be quite useless: if an instance has an
  invalid wrapper it will still have the old layout as well.

16 years ago1.0.9.53: trivial typo fixes
William Harold Newman [Mon, 10 Sep 2007 13:31:45 +0000 (13:31 +0000)]
1.0.9.53: trivial typo fixes
(I had batched these up as a "git baby steps" commit, but now
that's been delayed...)

16 years ago1.0.9.52: copy propagation interfering with local calls
Nikodemus Siivola [Mon, 10 Sep 2007 12:36:59 +0000 (12:36 +0000)]
1.0.9.52: copy propagation interfering with local calls

* Don't allow copy propagation to a local call argument, thus
  preserving parallel assignment semantics -- to judge by the comment
  above OK-COPY-REF, this is what it was ment to do in the first
  place. Reported by Paul Khuong on sbcl-devel.

16 years ago1.0.9.51: SB-CLTL2: implement FUNCTION-INFORMATION, touch VARIABLE-INFORMATION
Nikodemus Siivola [Mon, 10 Sep 2007 12:14:42 +0000 (12:14 +0000)]
1.0.9.51: SB-CLTL2: implement FUNCTION-INFORMATION, touch VARIABLE-INFORMATION

* Based on work done by Larry D'Anna.

* Rewire VARIABLE-INFORMATION in a similar manner. Add a FIXME
  note about lexically apparent special bindings, and document
  the current state of affairs. Improve the documentation string.

* Tests, and more tests for VARIABLE-INFORMATION as well.

16 years ago1.0.9.50: O(1) weak pointer scavenging
Nikodemus Siivola [Sun, 9 Sep 2007 12:39:16 +0000 (12:39 +0000)]
1.0.9.50: O(1) weak pointer scavenging

* Use self-pointer instead of NULL to mark the end of scavenged weak
  pointer list in GC, which allows identifying unscavenged pointers
  by the NULL next pointers.

* Scavenging a single weak pointer in gencgc is now an O(1) operation
  instead of O(#scanned pointers so far).

Thanks to Paul Khuong.

16 years ago1.0.9.49: NetBSD 2.0 build fix (Aymeric Vincent sbcl-devel 2007-09-05)
Christophe Rhodes [Sun, 9 Sep 2007 07:46:18 +0000 (07:46 +0000)]
1.0.9.49: NetBSD 2.0 build fix (Aymeric Vincent sbcl-devel 2007-09-05)
No ptsname() and friends on NetBSD.

16 years ago1.0.9.48: texi2pdf rework (Aymeric Vincent sbcl-devel 2007-09-05)
Christophe Rhodes [Sun, 9 Sep 2007 07:32:28 +0000 (07:32 +0000)]
1.0.9.48: texi2pdf rework (Aymeric Vincent sbcl-devel 2007-09-05)
It looks likely that texi2dvi is more ubiquitous than texi2pdf,
so just apply the patch.
... (plus whitespace and .cvsignore collateral changes).

16 years ago1.0.9.47: VALID-WRAPPER-OF
Nikodemus Siivola [Sat, 8 Sep 2007 17:35:47 +0000 (17:35 +0000)]
1.0.9.47: VALID-WRAPPER-OF

* Renamed CHECK-OBSOLETE-INSTANCE/WRAPPER-OF, and fixed the semantics
  so that it always returns the fresh wrapper.

* Add FIXME re CHECK-WRAPPER-VALIDITY name.

16 years ago1.0.9.46: take pv-slot value from wrapper-slot-table
Nikodemus Siivola [Sat, 8 Sep 2007 17:32:22 +0000 (17:32 +0000)]
1.0.9.46: take pv-slot value from wrapper-slot-table

* Use NIL instead of T in the CAR of the SLOT-TABLE cells to indicate
  "slot location not saved for some reason".

* Better slot location computation for SLOT-TABLES: remaining wrapper
  copies now also copy the slot-table, and bootstrapping computes the
  slot locations for rest of the interesting cases.

* Use SLOT-TABLE to obtain the slot location for permutation vectors
  instead of WRAPPER-CLASS-SLOTS and WRAPPER-INSTANCE-SLOTS-LAYOUT.
  Faster, and slowly point the way to getting rid of WRAPPER/LAYOUT
  distinction.

* We deal with slot names in permutation vectors: remove the unused
  code that computed things for non-slot-name places in them.

16 years ago1.0.9.45: cleaner & thread-safe pv-table interning
Nikodemus Siivola [Sat, 8 Sep 2007 16:20:35 +0000 (16:20 +0000)]
1.0.9.45: cleaner & thread-safe pv-table interning

* Rename the global interning tables and comment on
  their purpose for easier understanding.

* Simplify by-slot indexing: PV-OFFSETS are not needed in the global
  table.

* Lock around hash-table accesses.

16 years ago1.0.9.44: clean up PV-TABLE constructor
Nikodemus Siivola [Sat, 8 Sep 2007 15:54:16 +0000 (15:54 +0000)]
1.0.9.44: clean up PV-TABLE constructor

16 years ago1.0.9.43: .PV-CELL., use .PV. directly
Nikodemus Siivola [Sat, 8 Sep 2007 15:15:45 +0000 (15:15 +0000)]
1.0.9.43: .PV-CELL., use .PV. directly

* Now that .CALLS. are gone we can get rid of the extra indirection.
  (Maybe we have to add it back later, but worry about that then.)

* Since .PV. is magical, also localize its bindings to vector.lisp,
  instead of exposing the variable in PV-BINDING1's interface (which
  is used elsewhere as well.)

16 years ago1.0.9.42: remove stale CALLS support
Nikodemus Siivola [Sat, 8 Sep 2007 14:38:02 +0000 (14:38 +0000)]
1.0.9.42: remove stale CALLS support

* Permutation vector code contained infrastructure for optimizing
  GF calls inside method bodies in a similar manner as slot accesses
  are optimized, but this support was never finished.

  While it would be nice to have it, right now clarity of the code
  seems like a higher priority -- it seems to be simple enough to
  reinstate when we want, and the end result is liable to be easier to
  understand.

* Add a big FIXME with a short explanation of the optimization and
  a pointer to this commit.

16 years ago1.0.9.41: Fix test on unthreaded config.
NIIMI Satoshi [Sat, 8 Sep 2007 00:18:18 +0000 (00:18 +0000)]
1.0.9.41: Fix test on unthreaded config.

16 years ago1.0.9.40: fix 64 bit build
Nikodemus Siivola [Fri, 7 Sep 2007 09:51:37 +0000 (09:51 +0000)]
1.0.9.40: fix 64 bit build

* Need to cast (BACKEND_PAGE_SIZE-1) to an unsigned long before bit
  flipping, otherwise we're potentially cutting the high bits off the
  allocation address.

16 years ago1.0.9.39: thread stack memory leaks
Nikodemus Siivola [Thu, 6 Sep 2007 13:36:23 +0000 (13:36 +0000)]
1.0.9.39: thread stack memory leaks

* Since 1.0.9.30 we pad & align the per-thread areas after
  allocation -- but we need to still pass the original address
  and size to os_invalidate(), or else we leak.

* Also refactor the freeable_thread_stack stuff slightly for
  less OAOOM.

* Whitespace in tests.

16 years ago1.0.9.38: fix COMPARE-AND-SWAP
Nikodemus Siivola [Thu, 6 Sep 2007 11:49:15 +0000 (11:49 +0000)]
1.0.9.38: fix COMPARE-AND-SWAP

* :COMPARE-AND-SWAP-VOPS, not :COMPARE-AND-SWAP-VOP in *FEATURES*.

* Threaded cas tests. (threads.impure.lisp currently broken for
  unrelated reasons since .30 or so.)

16 years ago1.0.9.37: MIPS shared libraries will need an explicit -fPIC soon-ish.
Thiemo Seufer [Wed, 5 Sep 2007 20:40:33 +0000 (20:40 +0000)]
1.0.9.37: MIPS shared libraries will need an explicit -fPIC soon-ish.

16 years ago1.0.9.36: Match the correct atomicity bit.
Thiemo Seufer [Wed, 5 Sep 2007 20:36:10 +0000 (20:36 +0000)]
1.0.9.36: Match the correct atomicity bit.
The wonders of copy & paste ...

16 years ago1.0.9.35: Delete wrong comment.
Thiemo Seufer [Wed, 5 Sep 2007 20:34:23 +0000 (20:34 +0000)]
1.0.9.35: Delete wrong comment.
At that place, the header tag is written, and we have nothing
like closure-header-slot.

16 years ago1.0.9.34: Encapulate the whole closure generation in pseudo-atomic.
Thiemo Seufer [Wed, 5 Sep 2007 20:31:14 +0000 (20:31 +0000)]
1.0.9.34: Encapulate the whole closure generation in pseudo-atomic.

16 years ago1.0.9.33: Change SIGINFO to the more common SIGPWR, and fix its documentation.
Thiemo Seufer [Wed, 5 Sep 2007 20:28:31 +0000 (20:28 +0000)]
1.0.9.33: Change SIGINFO to the more common SIGPWR, and fix its documentation.

16 years ago1.0.9.32: Remove accidentially committed debug code.
Thiemo Seufer [Wed, 5 Sep 2007 12:17:51 +0000 (12:17 +0000)]
1.0.9.32: Remove accidentially committed debug code.

16 years ago1.0.9.31: Fix broken syntax.
Thiemo Seufer [Wed, 5 Sep 2007 12:15:28 +0000 (12:15 +0000)]
1.0.9.31: Fix broken syntax.

16 years ago1.0.9.30: Make SBCL work on MIPS/Linux with larger page sizes.
Thiemo Seufer [Wed, 5 Sep 2007 01:20:45 +0000 (01:20 +0000)]
1.0.9.30: Make SBCL work on MIPS/Linux with larger page sizes.
- Supports now up to 64k pages, aas defined by the o32 ABI.
- Tested on a bcm1480 with a kernel for 16k pages.
- The pagesize handling in SBCL is very broken for most other
  architectures / OSes.

16 years ago1.0.9.29: Fix document string formatting.
Thiemo Seufer [Sun, 2 Sep 2007 23:34:25 +0000 (23:34 +0000)]
1.0.9.29: Fix document string formatting.

16 years ago1.0.9.28: Enable alien callbacks for MIPS.
Thiemo Seufer [Sun, 2 Sep 2007 03:08:38 +0000 (03:08 +0000)]
1.0.9.28: Enable alien callbacks for MIPS.

16 years ago1.0.9.27: Fix large file support for MIPS.
Thiemo Seufer [Sun, 2 Sep 2007 03:06:27 +0000 (03:06 +0000)]
1.0.9.27: Fix large file support for MIPS.