Switch branches/tags
Commits on Sep 26, 2006
  1. 0.9.17:

    William Harold Newman
    William Harold Newman committed Sep 26, 2006
    	release, will be tagged as sbcl_0_9_17
Commits on Sep 24, 2006

    jsnell committed Sep 24, 2006
            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.
Commits on Sep 20, 2006

    jsnell committed Sep 20, 2006
            Fix building with CMUCL (typo in the name of an IGNOREd variable

    jsnell committed Sep 20, 2006
            Stepper tweaks:
            * Inhibit stepping while calling the stepper hook.
            * Make the body of STEP steppable
            * Signal a STEP-FINISHED-CONDITION when STEP returns

    jsnell committed Sep 20, 2006
            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.

    jsnell committed Sep 20, 2006
            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.

    jsnell committed Sep 20, 2006
            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
Commits on Sep 19, 2006

    jsnell committed Sep 19, 2006
    	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
            * As a side effect, SETQ-P becomes a little more accurate

    jsnell committed Sep 19, 2006
            Oops, unblock interrupts while handling a single-stepper trap. Fixes
            GC deadlocks while using the stepper in Slime on a threaded
Commits on Sep 18, 2006

    jsnell committed Sep 18, 2006
            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).

    csrhodes committed Sep 18, 2006
    	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.

    jsnell committed Sep 18, 2006
            Oops, fix minor bug introduced in .35: #+sb-unicode -> #!+sb-unicode
Commits on Sep 17, 2006

    jsnell committed Sep 17, 2006
            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.

    Nathan Froyd
    Nathan Froyd committed Sep 17, 2006
    	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.

    Nathan Froyd
    Nathan Froyd committed Sep 17, 2006
    	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
Commits on Sep 15, 2006
  1. weak hash tables

    Gabor Melis
    Gabor Melis committed Sep 15, 2006
      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.

    csrhodes committed Sep 15, 2006
    	Belatedly add a test for the primitive-type / intersection-type
Commits on Sep 14, 2006

    csrhodes committed Sep 14, 2006
    	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
    	... also delete some stale classoid symbols.
Commits on Sep 13, 2006

    jsnell committed Sep 13, 2006
            The new timer.impure test added in 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.

    Nathan Froyd
    Nathan Froyd committed Sep 13, 2006
    	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
    	* 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;

    jsnell committed Sep 13, 2006
            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,
              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.
Commits on Sep 12, 2006

    William Harold Newman
    William Harold Newman committed Sep 12, 2006
    	memory crutch for middle-aged maintainers: repeated NS's
    		explanation in commit message as comment
    		above the change
  2. build fix for CMUCL and older SBCLs

    nikodemus committed Sep 12, 2006
     * 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.
Commits on Sep 11, 2006
  1. (SETF INFO) compiler macro enabled

    nikodemus committed Sep 11, 2006
     * 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.
Commits on Sep 9, 2006

    jsnell committed Sep 9, 2006
    	One more simple-base-string -> simple-string substitution in
            the pathname code (pointed out by Yaroslav Kavenchuk on
Commits on Sep 8, 2006

    William Harold Newman
    William Harold Newman committed Sep 8, 2006
    	logged bug
    	tiny comment typo fix
Commits on Sep 7, 2006
  1. small fixes and cleanups

    nikodemus committed Sep 7, 2006
     * 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
     * Use cut from index 1, not 0 in Reported by Harald

    jsnell committed Sep 7, 2006
    	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().

    jsnell committed Sep 7, 2006
    	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).

    jsnell committed Sep 7, 2006
    	Fix installation into directories with spaces (reported by Edi
    	Weitz on sbcl-help).
Commits on Sep 6, 2006

    jsnell committed Sep 6, 2006
    	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
            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
Commits on Sep 3, 2006

    jsnell committed Sep 3, 2006
            Add bsd tar support to ASDF-INSTALL (patch by "bsd1628", sbcl-devel
            "Changes to ASDf-INSTALL to support NetBSD tar" on 2006-08-04).
Commits on Sep 2, 2006
  1. stamp down on warnings due to step instrumentation

    nikodemus committed Sep 2, 2006
     * 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
     * Test.

    jsnell committed Sep 2, 2006
            Add support for Unix98-style ptys. (thanks to Sidney Markowitz)
Commits on Sep 1, 2006

    jsnell committed Sep 1, 2006
            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