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

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

17 years ago0.9.15.30:
William Harold Newman [Mon, 14 Aug 2006 13:07:50 +0000 (13:07 +0000)]
0.9.15.30:
incremented +FASL-FILE-VERSION+

17 years ago0.9.15.29:
Christophe Rhodes [Mon, 14 Aug 2006 09:21:57 +0000 (09:21 +0000)]
0.9.15.29:
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
non-standard.
... remove an ancient workaround for a KCL bug related to
pv-table-symbol.

17 years ago0.9.15.28: less instrumentation
Nikodemus Siivola [Sat, 12 Aug 2006 09:55:13 +0000 (09:55 +0000)]
0.9.15.28: less instrumentation

 * Don't instrument inline-expansions of known functions. Fixes at
   least some of the "step-instrumentation confusing the compiler"
   problems.

 * Rename IR1-CONVERT-LAMBDA-FOR-DEFUN to
   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.

17 years ago0.9.15.27: compiler-macro expansion for FUNCALL forms & bugfixes
Nikodemus Siivola [Fri, 11 Aug 2006 13:37:18 +0000 (13:37 +0000)]
0.9.15.27: compiler-macro expansion for FUNCALL forms & bugfixes
 * Refactor the compiler to first consider special forms and
   compiler-macro expansions before other options. (Necessary for the
   rest.)

 * FUNCALL forms now get compiler-macro expansion when applicable.

 * COMPILER-MACRO-FUNCTION takes shadowing by local functions into
   account.

 * Local INLINE declarations no longer inhibit compiler-macro
   expansion.

 * Tests.

17 years ago0.9.15.26: compiler-macro lambda-list parsing and FUNCALL forms
Nikodemus Siivola [Fri, 11 Aug 2006 08:08:39 +0000 (08:08 +0000)]
0.9.15.26: compiler-macro lambda-list parsing and FUNCALL forms
 * 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
   comprehension.

17 years ago0.9.15.25: COMPILE-FILE-PATHNAME when output-file doesn't have a type
Nikodemus Siivola [Thu, 10 Aug 2006 12:48:45 +0000 (12:48 +0000)]
0.9.15.25: COMPILE-FILE-PATHNAME when output-file doesn't have a type
 * Bug reported by Robert Dodier.

17 years ago0.9.15.24:
Christophe Rhodes [Thu, 10 Aug 2006 11:24:03 +0000 (11:24 +0000)]
0.9.15.24:
Cosmetic change
... s/pcl-funcallable-instance/standard-funcallable-instance/
(where by "STANDARD" we begin to mean CLOS/AMOP-compatible)

17 years ago0.9.15.23: finding defintions of profiled functions
Nikodemus Siivola [Thu, 10 Aug 2006 11:17:27 +0000 (11:17 +0000)]
0.9.15.23: finding defintions of profiled functions
 * Patch by Troels Henriksen.
 * Test-case missing from 0.9.15.22.

17 years ago0.9.15.22: check for error, do not aver, do not collect $200
Nikodemus Siivola [Thu, 10 Aug 2006 10:18:50 +0000 (10:18 +0000)]
0.9.15.22: check for error, do not aver, do not collect $200
 * Reported by Antonio Martinez.

17 years ago0.9.15.21: better hashing of general arrays
Nikodemus Siivola [Thu, 10 Aug 2006 10:11:39 +0000 (10:11 +0000)]
0.9.15.21: better hashing of general arrays
 * Use the same algorithm as SB-INT:PSXHASH uses for general arrays.
 * Performance problem reported by Andy Fingerhut.

17 years ago0.9.15.20: MERGE-PATHNAMES is not unsafely-flushable
Nikodemus Siivola [Thu, 10 Aug 2006 05:55:23 +0000 (05:55 +0000)]
0.9.15.20: MERGE-PATHNAMES is not unsafely-flushable
 * Analogous to 0.9.15.13.
 * Fix the test from 0.9.15.13 to actually test a failing case.
 * Add an explanatory comment with the test-cases.

17 years ago0.9.15.19:
Christophe Rhodes [Wed, 9 Aug 2006 16:35:28 +0000 (16:35 +0000)]
0.9.15.19:
Allow forward-referenced-classes as specializers
... they are SPECIALIZERP, they have proper names...
... but it's at least slightly ANSIly-extending, so signal a
STYLE-WARNING.
Take this opportunity to rework the method initarg checking code
... no more LEGAL-FOO generic functions.

17 years ago0.9.15.18:
Christophe Rhodes [Wed, 9 Aug 2006 15:07:32 +0000 (15:07 +0000)]
0.9.15.18:
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).

17 years ago0.9.15.17:
Christophe Rhodes [Tue, 8 Aug 2006 20:14:21 +0000 (20:14 +0000)]
0.9.15.17:
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
class.
... 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.

17 years ago0.9.15.16:
Christophe Rhodes [Tue, 8 Aug 2006 15:03:46 +0000 (15:03 +0000)]
0.9.15.16:
Whoops.  Don't claim to have fixed a bug that hasn't been fixed
yet.  (The perils of not enough source trees...)

17 years ago0.9.15.15:
Christophe Rhodes [Tue, 8 Aug 2006 14:24:24 +0000 (14:24 +0000)]
0.9.15.15:
Fix bug #339c: INVALID-METHOD-ERROR from methods not matching
any method group.
... I'm actually not convinced by this fix: I think the method
combination itself should probably call I-M-E, rather
than have the effective method call it (see CLHS on
INVALID-METHOD-ERROR); however, at the moment, given
PRECOMPUTE-EFFECTIVE-METHOD's behaviour, this is the
only way to signal the error at the right time.  Revisit
when/if effective-method precomputation is adjusted.

17 years ago0.9.15.14:
Christophe Rhodes [Mon, 7 Aug 2006 15:56:01 +0000 (15:56 +0000)]
0.9.15.14:
LESS BUGS!

Delete a bunch of now-dead bugs from BUGS (and comment on one or
two others):

        Bug | Fixed in
        ----+---------
287 | 0.9.9.32
337 | 0.9.15.12
343 | 0.9.3.32
355 | 0.9.6.37
358 | 0.9.1.13
360 | 0.9.1.44
364 | 0.9.14.23
365 | 0.9.4.56
366 | 0.9.6.11 / 0.9.8.41 / 0.9.9.25
394 | 0.9.14.21

17 years ago0.9.15.13: make PATHNAME not unsafely-flushable
Nikodemus Siivola [Mon, 7 Aug 2006 14:31:45 +0000 (14:31 +0000)]
0.9.15.13: make PATHNAME not unsafely-flushable
 * Reported by Richard Kreuter on sbcl-help.
 * Add DEFTRANSFORMS for common cases.

17 years ago0.9.15.12:
Christophe Rhodes [Sat, 5 Aug 2006 12:32:34 +0000 (12:32 +0000)]
0.9.15.12:
Fix longstanding Haiblebug "method combination types that make
use of MAKE-METHOD don't work with user-defined method classes"
(sbcl-devel 2004-06-11)
... in a cheating way; special-case the second argument to
call-method, which probably isn't completely
                MOP-friendly but does seem to play nice with the test
                cases I can construct that don't change the semantics of
                call-method.
        ... test cases from Pascal Costanza and Bruno Haible

17 years ago0.9.15.11:
Christophe Rhodes [Sat, 5 Aug 2006 10:56:58 +0000 (10:56 +0000)]
0.9.15.11:
No-one has told me that I'm missing something, so
... don't declare the types of temporaries used for keyword
argument processing.  (It caused a pointless extra
typecheck in safe code, and additionally gave a
confusing error message when the user passed a bogus
argument)
... test cases, both implicit (with DEFSTRUCT) and explicit.

17 years ago0.9.15.10:
Juho Snellman [Fri, 4 Aug 2006 14:34:46 +0000 (14:34 +0000)]
0.9.15.10:
        win32 changes to the test suite from Yaroslav Kavenchuk.

17 years ago0.9.15.9:
Juho Snellman [Fri, 4 Aug 2006 14:14:12 +0000 (14:14 +0000)]
0.9.15.9:
        Changes to DISABLE-DEBUGGER:

        * Allow disabling the debugger when *INVOKE-DEBUGGER-HOOK* is non-nil,
          so that --disable-debugger works even when restoring cores where
          that has been done.
        * Store the old value of *I-D-H* when disabling the debugger, and
          restore it back when enabling the debugger.
        * Fix a bug where LDB wouldn't get disabled by --disable-debugger
          if the core had been saved from an sbcl instance where the
          debugger was disabled.

17 years ago0.9.15.8:
Nathan Froyd [Sat, 29 Jul 2006 22:59:05 +0000 (22:59 +0000)]
0.9.15.8:
Improve COUNT on bitvectors.
... pull conditionals out of the inner loop, similar to the recent
    changes for BIGNUM-LOGCOUNT;
... while we're at it, change a few ='s in loop termination
    conditions to >= for better type inference and code generation.

17 years ago0.9.15.7:
Nathan Froyd [Sat, 29 Jul 2006 21:50:39 +0000 (21:50 +0000)]
0.9.15.7:
More OPTIMIZATIONS.

17 years ago0.9.15.6:
Juho Snellman [Sat, 29 Jul 2006 01:58:37 +0000 (01:58 +0000)]
0.9.15.6:
Fix typo in threading.texinfo code example (extra paren).

17 years ago0.9.15.5:
Juho Snellman [Sat, 29 Jul 2006 01:54:51 +0000 (01:54 +0000)]
0.9.15.5:
        Oops, the default SBCL_HOME in runtime.c was accidentally changed in
        0.9.15.4. Revert that part of the patch.

17 years ago0.9.15.4:
Juho Snellman [Fri, 28 Jul 2006 20:09:08 +0000 (20:09 +0000)]
0.9.15.4:
        If the core wasn't found on startup, don't just say we couldn't
        find it, but also where sbcl thought the core should be.

17 years ago0.9.15.3:
Christophe Rhodes [Fri, 28 Jul 2006 14:47:21 +0000 (14:47 +0000)]
0.9.15.3:
Implement the READER-METHOD-CLASS/WRITER-METHOD-CLASS protocol.

In the process, note that the accessor methods generated for
(slot-value x 'a) [ on generic functions of names like
(SB-PCL::SLOT-ACCESSOR :GLOBAL A SB-PCL::READER) ] are not
standard accessor methods, as they do not correspond to a given
slot definition.  So implement
GLOBAL-{READER,WRITER,BOUNDP}-METHOD classes for those, which
have a slot name but no slot definition.

Some rearrangements of early methods to support the new
functionality.  REAL-MAKE-A-METHOD has to work moderately hard
to separate out all the various ways it can be called.

Include a test file for two ways of overriding the default
methods.

17 years ago0.9.15.2:
Juho Snellman [Fri, 28 Jul 2006 01:26:23 +0000 (01:26 +0000)]
0.9.15.2:
        Fix wrong initarg to SIMPLE-PACKAGE-ERROR in WITH-PACKAGE-ITERATOR.
        (Patch from Peter Graves, sbcl-devel, "Apparent buglet in
        WITH-PACKAGE-ITERATOR")

17 years ago0.9.15.1:
Juho Snellman [Fri, 28 Jul 2006 01:08:40 +0000 (01:08 +0000)]
0.9.15.1:
Faster implementation of the LOGCOUNT VOP for x86 and x86-64,
        and an faster BIGNUM-LOGCOUNT on all platforms. (Patch from
        Lutz Euler on sbcl-devel, "Patch: Optimisation of LOGCOUNT" on
        2006-07-23).

17 years ago0.9.15:
William Harold Newman [Wed, 26 Jul 2006 20:50:20 +0000 (20:50 +0000)]
0.9.15:
release, will be tagged as sbcl_0_9_15

17 years ago0.9.14.32:
Christophe Rhodes [Tue, 25 Jul 2006 16:06:31 +0000 (16:06 +0000)]
0.9.14.32:
Bandage for James Y Knight "internal PCL type error" sbcl-devel
2006-06-20.
... don't let invalid-wrappers near a cache in MAKE-EMF-CACHE.
... test case (+ whitespace)

Note that MAKE-EMF-CACHE via MEC-ALL-CLASSES-FOO functions is
hideously written, and will perform the same work several times,
pointlessly.  Rather than build up several large lists with
duplicated class lists between them, it might be sensible to
perform some kind of walk down the class hierarchies, performing
wrapper invalidation and regeneration and class finalization as
required.

17 years ago0.9.14.31:
Juho Snellman [Mon, 24 Jul 2006 22:50:59 +0000 (22:50 +0000)]
0.9.14.31:
Bump +fasl-file-version+ for 0.9.15.

17 years ago0.9.14.30:
Juho Snellman [Thu, 20 Jul 2006 17:45:53 +0000 (17:45 +0000)]
0.9.14.30:
Micro-optimize x86-64 MOVE-FROM-SIGNED a bit more (thanks to
        Lutz Euler).

17 years ago0.9.14.29:
Christophe Rhodes [Thu, 20 Jul 2006 11:02:18 +0000 (11:02 +0000)]
0.9.14.29:
Make REINITIALIZE-INSTANCE (well, SHARED-INITIALIZE in fact, but
I'm pretty sure that's OK) call FINALIZE-INHERITANCE rather than
UPDATE-CLASS if the class has already been finalized, as
required by AMOP.

17 years ago0.9.14.28:
Nathan Froyd [Thu, 20 Jul 2006 03:26:13 +0000 (03:26 +0000)]
0.9.14.28:
Tweak the x86oid backends to produce idiomatic code for unsigned
  and signed moves and adjust the cost of the DIGIT-ASHR VOP to
  force selection of its constant variant when appropriate.

17 years ago0.9.14.27:
Juho Snellman [Wed, 19 Jul 2006 21:46:51 +0000 (21:46 +0000)]
0.9.14.27:
        The new x86 ALLOCATE-CONS-* assembly routines had a RET inside
        a pseudo-atomic section, which resulted in pending interrupts
        getting lost. Caused for example out-of-memory crashes on
        threads.impure.lisp.

17 years ago0.9.14.26:
Christophe Rhodes [Wed, 19 Jul 2006 20:44:38 +0000 (20:44 +0000)]
0.9.14.26:
Make anonymous classes type specifiers.  (Reported by Pascal
Costanza sbcl-devel 2006-07-19)

17 years ago0.9.14.25:
Christophe Rhodes [Wed, 19 Jul 2006 18:30:27 +0000 (18:30 +0000)]
0.9.14.25:
Fix bug (reported by Jasko on #lisp) regarding
TYPEP on funcallable-standard-classes with accessors.
... make a STANDARD-CLASSOID for funcallable-standard-classes,
too, as they behave (wrt the type system) in the same
way.
... STD-CLASSOID is now useless; delete it.
... simplify MAKE-PRELIMINARY-LAYOUT a bit, since MAKE-WRAPPER
now does the right thing.

17 years ago0.9.14.24:
Christophe Rhodes [Wed, 19 Jul 2006 11:31:49 +0000 (11:31 +0000)]
0.9.14.24:
Fix PFD ansi-tests ENSURE-DIRECTORIES-EXIST.8

17 years ago0.9.4.23:
Christophe Rhodes [Wed, 19 Jul 2006 11:13:00 +0000 (11:13 +0000)]
0.9.4.23:
Allow specializer objects as specializers in DEFMETHOD
... be a little bit more defensive when generating declarations
for the method function.
... peer suspiciously at the special case for SLOT-OBJECT, but
leave it alone for now.

17 years ago0.9.14.22:
Juho Snellman [Mon, 17 Jul 2006 19:39:45 +0000 (19:39 +0000)]
0.9.14.22:
Check whether SBCL_HOME has been set before trying to use it
        in sbcl-homedir-pathname, since it might not have a value
        when using :EXECUTABLE T cores. (Regression between 0.9.13 and
        0.9.14, reported by James Knight).

17 years ago0.9.14.21:
Christophe Rhodes [Mon, 17 Jul 2006 12:28:13 +0000 (12:28 +0000)]
0.9.14.21:
Allow "anonymous" (in the sense of AMOP pp.67-69) classes
... names not necessarily symbols.

This entails a great big rearrangement of class finalization and
various associated activities; (setf class-name) and (setf
find-class) (and their sb-kernel:classoid equivalents) are now
slightly less tangled, but the coupling is still non-intuitive:
classoids need proper names earlier than classes, as they are
used in the compiler transform for TYPEP / DECLARE TYPE, so the
ideal of strictly parallel CLASSOID / CLASS is not present, and
left for future work.

Add tests, both of the new functionality and also for various
things that broke along the way, detected by gcl/ansi-tests and
from emergent properties of our own test suite.

17 years ago0.9.14.21:
Christophe Rhodes [Mon, 17 Jul 2006 12:28:13 +0000 (12:28 +0000)]
0.9.14.21:
Allow "anonymous" (in the sense of AMOP pp.67-69) classes
... names not necessarily symbols.

This entails a great big rearrangement of class finalization and
various associated activities; (setf class-name) and (setf
find-class) (and their sb-kernel:classoid equivalents) are now
slightly less tangled, but the coupling is still non-intuitive:
classoids need proper names earlier than classes, as they are
used in the compiler transform for TYPEP / DECLARE TYPE, so the
ideal of strictly parallel CLASSOID / CLASS is not present, and
left for future work.

Add tests, both of the new functionality and also for various
things that broke along the way, detected by gcl/ansi-tests and
from emergent properties of our own test suite.

17 years ago0.9.14.20:
Juho Snellman [Sun, 16 Jul 2006 21:56:37 +0000 (21:56 +0000)]
0.9.14.20:
Oops. After some recent changes, SBCL couldn't be built with 0.9.13 or
        0.9.14 as the host. Add a workaround to allow using them too
        (the actual bug was fixed in 0.9.14.19).

17 years ago0.9.14.19:
Juho Snellman [Sun, 16 Jul 2006 21:51:01 +0000 (21:51 +0000)]
0.9.14.19:
FOPCOMPILABLE-P wasn't checking whether the CADR of a LOCALLY form
        was fopcompilable.

17 years ago0.9.14.18:
Juho Snellman [Sun, 16 Jul 2006 06:48:19 +0000 (06:48 +0000)]
0.9.14.18:
Get rid of the full call to FIND-CLASSOID in LAYOUT-OF for the
        'null classoid case. LAYOUT-OF is inlined into PCL's dfuns, and
        the full call caused suboptimal register allocation.

17 years ago0.9.14.17:
Juho Snellman [Sun, 16 Jul 2006 06:42:11 +0000 (06:42 +0000)]
0.9.14.17:
Implement x86-64 MOVE-FROM-SIGNED overflow detection using IMUL
        instead of using three separate shifts / checks, which is somewhat
        faster and smaller.

17 years ago0.9.14.16:
Juho Snellman [Sun, 16 Jul 2006 06:39:04 +0000 (06:39 +0000)]
0.9.14.16:
Fix x86-64 build [ (mov ...) -> (inst mov ...) ].

17 years ago0.9.14.15:
Nathan Froyd [Sat, 15 Jul 2006 17:40:09 +0000 (17:40 +0000)]
0.9.14.15:
Bandage over the problems noted in "*print-case* in multiple
  threads broken", sbcl-devel 2006-07-14.