Switch branches/tags
Commits on Aug 25, 2006
  1. 0.9.16:

    William Harold Newman committed Aug 25, 2006
    	release, will be tagged as sbcl_0_9_16
Commits on Aug 23, 2006
  1. more precice unions of array types

    nikodemus committed Aug 23, 2006
     * 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.
Commits on Aug 22, 2006
  1. compiler-macros for SETF functions

    nikodemus committed Aug 22, 2006
     * ...already work, so remove the warning, and add a test
  2. cosmetic cleanups

    nikodemus committed Aug 22, 2006
     * 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.

    csrhodes committed Aug 22, 2006
    	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
    	... 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
Commits on Aug 21, 2006
  1. fix bug 368: intersection of array types

    nikodemus committed Aug 21, 2006
     * TYPE-INTERSECTION of arrays preserves the specialized type when
       appropriate -- even if the intersection of the expressed types is
     * 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.

    csrhodes committed Aug 21, 2006
    	Tiny rename in PCL, to stop me from confusing UPDATE-CLASS with
    	the completely unrelated (FLET UPDATE-CLASS).

    csrhodes committed Aug 21, 2006
    	Move to latest upstream ASDF.  (Contains a workaround for
    	systems that have been placed in CL-USER)
Commits on Aug 20, 2006
  1. preparation for weak hash tables

    Gabor Melis committed Aug 20, 2006
    * 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.
  2. reentrant STABLE-SORT and ADJUST-ARRAY

    nikodemus committed Aug 20, 2006
     * Create new (initially length 0) temp vectors for each thread.
     * Update threading-specials list a bit.
Commits on Aug 18, 2006
  1. futex(FUTEX_WAIT) calls need to check for EINTR

    nikodemus committed Aug 18, 2006
     * Caused bogus wakeups in CONDITION-WAIT on Linux from SIGCONT.
  2. RUN-PROGRAM win32 patch

    Teemu Kalvas committed Aug 18, 2006
      * Fixed control flow in error cases.
      * Added -mno-cygwin to contrib EXTRA_CFLAGS on Cygwin.
Commits on Aug 17, 2006

    csrhodes committed Aug 17, 2006
    	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,
    	... 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
    	... some test cases.  (This fixes bug #361 among others, and we
    		have no current failures against the Closer
Commits on Aug 16, 2006
  1. less intrusive step instrumentation

    nikodemus committed Aug 16, 2006
     * 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
     * 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.
  2. fix CONS :SIMPLE-= method

    nikodemus committed Aug 16, 2006
     * The failure is uncertain if both types may be the empty type
       in disguise.
     * Tests.
Commits on Aug 15, 2006
  1. CONS type comparison

    nikodemus committed Aug 15, 2006
     * Secondary return value from :SIMPLE-= method for CONS was missing,
       causing TYPE= failures to appear ambiguous when they were not.

    csrhodes committed Aug 15, 2006
    	Make whitespacely-canonical-filenames kinder to alternative
    	revision control systems.  (Not stomping on "pristine" trees
    	makes them happier)

    csrhodes committed Aug 15, 2006
    	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
    	... remove the "interning" of permutation vectors themselves.
    	... the first element of a permutation vector is no longer "for
    	... 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
    		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.
Commits on Aug 14, 2006
  1. RUN-PROGRAM win32 patch

    Teemu Kalvas committed Aug 14, 2006
      * Fixed input, output and error redirection in RUN-PROGRAM for win32.
  2. RUN-PROGRAM win32 patch

    Teemu Kalvas committed Aug 14, 2006
      * Fixed input, output and error redirection in RUN-PROGRAM for win32.

    William Harold Newman committed Aug 14, 2006
    	incremented +FASL-FILE-VERSION+

    csrhodes committed Aug 14, 2006
    	Before I forget: since working on a %method-function branch to
    	fix the :function / :fast-function initarg to methods has
    	uncovered some related-but-fixable bugs, do an early merge to
    	clear them up:
    	... the special declaration for pv-table-symbol was in the
    		wrong place, so spurious warnings were generated;
    	... make-emf-from-method can return a method-call (not a
    		fast-method-call), so fix cases where both the
    		caller and callee of a MAKE-METHOD form were
    	... remove an ancient workaround for a KCL bug related to
Commits on Aug 12, 2006
  1. less instrumentation

    nikodemus committed Aug 12, 2006
     * Don't instrument inline-expansions of known functions. Fixes at
       least some of the "step-instrumentation confusing the compiler"
       IR1-CONVERT-INLINE-EXPANSION, since that is the only way it is
       currently used. Refactor slightly for simplicity, given the way it
       is actually used.
     * Test-case.
Commits on Aug 11, 2006
  1. compiler-macro expansion for FUNCALL forms & bugfixes

    nikodemus committed Aug 11, 2006
     * Refactor the compiler to first consider special forms and
       compiler-macro expansions before other options. (Necessary for the
     * FUNCALL forms now get compiler-macro expansion when applicable.
     * COMPILER-MACRO-FUNCTION takes shadowing by local functions into
     * Local INLINE declarations no longer inhibit compiler-macro
     * Tests.
  2. compiler-macro lambda-list parsing and FUNCALL forms

    nikodemus committed Aug 11, 2006
     * We previously handled only the &WHOLE case, and also failed to
       handle the argument count checking correct. Now things should work,
       but FUNCALL forms are not still subject to compiler-macroexpansion -- yet.
       (Reported by James Y Knight)
     * Refactor the macro-lambda-list parsing code slightly for easier
Commits on Aug 10, 2006
  1. COMPILE-FILE-PATHNAME when output-file doesn't have a type

    nikodemus committed Aug 10, 2006
     * Bug reported by Robert Dodier.

    csrhodes committed Aug 10, 2006
    	Cosmetic change
    	... s/pcl-funcallable-instance/standard-funcallable-instance/
    	(where by "STANDARD" we begin to mean CLOS/AMOP-compatible)
  3. finding defintions of profiled functions

    nikodemus committed Aug 10, 2006
     * Patch by Troels Henriksen.
     * Test-case missing from
  4. check for error, do not aver, do not collect $200

    nikodemus committed Aug 10, 2006
     * Reported by Antonio Martinez.
  5. better hashing of general arrays

    nikodemus committed Aug 10, 2006
     * Use the same algorithm as SB-INT:PSXHASH uses for general arrays.
     * Performance problem reported by Andy Fingerhut.
  6. MERGE-PATHNAMES is not unsafely-flushable

    nikodemus committed Aug 10, 2006
     * Analogous to
     * Fix the test from to actually test a failing case.
     * Add an explanatory comment with the test-cases.
Commits on Aug 9, 2006

    csrhodes committed Aug 9, 2006
    	Allow forward-referenced-classes as specializers
    	... they are SPECIALIZERP, they have proper names...
    	... but it's at least slightly ANSIly-extending, so signal a
    	Take this opportunity to rework the method initarg checking code
    	... no more LEGAL-FOO generic functions.

    csrhodes committed Aug 9, 2006
    	Add a (lightly-modified) version of Pascal Costanza's
    	implementation of mixed beta/standard method combination
    	(which happens to have a specialized make-method-lambda).
Commits on Aug 8, 2006

    csrhodes committed Aug 8, 2006
    	OK then.  Fix %INSTANCE-TYPEP deftransform
    	... if we're testing for a structure-classoid, then any object
    		with an invalid layout is neccessarily not typep that
    	... if we're testing for something with a fixed depthoid (i.e.
    		something which is always at a given position in the
    		layout-inherits), then if we get an object with an
    		invalid layout we mustn't throw an error before trying
    		to update the object.

    csrhodes committed Aug 8, 2006
    	Whoops.  Don't claim to have fixed a bug that hasn't been fixed
    	yet.  (The perils of not enough source trees...)