sbcl.git
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.

16 years ago1.0.9.26: Update comment about little-endian MIPS.
Thiemo Seufer [Sun, 2 Sep 2007 03:04:32 +0000 (03:04 +0000)]
1.0.9.26: Update comment about little-endian MIPS.

16 years ago1.0.9.25: Revert the /xhow -> /show change.
Thiemo Seufer [Sat, 1 Sep 2007 23:37:42 +0000 (23:37 +0000)]
1.0.9.25: Revert the /xhow -> /show change.
... as the original version was correct.

16 years ago1.0.9.24: Adjust assembly callers of WITH-FIXED-ALLOCATION.
Thiemo Seufer [Sat, 1 Sep 2007 20:37:42 +0000 (20:37 +0000)]
1.0.9.24: Adjust assembly callers of WITH-FIXED-ALLOCATION.

16 years ago1.0.9.23: Delete conditional INST NOP optimization.
Thiemo Seufer [Sat, 1 Sep 2007 19:39:04 +0000 (19:39 +0000)]
1.0.9.23: Delete conditional INST NOP optimization.
Using it is apparently too complicated for cold init.

16 years ago1.0.9.22: Dynamic-extent value-cells for MIPS.
Thiemo Seufer [Sat, 1 Sep 2007 18:11:11 +0000 (18:11 +0000)]
1.0.9.22: Dynamic-extent value-cells for MIPS.

16 years ago1.0.9.21: Make less eager use of eval-when unless cross-compiling.
Thiemo Seufer [Sat, 1 Sep 2007 18:09:20 +0000 (18:09 +0000)]
1.0.9.21: Make less eager use of eval-when unless cross-compiling.

16 years ago1.0.9.20: Add #+sb-doc conditionals.
Thiemo Seufer [Sat, 1 Sep 2007 18:06:17 +0000 (18:06 +0000)]
1.0.9.20: Add #+sb-doc conditionals.

16 years ago1.0.9.19: Less magic constants in the mips backend.
Thiemo Seufer [Sat, 1 Sep 2007 14:24:14 +0000 (14:24 +0000)]
1.0.9.19: Less magic constants in the mips backend.

16 years ago1.0.9.18: Instrument COMPUTE-CALLING-FRAME for non-x86 with /noshow0.
Thiemo Seufer [Sat, 1 Sep 2007 14:22:40 +0000 (14:22 +0000)]
1.0.9.18: Instrument COMPUTE-CALLING-FRAME for non-x86 with /noshow0.

16 years ago1.0.9.17: Delete deprecated DEF-ALIENs.
Thiemo Seufer [Sat, 1 Sep 2007 14:02:27 +0000 (14:02 +0000)]
1.0.9.17: Delete deprecated DEF-ALIENs.

16 years ago1.0.9.16: Remove :mips from Bug #372.
Thiemo Seufer [Sat, 1 Sep 2007 11:28:18 +0000 (11:28 +0000)]
1.0.9.16: Remove :mips from Bug #372.
This was a Linux/MIPS kernel bug, fixed in the latest version.

16 years ago1.0.9.15: Fix typo.
Thiemo Seufer [Sat, 1 Sep 2007 11:21:12 +0000 (11:21 +0000)]
1.0.9.15: Fix typo.

16 years ago1.0.9.14: Marginally improved VOPs, and a bit of code cleanup.
Thiemo Seufer [Sat, 1 Sep 2007 11:19:55 +0000 (11:19 +0000)]
1.0.9.14: Marginally improved VOPs, and a bit of code cleanup.

16 years ago1.0.9.13: copy the WRAPPER-SLOT-TABLE in FORCE-CACHE-FLUSHES
Nikodemus Siivola [Wed, 29 Aug 2007 19:38:26 +0000 (19:38 +0000)]
1.0.9.13: copy the WRAPPER-SLOT-TABLE in FORCE-CACHE-FLUSHES

* Otherwise the new wrapper will be missing the slot table,
  potentially leading to bogus SLOT-MISSING calls.

  No test case, as I was unable to cause bad behaviour with current
  HEAD in the absence of this patch, but future changes depend on
  this.

16 years ago1.0.9.12: inform genesis about FOR-STD-CLASS-P slot in LAYOUT
Nikodemus Siivola [Wed, 29 Aug 2007 17:14:45 +0000 (17:14 +0000)]
1.0.9.12: inform genesis about FOR-STD-CLASS-P slot in LAYOUT

* It was left uninitialized by genesis, resulting in bogus results
  from LAYOUT-FOR-STD-CLASS-P.

* Poke at it in tests.

16 years ago1.0.9.11: even faster SLOT-VALUE &co
Nikodemus Siivola [Wed, 29 Aug 2007 16:02:35 +0000 (16:02 +0000)]
1.0.9.11: even faster SLOT-VALUE &co

* Move the SLOT-TABLE data to layout, so that it can be accessed
  faster, giving ~40% more speed to SLOT-VALUE &co using variable slot
  names. Speedup is due to one less level of indirection, and avoiding
  a GF call when fetching the table.

* FIND-SLOT-DEFINITION goes back to using the linear search, as in
  some cases where we use it the class wrapper may already be invalid.
  This will be re-addressed later.

16 years ago1.0.9.10: make tests clean up after themselves a bit better
Nikodemus Siivola [Wed, 29 Aug 2007 15:26:32 +0000 (15:26 +0000)]
1.0.9.10: make tests clean up after themselves a bit better

* Delete various temporary files (still some left).

* Also add test/test-status.lisp-expr to .gitignore.

16 years ago1.0.9.9: rename CLASS-SLOT-VECTOR to CLASS-SLOT-TABLE
Nikodemus Siivola [Wed, 29 Aug 2007 15:23:01 +0000 (15:23 +0000)]
1.0.9.9: rename CLASS-SLOT-VECTOR to CLASS-SLOT-TABLE

* And the corresponding slot from SLOT-VECTOR
  to SLOT-TABLE.

* Avoids confusion with instance slot vectors.

16 years ago1.0.9.8: prettier DEFINE-MODIFY-MACRO arglist
Nikodemus Siivola [Wed, 29 Aug 2007 15:13:32 +0000 (15:13 +0000)]
1.0.9.8: prettier DEFINE-MODIFY-MACRO arglist

* Use MAKE-SYMBOL instead of GENSYM for symbols that appear in the
  final lambda-list.

Thanks to Tobias C. Rittweiler.

16 years ago1.0.9.7: the MSI should not add .lisp and .fasl associations
Nikodemus Siivola [Wed, 29 Aug 2007 14:58:46 +0000 (14:58 +0000)]
1.0.9.7: the MSI should not add .lisp and .fasl associations

* It could, but not without asking permission.

16 years ago1.0.9.6: remove :UNIX from *FEATURES* on Windows
Nikodemus Siivola [Wed, 29 Aug 2007 14:51:55 +0000 (14:51 +0000)]
1.0.9.6: remove :UNIX from *FEATURES* on Windows

Thanks to Luis Oliveira.

16 years agokeep docstrings from PCL bootstrap around
Nikodemus Siivola [Mon, 27 Aug 2007 15:47:55 +0000 (15:47 +0000)]
keep docstrings from PCL bootstrap around

* Keep documentation strings from early generics and methods.

16 years agoadded .gdb_history to .gitignore
Nikodemus Siivola [Mon, 27 Aug 2007 15:33:04 +0000 (15:33 +0000)]
added .gdb_history to .gitignore

16 years agomicro-optimize SKIP-FAST-SLOT-ACCESS-P
Nikodemus Siivola [Mon, 27 Aug 2007 15:31:36 +0000 (15:31 +0000)]
micro-optimize SKIP-FAST-SLOT-ACCESS-P

* It's the only caller of SKIP-OPTIMIZE-SLOT-SLOT-VALUE-BY-CLASS-P, so
  inline the latter's body and remove the duplicate *BOOT-STATE* check
  and FIND-SLOT-DEFINITION call. Add FIXME due to apparent strangeness
  re existense of the slot definition.

16 years agofaster SLOT-VALUE &co with variable slot names
Nikodemus Siivola [Mon, 27 Aug 2007 15:13:27 +0000 (15:13 +0000)]
faster SLOT-VALUE &co with variable slot names

* Cache the slot-location and typecheckfun in the class-slots-vector
  in addition to the slot-definition for STANDARD-CLASS and
  FUNCALLABLE-STANDARD-CLASS.

* New function CHECK-OBSOLETE-INSTANCE/CLASS-OF, which combines the
  two. Faster then calling both separately, since both need to grab
  the wrapper -- used by SLOT-VALUE &co.

* Unoptimized SLOT-VALUE, (SETF SLOT-VALUE), SLOT-BOUNDP, and
  SLOT-MAKUNBOUND can now directly access instance and class slots the
  typecheckfun in normal cases, giving upto 20-25% performance boost
  for these functions.

* Obsolete-instance protocol tests using variable slot-names.

16 years ago1.0.9.1: faster MAKE-MEMBER-TYPE, UNION, and NUNION
Nikodemus Siivola [Mon, 27 Aug 2007 14:44:21 +0000 (14:44 +0000)]
1.0.9.1: faster MAKE-MEMBER-TYPE, UNION, and NUNION

* MAKE-MEMBER-TYPE was doing several SUBSETP calls,
  instead just walk once over the list of members.

* UNION and NUNION were using an O(N^2) implementation
  for all input sizes. Use a hashtable (giving O(N))
  for large inputs when :TEST is something we can
  use with a hash-table.

Thanks to Damien Diederen for catching a typo in the new UNION /
NUNION code.

16 years ago1.0.9: release, will be tagged as sbcl_1_0_9
William Harold Newman [Mon, 27 Aug 2007 00:10:15 +0000 (00:10 +0000)]
1.0.9: release, will be tagged as sbcl_1_0_9

16 years ago1.0.8.48: Update comment.
Thiemo Seufer [Sun, 26 Aug 2007 20:53:34 +0000 (20:53 +0000)]
1.0.8.48: Update comment.

16 years ago1.0.8.47: Declare alien input parameters as such.
Thiemo Seufer [Sun, 26 Aug 2007 20:32:09 +0000 (20:32 +0000)]
1.0.8.47: Declare alien input parameters as such.

16 years ago1.0.8.46: attempt to answer the "executables" FAQ in the manual
Rudi Schlatte [Tue, 21 Aug 2007 09:56:21 +0000 (09:56 +0000)]
1.0.8.46: attempt to answer the "executables" FAQ in the manual

* The information was there, but hidden in the second part of a
  somewhat-related paragraph in a generic section.

* Including "Executables" in the first page of the table of contents
  should make the function easier to find, one hopes...

16 years ago1.0.8.45: Fix sb-sprof on non-x86oids
Juho Snellman [Tue, 21 Aug 2007 06:15:07 +0000 (06:15 +0000)]
1.0.8.45: Fix sb-sprof on non-x86oids

         * Patch by Pierre Mai

16 years ago1.0.8.44: Fix EQUALP on structures with raw slots
Juho Snellman [Tue, 21 Aug 2007 05:18:42 +0000 (05:18 +0000)]
1.0.8.44: Fix EQUALP on structures with raw slots

         * Old version was basically accessing raw slots with %INSTANCE-REF,
           and doing EQUALP on the results. This was most obviously wrong
           for raw slots that were larger than a word (double-floats on 32-bit
           platforms). Less obviously this is also wrong for some float
           corner-cases, like negative zeroes.
         * Add RAW-INSTANCE-SLOTS-EQUALP which instead grovels the layout for
           the slot definitions and determines the proper accessor functions
           for each slot from that.
         * Reported by Vjacheslav Fyodorov.

16 years ago1.0.8.43: Fix GCD on most-negative-fixnum on x86-64
Juho Snellman [Tue, 21 Aug 2007 05:12:33 +0000 (05:12 +0000)]
1.0.8.43: Fix GCD on most-negative-fixnum on x86-64

         * Bogus type declarations.
         * Reported by Gregory Vanuxem on sbcl-devel.

16 years ago1.0.8.42: Fix some source-location bugs, alternate sb-cover annotation mode
Juho Snellman [Mon, 20 Aug 2007 17:12:49 +0000 (17:12 +0000)]
1.0.8.42: Fix some source-location bugs, alternate sb-cover annotation mode

         * Bug introduced in the code coverage commit caused sldb-show-source
           to highlight the wrong forms in many cases.
         * Changes in 1.0.6.23 caused branch forms to be not annotated as
           such in sb-cover.
         * Add a new annotation mode to sb-cover, which basically uses
           the source location information of the car of the form instead
           of using the information for the form itself. This mode shows
           explicitly which forms have been instrumented. According to
           a #lisp poll, the old version looks nicer, so it's been retained
           as the default.

16 years ago1.0.8.41: doc spelling fixes.
Rudi Schlatte [Mon, 20 Aug 2007 09:14:46 +0000 (09:14 +0000)]
1.0.8.41: doc spelling fixes.

16 years ago1.0.8.40: Acrually use reset-signal-mask only for Linux/MIPS.
Thiemo Seufer [Mon, 20 Aug 2007 07:08:09 +0000 (07:08 +0000)]
1.0.8.40: Acrually use reset-signal-mask only for Linux/MIPS.

16 years ago1.0.8.39: Mark remaining MIPS test failures as known.
Thiemo Seufer [Mon, 20 Aug 2007 00:04:20 +0000 (00:04 +0000)]
1.0.8.39: Mark remaining MIPS test failures as known.

16 years ago1.0.8.38: Add missing quote sign.
Thiemo Seufer [Sun, 19 Aug 2007 23:59:46 +0000 (23:59 +0000)]
1.0.8.38: Add missing quote sign.

16 years ago1.0.8.37: Workaround (or bugfix?) for blocked SIGTRAP on SBCL/MIPS.
Thiemo Seufer [Sun, 19 Aug 2007 23:57:09 +0000 (23:57 +0000)]
1.0.8.37: Workaround (or bugfix?) for blocked SIGTRAP on SBCL/MIPS.

16 years ago1.0.8.36: Improve MIPS (and HPPA) floating pooint support.
Thiemo Seufer [Sun, 19 Aug 2007 23:46:04 +0000 (23:46 +0000)]
1.0.8.36: Improve MIPS (and HPPA) floating pooint support.
  - For MIPS/HPPA, the NaN signalling bit's meaning is inverted.
  - Implement FLOATING-POINT-MODES and SET-FLOATING-POINT-MODES in C.
  - Delete the corresponding VOPs.
  - Document the MIPS special "unimplemented" floating point trap.
  - Add handling of the floating point control word in C signal handlers.
  - Mark NAN-COMPARISIONS as expected failure on MIPS. (It still doesn't
    work due to a kernel bug, siginfo_t's si_code field doesn't get
    updated properly.)

16 years ago1.0.8.35: Fix MIPS foreign_function_call_active handling.
Thiemo Seufer [Sun, 19 Aug 2007 23:34:37 +0000 (23:34 +0000)]
1.0.8.35: Fix MIPS foreign_function_call_active handling.

16 years ago1.0.8.34: Fix MIPS spinlock implementation.
Thiemo Seufer [Sun, 19 Aug 2007 23:31:36 +0000 (23:31 +0000)]
1.0.8.34: Fix MIPS spinlock implementation.

16 years ago1.0.8.33: sample sbcl-export alias in Git for SBCL Hackers
Nikodemus Siivola [Sat, 18 Aug 2007 15:13:53 +0000 (15:13 +0000)]
1.0.8.33: sample sbcl-export alias in Git for SBCL Hackers

* Forgot to save the file, so missed from the last commit...

16 years ago1.0.8.32: improved Git for SBCL Hackers in a few places
Nikodemus Siivola [Sat, 18 Aug 2007 12:05:08 +0000 (12:05 +0000)]
1.0.8.32: improved Git for SBCL Hackers in a few places

* Grammar and typos.

* Remove references to version.lisp-expr now that we have
  branch-version.lisp-expr.

* Better explanation of history cleaning (mostly for the benefit of
  non-committer hackers, shades of "How to Contribute".

* Alias for easy git-cvsexportcommit usage.

* Mention git-format-patch.

* Add link to Git User Manual.

16 years ago1.0.8.31: add missing Git for SBCL Hackers guide
Nikodemus Siivola [Sat, 18 Aug 2007 04:08:54 +0000 (04:08 +0000)]
1.0.8.31: add missing Git for SBCL Hackers guide

* Accidentally left out from 1.0.8.15.

16 years ago1.0.8.30: better standard-instance accessors
Nikodemus Siivola [Sat, 18 Aug 2007 04:07:13 +0000 (04:07 +0000)]
1.0.8.30: better standard-instance accessors

* Add SETF functions for STANDARD-INSTANCE-ACCESS and
  FUNCALLABLE-STANDARD-INSTANCE-ACCESS.

* Declare them and the readers inline.

  Thanks to Attila Lendvai.

16 years ago1.0.8.29: better printing of anonymous objects
Nikodemus Siivola [Sat, 18 Aug 2007 04:02:15 +0000 (04:02 +0000)]
1.0.8.29: better printing of anonymous objects

* In PCL, the NAMED-OBJECT-PRINT-FUNCTION prints the identity of the
  object when it has no name. Among other things, it affects the
  printing of anonymous classes.

  Thanks to Attila Lendvai.

16 years ago1.0.8.28: split REAL-MAKE-METHOD-LAMBDA back into two parts
Nikodemus Siivola [Sat, 18 Aug 2007 03:50:49 +0000 (03:50 +0000)]
1.0.8.28: split REAL-MAKE-METHOD-LAMBDA back into two parts

* Turns out my earlier merging of REAL-MAKE-METHOD-LAMBDA
  and MAKE-METHOD-LAMBDA-INTERNAL was ill adviced: the split
  is good to have so that redefining the latter in the
  final image actually changes the behaviour of the system.

* Add an explanatory comment.

16 years ago1.0.8.27: Improve error handling for (DESTRUCTURING-BIND (...) 'NOTLIST ...).
William Harold Newman [Tue, 14 Aug 2007 19:52:21 +0000 (19:52 +0000)]
1.0.8.27: Improve error handling for (DESTRUCTURING-BIND (...) 'NOTLIST ...).

16 years ago1.0.8.26: More MIPS singlestepper fixes.
Thiemo Seufer [Tue, 14 Aug 2007 15:53:26 +0000 (15:53 +0000)]
1.0.8.26: More MIPS singlestepper fixes.

16 years ago1.0.8.25: refactor CAN-OPTIMIZE-ACCESS usage and interface
Nikodemus Siivola [Mon, 13 Aug 2007 13:55:15 +0000 (13:55 +0000)]
1.0.8.25: refactor CAN-OPTIMIZE-ACCESS usage and interface

* Make the constant slot-name and the possible new-value-form
  additional return values.

* Use CONSTANT-FORM-VALUE instead of EVAL to get the constant
  slot-name. Also use the environment correctly to CONSTANTP
  and CONSTANT-FORM-VALUE.

* Call CAN-OPTIMIZE-ACCESS in the various instance-access optimizers
  and not around calls to them, so that they can directly use the
  slot-name and new-value-form results from CAN-OPTIMIZE-ACCESS
  instead of having to recompute them.

16 years ago1.0.8.24: factor (THE TYPE FORM) => FORM transformations into a function
Nikodemus Siivola [Mon, 13 Aug 2007 13:41:49 +0000 (13:41 +0000)]
1.0.8.24: factor (THE TYPE FORM) => FORM transformations into a function

* EXTRACT-THE, for now only used in PCL.

16 years ago1.0.8.23: merge CAN-OPTIMIZE-ACCESS and CAN-OPTIMIZE-ACCESS1
Nikodemus Siivola [Mon, 13 Aug 2007 13:40:40 +0000 (13:40 +0000)]
1.0.8.23: merge CAN-OPTIMIZE-ACCESS and CAN-OPTIMIZE-ACCESS1

* First is the only caller of the first, so just move
  the body to the call site.

16 years ago1.0.8.22: merge MAKE-METHOD-FUNCTION and MAKE-METHOD-FUNCTION-INTERNAL
Nikodemus Siivola [Mon, 13 Aug 2007 13:36:37 +0000 (13:36 +0000)]
1.0.8.22: merge MAKE-METHOD-FUNCTION and MAKE-METHOD-FUNCTION-INTERNAL

* First was the only caller of the latter -- just move the
  body to the call site.

16 years ago1.0.8.21: merge REAL-MAKE-METHOD-LAMBDA and MAKE-METHOD-LAMBDA-INTERNAL
Nikodemus Siivola [Mon, 13 Aug 2007 13:34:49 +0000 (13:34 +0000)]
1.0.8.21: merge REAL-MAKE-METHOD-LAMBDA and MAKE-METHOD-LAMBDA-INTERNAL

* The first was the only caller of the latter, so just make the
  body of the latter the body of the first.

16 years ago1.0.8.20: replace PVREF by SVREF
Nikodemus Siivola [Mon, 13 Aug 2007 13:33:13 +0000 (13:33 +0000)]
1.0.8.20: replace PVREF by SVREF

* PVREF was a trivial wrapper macro around SVREF, and used in only
  src/pcl/vector.lisp. This is easier to read for me at least.

16 years ago1.0.8.19: :dont-safe finalizers and fd-stream thread safety issues
Nikodemus Siivola [Thu, 9 Aug 2007 16:52:03 +0000 (16:52 +0000)]
1.0.8.19: :dont-safe finalizers and fd-stream thread safety issues

 * Add :DONT-SAVE keyword argument to FINALIZE, which causes the finalizer
   to be removed when core is saved: it is not amusing to have a finalizer
   that deallocates system memory to fire in a fresh image which happens
   to have freshly allocated memory in the same address. Also good for finalizers
   closing FDs.

   Use where appropiate.

 * Stream buffing should not use (INCF (BUFFER-FOO BUFFER) N), since if another
   thread has written to the buffer since we last looked at it this might take
   eg. the TAIL index beyond the end of the allocated memory area: by doing
   (let ((foo (buffer-foo buffer))) ... (setf (buffer-foo buffer) (+ foo n)) we might
   overwrite the data from another thread, but at least we won't trash memory.

 * Small graces: check that ALLOCATE-SYSTEM-MEMORY actually succeeds, don't accept
   finalizers for NIL (they would just run immediately on next GC, which is almost
   certainly not intended), take an extra mile to ensure old buffers from before
   SAVE-LISP-AND-DIE don't survive to the new image.

16 years ago1.0.8.18: Fix gc-safety bug in x86oid function calls
Juho Snellman [Tue, 7 Aug 2007 06:15:13 +0000 (06:15 +0000)]
1.0.8.18: Fix gc-safety bug in x86oid function calls

         * Off by one error in conservative stack scavenging, the top of the
           stack wasn't pinned.
         * In the new calling convention there is a small window during which
           the return address only exists on the top of the stack. If a gc
           was triggered during that window, the code object could move, and
           the return address would point to freed memory.

16 years ago1.0.8.16: really increment the fasl version
Nikodemus Siivola [Mon, 6 Aug 2007 11:52:16 +0000 (11:52 +0000)]
1.0.8.16: really increment the fasl version

 (file left out from previous commit)

16 years ago1.0.8.16: refactored fd-stream buffering
Nikodemus Siivola [Mon, 6 Aug 2007 11:50:46 +0000 (11:50 +0000)]
1.0.8.16: refactored fd-stream buffering

 Thanks to David Smith and Andreas Bogkt who diagnosed the memory
 leaks this patch fixes.

 * Instead of having FD-STREAM objects directly hold onto input and
   output buffer SAPs and head/tail indexes, use BUFFER objects which
   contain the SAP, size of the memory area, head/tail indexes, and
   are have finalizers to deallocate the system memory assosicated
   with the SAP. (This fixes system memory leaks when streams are not
   properly closed.)

 * Make CLOSE :ABORT release the output queue associated with the
   stream. (This was another memory leak in the old system: now
   the finalizers make not doing this safe, but it's still better
   to recycle the buffers.)

 * Slightly reduce lock contention by grabbing the *AVAILABLE-BUFFERS*
   lock only if there is something there right before the lock is
   taken, and by doing allocation outside the lock.

 * Rename and refactor FROB-OUTPUT and friends:

     BUFFER-OUTPUT is the main interface function, which always
       adds new output to the current buffer / output queue.

     WRITE-OR-BUFFER-OUTPUT tries to write immediately, falling
       back to buffering if writing is not possible.

     WRITE-OUTPUT-FROM-QUEUE is called by the SERVE-EVENT
       system to deal with output queue.

     FLUSH-OUTPUT-BUFFER writes the current buffer out if possible,
       queues it otherwise. Ensures that the output buffer of
       the stream is empty on return (and returns that buffer).

 * Deprecate SB-SYS:OUTPUT-RAW-BYTES. There doesn't seem to be any
   real reason to export this kind of stuff.

 * Increment the fasl version.