sbcl.git
17 years ago0.9.18.13:
Thiemo Seufer [Sun, 29 Oct 2006 20:14:26 +0000 (20:14 +0000)]
0.9.18.13:
More .cvsignores.

17 years ago0.9.18.12: valid/already-dumped confusion in the file compiler/
Nikodemus Siivola [Sun, 29 Oct 2006 19:44:45 +0000 (19:44 +0000)]
0.9.18.12: valid/already-dumped confusion in the file compiler/
 * A constant is not already dumped just because it is in the valid
   table.
 * Fopcompiler was validating the wrong object occasionally.
   Unfortunately the *DUMP-ONLY-VALID-STRUCTURES* binding still
   needed. Couple of FIXME's pertaining to that added.
 * Useless WHEN in EMIT-MAKE-LOAD-FORM deleted.
 * Record a bug.

17 years ago0.9.18.11: whitespace
Nikodemus Siivola [Sat, 28 Oct 2006 09:57:00 +0000 (09:57 +0000)]
0.9.18.11: whitespace
 * Undo whitespace damage from Window commits.

17 years ago0.9.18.11: Remove unused (probably wrong) definition of malloc from sb-bsd-sockets
Andreas Fuchs [Fri, 27 Oct 2006 21:44:42 +0000 (21:44 +0000)]
0.9.18.11: Remove unused (probably wrong) definition of malloc from sb-bsd-sockets

17 years ago0.9.18.10: Win32 get_timezone robustness
Nikodemus Siivola [Thu, 26 Oct 2006 16:17:15 +0000 (16:17 +0000)]
0.9.18.10: Win32 get_timezone robustness
 * Windows localtime & gmtime functions don't like negative times.

17 years ago0.9.18.9: Pathname Love on Win32
Nikodemus Siivola [Thu, 26 Oct 2006 16:07:52 +0000 (16:07 +0000)]
0.9.18.9: Pathname Love on Win32
 * Namestring simplification (was UNIX-SIMPLIFY-PATHNAME) is now
   function of the host. Shamelessly cargo-culted Win32 version from
   the Unix version.
 * Kludged %ENUMERATE-DIRECTORIES to work with :WILD-INFERIORS on
   Win32.
 * Fix UNPARSE-NATIVE-WIN32-NAMESTRING to handle #P"X:\\FOO" case
   correctly. ("X:\\FOO", not "X:\\\\FOO")
 * Missing NEWS entry for 0.9.18.8.
 * Correct order of arguments to MERGE-PATHNAMES in SYSINIT-PATHNAME.
 * Couple of WITH-TEST additions to test-suite.

17 years ago0.9.18.8: LET* and VALUES declaration
Nikodemus Siivola [Thu, 26 Oct 2006 11:37:56 +0000 (11:37 +0000)]
0.9.18.8: LET* and VALUES declaration
 * Wrong arguments to PROCESSING-DECLARATIONS in the LET*
   ir1-translator.
 * Test-case.

17 years ago0.9.18.7: Win32 RUN-PROGRAM :WAIT T tweak
Nikodemus Siivola [Thu, 26 Oct 2006 10:29:47 +0000 (10:29 +0000)]
0.9.18.7: Win32 RUN-PROGRAM :WAIT T tweak
 * Only -1 as result means the spawn failed: other negative
   return values are error codes.

17 years ago0.9.18.6: Win32 get-internal-real-time improved
Nikodemus Siivola [Thu, 26 Oct 2006 08:38:49 +0000 (08:38 +0000)]
0.9.18.6: Win32 get-internal-real-time improved
 * The old version was accurate only to the second, new one gets
   milliseconds right.
 * Move unix/win32 implementation bodies of GET-INTERNAL-*-TIME to
   unix.lisp and win32.lisp (less conditionalization).
 * Move *GC-RUN-TIME* zeroing to GC-REINIT.
 * Initialize the system epoch to start time, not to time of first
   call to GET-INTERNAL-REAL-TIME, document system epoch in
   GET-INTERNAL-REAL-TIME.
 * Sort the stub function calls in src/runtime/win32.c nicely.

17 years ago0.9.18.5: Support DISASSEMBLE for interpreted functions.
Brian Downing [Thu, 26 Oct 2006 04:26:20 +0000 (04:26 +0000)]
0.9.18.5:  Support DISASSEMBLE for interpreted functions.
  * Support DISASSEMBLE for interpreted functions, by compiling (but
    not installing) the function beforehand.
  * Add tests to interface.impure.lisp for the above.

17 years ago0.9.18.4: Fix non-x86 builds.
Brian Downing [Thu, 26 Oct 2006 03:55:20 +0000 (03:55 +0000)]
0.9.18.4:  Fix non-x86 builds.
  * Make :precision :53-bit in *saved-floating-point-modes*
    conditional upon #!+x86.

17 years ago0.9.18.3: Canonicalize whitespace.
Brian Downing [Thu, 26 Oct 2006 03:22:21 +0000 (03:22 +0000)]
0.9.18.3:  Canonicalize whitespace.

17 years ago0.9.18.2: Win32 exceptions
Nikodemus Siivola [Wed, 25 Oct 2006 17:07:53 +0000 (17:07 +0000)]
0.9.18.2: Win32 exceptions
 * Floating point exceptions.
 * Stack exhaustion exception.
 * Rename FIND-INTERRUPTED-NAME to FIND-INTERRUPTED-NAME-AND-FRAME.
 * Commentary (questionary?) on the Win32 exception magic.
 * More groveling.

 Alert: grovel-headers.c/defconstant uses now unsigned long, not long.
 Works on Linux/x86, Win32, and Darwin/ppc. If breaks elsewhere then
 define_signed_const and define_unsigned_const needed.

17 years ago0.9.18.1: Small floating point related tweaks
Nikodemus Siivola [Wed, 25 Oct 2006 16:24:43 +0000 (16:24 +0000)]
0.9.18.1: Small floating point related tweaks
 * Introduce FLOAT-COLD-INIT-OR-REINIT fixing a couple of
   COLD-INIT/REINIT FIXME's for more OAOO.
 * Save floating point modes in core, and restore them on startup.
 * Move SET/GET-FLOATING-POINT-MODES documentation from comments to
   docstrings.

17 years ago0.9.18:
William Harold Newman [Wed, 25 Oct 2006 14:58:40 +0000 (14:58 +0000)]
0.9.18:
release, will be tagged as sbcl_0_9_18

17 years ago0.9.17.18: fix windows build, MAKE-ALIEN compiler note muffled fully
Nikodemus Siivola [Mon, 23 Oct 2006 13:45:51 +0000 (13:45 +0000)]
0.9.17.18: fix windows build, MAKE-ALIEN compiler note muffled fully
 * Win32 build needs MAKE-ALIEN much earlier then other platforms,
   so restore MAKE-ALIEN to its old place in target-alieneval.lisp,
   and muffle the %SAP-ALIEN note from there unconditionally.

17 years ago0.9.17.17:
Brian Downing [Sat, 21 Oct 2006 07:23:13 +0000 (07:23 +0000)]
0.9.17.17:
  * Support INTERPRETED-FUNCTIONs in SB-INTROSPECT:FUNCTION-ARGLIST.
    Problem reported by <baronsamdi@verizon.net>.

17 years ago0.9.17.16:
Nathan Froyd [Thu, 19 Oct 2006 02:06:12 +0000 (02:06 +0000)]
0.9.17.16:
Delete dead checked-cell-ref VOP in x86oid backends.

17 years ago0.9.17.15: silence %SAP-ALIEN compiler-note for MAKE-ALIEN in default policy
Nikodemus Siivola [Wed, 18 Oct 2006 13:59:21 +0000 (13:59 +0000)]
0.9.17.15: silence %SAP-ALIEN compiler-note for MAKE-ALIEN in default policy
 * Uses of MAKE-ALIEN are a common source of unavoidable notes about
   unoptimized %SAP-ALIEN, which only serve to mask the ones the user
   can do something about.

17 years ago0.9.17.14:
William Harold Newman [Wed, 18 Oct 2006 13:47:06 +0000 (13:47 +0000)]
0.9.17.14:
a bit of OAOOification in the way tests/run-tests.sh code
invokes SBCL, so that now it consistently ignores
.sbclrc again, so tests succeed even when .sbclrc
contains (BREAK)

17 years ago0.9.17.13: SB-POSIX:CFSET*SPEED, SB-POSIX:CFGET*SPEED, and related constants
Nikodemus Siivola [Wed, 18 Oct 2006 11:42:26 +0000 (11:42 +0000)]
0.9.17.13: SB-POSIX:CFSET*SPEED, SB-POSIX:CFGET*SPEED, and related constants
  * Patch by Max-Gerd Retzlaff. cfsetspeed left out as non-portable,
    cfgetispeed and cfgetospeed added.
  * Tests -- which have not been properly run, and aren't run as part
    of the SB-POSIX suite, since they require serial port access.

17 years ago0.9.17.12: restore win32 and x86-darwin buildability
Nikodemus Siivola [Mon, 9 Oct 2006 16:53:35 +0000 (16:53 +0000)]
0.9.17.12: restore win32 and x86-darwin buildability
 * trivial assembler directive fixes

17 years ago0.9.17.11:
Christophe Rhodes [Mon, 9 Oct 2006 14:56:43 +0000 (14:56 +0000)]
0.9.17.11:
Scribble some notes on funcallable instances before I forget.

17 years ago0.9.17.10: async unwind for specials
Gabor Melis [Fri, 6 Oct 2006 11:44:20 +0000 (11:44 +0000)]
0.9.17.10: async unwind for specials
  * in UNBIND zero the symbol before the value
  * in UNBIND-TO-HERE zero the value even if the symbol is zero

17 years ago0.9.17.9:
Christophe Rhodes [Fri, 6 Oct 2006 11:24:47 +0000 (11:24 +0000)]
0.9.17.9:
One missing include directive which got through the net.

17 years ago0.9.17.8:
Christophe Rhodes [Fri, 6 Oct 2006 10:54:09 +0000 (10:54 +0000)]
0.9.17.8:
MORE THREADSAFE FUNCALLABLE-INSTANCE
... in a threaded world, we can't set the function and lexenv
of a funcallable instance separately, because some other
thread might inconveniently funcall the object 'twixt
the one and the other.
... instead, make the funcallable-instance-function a
fully-fledged slot, and give a funcallable-instance a
trampoline which knows how to call it.
... which means implementing this strategy for $n$
architectures.  Tested on x86, x86-64, ppc, alpha and
sparc; completely untested on mips, and unimplemented
on hppa.

This removes some of the complexity in calling closures (the
closure-self slot is now redundant, as is the extra
indirection).  Other miscellaneous fixes:
* extract-fun-type worked only by accident;
* new magic :init :funcallable-instance-tramp for primitive
  objects
* verify_space() need no longer worry its little brain about
  undefined_tramp and closure_tramp (I think)
* test case for threaded funcallable-instance interaction.

17 years ago0.9.17.7:
Juho Snellman [Mon, 2 Oct 2006 14:43:16 +0000 (14:43 +0000)]
0.9.17.7:
        Implementation of STEP-OUT was completely bogus.

        * Only do the *STEP-OUT* binding / handling only around the STEP-INTO
          branch in the step-around wrapper, not around the STEP-NEXT /
          CONTINUE / OUT branch.
        * Detect attempts to STEP-OUT when there is no matching STEP-IN
          also in STEP-FORM, not just in the debugger repl
        * Test

17 years ago0.9.17.6:
Juho Snellman [Mon, 2 Oct 2006 13:43:19 +0000 (13:43 +0000)]
0.9.17.6:
        Cleanup.

        * Fix formatting of sub-items in 0.9.17 NEWS (thanks to Kevin Reid)
        * gc.lisp whitespace canonicalization

17 years ago0.9.17.5:
Juho Snellman [Mon, 2 Oct 2006 11:34:30 +0000 (11:34 +0000)]
0.9.17.5:
        The debugger tends to not show all variables regardless of the
        optimization policy. Fix the most common reason for that happening.

        * When compiling with a high debug quality, don't do substitution for
          variables that are only used once.
        * Except for variables introduced in DEFTRANSFORM inline
          lambdas, since they're not going to very interesting for the
          debugger.

17 years ago0.9.17.5:
Juho Snellman [Mon, 2 Oct 2006 11:34:25 +0000 (11:34 +0000)]
0.9.17.5:
        The debugger tends to not show all variables regardless of the
        optimization policy. Fix the most common reason for that happening.

        * When compiling with a high debug quality, don't do substitution for
          variables that are only used once.
        * Except for variables introduced in DEFTRANSFORM inline
          lambdas, since they're not going to very interesting for the
          debugger.

17 years ago0.9.17.4:
Juho Snellman [Mon, 2 Oct 2006 06:38:35 +0000 (06:38 +0000)]
0.9.17.4:
Fix the STORE-VALUE restart for CHECK-TYPE on non-variable places
        (DO considered harmful).

17 years ago0.9.17.3:
Juho Snellman [Mon, 2 Oct 2006 05:15:44 +0000 (05:15 +0000)]
0.9.17.3:
Fix negation of character-set types (reported by Anton Kazennikov
        on comp.lang.lisp).

17 years ago0.9.17.2: fix two potential GC deadlocks
Nikodemus Siivola [Wed, 27 Sep 2006 11:03:17 +0000 (11:03 +0000)]
0.9.17.2: fix two potential GC deadlocks
 * Dying threads used to grab session and all-threads locks
   with GC inhibited, which was bad:
    1. T1 has the lock, GC not inhibited
       T2 in HANDLE-THREAD-EXIT waiting for the lock, GC inhibited
    2. GC is triggered
    3. T1 stopped while holding the lock
       T2 deadlocks waiting for T1 to release the lock.
 * Mark threads dead while holding the *ALL-THREADS-LOCK*, so that
     (unless (thread-alive-p th)
       (assert (not (member th (list-all-threads)))))
   cannot fail.
 * Since dying threads can now trigger GCs, don't run after-gc hooks
   and finalizers if the thread has been marked as dead.
 * Move all thread cleanup logic to HANDLE-THREAD exit.

17 years ago0.9.17.1:
Thiemo Seufer [Tue, 26 Sep 2006 23:10:02 +0000 (23:10 +0000)]
0.9.17.1:
Improve thread safety.

17 years ago0.9.17:
William Harold Newman [Tue, 26 Sep 2006 17:26:55 +0000 (17:26 +0000)]
0.9.17:
release, will be tagged as sbcl_0_9_17

17 years ago0.9.16.46:
Juho Snellman [Sun, 24 Sep 2006 15:47:27 +0000 (15:47 +0000)]
0.9.16.46:
        Fix regressions:

        * Installation was broken with non-bash /bin/sh (thanks to
          Niimi Satoshi for the patch)
        * DEFAULT-EXTERNAL-FORMAT would now try to print a warning for
          an invalid external format before streams had been initialized,
          causing an infinite error loop (reported by Hannu Koivisto).
          Temporary fix is just not printing the warning, a better fix
          will wait until after the freeze.
        * Also stop autodetecting the external format from the locale
          on non-unicode builds. Having a default external format that's
          incompatible with CHARACTER doesn't seem very sensible, especially
          now that the external formats are also used for SB-ALIEN:C-STRING
          instead of just streams.

17 years ago0.9.16.45:
Juho Snellman [Wed, 20 Sep 2006 18:18:19 +0000 (18:18 +0000)]
0.9.16.45:
        Fix building with CMUCL (typo in the name of an IGNOREd variable
        in !DEFSTRUCT-WITH-ALTERNATE-METACLASS).

17 years ago0.9.16.44:
Juho Snellman [Wed, 20 Sep 2006 18:05:02 +0000 (18:05 +0000)]
0.9.16.44:
        Stepper tweaks:

        * Inhibit stepping while calling the stepper hook.
        * Make the body of STEP steppable
        * Signal a STEP-FINISHED-CONDITION when STEP returns

17 years ago0.9.16.43:
Juho Snellman [Wed, 20 Sep 2006 15:04:48 +0000 (15:04 +0000)]
0.9.16.43:
        Switch to using the more accurate method of determining
        *STEP-FRAME* on x86/x86-64 where SIGNAL-CONTEXT-FRAME works.
        Retain the previous kludge on non-x86, where SIGNAL-CONTEXT-FRAME
        seems to be completely broken.

17 years ago0.9.16.42:
Juho Snellman [Wed, 20 Sep 2006 14:50:40 +0000 (14:50 +0000)]
0.9.16.42:
        Always update TN-CURRENT-CONFLICT after the innermost loop of
        PROPAGATE-LIVE-TNS has found a match, and not just every time
        it converts a :READ conflict to a :LIVE conflict. This avoids
        useless travelsals over the tnwise global-conflicts chain, speeding
        up compilation when there are lots of global conflicts (for
        example on (DEBUG 3)). Thanks to David Lichteblau.

17 years ago0.9.16.41:
Juho Snellman [Wed, 20 Sep 2006 12:08:22 +0000 (12:08 +0000)]
0.9.16.41:
        More win32 fixes.  (Thanks to Yaroslav Kavenchuk: sbcl-devel
        "win32 regression" on 2006-09-18 and "merge-pathnames on
        win32" on 2006-09-19)

        * Double the size of the string buffers given to syscalls on
          sb-unicode, since the data is going to be in UCS-2 instead of
          some single-octet encoding
        * Fix the code for finding the system-wide sbclrc
        * Whitespace

17 years ago0.9.16.40:
Juho Snellman [Tue, 19 Sep 2006 23:38:32 +0000 (23:38 +0000)]
0.9.16.40:
Don't do permutation vector optimization for SLOT-VALUE on method
        parameters that are SETQd [see the test ((:setq :method-parameter)
        slot-value) in clos.impure.lisp].

        * WALK-METHOD-LAMBDA detects parameters whose bindings are modified,
          and returns them as a list
        * MAKE-METHOD-LAMBDA-INTERNAL adds a symbol-macrolet
          %PARAMETER-BINDING-MODIFIED with that list as a value around
          the method body
        * OPTIMIZED-SLOT-VALUE and friends no longer directly return the
          optimized form when the method is being walked, but a macro
          that expands to either the optimized or unoptimized form, based
          on %PARAMETER-BINDING-MODIFIED
        * As a side effect, SETQ-P becomes a little more accurate

17 years ago0.9.16.39:
Juho Snellman [Tue, 19 Sep 2006 21:35:33 +0000 (21:35 +0000)]
0.9.16.39:
        Oops, unblock interrupts while handling a single-stepper trap. Fixes
        GC deadlocks while using the stepper in Slime on a threaded
        SBCL.

17 years ago0.9.16.38:
Juho Snellman [Mon, 18 Sep 2006 20:09:13 +0000 (20:09 +0000)]
0.9.16.38:
        Rewrite the single-stepper to solve the compilation/run-time
        performance and type-inference inaccuracy problems with the old
        approach. Also make some UI improvements to the stepper.

        * The IR1 stage no longer instruments the code. Instead it
          only detects function call forms which should (according to
          the policy) be steppable, and records a string
          representation of those forms in the matching combination
          nodes (to be stored in the debug-info).
        * Modify the function call vops to emit some instrumentation just
          before the actual call happens. This will check either the
          symbol-value of *STEPPING* (unithreaded) or the new STEPPING
          slot of threads (multithreaded) and trap if it's true. The
          trap handler will replace the closure / fdefn that was about
          to be called with a wrapper, which will signal a stepper
          condition and then call the original function.
        * Emit a similar bit of instrumentation before any call that
          got optimized to a simple VOP. The difference is that the
          only thing that the trap handler will do is to directly
          signal the condition.
        * The necessary VOP / runtime changes have only been done on
          x86, x86-64 and ppc so far. Alpha, Mips and Sparc should
          still compile, but the stepper won't work there.
        * Remove the old single-stepper REPL, and instead integrate the
          stepper into the debugger.
        * Add STEP-OUT functionality (stop stepping temporarily,
          resuming it once the current function returns).

17 years ago0.9.16.37:
Christophe Rhodes [Mon, 18 Sep 2006 14:26:49 +0000 (14:26 +0000)]
0.9.16.37:
Minor fixups
... fix building on x86-64 (delete some extra parens...)
... make funcallable-standard-objects (including generic
functions) properly inspectable again, after the
change of the superclasses' order.

17 years ago0.9.16.36:
Juho Snellman [Mon, 18 Sep 2006 11:28:05 +0000 (11:28 +0000)]
0.9.16.36:
        Oops, fix minor bug introduced in .35: #+sb-unicode -> #!+sb-unicode

17 years ago0.9.16.35:
Juho Snellman [Sun, 17 Sep 2006 09:50:00 +0000 (09:50 +0000)]
0.9.16.35:
        Merge sbcl-devel "some reconstruction of win32 and others", 2006-09-10
        by Yaroslav Kavenchuk.

        * Replace manual external-format conversions in various SB-WIN32
          internals with alien external-formats.
        * Implement MACHINE-INSTANCE and SOFTWARE-VERSION.

17 years ago0.9.16.34:
Nathan Froyd [Sun, 17 Sep 2006 02:31:13 +0000 (02:31 +0000)]
0.9.16.34:
Improve code generation for LOGTEST on x86.

* Use the logic the fixnum test VOPs use for emitting small TEST
  instructions in the LOGTEST VOPs as well;
* Change {ODD,EVEN}P source transforms to use LOGTEST.

17 years ago0.9.16.33:
Nathan Froyd [Sun, 17 Sep 2006 02:26:41 +0000 (02:26 +0000)]
0.9.16.33:
Micro-optimize keyword argument parsing on x86 and x86-64.

* Change %MORE-ARG to take a negative offset, so we can perform
  the negation once outside the parsing loop instead of twice
  each time through the loop;
* Combine the retrieval of the keyword and its associated value
  into a single VOP, so we can take advantage of base+index+disp
  addressing.

17 years ago0.9.16.32: weak hash tables
Gabor Melis [Fri, 15 Sep 2006 14:39:44 +0000 (14:39 +0000)]
0.9.16.32: weak hash tables
  The implementation is based on cmucl's weak hash table code.

  * scav_vector defers scavenging of weak hash tables until ...

  * ... newspace scavenging at which time the deferred weak hash
    tables are scavenged according to their WEAKNESS type (this
    happens after each scan of newspace)

  * finally just before weak pointers are scanned (i.e. with the
    purpose of breaking them) the weak hash tables are scanned (i.e.
    the appropriate entries are removed) too.

17 years ago0.9.16.31:
Christophe Rhodes [Fri, 15 Sep 2006 08:23:31 +0000 (08:23 +0000)]
0.9.16.31:
Belatedly add a test for the primitive-type / intersection-type
confusion.

17 years ago0.9.16.30:
Christophe Rhodes [Thu, 14 Sep 2006 21:10:44 +0000 (21:10 +0000)]
0.9.16.30:
A couple of type-system fixups for #+sb-eval
... we have to have sb-eval:interpreted-function defined
on the host, so that the deftype for COMPILED-FUNCTION
does not involve any unknown types.  So
... make !defstruct-with-alternate-metaclass compilable by the
host compiler, similarly to sb-xc:defstruct.  Don't
quite do it properly: put a FIXME note in for posterity.
... move early-full-eval.lisp earlier in the build, and split
out the definition for compiled-function from
deftypes-for-target to late-deftypes-for-target (after
the interpreted-function class is defined)

... (declare (type compiled-function x)) should do a type check
for compiled-function, not for simply FUNCTION.
... the problem was actually in PRIMITIVE-TYPE on intersection
types; the computation was fairly bogus.  Make it less
bogus.

... also delete some stale classoid symbols.

17 years ago0.9.16.29:
Juho Snellman [Wed, 13 Sep 2006 21:37:28 +0000 (21:37 +0000)]
0.9.16.29:
        The new timer.impure test added in 0.9.16.21 uncovered some
        completely unrelated problems in a different test. Multiple
        simultaneous FIND-SYMBOLs on the same package could cause the
        package to become corrupted in a way that would cause further
        accesses to it to loop infinitely. This seems a bit harsh.

* Remove the optimization (moving the table from which a
          symbol was found to the front of the package's table list)
          which was causing this problem. It didn't seem to have much
          of an performance effect anyway.
        * Fix the test that was accidentally triggering this bug and
          add a new test specifically for it.

17 years ago0.9.16.28:
Nathan Froyd [Wed, 13 Sep 2006 17:30:28 +0000 (17:30 +0000)]
0.9.16.28:
Shorten pseudo-atomic sequence on x86 and x86-64.

Do this by combining *pseudo-atomic-{atomic,interrupted}* into
  a single variable, *pseudo-atomic-bits*, which is a fixnum
  bitmask where bit 0 denotes atomic-ness and bit 1 denotes
  interruptedness.
* Change genesis to initialize this variable properly (this
  didn't need to be done for the old variables because the
  allocation sequences would set them upon entrance);
* Modify functions and macros accessing pseudo-atomic variables
  to reflect the new state of the world;

17 years ago0.9.16.27:
Juho Snellman [Wed, 13 Sep 2006 15:59:31 +0000 (15:59 +0000)]
0.9.16.27:
        Add an interpreting EVAL, for cases where the compiler is
        unsuitable due to e.g. compilation overhead.

        * The old EVAL is still the default. To use the new one,
          (SETF SB-EXT:*EVALUATOR-MODE* :INTERPRET).

          Making the interpreter the default might be the purer
          choice, since there's a standard way of ensuring that code
          is compiled, and no standard way of ensuring that it's
          not. On the other hand, there are practical reasons for
          keeping the compiler as the default. The interpreter is very
          slow, doesn't have proper debugger support (either for
          backtraces or inspecting frames), and it doesn't have
          stepper support.

        * The interpreter doesn't treat THE or type declarations for
          lexical variables as assertions. The regression tests that
          assume otherwise have been disabled when running in
          interpreted mode. The intepreter will however type-check the
          proclaimed types of specials.

17 years ago0.9.16.26:
William Harold Newman [Tue, 12 Sep 2006 13:11:46 +0000 (13:11 +0000)]
0.9.16.26:
memory crutch for middle-aged maintainers: repeated NS's
explanation in 0.9.16.25 commit message as comment
above the change

17 years ago0.9.16.25: build fix for CMUCL and older SBCLs
Nikodemus Siivola [Tue, 12 Sep 2006 09:08:49 +0000 (09:08 +0000)]
0.9.16.25: build fix for CMUCL and older SBCLs
 * Not all lisps are happy about SETF-compiler macros: CMUCL 19 does not accept
   them at all, and older SBCL's give a full warning.

17 years ago0.9.16.24: (SETF INFO) compiler macro enabled
Nikodemus Siivola [Mon, 11 Sep 2006 10:40:07 +0000 (10:40 +0000)]
0.9.16.24: (SETF INFO) compiler macro enabled
 * Since we now support SETF compiler-macros. Unfortunately the
   definition comes too late to affect large parts of SBCL -- but the
   same applies to the venerable compiler-macro for INFO.
 * Use KEYWORDP instead of CONSTANTP in these macros, as that (or
   self-evaluating-p) is what is actually ment -- no EVAL or
   CONSTANT-FORM-VALUE in sight.

17 years ago0.9.16.23:
Juho Snellman [Sat, 9 Sep 2006 08:00:03 +0000 (08:00 +0000)]
0.9.16.23:
One more simple-base-string -> simple-string substitution in
        the pathname code (pointed out by Yaroslav Kavenchuk on
        sbcl-devel).

17 years ago0.9.16.22:
William Harold Newman [Fri, 8 Sep 2006 14:35:21 +0000 (14:35 +0000)]
0.9.16.22:
logged bug
tiny comment typo fix

17 years ago0.9.16.21: small fixes and cleanups
Nikodemus Siivola [Thu, 7 Sep 2006 08:49:38 +0000 (08:49 +0000)]
0.9.16.21: small fixes and cleanups
 * timers expiring in dead thread no longer cause a TYPE-ERROR.
   Reported by Paul "Nonny Mouse" on sbcl-devel.
 * ASDF-INSTALL uses GNU tar on Solaris. From patch by Josip Gracin.
 * Unnecessary conditional in RUN-PROGRAM on Win32. Reported by Yaroslav
   Kavenchuck.
 * Use cut from index 1, not 0 in find-gnumake.sh. Reported by Harald
   Hanche-Olsen.

17 years ago0.9.16.20:
Juho Snellman [Thu, 7 Sep 2006 01:58:12 +0000 (01:58 +0000)]
0.9.16.20:
Some win32 cleanups (patch by Jack Unrue on sbcl-devel, 2006-08-31).

        * Replace remaining calls to perror() with fprintf(stderr, ...,
          GetLastError()) since errno is not set by Win32 API calls.
        * Disable debug output from os_map().

17 years ago0.9.16.19:
Juho Snellman [Thu, 7 Sep 2006 01:33:17 +0000 (01:33 +0000)]
0.9.16.19:
Add special-case for SB-INT:FIND-UNDELETED-PACKAGE-OR-LOSE in the
        fop-compiler, to make it use a FOP-PACKAGE fop instead of a
        longer FOP-FUNCALL sequence. (Patch by Alastair Bridgewater,
        sbcl-devel "Small fopcompiler hack" on 2006-08-22).

17 years ago0.9.16.18:
Juho Snellman [Thu, 7 Sep 2006 00:56:59 +0000 (00:56 +0000)]
0.9.16.18:
Fix installation into directories with spaces (reported by Edi
Weitz on sbcl-help).

17 years ago0.9.16.17:
Juho Snellman [Wed, 6 Sep 2006 20:27:09 +0000 (20:27 +0000)]
0.9.16.17:
Support for external formats in SB-ALIEN. The C-STRING alien-type
        specifier now accepts :EXTERNAL-FORMAT and :ELEMENT-TYPE parameters.
        This is a slightly incompatible change: to get the behaviour of
        the old C-STRING alien-type, use (C-STRING :EXTERNAL-FORMAT :ASCII
        :ELEMENT-TYPE BASE-CHAR).

        Thanks to Yaroslav Kavenchuk for doing most of the work on this.

        * Also add support for non-ascii pathnames
        * Add some recent CONTRIBUTORS
        * Update INSTALL
        * Add argument quote/space escaping to RUN-PROGRAM on win32

17 years ago0.9.16.16:
Juho Snellman [Sun, 3 Sep 2006 01:55:03 +0000 (01:55 +0000)]
0.9.16.16:
        Add bsd tar support to ASDF-INSTALL (patch by "bsd1628", sbcl-devel
        "Changes to ASDf-INSTALL to support NetBSD tar" on 2006-08-04).

17 years ago0.9.16.15: stamp down on warnings due to step instrumentation
Nikodemus Siivola [Sat, 2 Sep 2006 11:38:23 +0000 (11:38 +0000)]
0.9.16.15: stamp down on warnings due to step instrumentation
 * CALL-NEXT-METHOD body compiled without step-instumentation.
 * Get rid of the FAST-NARROWED-EMF kludge, replace it with another
   one: in addition to INVOKE-EFFECTIVE-METHOD-FUNCTION we now also
   have INVOKE-NARROW-EFFECTIVE-METHOD-FUNCTION.
 * Test.

17 years ago0.9.16.14:
Juho Snellman [Sat, 2 Sep 2006 00:29:56 +0000 (00:29 +0000)]
0.9.16.14:
        Add support for Unix98-style ptys. (thanks to Sidney Markowitz)

17 years ago0.9.16.13:
Juho Snellman [Fri, 1 Sep 2006 23:03:57 +0000 (23:03 +0000)]
0.9.16.13:
        Remove the horribly thread-unsafe globaldb caches. Both of them.

        * Makes single globaldb accesses significantly slower (about
          50% slowdown), but for any normal use-cases this is completely
          lost in the noise
        * Add a test

17 years ago0.9.16.12:
Christophe Rhodes [Fri, 1 Sep 2006 16:08:31 +0000 (16:08 +0000)]
0.9.16.12:
Whoops.  Commit extremely late printing code for
reference-condition with reference :amop :function ... (used in
unset funcallable-instance functions).  Also include
:amop :reader, as yet unused.

17 years ago0.9.16.11:
Christophe Rhodes [Fri, 1 Sep 2006 15:32:21 +0000 (15:32 +0000)]
0.9.16.11:
Give funcallable-standard-object the direct superclasses
(function standard-object), to make generic-function have a
superclass list in accord with CLHS 1.4.4.5.  This deviation
from AMOP is compatible with Lispworks and CLISP.

17 years ago0.9.16.10:
Christophe Rhodes [Fri, 1 Sep 2006 14:57:29 +0000 (14:57 +0000)]
0.9.16.10:
Massage the new ARRAY :SIMPLE-UNION2 type method into a little
bit more of acceptability.
... now (or simple-string simple-array) is the same as
(or simple-array simple-string)
... really quite complicated unions still seem to work, judging
by ETYPECASE.15 and SUBTYPEP.OR.4
... include some simple test cases.

17 years ago0.9.16.9:
Gabor Melis [Fri, 1 Sep 2006 10:53:45 +0000 (10:53 +0000)]
0.9.16.9:
  * raw slots are of type lispobj instead of long for the sake of
    alpha

17 years ago0.9.16.8: less conservatism
Gabor Melis [Fri, 1 Sep 2006 10:32:27 +0000 (10:32 +0000)]
0.9.16.8: less conservatism
  * the word at control_stack_end is not part of the control stack and
    not a pointer to be preserved
  * similarly, don't preserve the first word after the interrupt context

17 years ago0.9.16.7: renamed ppc-darwin-{langinfo,dlshim} to
Cyrus Harmon [Thu, 31 Aug 2006 07:48:06 +0000 (07:48 +0000)]
0.9.16.7: renamed ppc-darwin-{langinfo,dlshim} to
       darwin-{langinfo,dlshim}
 * removed ppc-darwin-dlshim.{c,h}
 * removed ppc-darwin-langinfo.{c,h}
 * removed x86-darwin-langinfo.c
 * added darwin-dlshim.{c,h}
 * added darwin-langinfo.{c,h}
 * fixed references to these in Config.x86-darwin and
       Config.ppc-darwin
 * fixed references to these in grovel-headers.c

17 years ago0.9.16.6: better circularity detection in fasl dumper
Nikodemus Siivola [Tue, 29 Aug 2006 13:35:23 +0000 (13:35 +0000)]
0.9.16.6: better circularity detection in fasl dumper
 * We need to detect car-circularity too, which can get expensive, so
   we approximate: CYCLIC-LIST-P => MAYBE-CYCLIC-P
 * Reported by Marco Monteiro on sbcl-devel.

17 years ago0.9.16.5: clean up some unused symbols from SB-EXT (really)
Nikodemus Siivola [Mon, 28 Aug 2006 17:16:22 +0000 (17:16 +0000)]
0.9.16.5: clean up some unused symbols from SB-EXT (really)
 The missing package-data-list.lisp-expr changes from last commit.

 ETOOMANYCHERRIES

17 years ago0.9.16.4: clean up some unused symbols from SB-EXT
Nikodemus Siivola [Mon, 28 Aug 2006 17:14:04 +0000 (17:14 +0000)]
0.9.16.4: clean up some unused symbols from SB-EXT
 In Memoriam:
     *GC-NOTIFY-AFTER*
     *GC-NOTIFY-BEFORE*
     *GC-NOTIFY-STREAM*
     *ERROR-PRINT-LENGTH*
     *ERROR-PRINT-LEVEL*
     *ERROR-PRINT-LINES*

17 years ago0.9.16.3: initfile refactoring
Nikodemus Siivola [Mon, 28 Aug 2006 16:56:47 +0000 (16:56 +0000)]
0.9.16.3: initfile refactoring
 * Move all related logic to PROCESS-INIT-FILE.
 * Enable customization of default user- and sysinit file via
   SB-IMPL::*SYSINIT-PATHNAME-FUNCTION* and
   SB-IMPL::*USERNIT-PATHNAME-FUNCTION*.
 * Fixes -- and makes testable without root access -- the bug
   regarding loading of the default sysinit file, reported by Leonid
   Slobodov.
 * A few missing #!+sb-doc's in toplevel.lisp.

17 years ago0.9.16.2:
Christophe Rhodes [Mon, 28 Aug 2006 12:14:30 +0000 (12:14 +0000)]
0.9.16.2:
Fix bug found by compiling with both a buggy
funcallable-instance type under intersection and a patch for
generic (Gray-like) sequences.  Weird, huh?
... make sure we have a sequence before using sequence functions
in ENOUGH-NAMESTRING-like functions.

17 years ago0.9.16.1:
Christophe Rhodes [Mon, 28 Aug 2006 12:08:19 +0000 (12:08 +0000)]
0.9.16.1:
Rework the named :complex-intersection-arg2 method for instance
and funcallable-instance, making it a lot clearer and fixing
bugs in the process...
... structure-classoids are always subtypep instance and never
intersect funcallable-instance;
... standard-classoids are different.  It's possible to make
a subclass of an instance class which is
funcallable-instance (if you pardon the loose
construction), while the reverse is not possible.

17 years ago0.9.16:
William Harold Newman [Fri, 25 Aug 2006 21:26:42 +0000 (21:26 +0000)]
0.9.16:
release, will be tagged as sbcl_0_9_16

17 years ago0.9.15.48: more precice unions of array types
Nikodemus Siivola [Wed, 23 Aug 2006 12:46:26 +0000 (12:46 +0000)]
0.9.15.48: more precice unions of array types
 * implement ARRAY :SIMPLE-UNION2, and don't use CSUBTYPEP to shortcut
   unions where both types are array types -- fixes bug #306a. (Move to tests.)
 * move comments in UNION-COMPLEX-SUBTYPEP-ARG2 slightly for clarity.
 * bug #367 went with #368.
 * bug #387 is fixed nowadays.

17 years ago0.9.15.47: compiler-macros for SETF functions
Nikodemus Siivola [Tue, 22 Aug 2006 17:01:39 +0000 (17:01 +0000)]
0.9.15.47: compiler-macros for SETF functions
 * ...already work, so remove the warning, and add a test

17 years ago0.9.15.46: cosmetic cleanups
Nikodemus Siivola [Tue, 22 Aug 2006 15:48:56 +0000 (15:48 +0000)]
0.9.15.46: cosmetic cleanups
 * SLOT-VALUE-OR-DEFAULT now uses an UNREADABLE-OBJECT as the default
   marker for unbound slots, giving us #<unbound slot> instead of "unbound".
 * Edit special operator docstrings for consistency.
 * Whitespace.

17 years ago0.9.15.45:
Christophe Rhodes [Tue, 22 Aug 2006 13:23:41 +0000 (13:23 +0000)]
0.9.15.45:
Make ENSURE-CLASS and ENSURE-GENERIC-FUNCTION do what AMOP says
regarding the :METACLASS and :GENERIC-FUNCTION-CLASS default
arguments.  I don't like it, but that's what it says, and as
Bruno points out on sbcl-devel, no default is right in all
circumstances.
... we didn't call ENSURE-CLASS ourselves except as part of
DEFCLASS' expansion; we did call
ENSURE-GENERIC-FUNCTION, so arrange to call it only
when necessary and only with the right
:generic-function-class argument.
... while we're at it, fix a bug in ENSURE-CLASS, which got
the metaclass wrong if the argument was provided
more than once.
... document one or two more small MOP deviations in the
manual.

17 years ago0.9.15.44: fix bug 368: intersection of array types
Nikodemus Siivola [Mon, 21 Aug 2006 17:54:38 +0000 (17:54 +0000)]
0.9.15.44: fix bug 368: intersection of array types
 * TYPE-INTERSECTION of arrays preserves the specialized type when
   appropriate -- even if the intersection of the expressed types is
   empty.
 * Delete bug 217 -- has been fixed, is in the test-suite.
 * Note about bug 235.
 * Not more *USE-IMPLEMENTATION-TYPES*, behave always as if it was T.

17 years ago0.9.15.43:
Christophe Rhodes [Mon, 21 Aug 2006 16:34:58 +0000 (16:34 +0000)]
0.9.15.43:
Tiny rename in PCL, to stop me from confusing UPDATE-CLASS with
the completely unrelated (FLET UPDATE-CLASS).

17 years ago0.9.15.42:
Christophe Rhodes [Mon, 21 Aug 2006 16:25:11 +0000 (16:25 +0000)]
0.9.15.42:
Move to latest upstream ASDF.  (Contains a workaround for
systems that have been placed in CL-USER)

17 years ago0.9.15.41: preparation for weak hash tables
Gabor Melis [Sun, 20 Aug 2006 20:51:43 +0000 (20:51 +0000)]
0.9.15.41: preparation for weak hash tables
* Indentation changes to target-hash-table.lisp to make the lines fit
  into a 80 char wide emacs.
* Small refactoring of hash table related code in gencgc: of the
  x86/x86-64 version of scav_vector a function called
  scav_hash_table_entries is split off and some repetitive code is
  factored out.

17 years ago0.9.15.40: reentrant STABLE-SORT and ADJUST-ARRAY
Nikodemus Siivola [Sun, 20 Aug 2006 09:28:22 +0000 (09:28 +0000)]
0.9.15.40: reentrant STABLE-SORT and ADJUST-ARRAY
 * Create new (initially length 0) temp vectors for each thread.
 * Rename APPLY-KEYED-PRED to FUNCALL2-USING-KEY.
 * Update threading-specials list a bit.

17 years ago0.9.15.39: futex(FUTEX_WAIT) calls need to check for EINTR
Nikodemus Siivola [Fri, 18 Aug 2006 16:21:54 +0000 (16:21 +0000)]
0.9.15.39: futex(FUTEX_WAIT) calls need to check for EINTR
 * Caused bogus wakeups in CONDITION-WAIT on Linux from SIGCONT.

17 years ago0.9.15.38: RUN-PROGRAM win32 patch
Teemu Kalvas [Fri, 18 Aug 2006 13:09:58 +0000 (13:09 +0000)]
0.9.15.38: RUN-PROGRAM win32 patch
  * Fixed control flow in error cases.
  * Added -mno-cygwin to contrib EXTRA_CFLAGS on Cygwin.

17 years ago0.9.15.17:
Christophe Rhodes [Thu, 17 Aug 2006 15:12:46 +0000 (15:12 +0000)]
0.9.15.17:
Implement the :FUNCTION initarg for method initialization
... half of the battle here was altering the propagation of
information about methods around the system.  Prior
to this checkin, information was kept in a (non-weak)
hash table holding plists for method functions and
method fast functions.  Instead, we associate the
plist with the method itself.
... implement method-qualifiers as a proper slot reader, rather
than through the plist;
... method-function-get-DIE-DIE-DIE
... constant-method-call and constant-fast-method-call
structures for the special case of constant-value
(e.g. predicate) generic functions
... remove :METHOD-SPEC initarg, since it's useless
... rely more on interning instead of METHOD-FUNCTION-PV-TABLE
... remove dead code (e.g. METHOD-FUNCTION-CLOSURE-GENERATOR,
MAKE-INTERNAL-READER-METHOD-FUNCTION)
... define a %METHOD-FUNCTION funcallable structure, to bind
function and fast-function closely together.
... remove the :FAST-FUNCTION initarg.  Now, if the system wants
a fast-function, it creates a %method-function structure
with the fast-function in the fast-function slot (and
an ordinary method-function as the
funcallable-instance-function)
... some test cases.  (This fixes bug #361 among others, and we
have no current failures against the Closer
mop-feature-tests)

17 years ago0.9.15.36: less intrusive step instrumentation
Nikodemus Siivola [Wed, 16 Aug 2006 19:05:45 +0000 (19:05 +0000)]
0.9.15.36: less intrusive step instrumentation

 * INVOKE-EFFECTIVE-METHOD was missing a binding for the
   effective-method-form, causing potential multiple evaluation and
   also creating one source of confusion when step instrumenting CLOS
   code, manifesting as:

    Asserted type (MOD 536870911) conflicts with derived type
    (VALUES (OR FUNCTION SB-PCL::METHOD-CALL SB-PCL::FAST-METHOD-CALL)
            &OPTIONAL).

 * If the form being instrumented is a call to a known single-valued
   function we can instrument it in a way that doesn't kill the
   type-inference. This alone is enough to get rid of most warnings
   such as above.

 * Add rudimentary (B)acktrace command to the built-in stepper.

17 years ago0.9.15.35: fix CONS :SIMPLE-= method
Nikodemus Siivola [Wed, 16 Aug 2006 18:04:34 +0000 (18:04 +0000)]
0.9.15.35: fix CONS :SIMPLE-= method
 * The failure is uncertain if both types may be the empty type
   in disguise.
 * Tests.

17 years ago0.9.15.34: CONS type comparison
Nikodemus Siivola [Tue, 15 Aug 2006 10:24:10 +0000 (10:24 +0000)]
0.9.15.34: CONS type comparison
 * Secondary return value from :SIMPLE-= method for CONS was missing,
   causing TYPE= failures to appear ambiguous when they were not.

17 years ago0.9.15.33:
Christophe Rhodes [Tue, 15 Aug 2006 09:11:34 +0000 (09:11 +0000)]
0.9.15.33:
Make whitespacely-canonical-filenames kinder to alternative
revision control systems.  (Not stomping on "pristine" trees
makes them happier)

17 years ago0.9.15.32:
Christophe Rhodes [Tue, 15 Aug 2006 08:49:51 +0000 (08:49 +0000)]
0.9.15.32:
More baby steps to the removal of the :fast-function initarg.
This time, some permutation vector cleanups, partly motivated by
similar changes in CMUCL and partly by the need to communicate
information between a method function and the other method
initargs.
... remove the "interning" of permutation vectors themselves.
... the first element of a permutation vector is no longer "for
information"
... destructively update the slots of a pv when the class
changes.  (NB: this has threadsafety implications:
revisit when the dust settles.)
... delete the PV-TABLE-SYMBOL code; replace the somewhat crufty
fashion of getting access to the method's pv-table
(using symbol-value of an uninterned symbol, which is
SET by INITIALIZE-METHOD-FUNCTION) by a LOAD-TIME-VALUE,
relying on INTERN-PV-TABLE to, well, intern a PV table.
(NB: this has performance implications if method
functions are not compiled.)
... some test cases: some simple tests of class redefinition and
slot value, and some where there is a make-method-lambda
customization.  Also log a failing case where the PV
slot-value optimization is broken.

17 years ago0.9.15.31: RUN-PROGRAM win32 patch
Teemu Kalvas [Mon, 14 Aug 2006 14:11:45 +0000 (14:11 +0000)]
0.9.15.31: RUN-PROGRAM win32 patch
  * Fixed input, output and error redirection in RUN-PROGRAM for win32.