sbcl.git
16 years ago1.0.21.6: muffle compiler notes from EVAL and function generator construction
Nikodemus Siivola [Mon, 6 Oct 2008 09:14:27 +0000 (09:14 +0000)]
1.0.21.6: muffle compiler notes from EVAL and function generator construction

 * Just add (DECLARE (MUFFLE-CONDITIONS COMPILER-NOTE)) to the lambdas
   we cons up: in case of EVAL the notes are distractive and seem
   pointless, and in case of generators the user is definitely not
   interested.

 * Adjust SB-CLTL2 tests slightly to account for possible pre-existing
   MUFFLE-CONDITIONS declarations, and fix usage of SPECIAL-BINDINGS.

16 years ago1.0.21.5: fix WITH-PACKAGE-ITERATOR error signaling
Nikodemus Siivola [Sun, 5 Oct 2008 11:57:55 +0000 (11:57 +0000)]
1.0.21.5: fix WITH-PACKAGE-ITERATOR error signaling

 * Patch by Tobias C. Rittweiler / Ariel Badichi.

16 years ago1.0.21.4: PUSHNEW arglist beautifcation
Nikodemus Siivola [Sun, 5 Oct 2008 11:30:01 +0000 (11:30 +0000)]
1.0.21.4: PUSHNEW arglist beautifcation

 * Patch by Tobias C. Rittweiler.

16 years ago1.0.21.3: CIRCLE-SUBST did not treat raw structure slots correctly
Nikodemus Siivola [Sun, 5 Oct 2008 09:53:31 +0000 (09:53 +0000)]
1.0.21.3: CIRCLE-SUBST did not treat raw structure slots correctly

 * Reported by Cedric St-Jean on sbcl-devel.

16 years ago1.0.21.2: ADJUST-ARRAY should not make multidimensional arrays have fill-pointers
Nikodemus Siivola [Fri, 3 Oct 2008 18:28:48 +0000 (18:28 +0000)]
1.0.21.2: ADJUST-ARRAY should not make multidimensional arrays have fill-pointers

 * ADJUST-ARRAY used to give multidimensional arrays a bogus
   fill-pointer unless :INITIAL-CONTENTS or :DISPLACED-TO were given.
   Reported by Cedric St-Jean on sbcl-devel.

16 years ago1.0.21.1: address TYPE-WARNING in CLOS allocator for funcallable structures
Christophe Rhodes [Fri, 3 Oct 2008 12:21:09 +0000 (12:21 +0000)]
1.0.21.1: address TYPE-WARNING in CLOS allocator for funcallable structures
... parallel %make-funcallable-structure-allocator;
... make FUNCTION-classoid-subclasses into CLOS classes in FIXUP
... also make !DEFSTRUCT-W-A-M respect *DEFSTRUCT-HOOKS* just
in case.
... test.

16 years ago1.0.21: release, will be tagged sbcl_1_0_21.
Richard M Kreuter [Thu, 2 Oct 2008 13:40:42 +0000 (13:40 +0000)]
1.0.21: release, will be tagged sbcl_1_0_21.

16 years ago1.0.20.34: Fix a minor bug in TIME.
Richard M Kreuter [Thu, 2 Oct 2008 03:16:44 +0000 (03:16 +0000)]
1.0.20.34: Fix a minor bug in TIME.

* Don't try to print cycle counts when the port doesn't support it.

16 years ago1.0.20.33: two buglets, LOG and TIME
Nikodemus Siivola [Tue, 30 Sep 2008 07:56:57 +0000 (07:56 +0000)]
1.0.20.33: two buglets, LOG and TIME

 * Unbreak (LOG DOUBLE INTEGER).

 * LAMBDAS-CONVERTED / LAMBDA-CONVERSIONS confusion in PRINT-TIME.
   (patch by Erik Marsden)

16 years ago1.0.20.32: Fix some bugs in GF type tracking.
Richard M Kreuter [Sun, 28 Sep 2008 14:20:36 +0000 (14:20 +0000)]
1.0.20.32: Fix some bugs in GF type tracking.

16 years ago1.0.20.31: tweaking LOG
Nikodemus Siivola [Fri, 26 Sep 2008 16:24:01 +0000 (16:24 +0000)]
1.0.20.31: tweaking LOG

 * In case of (LOG INTEGER DOUBLE) and (LOG DOUBLE INTEGER), don't use
   intermediate single precision values.

 * Fix unoptimized (LOG X 0.0d0) => 0.0d0, and (LOG DOUBLE 0) => 0.0d0
   (both were 0.0f0).

16 years ago1.0.20.30: micro-optimize FILL-POINTER a bit
Nikodemus Siivola [Wed, 24 Sep 2008 22:35:01 +0000 (22:35 +0000)]
1.0.20.30: micro-optimize FILL-POINTER a bit

 * Since it's inlined, move the error call to a separate function
   (without keyword arguments).

 * Since ARRAY-HEADER-P and %ARRAY-HAS-FILL-POINTER-P will be true
   only if the object is a vector with a fill pointer, the DECLARE is
   pointless.

 * Similarly for %SET-FILL-POINTER.

16 years ago1.0.20.29: small FIND fix & win32 build fix
Nikodemus Siivola [Wed, 24 Sep 2008 14:55:13 +0000 (14:55 +0000)]
1.0.20.29: small FIND fix & win32 build fix

 * FIND on lists should not call the KEY function outside the
   specified subsequence.

 * Hopefully fix Win32 build: #+/#- -> #!+/#!- changes to pacify
   SHE-READER.

 * Also advice against editing version.lisp-expr in Git, and show the
   branch-version.lisp-expr hack in GIT-FOR-SBCL-HACKERS.txt.

16 years ago1.0.20.28: Fewer STYLE-WARNINGs for gf calls.
Richard M Kreuter [Tue, 23 Sep 2008 22:06:03 +0000 (22:06 +0000)]
1.0.20.28: Fewer STYLE-WARNINGs for gf calls.

* Use the union of a gf's defined methods' keys in the info db, so
  that the compiler won't warn about unrecognized keywords supplied by
  methods (but will catch typos and whatnot).

16 years ago1.0.20.27: fixed bug 415
Gabor Melis [Tue, 23 Sep 2008 21:52:57 +0000 (21:52 +0000)]
1.0.20.27: fixed bug 415

  * (MAKE-ARRAY (1- ARRAY-DIMENSION-LIMIT)) does not cause GC invariant loss.

  ARRAY-DIMENSION-LIMIT was lowered by two to leave space for the
  array header.

  * logged FORMAT bug

16 years ago1.0.20.26: nicer ONCE-ONLY expansion
Nikodemus Siivola [Tue, 23 Sep 2008 21:48:25 +0000 (21:48 +0000)]
1.0.20.26: nicer ONCE-ONLY expansion

 * Name the variables actually visible in the final expansion sensibly.

16 years ago1.0.20.25: Produce a loadable FASL when compiling an incompatible DEFSTRUCT.
Richard M Kreuter [Tue, 23 Sep 2008 20:05:44 +0000 (20:05 +0000)]
1.0.20.25: Produce a loadable FASL when compiling an incompatible DEFSTRUCT.

* Add some tests to see that redefining a STRUCTURE-CLASS works as one
  might expect, and that compiling a file whose loading redefines a
  STRUCTURE-CLASS works, too.

* There are some nasty intermediate states having to do with
  subclasses defined in separate files (some are described in the
  tests), but that's not actually new.

16 years ago1.0.20.24: disable another hanging timer test
Gabor Melis [Tue, 23 Sep 2008 16:07:39 +0000 (16:07 +0000)]
1.0.20.24: disable another hanging timer test

16 years ago1.0.20.23: get rid of IGNORE-ERRORS in SB-INTROSPECT
Nikodemus Siivola [Mon, 22 Sep 2008 22:57:22 +0000 (22:57 +0000)]
1.0.20.23: get rid of IGNORE-ERRORS in SB-INTROSPECT

 * Pass ERRORP NIL to FIND-METHOD for *BREAK-ON-SIGNALS* friendliness.

16 years ago1.0.20.22: record bug 429
Gabor Melis [Mon, 22 Sep 2008 19:10:01 +0000 (19:10 +0000)]
1.0.20.22: record bug 429

16 years ago1.0.20.21: how to miss version.lisp-expr
Gabor Melis [Mon, 22 Sep 2008 18:41:43 +0000 (18:41 +0000)]
1.0.20.21: how to miss version.lisp-expr

16 years ago1.0.20.20: fix gencgc on 32 bit platforms with 2gb< heap
Gabor Melis [Mon, 22 Sep 2008 18:33:07 +0000 (18:33 +0000)]
1.0.20.20: fix gencgc on 32 bit platforms with 2gb< heap

    - pepper unsigned long around
    - mixed signed/unsigned is ok as long as there are only + and -
      bitwise logical operations on them, care must be taken for /, <, <=.

16 years ago1.0.20.20: fix gencgc on 32 bit platforms with 2gb< heap
Gabor Melis [Mon, 22 Sep 2008 14:02:42 +0000 (14:02 +0000)]
1.0.20.20: fix gencgc on 32 bit platforms with 2gb< heap

- pepper unsigned long around
- mixed signed/unsigned is ok as long as there are only + and -
  bitwise logical operations on them, care must be taken for /, <, <=.

16 years ago1.0.20.18: fix sign confusion in reported memory fault addresses
Nikodemus Siivola [Mon, 22 Sep 2008 14:00:34 +0000 (14:00 +0000)]
1.0.20.18: fix sign confusion in reported memory fault addresses

 * ...the mechanism sucks as much as ever, but at least the reported
   address will make sense for high addresses as well.

16 years ago1.0.20.19: gencgc: rename first_object_offset
Gabor Melis [Mon, 22 Sep 2008 13:56:29 +0000 (13:56 +0000)]
1.0.20.19: gencgc: rename first_object_offset

... to region_start_offset and flip the sign.

16 years ago1.0.20.18: minor gencgc cleanups
Gabor Melis [Mon, 22 Sep 2008 13:55:09 +0000 (13:55 +0000)]
1.0.20.18: minor gencgc cleanups

- removed unused alloc_base_string_list function
- removed superfluous declarations
- less casts
- more respect for the the 80 char limit

16 years ago1.0.20.17: replace cut-and-paste duplication of ASSEMBLE with a macrolet
Nikodemus Siivola [Sat, 20 Sep 2008 03:54:54 +0000 (03:54 +0000)]
1.0.20.17: replace cut-and-paste duplication of ASSEMBLE with a macrolet

 * Slightly more maintainable...

16 years ago1.0.20.16: make LOCK and FS prefixes part of the affected instruction
Nikodemus Siivola [Sat, 20 Sep 2008 03:09:58 +0000 (03:09 +0000)]
1.0.20.16: make LOCK and FS prefixes part of the affected instruction

 * Disassembler still shows them as a separate instructions, but
   in assembler the prefixes become postfixes to the instructions they
   modify: (INST MOV X Y :FS), etc.

 * Not only does this reduce the amount of conditionalization, but
   making prefixes part of the instruction they modify seems necessary
   if we ever want to turn on the instruction scheduler on x86oids,
   and is probably needed for a peephole optimizer as well.

 * Also fix x86-64 build: missed one ALIGN to EMIT-ALIGNMENT renaming.

16 years ago1.0.20.15: rename SB-ASSEM:ALIGN to EMIT-ALIGNMENT
Nikodemus Siivola [Fri, 19 Sep 2008 20:56:21 +0000 (20:56 +0000)]
1.0.20.15: rename SB-ASSEM:ALIGN to EMIT-ALIGNMENT

 * ...and EMIT-ALIGNMENT to %EMIT-ALIGNMENT, as per FIXME.

 * Also a missing SEGMENT-NAME -> SEGMENT-TYPE change from 1.0.20.13.

16 years ago1.0.20.14: align loops on x86-64
Nikodemus Siivola [Fri, 19 Sep 2008 20:22:17 +0000 (20:22 +0000)]
1.0.20.14: align loops on x86-64

 * Intel recommends 16 byte alignment for branch target, and since
   code objects are 16 byte aligned on x86-64, we can get it.

16 years ago1.0.20.13: don't align elsewhere segments on x86 and x86-86
Nikodemus Siivola [Fri, 19 Sep 2008 20:06:53 +0000 (20:06 +0000)]
1.0.20.13: don't align elsewhere segments on x86 and x86-86

 * There doesn't seem to be any need to do it, and the alignment NOP's are
   a waste of space.

 * Even though currently only elsewhere segments appear as the second
   argument to APPEND-SEGMENT, make sure we omit alignment only from
   elsewhere segments by changing SEGMENT-NAME to SEGMENT-TYPE (either
   :REGULAR or :ELSEWHERE) and checking it in APPEND-SEGMENT.

16 years ago1.0.20.12: :CACHED-CONSTANT TNs don't exist
Nikodemus Siivola [Fri, 19 Sep 2008 19:06:01 +0000 (19:06 +0000)]
1.0.20.12: :CACHED-CONSTANT TNs don't exist

 * Remove FIXMEs asking about them, and other spurious references.

16 years ago1.0.20.11: CALL-WITH-TIMING & PRINT-TIME
Nikodemus Siivola [Fri, 19 Sep 2008 19:01:19 +0000 (19:01 +0000)]
1.0.20.11: CALL-WITH-TIMING & PRINT-TIME

 * Split %TIME into PRINT-TIME and CALL-WITH-TIMING, export the latter
   from SB-EXT -- wanting access to the numbers collected is a
   perfectly reasonable thing.

 * Make TIME print the information collected even if the form unwinds.

16 years ago1.0.20.10: semaphore and condition variable fixes
Nikodemus Siivola [Fri, 19 Sep 2008 14:55:52 +0000 (14:55 +0000)]
1.0.20.10: semaphore and condition variable fixes

 * Keep track of waiters on semaphores, so we know when a wakeup is
   needed.

 * Interrupt proof semaphores and condition variables.

 * Check that the current thread owns the mutex in CONDITION-WAIT.

16 years ago1.0.20.9: fix DEFINE-STRUCTURE-SLOT-ADDRESSOR to work with raw slots as well
Nikodemus Siivola [Thu, 18 Sep 2008 20:19:47 +0000 (20:19 +0000)]
1.0.20.9: fix DEFINE-STRUCTURE-SLOT-ADDRESSOR to work with raw slots as well

 * Not needed yet, but soon enough... Only one caveat: the instance
   passed to the addressor must not be an instance of a subclass!

 * Also hopefully fix build on non-x86oids (a missing IGNORABLE
   declaraction), and remove pointless MACROEXPAND from ATOMIC-INCF.
   (We could keep it, but COMPARE-AND-SWAP should at least behave the
   same.)

16 years ago1.0.20.8: ATOMIC-INCF implementation
Nikodemus Siivola [Wed, 17 Sep 2008 22:31:57 +0000 (22:31 +0000)]
1.0.20.8: ATOMIC-INCF implementation

 * Modular arithmetic on word-sized unsigned structure slots.

 * Uses XADD on x86 and x86-64, a simple lisp-level implementation elsewhere.

16 years ago1.0.20.7: COMPARE-AND-SWAP on SYMBOL-VALUE to respect constants and declaimed types
Nikodemus Siivola [Wed, 17 Sep 2008 20:24:21 +0000 (20:24 +0000)]
1.0.20.7: COMPARE-AND-SWAP on SYMBOL-VALUE to respect constants and declaimed types

 * For constant symbol names which are declaimed SPECIAL, insert the
   appropriate THE around the new value.

 * For other cases use ABOUT-TO-MODIFY-SYMBOL-VALUE.

 * Tests.

16 years ago1.0.20.6: smaller allocation regions & reduced pinning
Nikodemus Siivola [Mon, 15 Sep 2008 14:09:56 +0000 (14:09 +0000)]
1.0.20.6: smaller allocation regions & reduced pinning

 * Align objects at least one page in size on page boundaries.
   Previously only "large" objects (those at least 4 pages in size)
   were guaranteed page alignment.

 * Don't allow small objects to cross page boundaries.

 * The effect is to reduce the size of continuous allocation regions
   that start and stop on page boundaries. Since GENCGC conservativism
   operates on such regions, it's effects are reduced as well: for
   SBCL self build this reduces the number of pinned pages by ~45%.

 * Also report the amount of bytes found (in case of allocation
   failure) more accurately.

16 years ago1.0.20.5: Fix stupid bugs introduced in 1.0.20.4.
Richard M Kreuter [Thu, 11 Sep 2008 21:55:51 +0000 (21:55 +0000)]
1.0.20.5: Fix stupid bugs introduced in 1.0.20.4.

* Dumb mistakes that weren't caught on x86-64 for some reason.  Tested
  this on Linux/x86, Linux/pcc, NetBSD/x86.

16 years ago1.0.20.4: Use a new set implementation for constraint propagation.
Richard M Kreuter [Thu, 11 Sep 2008 15:52:49 +0000 (15:52 +0000)]
1.0.20.4: Use a new set implementation for constraint propagation.

* Introduce an interface layer called "CONSET" into CP.  CONSETs
  mostly like SSETs, except that a few destructive operations return
  no value.

* Introduce a CONSET implementation that uses a bit-vector and some
  bookkeeping instead of an SSET.  This tends to improve run time real
  time for compilation of many Lisp systems.

16 years ago1.0.20.3: Minor refactoring in constraint propagation.
Richard M Kreuter [Sat, 6 Sep 2008 17:03:34 +0000 (17:03 +0000)]
1.0.20.3: Minor refactoring in constraint propagation.

* Eliminate keyword arguments to CONSTRAINT-PROPAGATE-IN-BLOCK and
  FIND-BLOCK-TYPE-CONSTRAINTS.  (Preamble to a soon-to-come reworking
  of CP; split into a separate commit per Nikodemus's request.)

16 years ago1.0.20.2: Fewer XC/reader-conditional confusions
Christophe Rhodes [Thu, 4 Sep 2008 13:04:45 +0000 (13:04 +0000)]
1.0.20.2: Fewer XC/reader-conditional confusions
Inspired by Josh Elasser (sbcl-devel 2008-08-29), write code
that tries to be clever about reader conditionals in the
cross-compiler, in order to point out when a mistake is likely.
... and fix the extra buglet that this reveals.

16 years ago1.0.20.1: Dump characters ofnon-base-strings names in 32-bit quantities
Richard M Kreuter [Wed, 3 Sep 2008 18:59:52 +0000 (18:59 +0000)]
1.0.20.1: Dump characters ofnon-base-strings names in 32-bit quantities

16 years ago1.0.20: release, will be tagged sbcl_1_0_20
Juho Snellman [Mon, 1 Sep 2008 02:05:41 +0000 (02:05 +0000)]
1.0.20: release, will be tagged sbcl_1_0_20

16 years ago1.0.19.35: Fix PARSE-, NATIVE-NAMESTRING for logical pathnames.
Richard M Kreuter [Fri, 22 Aug 2008 14:31:30 +0000 (14:31 +0000)]
1.0.19.35: Fix PARSE-, NATIVE-NAMESTRING for logical pathnames.

* Whereas these used to error erroneously, now they error properly.

16 years ago1.0.19.34: Fix minor bug in TIME.
Richard M Kreuter [Thu, 21 Aug 2008 15:06:16 +0000 (15:06 +0000)]
1.0.19.34: Fix minor bug in TIME.

* Don't print infinitely many zeroes in %FORMAT-DECIMAL when the last
  several digits of the first argument are zero.  Contributed by Bart Botta.

16 years ago1.0.19.33: Improved interrupt handling on darwin/x86[-64]
Paul Khuong [Wed, 20 Aug 2008 21:16:46 +0000 (21:16 +0000)]
1.0.19.33: Improved interrupt handling on darwin/x86[-64]

 * Remove an obsolete race condition check in SIGBUS handling
   on x86. Accesses to unmapped addresses should no longer result
   in infinite loops.

 * Now reserve a 256 byte (slightly more than that is actually safe
   to use) zone just below SP for signal handlers to safely push
   data in.

16 years ago1.0.19.32: Small bugfixes
Paul Khuong [Wed, 20 Aug 2008 20:34:00 +0000 (20:34 +0000)]
1.0.19.32: Small bugfixes

 * Modify a couple number functions to avoid silently executing
   the default case even when the argument isn't a number.

 * Fix an obscure bug in MERGE-LETS.

16 years ago1.0.19.31: correct shadowing-import of NIL in NAME-CONFLICT
Nikodemus Siivola [Sun, 17 Aug 2008 10:05:36 +0000 (10:05 +0000)]
1.0.19.31: correct shadowing-import of NIL in NAME-CONFLICT

 * Was missing the surrounding LIST -- NIL alone is a designator for
   the empty list.

   Patch by Michael Weber.

16 years ago1.0.19.30: muffle code deletion note from destructuring-bind
Nikodemus Siivola [Sun, 17 Aug 2008 09:28:10 +0000 (09:28 +0000)]
1.0.19.30: muffle code deletion note from destructuring-bind

 * Was emitted when destructuring constant lists.

16 years ago1.0.19.29: new function: page_region_start()
Nikodemus Siivola [Fri, 15 Aug 2008 11:31:26 +0000 (11:31 +0000)]
1.0.19.29: new function: page_region_start()

 ...and use where appropriate.

16 years agonew function: is_lisp_immediate()
Nikodemus Siivola [Fri, 15 Aug 2008 10:58:15 +0000 (10:58 +0000)]
new function: is_lisp_immediate()

 * Use where appropriate in the runtime.

 * Since runtime.h now includes fixnum.h, remove a few includes as well.

16 years ago1.0.19.27: more ir1 transforms for REPLACE
Gabor Melis [Sun, 10 Aug 2008 21:18:32 +0000 (21:18 +0000)]
1.0.19.27: more ir1 transforms for REPLACE

Supplying START1 or START2 does not inhibit ir1 transforms for
specialized array types.

16 years ago1.0.19.26: add THREAD-YIELD to GET-SPINLOCK
Nikodemus Siivola [Thu, 7 Aug 2008 14:44:57 +0000 (14:44 +0000)]
1.0.19.26: add THREAD-YIELD to GET-SPINLOCK

 * Slightly less catastrophic.

16 years ago1.0.19.25: refactor global muffling slightly
Nikodemus Siivola [Tue, 5 Aug 2008 16:32:17 +0000 (16:32 +0000)]
1.0.19.25: refactor global muffling slightly

 * Move TYPEP *MUFFLED-WARNINGS* into a separate function for easier
   debugging. (Too hard to replace the inital handler cluster while
   running, whereas redefining MUFFLED-WARNING-P is easy.)

16 years ago1.0.19.24: incorrect function type canonicalization
Nikodemus Siivola [Tue, 5 Aug 2008 16:29:08 +0000 (16:29 +0000)]
1.0.19.24: incorrect function type canonicalization

 * If the signature has both &KEY and &OPTIONAL arguments, the
   canonicalization cannot merge &OPTIONAL into &REST. (Not that I am sure why
   we should be merging &OPTIONAL into &REST in *any* case, but this caused
   bogus warning.)

 * Add &KEY SILENT to PARSE-LAMBDA-LIST-LIKE-THING, which silences any
   style-warnings from it: we don't want SPECIFIER-TYPE to complain about the
   lambda-lists it parses.

16 years ago1.0.19.23: COMPILER-WARN accepts conditions
Nikodemus Siivola [Tue, 5 Aug 2008 12:58:09 +0000 (12:58 +0000)]
1.0.19.23: COMPILER-WARN accepts conditions

 * Accidentally left out from 1.0.19.12.

16 years ago1.0.19.22: fix bug #425
Nikodemus Siivola [Tue, 5 Aug 2008 10:38:36 +0000 (10:38 +0000)]
1.0.19.22: fix bug #425

 * Make CLOSE drop input buffers from ANSI-STREAMs. Reported by Damien
   Cassou on sbcl-devel.

 * Signal SB-INT:CLOSED-STREAM-ERROR instead of a SIMPLE-ERROR -- good
   for clarity, enables a proper test.

16 years ago1.0.19.21: delete stale symbol SB-DI:DO-BLOCKS
Nikodemus Siivola [Mon, 4 Aug 2008 16:34:40 +0000 (16:34 +0000)]
1.0.19.21: delete stale symbol SB-DI:DO-BLOCKS

 * Reported by Tobias C. Rittweiler.

16 years ago1.0.19.20: fast CLRHASH on empty hash-tables
Nikodemus Siivola [Mon, 4 Aug 2008 15:58:35 +0000 (15:58 +0000)]
1.0.19.20: fast CLRHASH on empty hash-tables

 * Patch by Alec Berryman.

16 years ago1.0.19.19: manual updates
Nikodemus Siivola [Mon, 4 Aug 2008 12:00:58 +0000 (12:00 +0000)]
1.0.19.19: manual updates

 * Four patches from Xan Lopez on sbcl-devel, one slightly adjusted.

 * Document slot access efficiency issues.

16 years ago1.0.19.18: transform ADJOIN, ASSOC, MEMBER, and RASSOC to -EQ versions more often
Nikodemus Siivola [Mon, 4 Aug 2008 10:33:54 +0000 (10:33 +0000)]
1.0.19.18: transform ADJOIN, ASSOC, MEMBER, and RASSOC to -EQ versions more often

 * Add transforms from %FOO and %FOO-KEY to %FOO-EQ and %FOO-KEY-EQ,
   so that propagated type information has a chance to work its magic.

16 years ago1.0.19.17: DOLIST variable type on constant lists
Nikodemus Siivola [Sun, 3 Aug 2008 21:39:09 +0000 (21:39 +0000)]
1.0.19.17: DOLIST variable type on constant lists

 * When DOLIST list is a (LIST ...) form where every argument is a
   constant, constant-fold it during macro-expansion. (User has no
   direct access to the list itself, so this is safe.)

 * When DOLIST list ia a constant, add an extra binding,
   and annotate its type as (MEMBER ...).

   This means that the compiler knows that in

    (dolist (x (list 1 2 3)) ...)

   X is (INTEGER 1 3).

 * Also add a STYLE-WARNING for constant dotted lists in DOLIST.

16 years ago1.0.19.16: derive the type of (AREF (THE STRING X) Y) as CHARACTER
Nikodemus Siivola [Sun, 3 Aug 2008 19:35:14 +0000 (19:35 +0000)]
1.0.19.16: derive the type of (AREF (THE STRING X) Y) as CHARACTER

 * Even though we don't know the exact upgraded array element type, we
   do know the result is a character.

 * Noticed while wondering why C-ESCAPE had a call to %MEMBER instead
   of %MEMBER-EQ.

16 years ago1.0.19.15: package name conflict patched from Michael Weber
Nikodemus Siivola [Sat, 2 Aug 2008 08:27:30 +0000 (08:27 +0000)]
1.0.19.15: package name conflict patched from Michael Weber

 * Tests for package system name conflict resolution.

 * Fixed EXPORT bug which left symbol unexported in conflict
   situations.

 * Unbreak RESOLVE-CONFLICT restart:
    ** USEing packages with conflicting symbols
    ** Correctly handle conflicts involving CL:NIL by passing (list
       symbol) to package frobbing functions which take a list
       designator.

 * Removed commented-out version of NAME-CONFLICT.

16 years ago1.0.19.14: Immediate SAP bug fix & grab bag of small changes
Paul Khuong [Fri, 1 Aug 2008 17:10:21 +0000 (17:10 +0000)]
1.0.19.14: Immediate SAP bug fix & grab bag of small changes

 * SAPs can't actually be emitted as immediates. Only a problem now that
   constants are treated more cleverly.

   Fixes the "#.(SB-SYS:INT-SAP #X00000000) fell through ETYPECASE expression"
   bug associated with CFFI's NULL-POINTER. Reported by Ingo Bormuth on
   sbcl-devel, and by several others on #lisp.

 * EAs can still only fit 32 bit displacements on x86-64.

 * Make SAP-INT foldable, thus improving code generation for expressions
   like (sap= +null-pointer+ sap).

16 years ago1.0.19.13: Fix WITH-ALIEN for non-x86oids.
Richard M Kreuter [Fri, 1 Aug 2008 13:16:11 +0000 (13:16 +0000)]
1.0.19.13: Fix WITH-ALIEN for non-x86oids.

16 years ago1.0.19.12: give a warning for newly deprecated stack-allcation optimization policies
Nikodemus Siivola [Fri, 1 Aug 2008 11:19:03 +0000 (11:19 +0000)]
1.0.19.12: give a warning for newly deprecated stack-allcation optimization policies

 * Most importantly, keep the symbols around for a while, since otherwise reading
   code that tries to twiddle them causes a package-lock violation.

 * Make it a refence condition for good measure.

 * Prettify the output in from other policy-related warnings while at it.

16 years ago1.0.19.11: SB-SYS spring cleaning
Nikodemus Siivola [Fri, 1 Aug 2008 07:57:51 +0000 (07:57 +0000)]
1.0.19.11: SB-SYS spring cleaning

 * Delete a bunch of unused symbols (and one from SB-KERNEL too.)

 * Fix typo: SYSTEM-CONDITION-ADDRESS, not SYSTEM-CONDIION-ADDRESS.

16 years agoadditional list seeking transformations
Nikodemus Siivola [Thu, 31 Jul 2008 13:32:10 +0000 (13:32 +0000)]
additional list seeking transformations

 * Implement TRANSFORM-LIST-PRED-SEEK, very much akin to
   TRANSFORM-LIST-ITEM-SEEK, and use it to optimize MEMBER-IF[-NOT],
   ASSOC-IF[-NOT], and RASSOC-IF[-NOT].

 * Implement full versions of list seeking functions in terms of the
   specialized versions: in some cases this is a win, in some cases a
   loss -- but the number of places where functionality is duplicated
   is reduced, which should be easier on the maintenance and less
   bug-prone.

 * Add a TRANSFORM-LIST-ITEM-SEEK transform for RASSOC.

 * LVAR-FOR-NAMED-FUNCTION was a restricted form of LVAR-FUN-IS.  Do
   away with the former, and move the latter to ir1util.lisp.

16 years ago1.0.19.9: elide runtime calls to %COERCE-CALLABLE-TO-FUN in more cases
Nikodemus Siivola [Thu, 31 Jul 2008 12:52:37 +0000 (12:52 +0000)]
1.0.19.9: elide runtime calls to %COERCE-CALLABLE-TO-FUN in more cases

 * Core change: %COERCE-CALLABLE-TO-FUN can now convert to
   GLOBAL-FUNCTION.

 * While at it, refactor the whole "make up a form that returns a
   function to use instead of this lvar or source form" thing for
   clarity.

 * Record slightly crazy OPTIMIZATION possibility.

16 years ago1.0.19.8: SB-COVER:REPORT signals an error for non-directory pathnames
Nikodemus Siivola [Thu, 31 Jul 2008 06:50:54 +0000 (06:50 +0000)]
1.0.19.8: SB-COVER:REPORT signals an error for non-directory pathnames

 * Based on patch by Pierre Mai.

16 years ago1.0.19.7: refactor stack allocation decisions
Nikodemus Siivola [Wed, 30 Jul 2008 17:58:39 +0000 (17:58 +0000)]
1.0.19.7: refactor stack allocation decisions

 * Remove SB-C::STACK-ALLOCATE-* policies.

 * Obey DYNAMIC-EXTENT declarations if SB-EXT:*STACK-ALLOCATE-DYNAMIC-EXTENT*
   is true (the default), with the following exceptions:

    ** Value cells are not stack allocated.

    ** Vectors that may be longer then a single page are stack
       allocated only in SAFETY 0 policies.

 * New declaration: SB-INT:TRULY-DYNAMIC-EXTENT. Always stack-allocates,
   regardless of SB-EXT:*STACK-ALLOCATE-DYNAMIC-EXTENT*. Also causes stack
   allocation of value cells and potentially large vectors.

   Used exclusively inside SBCL.

 * Move STACK-ALLOCATE-RESULT optimizers from backends to
   src/compiler/generic/vm-ir2tran.lisp.

 * Documentation.

16 years ago1.0.19.6: fix SB-SHOW build
Nikodemus Siivola [Wed, 30 Jul 2008 16:35:25 +0000 (16:35 +0000)]
1.0.19.6: fix SB-SHOW build

 * Patch by Josh Elsasser for STYLE-WARN.

 * Make COLD-PRINT able to print improper lists -- early source
   locations are conses with the TLF number in the CDR.

16 years ago1.0.19.5: minor wording fix
Nikodemus Siivola [Wed, 30 Jul 2008 14:39:40 +0000 (14:39 +0000)]
1.0.19.5: minor wording fix

 * Patch by Zach Beane.

16 years ago1.0.19.4: recursive restart computation
Nikodemus Siivola [Wed, 30 Jul 2008 13:53:11 +0000 (13:53 +0000)]
1.0.19.4: recursive restart computation

 * A call to COMPUTE-RESTARTS from restart test function caused
   infinite recursion. Fix with a stack.

 * Test-case.

16 years ago1.0.19.3: more careful PROGV and SET
Nikodemus Siivola [Wed, 30 Jul 2008 13:51:55 +0000 (13:51 +0000)]
1.0.19.3: more careful PROGV and SET

 * Don't bind constants in PROGV.

 * Check variable types before binding / assignment.

 * When un-binding, PROGV doesn't temporarily bind a variable to NIL
   anymore, but directly to the unbound marker, so that an interrupt
   handler cannot see a bogus value.

 * Based on patch by Richard Kreuter.

16 years ago1.0.19.2: fix alien stack leak
Nikodemus Siivola [Wed, 30 Jul 2008 13:49:08 +0000 (13:49 +0000)]
1.0.19.2: fix alien stack leak

 * On x86oids bind *ALIEN-STACK* once for the entire WITH-ALIEN, obviating the need
   to release local aliens one-by-one.

 * On other platforms protect the cleanup with UWP.

 * :STATIC option has been disabled in WITH-ALIEN for a while now --
   not sure why, but remove the corresponding bit from docstring as
   well.

 * Test-case by Andy Hefner.

16 years ago1.0.19.1: DERIVE-TYPE optimizer for %%PRIMITIVE
Nikodemus Siivola [Wed, 30 Jul 2008 13:44:55 +0000 (13:44 +0000)]
1.0.19.1: DERIVE-TYPE optimizer for %%PRIMITIVE

 * Fixes #427: vintage TRULY-THE annotated the CALL early enough that
   the IR2 conversion of the %PRIMITIVE got the right primitive types.
   Now that TRULY-THE is a regular cast, an optimizer is needed to
   annotate the call.

 * Refactor FIND-TEMPLATE-RESULTS a bit.

 * Get rid of now-pointless TRULY-THE wrappers around several
   %PRIMITIVE calls.

 * Test-case.

16 years ago1.0.19: release, will be tagged as sbcl_1_0_19
Nikodemus Siivola [Wed, 30 Jul 2008 12:06:38 +0000 (12:06 +0000)]
1.0.19: release, will be tagged as sbcl_1_0_19

16 years ago1.0.18.30: disable failing test in timer.impure.lisp
Nikodemus Siivola [Wed, 30 Jul 2008 11:38:51 +0000 (11:38 +0000)]
1.0.18.30: disable failing test in timer.impure.lisp

 * Has been failing intermittently on various platforms, apparently as
   long as it has been there. Log as bug #428.

16 years ago1.0.18.29: documentation tweaks
Nikodemus Siivola [Wed, 30 Jul 2008 08:38:16 +0000 (08:38 +0000)]
1.0.18.29: documentation tweaks

 * Mention putative buildability on Win64 in NEWS.

 * Weak hash tables are supposed to work, don't say otherwise on the
   man-page.

 * Tweak README: mention INSTALL first. Manual lives in doc/manual
   nowadays, INSTALL tells how to build it.

16 years ago1.0.18.28: Add NEWS entry and manual entry for SB-EXT:*MUFFLED-WARNINGS*.
Richard M Kreuter [Sun, 27 Jul 2008 14:44:32 +0000 (14:44 +0000)]
1.0.18.28: Add NEWS entry and manual entry for SB-EXT:*MUFFLED-WARNINGS*.

16 years ago1.0.18.27: fix DEFSTRUCT compilation when init-form type is vague
Nikodemus Siivola [Tue, 22 Jul 2008 17:17:15 +0000 (17:17 +0000)]
1.0.18.27: fix DEFSTRUCT compilation when init-form type is vague

 * Reported by Josh Morrison. Regression from the recent DEFSTRUCT
   constructor hacking.

   Slots initialized by constructor lambda-list arguments have their
   types checked, but those slots always initialized directly by the
   initform values did not -- wrap the DSD-DEFAULT in a THE.

16 years ago1.0.18.26: explain why DX value generators must end their blocks
Nikodemus Siivola [Sun, 20 Jul 2008 07:52:07 +0000 (07:52 +0000)]
1.0.18.26: explain why DX value generators must end their blocks

 * Explanation and test-case from Alexey Dejneka -- mistakes are mine in the
   transcription.

 * Note about REFs to DX closures violating the rule -- which is why we cannot
   assert it right now.

 * Use DO-USES instead of DOLIST in UPDATE-UVL-LIVE-SETS.

 * Fix a stray typo in comment in USE-GOOD-FOR-DX-P.

16 years ago1.0.18.25: tweak stack allocation on x86 and x86-64
Nikodemus Siivola [Sat, 19 Jul 2008 16:07:52 +0000 (16:07 +0000)]
1.0.18.25: tweak stack allocation on x86 and x86-64

 * Use MAYBE-PSEUDO-ATOMIC in the LIST-OR-LIST* VOP: stack allocation
   doesn't need PA.

 * When using STACK-ALLOCATE-P parameter with ALLOCATION, also pass in
   the lowtag. This allows us to generate

     LEA REG [STACK_REG+LOWTAG]

   instead of

     MOV REG STACK_REG
     LEA REG [REG+LOWTAG]

   for stack allocation & tagging.

   On x86-64 can use the same trick in the inline path for heap
   allocation as well.

16 years ago1.0.18.24: lift node-insertion logic from RECOGNIZE-DYNAMIC-EXTENT-LVARS
Nikodemus Siivola [Sat, 19 Jul 2008 11:32:53 +0000 (11:32 +0000)]
1.0.18.24: lift node-insertion logic from RECOGNIZE-DYNAMIC-EXTENT-LVARS

 * New function INSERT-NODE-BEFORE, makes the action easier to
   understand by separating out the entry/cleanup creation from the
   flow-graph hacking.

16 years ago1.0.18.23: ALL calls with DX arguments should end their blocks
Nikodemus Siivola [Sat, 19 Jul 2008 09:48:14 +0000 (09:48 +0000)]
1.0.18.23: ALL calls with DX arguments should end their blocks

 * Consider this a clarification of 1.0.18.22: MAP-BLOCK-NLXES will
   miss calls that don't end their blocks.

   If let-conversion happens, as is the case most of the time, this is
   not an issue, since the LAMBDA-CALL-LEXENV will hold the lexenv
   with the cleanup.

   A :LET functional, however, should never appear in
   RECOGNIZE-DYNAMIC-EXTENT-LVARS, since let-conversion doesn't happen
   until later -- so the conditional was bogus.

   So: delete the conditional, and write a comment that points in
   the place where we depend on the block-endingness.

 * Add a FIXME note to another DX related place where we make nodes
   end their blocks, which I don't quite understand.

16 years ago1.0.18.22: DX arguments in non-let-converted local calls
Nikodemus Siivola [Fri, 18 Jul 2008 20:07:58 +0000 (20:07 +0000)]
1.0.18.22: DX arguments in non-let-converted local calls

 * When a non-let function has dynamic extent arguments, the
   combination must end its block, or stack analysis will miss the
   cleanup, and stack will be popped too soon.

16 years ago1.0.18.21: More STYLE-WARNINGs
Richard M Kreuter [Wed, 16 Jul 2008 20:51:14 +0000 (20:51 +0000)]
1.0.18.21: More STYLE-WARNINGs

* STYLE-WARN for argument list mismatches for all already-defined
  functions.

16 years ago1.0.18.20: Fewer STYLE-WARNINGs.
Richard M Kreuter [Wed, 16 Jul 2008 19:21:03 +0000 (19:21 +0000)]
1.0.18.20: Fewer STYLE-WARNINGs.

* Change definition of UNINTERESTING-ORDINARY-FUNCTION-REDEFINITION-P
  so that replacing an interpreted function is always uninteresting
  when the new definition comes from the same file.

* Monkey with source-locations so that they get created during LOAD of
  a source file when *EVALUATOR-MODE* is :INTERPRET.

16 years ago1.0.18.19: Fix FUNCTION-KEYWORDS, re-add FUNCTION-KEYWORD-PARAMETERS.
Richard M Kreuter [Wed, 16 Jul 2008 17:30:01 +0000 (17:30 +0000)]
1.0.18.19: Fix FUNCTION-KEYWORDS, re-add FUNCTION-KEYWORD-PARAMETERS.

* Recently-renamed FUNCTION-KEYWORD-PARAMETERS did something different
  than what FUNCTION-KEYWORDS is supposed to do.  Fix
  FUNCTION-KEYWORDS, and re-add a distinct FUNCTION-KEYWORD-PARAMETERS
  (used indirectly by DESCRIBE, something in sb-introspect, maybe
  elsewhere).

16 years ago1.0.18.18: Add support for abstract namespace addresses for AF_LOCAL sockets.
Richard M Kreuter [Wed, 16 Jul 2008 11:48:55 +0000 (11:48 +0000)]
1.0.18.18: Add support for abstract namespace addresses for AF_LOCAL sockets.

* Contributed by Matthew D. Swank

16 years ago1.0.18.17: Alter some STYLE-WARNING names introduced in 1.0.18.16.
Richard M Kreuter [Fri, 11 Jul 2008 18:55:07 +0000 (18:55 +0000)]
1.0.18.17: Alter some STYLE-WARNING names introduced in 1.0.18.16.

16 years ago1.0.18.16: many STYLE-WARNING changes.
Richard M Kreuter [Tue, 8 Jul 2008 21:31:50 +0000 (21:31 +0000)]
1.0.18.16: many STYLE-WARNING changes.

* Add various subclasses of STYLE-WARNING in src/code/condition.lisp
  for most of the cases signaled around the system.  (A few style
  warnings remain SIMPLE-STYLE-WARNINGS for now.)

* Make STYLE-WARN be like WARN (take a condition class name and
  arguments).

* Change over many callers of STYLE-WARN to supply names of new
  STYLE-WARNING classes and initargs for those conditions.

* Set the default value of SB-EXT:*MUFFLED-WARNINGS* to a type that
  includes uninteresting redefinitions of functions and methods.

16 years ago1.0.18.15: Tweak external-format tests for .gitignore, clean.sh.
Richard M Kreuter [Tue, 8 Jul 2008 14:24:53 +0000 (14:24 +0000)]
1.0.18.15: Tweak external-format tests for .gitignore, clean.sh.

16 years ago1.0.18.14: Tweak .gitignore for 2 Linux/PPC files.
Richard M Kreuter [Mon, 7 Jul 2008 15:08:07 +0000 (15:08 +0000)]
1.0.18.14: Tweak .gitignore for 2 Linux/PPC files.

16 years ago1.0.18.13: adjust address-spaces for Windows 32
Nikodemus Siivola [Mon, 7 Jul 2008 07:57:18 +0000 (07:57 +0000)]
1.0.18.13: adjust address-spaces for Windows 32

 * Dynamic-space was too large after the last adjustment.

16 years ago1.0.18.12: adjust address-spaces for Windows 64
Nikodemus Siivola [Fri, 4 Jul 2008 16:10:05 +0000 (16:10 +0000)]
1.0.18.12: adjust address-spaces for Windows 64

 * Thanks to John Connors if this works, blame me if it doesn't
   (untested, as I don't have a Windows box available, but reputedly
   this should be good for both Win32 and Win64.)

   Source: http://article.gmane.org/gmane.lisp.steel-bank.devel/10686

16 years ago1.0.18.11: Add SB-EXT:*MUFFLED-WARNINGS*, to muffle warnings at runtime.
Richard M Kreuter [Thu, 3 Jul 2008 21:31:57 +0000 (21:31 +0000)]
1.0.18.11: Add SB-EXT:*MUFFLED-WARNINGS*, to muffle warnings at runtime.