sbcl.git
20 years ago0.8.1.34:
Christophe Rhodes [Wed, 16 Jul 2003 08:25:59 +0000 (08:25 +0000)]
0.8.1.34:
Merge vector_nil_string_branch
... many other incremental fixes, including
* decrease of number of places array properties need to be
  specified;
* rework of build order so that unknown types are never
  specialized;
* primitive types need to know the specifier, not the ctype, so
  make it so;
* fixes to the kernel classoid hierarchy, so more likely to be
  consistent internally.

The good news is that, should it prove necessary, reverting this patch
so that (vector nil) isn't a string is probably not very much work; all
that needs to be changed are the kernel classoid supertypes and the
STRING and SIMPLE-STRING definitions (and unparses).  On the other hand,
I'd be interested in trying to fix any performance problem "the right
way" before reverting this behaviour.

20 years ago0.8.1.33:
Alexey Dejneka [Wed, 16 Jul 2003 06:59:41 +0000 (06:59 +0000)]
0.8.1.33:
        * Fixed bug 263: coerce logical block affixes to
          SIMPLE-STRING;
        * COMPLEX-= type method: don't reparse totally unknown type
          specifier;
        * !DEF-BOOLEAN-ATTRIBUTES: create an attributes to list
          decoder;
        * FUN-INFO: print attributes;
        * optimizer for ARRAY-HEADER-P: reimplement as DERIVE-TYPE.

20 years ago0.8.0.78.vector-nil-string.15:
Christophe Rhodes [Tue, 15 Jul 2003 15:56:04 +0000 (15:56 +0000)]
0.8.0.78.vector-nil-string.15:
Since I previously made a note that the applicability of the
REPLACE transform was critical for the performance of
string-streams
... move types around sufficiently that the REPLACE transform
becomes applicable again in string-stream machinery.
(not that I observe the dramatic speedup I was hoping for)

20 years ago0.8.0.78.vector-nil-string.14:
Christophe Rhodes [Tue, 15 Jul 2003 09:36:15 +0000 (09:36 +0000)]
0.8.0.78.vector-nil-string.14:
Minor frobs, mostly to put behaviour back to as I found it in
unimportant bits.  I think there's still a small performance
problem, which I'm investigating.

20 years ago0.8.1.32:
Alexey Dejneka [Fri, 11 Jul 2003 16:48:47 +0000 (16:48 +0000)]
0.8.1.32:
        * Condition slot accessor installer: call
          ENSURE-GENERIC-FUNCTION;
        * fixed type method (VALUES :SIMPLE-=);
        * SB-C::DOMAIN-SUBTYPEP: merged patch by DTC 1999/01/23.

20 years ago0.8.1.31:
Christophe Rhodes [Fri, 11 Jul 2003 08:38:11 +0000 (08:38 +0000)]
0.8.1.31:
Delete unused %TEST-LOWTAG-AND-HEADERS type-vop function
Minor textual edit to the text at the end of make.sh

20 years ago0.8.1.30:
William Harold Newman [Thu, 10 Jul 2003 21:46:57 +0000 (21:46 +0000)]
0.8.1.30:
fiddled with return code of condition.impure.lisp to keep
run-tests.sh script happy
trivial text/whitespace tweaking

20 years ago0.8.1.29:
Alexey Dejneka [Thu, 10 Jul 2003 07:27:03 +0000 (07:27 +0000)]
0.8.1.29:
        * DELETE-BLOCK: if the last continuation has a destination,
          delete it. (bug reported by ohler on #lisp 2003-07-10)
        * make condition slot accessors be methods.

20 years ago0.8.1.28:
Alexey Dejneka [Wed, 9 Jul 2003 12:30:12 +0000 (12:30 +0000)]
0.8.1.28:
        * s/*THE-PCL-PACKAGE*/*PCL-PACKAGE*/ (reported by Istvan
          Marko).

20 years ago0.8.1.27:
Alexey Dejneka [Mon, 7 Jul 2003 16:35:48 +0000 (16:35 +0000)]
0.8.1.27:
        * Derive types of variables, bound with MV-BIND, even if we
          don't know the number of values, returned by the argument.

20 years ago0.8.1.26:
Alexey Dejneka [Mon, 7 Jul 2003 13:26:49 +0000 (13:26 +0000)]
0.8.1.26:
        * tests of sb-bsd-sockets: SOCKET-ERROR is not exported.

20 years ago0.8.1.25:
Alexey Dejneka [Sat, 5 Jul 2003 08:07:09 +0000 (08:07 +0000)]
0.8.1.25:
        * Implement intersection of function types.

20 years ago0.8.1.24:
Alexey Dejneka [Fri, 4 Jul 2003 05:18:25 +0000 (05:18 +0000)]
0.8.1.24:
        * SB-BSD-SOCKETS: test of local sockets tries both stream and
          datagram kinds;
        * COMPLEX-= type method: if the second type is unknown, try to
          reparse it.

20 years ago0.8.1.23:
Christophe Rhodes [Thu, 3 Jul 2003 19:21:31 +0000 (19:21 +0000)]
0.8.1.23:
Fix (from rtoy via CMUCL) for a problem initially reported by
Gareth McCaughan cmucl-imp 2003-05-08 regarding x86 atan2
... cater for the fact that both arguments may be in fr0
... distilled test case from rtoy

20 years ago0.8.1.22: (sort of) commit file forgotten
Christophe Rhodes [Thu, 3 Jul 2003 19:18:59 +0000 (19:18 +0000)]
0.8.1.22: (sort of) commit file forgotten

20 years ago0.8.1.22:
Christophe Rhodes [Thu, 3 Jul 2003 19:06:43 +0000 (19:06 +0000)]
0.8.1.22:
Since I'm playing with PPC assembler anyway...
... might as well implement the necessary stuff so that
ROTATE-BYTE (and SB-MD5) can perform acceptably
... couple of new instruction macros in the base system,
and use them in the rotate-byte system

20 years ago0.8.1.21:
Christophe Rhodes [Thu, 3 Jul 2003 14:28:24 +0000 (14:28 +0000)]
0.8.1.21:
Constant base-char compares for PPC
... also fix some problems revealed by OpenMCL: the initarg for
SIMPLE-CONDITIONS is :FORMAT-CONTROL, not :FORMAT-STRING
... also fix something observed way back when by KingNato on #lisp
IRC: in arch_get_bad_addr, change a bogus && to ||

20 years ago0.8.1.20:
Christophe Rhodes [Thu, 3 Jul 2003 11:22:20 +0000 (11:22 +0000)]
0.8.1.20:
Really inline math (sic) routines
... we need the proclamation to take effect at compile-time, so
change PROCLAIM to DECLAIM
... fix up the two other instances of PROCLAIMs being used where
DECLAIM should have been

20 years ago0.8.1.19:
Christophe Rhodes [Thu, 3 Jul 2003 10:30:10 +0000 (10:30 +0000)]
0.8.1.19:
Implement constant base-char comparisons for SPARC

20 years ago0.8.1.18:
Alexey Dejneka [Thu, 3 Jul 2003 08:49:50 +0000 (08:49 +0000)]
0.8.1.18:
        Dump my local bug list.

20 years ago0.8.1.17:
Alexey Dejneka [Thu, 3 Jul 2003 07:38:52 +0000 (07:38 +0000)]
0.8.1.17:
        * Make sure that recursive call of
          SOURCE-TRANSFORM-UNION-TYPEP gets simpler argument.

20 years ago0.8.1.16:
William Harold Newman [Thu, 3 Jul 2003 00:08:41 +0000 (00:08 +0000)]
0.8.1.16:
compiler WARNING tweaks
other message tweaks

20 years ago0.8.1.15:
Christophe Rhodes [Wed, 2 Jul 2003 14:32:12 +0000 (14:32 +0000)]
0.8.1.15:
Mostly MIPS goodies, though some infrastructural fixes too
... fix hideous DEFINE-PARTIAL-REFFER constant-case bug;
... also adjust the costs so that the constant reffers and
setters are prioritized;
... also build fix for undefined static symbols (reported by
KMR end June 2003)
... include src/runtime/Config in tools-for-build/Makefile
(and adjust order of events in make-config.sh to
ensure that src/runtime/Config exists by the time
we need to build any of the tools-for-build)

20 years ago0.8.1.14:
Christophe Rhodes [Wed, 2 Jul 2003 08:36:56 +0000 (08:36 +0000)]
0.8.1.14:
Fix OPTIMIZATIONS #1b on x86, at Gilbert Baumann's request (on
#lisp IRC 2003-07-01)
... new VOPs for base-char comparisons with constant second
argument;
... new transforms for CHAR< and CHAR> to ensure that any constant
argument is second;
... don't fall into the trap of assuming that the world is ASCII;
instead, define SB!XC:CODE-CHAR and SB!XC:CHAR-CODE that
deal with converting STANDARD-CHARs to and from ASCII codes;
... in the interest of the sanity of those with slow machines, refactor
tests/seq.impure.lisp slightly so that it takes somewhat less
time than the cosmological epoch to run

20 years ago0.8.1.13:
Alexey Dejneka [Tue, 1 Jul 2003 05:23:06 +0000 (05:23 +0000)]
0.8.1.13:
        * Index argument of LAST and [N]BUTLAST may be a bignum (from
          Paul Dietz' test suite).

20 years ago0.8.1.12:
William Harold Newman [Mon, 30 Jun 2003 19:28:17 +0000 (19:28 +0000)]
0.8.1.12:
minor ANSI-compliance fix: CONTROL-ERROR from failed
MUFFLE-WARNING (caught by clocc-ansi-test)
centralized FIND-RESTART-OR-CONTROL-ERROR logic more than
before

20 years agoOps. Remove bogus time calls.
Alexey Dejneka [Mon, 30 Jun 2003 07:10:46 +0000 (07:10 +0000)]
Ops. Remove bogus time calls.

20 years ago0.8.1.11:
Alexey Dejneka [Mon, 30 Jun 2003 07:06:48 +0000 (07:06 +0000)]
0.8.1.11:
        * Index argument of NTH and NTHCDR may be a bignum (bug
          reported by Adam Warner on c.l.l).

20 years ago0.8.1.10:
Alexey Dejneka [Mon, 30 Jun 2003 04:24:13 +0000 (04:24 +0000)]
0.8.1.10:
        * Make condition-related functions be known (reported by Paul
          Dietz);
        * fix type declaration of CERROR.

20 years ago0.8.1.9:
Christophe Rhodes [Fri, 27 Jun 2003 10:07:44 +0000 (10:07 +0000)]
0.8.1.9:
Implement slightly DWIMish behaviour for (TYPE (ARRAY FOO ..) ..)
declarations, as discussed on the CLHS "Declaration TYPE" page, and
on sbcl-help circa 2003-05-08 and with Fufie on #lisp around
2003-06-24
... We need the target's UPGRADED-ARRAY-ELEMENT-TYPE, so move
the definition and define it in SB!XC
... use it (carefully) in MAKE-ARRAY optimizers and transforms,
because the declaration behaviour we're implementing
doesn't extend to (MAKE-ARRAY .. :ELEMENT-TYPE 'FOO)
... insert appropriate THEs in HAIRY-DATA-VECTOR-{REF,SET} if the
declared array element type isn't the same as the
declared upgraded element type

20 years ago0.8.0.78.vector-nil-string.13:
Christophe Rhodes [Fri, 27 Jun 2003 09:08:27 +0000 (09:08 +0000)]
0.8.0.78.vector-nil-string.13:
Update other architectures for (vector nil) as string
... just replace simple-string with simple-base-string as the
primitive type.  Untested as yet; will be tested on sparc
post-commit.

20 years ago0.8.1.8:
William Harold Newman [Thu, 26 Jun 2003 19:36:02 +0000 (19:36 +0000)]
0.8.1.8:
There seems to be no reason to use LET () instead of PROGN in
the #+SB-XC-HOST case of !COLD-INIT-FORMS; and the
nontoplevelness caused a problem (*QUEUED-PROCLAIMS*
not declared special before use, because DEFVAR wasn't
at toplevel when wrapped in LET (); then reported as
full warning by xc host) reported by KingNato on #lisp.
broke some long lines noticed when looking at !C-I-F forms
Even though the new !COLD-INIT-FORMS-as-PROGN might suffice to
allow the system to build on MacOS without WARNINGs,
without further change, it seemed easier to understand
if I moved the DEFVAR *Q-P* outside the !C-I-F, leaving
only SETF inside, so I did.

20 years ago0.8.1.7:
William Harold Newman [Thu, 26 Jun 2003 18:58:44 +0000 (18:58 +0000)]
0.8.1.7:
improved GET-MACHINE-VERSION implementation in some #+LINUX
cases (thanks to Lars Brinkhoff)
OAOOish tidying of CL:MACHINE-VERSION

20 years ago0.8.1.6:
Christophe Rhodes [Thu, 26 Jun 2003 09:54:54 +0000 (09:54 +0000)]
0.8.1.6:
Fix off-by-one error in %CHECK-BOUNDS transform for known array
dimensions

20 years ago0.8.0.78.vector-nil-string.12:
Christophe Rhodes [Thu, 26 Jun 2003 09:07:11 +0000 (09:07 +0000)]
0.8.0.78.vector-nil-string.12:
Use *SAETP* to generate the data for internal error definition
(net win so far: 13)

20 years ago0.8.1.5:
Alexey Dejneka [Thu, 26 Jun 2003 07:50:27 +0000 (07:50 +0000)]
0.8.1.5:
        * Fix bugs 3cd:
        ... flush DSD-SAFE-P if the new type is more restrictive than
            the original;
        ... make out of line structure slot readers check type for
            unsafe slots.

20 years ago0.8.0.78.vector-nil-string.11:
Christophe Rhodes [Wed, 25 Jun 2003 16:59:35 +0000 (16:59 +0000)]
0.8.0.78.vector-nil-string.11:
Use *SAETP* to generate codes for type-vops
... (net win so far: 11)

20 years ago0.8.1.4:
Alexey Dejneka [Wed, 25 Jun 2003 16:07:06 +0000 (16:07 +0000)]
0.8.1.4:
        Update documentation for type checking.

20 years ago0.8.0.78.vector-nil-string.10:
Christophe Rhodes [Wed, 25 Jun 2003 14:23:54 +0000 (14:23 +0000)]
0.8.0.78.vector-nil-string.10:
Use *SAETP* in HAIRY-DATA-VECTOR-REF/HAIRY-DATA-VECTOR-SET
... new IMPORTANCE field in SAETPs, detailing how important we
should think arrays of that type are.
(net win so far: 7)

20 years ago0.8.0.78.vector-nil-string.9:
Christophe Rhodes [Wed, 25 Jun 2003 09:30:55 +0000 (09:30 +0000)]
0.8.0.78.vector-nil-string.9:
Indeed, with a little build rearrangement, we don't need a
temporary SB!XC:DEFTYPE FIXNUM, so let's do that instead.
... move some of src/code/type-init.lisp into
src/code/class-init.lisp

20 years ago0.8.0.78.vector-nil-string.8:
Christophe Rhodes [Wed, 25 Jun 2003 08:28:23 +0000 (08:28 +0000)]
0.8.0.78.vector-nil-string.8:
Some more OAOOification from *SAETP*
... add a COMPLEX-TYPECODE field to *SAETP* to allow us to carry
the information that SIMPLE-BIT-VECTOR and
COMPLEX-BIT-VECTOR are both bit vectors.
... use *SAETP* in %VECTOR-WIDETAG-AND-N-BITS,
ARRAY-ELEMENT-TYPE and SHRINK-VECTOR (net win so far: 6)
... we might need a FIXNUM type earlier than CLASS.  I've got
one in, but then I found a refactor that might mean we
don't need it.  The problem is in SPECIALIZE-ARRAY-TYPE,
where obviously we need to have complete knowledge about
all the possible upgraded-array-element-types so that
we can ask whether a given type is SUBTYPEP.  FIXNUM
is defined as a type fairly late, but maybe defining it
before (simple-array (signed-byte 30) (*)) is enough,
when combined with...
Refactor PRIMITIVE-TYPEs
... we only ever use the specifier, not the ctype, of
PRIMITIVE-TYPE-TYPE, so...
... delete the TYPE field and add a SPECIFIER field.
... add AVERrance in SPECIALIZE-ARRAY-TYPE.

20 years ago0.8.1.3:
Alexey Dejneka [Wed, 25 Jun 2003 04:43:51 +0000 (04:43 +0000)]
0.8.1.3:
        > 13:17:03 <Xhosa> dan`b how does sbcl compile closures?
        Usually good enough :-(

        * Fixed bugcase 258: deny inline-expanding when expansion
          references a deleted or let-converted function.

20 years ago0.8.0.78.vector-nil-string.7:
Christophe Rhodes [Tue, 24 Jun 2003 10:56:11 +0000 (10:56 +0000)]
0.8.0.78.vector-nil-string.7:
The beginnings of the payoff: being sufficiently irritated by
the baroque intertwinings of the different places where array
types have to be specified, here is a beginning of a
rationalization.
... make *SPECIALIZED-ARRAY-ELEMENT-TYPE-PROPERTIES* a master
value, and derive three other compiler-internal lists
from it.  (net win so far: 3)
... but because it's made earlier so that we can use it as a
master value, SPECIFIER-TYPE gives unknown types;
a new file (and corresponding cold-init function)
fixes up unknown types (and for primitive-types too)
... there are still plenty of places left where array logic
isn't derived from *SAETP*; they will be worked on.

20 years ago0.8.1.2:
Alexey Dejneka [Tue, 24 Jun 2003 09:15:04 +0000 (09:15 +0000)]
0.8.1.2:
        * TEST, TEST-NOT and KEY keys to sequence functions: resolve
          function designator before loop;
        * Small tuning of type declarations.

20 years ago0.8.1.1:
Alexey Dejneka [Tue, 24 Jun 2003 04:36:37 +0000 (04:36 +0000)]
0.8.1.1:
        * Fix bug 148: clean new blocks after failed inline expanding.

20 years ago0.8.1:
William Harold Newman [Tue, 24 Jun 2003 02:25:43 +0000 (02:25 +0000)]
0.8.1:
release, tagged as sbcl_0_8_1

20 years ago0.8.0.78.vector-nil-string.6:
Christophe Rhodes [Mon, 23 Jun 2003 15:31:29 +0000 (15:31 +0000)]
0.8.0.78.vector-nil-string.6:
Cosmetic cleanups
... invert the test in %SXHASH-SIMPLE-SUBSTRING, since that
way it stands a chance of working even when putative
(VECTOR CHARACTER) != (VECTOR BASE-CHAR)
... some reasonable slight changes to RUN-PROGRAM / Unix
environment stuff.

The ALIEN/C-STRING issue looks like it's not a problem; all of the work
there is explicitly done in terms of BASE-STRINGs.  I don't think anyone
is likely to complain at a type error should they attempt to pass an
object of (VECTOR NIL 0) to foreign lands as the null string, and even
if they do I feel unmotivated to care without sufficient inducement. :-)

20 years ago0.8.0.78.vector-nil-string.5:
Christophe Rhodes [Mon, 23 Jun 2003 14:05:26 +0000 (14:05 +0000)]
0.8.0.78.vector-nil-string.5:
Make MAKE-STRING work as expected
... respect ELEMENT-TYPE
... and while we're at it, make the transform not confuse the
compiler when the user's ELEMENT-TYPE isn't a subtype
of character
Also add some tests for some of the gotcha's we've found so
far.

20 years ago0.8.0.78.vector-nil-string.4:
Christophe Rhodes [Mon, 23 Jun 2003 12:32:52 +0000 (12:32 +0000)]
0.8.0.78.vector-nil-string.4:
Fix some brokennesses
... SXHASH now copes with (vector nil)s of non-zero length
... OUTPUT-SYMBOL can now output zero-length (vector nil)s

20 years ago0.8.0.78.vector-nil-string.3:
Christophe Rhodes [Mon, 23 Jun 2003 08:46:05 +0000 (08:46 +0000)]
0.8.0.78.vector-nil-string.3:
Fix most of the performance problem
... transforms for HAIRY-DATA-VECTOR-{REF,SET} on SIMPLE-STRING

Right.  The all-important "compile sbcl" benchmark is now back to about
where it was (57 minutes on my laptop).  There are still correctness
issues to deal with, not least
  (sxhash (make-array 5 :element-type nil))
but this path isn't proving ridiculously expensive.

20 years ago0.8.0.85:
Alexey Dejneka [Sun, 22 Jun 2003 18:36:26 +0000 (18:36 +0000)]
0.8.0.85:
        * New optimization to do.
        * Fix problem description for the bug 188 (thanks to cliini on
          #lisp).

20 years ago0.8.0.84:
William Harold Newman [Fri, 20 Jun 2003 16:05:56 +0000 (16:05 +0000)]
0.8.0.84:
YA instance of insufficient attention to DESCRIBE detail

20 years ago0.8.0.83:
Alexey Dejneka [Fri, 20 Jun 2003 05:59:05 +0000 (05:59 +0000)]
0.8.0.83:
        Bug 258 is not a new bug - it is a longly wanted example of
        bug 148, working under recent SBCL. Thanks, Bill!

20 years ago0.8.0.82:
William Harold Newman [Thu, 19 Jun 2003 20:14:24 +0000 (20:14 +0000)]
0.8.0.82:
new bug 258
also added some text to try to clarify bug 257 (and hopefully
got it right)

20 years ago0.8.0.81:
William Harold Newman [Thu, 19 Jun 2003 18:18:13 +0000 (18:18 +0000)]
0.8.0.81:
output to proper stream in DESCRIBE-OBJECT (HASH-TABLE T)

20 years ago0.8.0.80:
William Harold Newman [Thu, 19 Jun 2003 01:20:12 +0000 (01:20 +0000)]
0.8.0.80:
PRINT-UNREADABLE-OBJECT isn't specified to do anything nice
with pprint logical blocks, and it's hard to do
anything nice without surprising the user, and (as
pointed out by Antonio Martinez) it's specifically
not supposed to do some of the whitespace stuff it was
doing. So just ignore any pretty-streamness and do
entirely physical output.
tweaked ENCAPSULATE logic so that BACKTRACE reporting of
TRACEd functions will be slightly less obscure:
1: (.... )
instead of
1: ("varargs entry for #'(LAMBDA (&REST SB!INT:ARG-LIST) ...)"
    ...)
ruthlessly plundered CMU CL CVS and Gerd's emailed
expertise for %NO-PRIMARY-METHOD .ARGS. code

20 years ago0.8.0.78.vector-nil.2:
Christophe Rhodes [Wed, 18 Jun 2003 16:30:59 +0000 (16:30 +0000)]
0.8.0.78.vector-nil.2:
I can't see how to expose it, but fix the CLASS descriptions for
STRING and SIMPLE-STRING anyway (so that they have direct
superclasses, and their inherits look right).

20 years ago0.8.0.79:
Christophe Rhodes [Wed, 18 Jun 2003 16:18:34 +0000 (16:18 +0000)]
0.8.0.79:
Cosmetic fix for almost invisible bug
... %CHECK-VECTOR-SEQUENCE-BOUNDS is always transformed, so
use that in its "interpreter" definition; also, that way we
don't refer to an undefined variable any more.

20 years ago0.8.0.78.vector-nil-string.1:
Christophe Rhodes [Wed, 18 Jun 2003 15:16:05 +0000 (15:16 +0000)]
0.8.0.78.vector-nil-string.1:
        As noted with horror between myself and pfdietz on #lisp,
        vectors specialized on NIL are strings.

This patch implements (VECTOR NIL) as subtype of STRING with no
regressions in either our regression test suite or pfdietz' test suite.

However, this notwithstanding, there are a number of issues that need to
be resolved before this hits HEAD.  (Why would it hit HEAD, you ask?
Well, it /is/ an ANSI issue, but in this case that would probably just
merit it an entry in BUGS, were it not for the fact that a Unicode
implementation is likely to have several string representations, so most
of the issues that we're addressing here will have to be dealt with in
any case; the use of (ARRAY NIL) as a "poison pill" to investigate
string routines and the like is probably a good thing.  Note that this
is only a half-way house; while STRING is no longer the same type as
BASE-STRING, which is one portion of the Unicode battle, CHARACTER
remains equivalent to BASE-CHAR).

Brokennesses:
* STRING= and similar functions may work by accident for (VECTOR NIL 0),
  but they're unlikely to be robustly working;
* FFI and ALIEN: we need at the very least (a) to ensure that C-STRINGs
  get turned into a useful string type, not (VECTOR NIL) and (b) to
  install a conversion routine for the other direction, so that the Lisp
  string #.(make-array 0 :element-type nil) becomes the C string "";
* Filesystem access and SB-UNIX is completely unaudited.  This may be
  similar to the above issue;
* SXHASH-SIMPLE-STRING tries to access string elements, and promptly
  errors on a (VECTOR NIL) with non-zero length.  This also breaks
  TYPE-OF;
* INTERN currently takes only a BASE-STRING;
* [ probably others.  Should examine Brian Spilsbury's Unicode patch for
    some more gotchas. ]

Suboptimalities:
* 10% slowdown in self-compilation, probably mostly caused by
  CONCATENATE (not transformed away for general SIMPLE-STRINGs any more)
  and HAIRY-DATA-VECTOR-{REF,SET} (type dispatch unavoidable for the
  latter on STRING-typed objects).  We can mitigate the latter issue by,
  for STRINGlike types including (VECTOR NIL), having a vector nil type
  test branching to an array-nil-accessed error clause if true, then
  retrying the hairy-data-vector optimization;
* throughout the codebase, string and base-string have been
  interchangeably used for a number of years; we need to look at them
  all and fix them if necessary.

20 years ago0.8.0.78:
Christophe Rhodes [Tue, 17 Jun 2003 12:14:59 +0000 (12:14 +0000)]
0.8.0.78:
Fix SLOT-MISSING/SLOT-UNBOUND bugs found by Paul Dietz' test
suite
... return a single value for SLOT-VALUE, the new value for
(SETF SLOT-VALUE), a boolean equivalent for SLOT-BOUNDP
and the object for SLOT-MAKUNBOUND
` ... adjust a bogus test in our regression test suite :-/

20 years ago(put the lost line)
Alexey Dejneka [Tue, 17 Jun 2003 07:26:49 +0000 (07:26 +0000)]
(put the lost line)

20 years ago0.8.0.77:
Alexey Dejneka [Tue, 17 Jun 2003 07:02:51 +0000 (07:02 +0000)]
0.8.0.77:
        * Fixed DATA-VECTOR-SET-C/SIMPLE-BIT-VECTOR with index 0 on
          X86 (found by Paul Dietz).

20 years ago0.8.0.76:
Alexey Dejneka [Tue, 17 Jun 2003 03:12:43 +0000 (03:12 +0000)]
0.8.0.76:
        * Fix bug 15: enable emitting a style warning for redefining
          FTYPE in PROCLAIM;
        * fix bug 46c: uncomment the corresponding checks in COERCE;
        * NOTINLINE does not prevent using function type;
        * write SIMPLE-= method for functions;
        * signal STYLE-WARNING on IR1 transform redefinition;
        * combine conflicting tansformers for %CHECK-BOUND.

20 years ago0.8.0.75:
William Harold Newman [Tue, 17 Jun 2003 02:08:53 +0000 (02:08 +0000)]
0.8.0.75:
merged  Nikodemus Siivola "make make.sh slightly less braindead"
patch (sbcl-devel 14 Jun 2003)
text/comment tweaking

20 years ago0.8.0.74:
Christophe Rhodes [Mon, 16 Jun 2003 14:18:16 +0000 (14:18 +0000)]
0.8.0.74:
Conditionize COMPILER-NOTE
... s/COMPILER-NOTE/COMPILER-NOTIFY/ for the function
... a couple of exports in package-data-list
(also move a DECLAIM from the start of a MACROLET)

20 years ago0.8.0.73:
Christophe Rhodes [Mon, 16 Jun 2003 13:46:59 +0000 (13:46 +0000)]
0.8.0.73:
Restore type derivation for known/declared functions, even
when their use is declared NOTINLINE.

20 years ago0.8.0.72:
Christophe Rhodes [Sun, 15 Jun 2003 16:21:05 +0000 (16:21 +0000)]
0.8.0.72:
Reading of symbols in a package named by "" (reported by hmot on
#lisp IRC)
... the only way one can get one of these beasts is by multiple
escapes with nothing in them, so remember if we've seen
multiple escape characters

20 years ago0.8.0.71:
Alexey Dejneka [Sat, 14 Jun 2003 17:15:29 +0000 (17:15 +0000)]
0.8.0.71:
        * Merged in Robert E. Brown's patch for the bug 235b;
        * MAKE-ARRAY: in complex case infer a dimension.

20 years ago0.8.0.70:
Christophe Rhodes [Sat, 14 Jun 2003 13:39:30 +0000 (13:39 +0000)]
0.8.0.70:
A couple of fixes:
... SEARCH and test predicate argument ordering: patch from
Wolfhard Buss cmucl-imp 2003-06-13
... VECTOR-PUSH-EXTEND and type inference: disable MAKE-ARRAY
dimension type inferencing for non-simple 1d arrays, as
the dimension can change too easily.  Regressions noted
by pfdietz' test suite.

20 years ago0.8.0.69:
Alexey Dejneka [Sat, 14 Jun 2003 08:10:42 +0000 (08:10 +0000)]
0.8.0.69:
        * Add more type checks to the source transforms of equality
          predicates (found under influence of Adam Warner).

20 years ago0.8.0.68:
Christophe Rhodes [Fri, 13 Jun 2003 16:17:20 +0000 (16:17 +0000)]
0.8.0.68:
Merge patch I (+defgenerics.diff) from Andreas Fuchs
sbcl-devel 2003-06-10 for sb-bsd-sockets:
... add DEFGENERICS (enough to make LOAD-OP quiet, yay!)

20 years ago0.8.0.67:
Christophe Rhodes [Fri, 13 Jun 2003 15:45:03 +0000 (15:45 +0000)]
0.8.0.67:
Grab bag of fixes:
... PROFILE on a string (naming a package) shouldn't try to
profile macros and special operators any more;
... SB-KERNEL, not KERNEL, in "I'm deeply confused" error
message strings;
... UNBOUND-SLOT is a CELL-ERROR, so use the NAME slot (and
delete the SLOT slot :-) (thanks to pfdietz)
... delete the INITIALIZE-INFO slot from SLOT-CLASS (observation
from Gerd Moellmann)
... DESCRIBE on unfinalized classes shouldn't cause an error
(reported by kr at molecubotics sbcl-devel 2003-06-13)
... fix bug in FORMATTER revealed by shiny new exciting format
string for DESCRIBE-OBJECT (CLASS T): original args
aren't necessarily available in pretty-printer
expansion (specifically, not for "~@< ~:>");
... tests for some of the above.

20 years ago0.8.0.66:
Alexey Dejneka [Fri, 13 Jun 2003 09:49:42 +0000 (09:49 +0000)]
0.8.0.66:
        * Fixed typo on OUTPUT-VECTOR.

20 years ago0.8.0.65:
Alexey Dejneka [Fri, 13 Jun 2003 09:04:19 +0000 (09:04 +0000)]
0.8.0.65:
        * SB-CLTL2: first try on VARIABLE-INFORMATION;

        * MAKE-ARRAY: infer array size in complex case;

        * second look at CONCATENATE optimization: create new START
          variable for each sequence. It would be nice to write a
          regression test for

           (time (compile nil
                          '(lambda ()
                            (list (concatenate 'string
                                   "qqqqqqqqqqqqqqqqqqqqqq"
                                   "tttttttttttttttttttttttttt"
                                   "wwwwwwwwwwwwwwwwwwwwwwwwwwww")))))

20 years ago0.8.0.64
Daniel Barlow [Thu, 12 Jun 2003 22:59:31 +0000 (22:59 +0000)]
0.8.0.64
Patch from Istvan Marko to help make a #+sb-threads runtime work
properly: __asm__ wants to be _asm__ __volatile__

20 years ago0.8.0.63:
Alexey Dejneka [Thu, 12 Jun 2003 06:41:13 +0000 (06:41 +0000)]
0.8.0.63:
        * Declare return type of structure constructors;
        * make some FTYPE declarations to be "exact";
        * GENERATE-TYPE-CHECKS prints too hairy type in the full form;
        * new optimization quality: INSERT-DEBUG-CATCH;
        * avoid using TYPE-SPECIFIER in the VALUES type deriver.

20 years ago0.8.0.62:
Christophe Rhodes [Wed, 11 Jun 2003 09:11:42 +0000 (09:11 +0000)]
0.8.0.62:
Better error reporting for bad types:
... signal a simple-error on bare AND, OR, MEMBER or VALUES.
... when within the compiler, handle argument count mismatch
errors within CAREFUL-[VALUES-]SPECIFIER-TYPE.
... (DEFTYPE FOO () 'FIXNUM) (TYPEP 11 'FOO) (TYPEP 11 '(FOO))
is legal.

20 years ago0.8.0.61:
Alexey Dejneka [Wed, 11 Jun 2003 05:53:59 +0000 (05:53 +0000)]
0.8.0.61:
        * bug fix: in macro-like defining macros/special operators the
          implicit block does not enclose lambda list.

20 years ago0.8.0.60:
Christophe Rhodes [Tue, 10 Jun 2003 13:04:32 +0000 (13:04 +0000)]
0.8.0.60:
Fix yet another Dietz bug:
... in DEFCLASS, we only redefine an existing class with name
CLASS-NAME if said name is the proper name for the class;
... ask for a new class (by passing NIL to ENSURE-CLASS-USING-CLASS)
otherwise.

20 years ago0.8.0.59:
Christophe Rhodes [Tue, 10 Jun 2003 11:08:09 +0000 (11:08 +0000)]
0.8.0.59:
Make VALUES derive type optimizer accurate:
... since we have this nice interpretation of VALUES types, use
it in the VALUES derive-type optimizer -- we will return
exactly as many values as VALUES has arguments;
... fix the bugs that this reveals in sbcl; :-)
... enables us to detect more bogosity: test for some more type
mismatches being caught.
... (relatedly) fix one more duplicate definition in
sb-bsd-sockets
Array initializer type warning fix:
... don't do (csubtypep (ctype-of x) eltype), because that's wrong
for e.g. X = #\a and eltype being STANDARD-CHAR; use
CTYPEP instead.

20 years ago0.8.0.58:
Christophe Rhodes [Tue, 10 Jun 2003 08:28:23 +0000 (08:28 +0000)]
0.8.0.58:
        Minor fixes:
        ... don't define a LENGTH type for disassembly; we're not
        allowed to do that, because LENGTH is in the CL package.  Call
        it DISASSEM-LENGTH instead.  (reported by rtoy on #lisp IRC)
        ... cut'n'pasteo: restart print functions in warm init now refer
to variables that are bound, rather than those that aren't.

20 years ago0.8.0.57:
Alexey Dejneka [Tue, 10 Jun 2003 06:48:57 +0000 (06:48 +0000)]
0.8.0.57:
        * Signal a style warning when DECLAIM is met in a declaration
          position;
        * Don't join blocks if the separating continuation's dest is CRETURN;
        * DO-USES: in the restart mode stop iterations when the block
          is deleted under us.

20 years ago0.8.0.56:
William Harold Newman [Mon, 9 Jun 2003 20:33:56 +0000 (20:33 +0000)]
0.8.0.56:
another way to break the compiler -- seems to be a bad day
 for interaction of my coding style with SBCL

20 years ago0.8.0.55:
Christophe Rhodes [Mon, 9 Jun 2003 17:05:53 +0000 (17:05 +0000)]
0.8.0.55:
Contrib fixes for non-x86/non-linux
... don't use GET-LISP-OBJ-ADDRESS on fixnums or characters;
... don't try to define "posix" linux-specific functions
also minor frobs

20 years ago0.8.0.54:
Christophe Rhodes [Mon, 9 Jun 2003 16:21:16 +0000 (16:21 +0000)]
0.8.0.54:
COMPILE-FILE and "static linking"
... we are allowed to consider references to functions defined
in the same file as such.  At present, we don't inline such
references, but merely use previously-derived type information
when compiling calls.
... also, since the consequences are undefined for multiple
definitions in the same file, add a warning for that case (and
fix the examples in the codebase itself :-)

20 years ago0.8.0.53:
William Harold Newman [Mon, 9 Jun 2003 15:19:24 +0000 (15:19 +0000)]
0.8.0.53:
new BUGS entry

20 years ago0.8.0.52
Daniel Barlow [Sun, 8 Jun 2003 21:30:28 +0000 (21:30 +0000)]
0.8.0.52
large contrib/simple-streams patch including many CMUCL
changes by Paul Foley
(Thanks to Rudi Schlatte sbcl-devel 2003.06.08)

... melded streams are implemented

... removed device-extend; it's deprecated in acl's
    simple-streams implementation and will go away there too

... prettier print-object methods

        ... various small fixes

... Implemented file-position

... Removed some sbcl internals redefinition: no need to
    rewrite unix-lseek, use sb-posix for mmap, munmap

        ... Can now remove sb-grovel requirement too

... Commented out (but not deleted yet) heavily
    sbcl-internals-dependent slot access machinery
    (def-stream-class, with-stream-class, sm).

        ... Various bug fixes, e.g. read-line now works for lines
    longer than 80 characters

20 years ago0.8.0.52
Daniel Barlow [Sun, 8 Jun 2003 21:24:15 +0000 (21:24 +0000)]
0.8.0.52
large contrib/simple-streams patch including many CMUCL
changes by Paul Foley
(Thanks to Rudi Schlatte sbcl-devel 2003.06.08)

... melded streams are implemented

... removed device-extend; it's deprecated in acl's
    simple-streams implementation and will go away there too

... prettier print-object methods

        ... various small fixes

... Implemented file-position

... Removed some sbcl internals redefinition: no need to
    rewrite unix-lseek, use sb-posix for mmap, munmap

        ... Can now remove sb-grovel requirement too

... Commented out (but not deleted yet) heavily
    sbcl-internals-dependent slot access machinery
    (def-stream-class, with-stream-class, sm).

        ... Various bug fixes, e.g. read-line now works for lines
    longer than 80 characters

20 years ago0.8.0.51:
Christophe Rhodes [Sun, 8 Jun 2003 18:43:53 +0000 (18:43 +0000)]
0.8.0.51:
Fix TYPE-OF bugs from Paul Dietz' test suite
... attempt to return reasonable intersections of the relevant
built-in-types for non-negative integers

20 years ago0.8.0.50:
Christophe Rhodes [Sun, 8 Jun 2003 15:02:27 +0000 (15:02 +0000)]
0.8.0.50:
Fixes for ADD-METHOD.[12] and FIND-METHOD error cases
... ADD-METHOD should return the generic function (but preserve
method-returning in the internal function ADD-NAMED-METHOD
... FIND-METHOD needs to signal an error if the lengths of the
specializers isn't the same as the number of required arguments
to the generic function.  Turn the test in REAL-GET-METHOD into
an AVER.
... REMOVED-NAMED-METHOD is unused; delete it.
... incompatible lambda lists don't actually require an error of
type PROGRAM-ERROR to be signalled, and in fact this change
can make the error signalled be an ERROR.  Adjust the test.

20 years ago0.8.0.49:
Alexey Dejneka [Sun, 8 Jun 2003 09:30:01 +0000 (09:30 +0000)]
0.8.0.49:
        Added support of disassembling of closures and funcallable
        instances.

20 years ago0.8.0.48:
Alexey Dejneka [Sun, 8 Jun 2003 06:12:30 +0000 (06:12 +0000)]
0.8.0.48:
        Fixed type declarations for functions returning trees.

21 years ago0.8.0.47
Daniel Barlow [Sat, 7 Jun 2003 22:46:08 +0000 (22:46 +0000)]
0.8.0.47
sb-simple-streams pushes :little-endian/:big-endian on
*features* for no apparent reason - and gets it wrong, too

unix-lseek is fixed, so sb-simple-streams need not redefine
it any more

Fix stupid braino in unix-ioctl that broke the build

21 years ago0.8.0.46:
Christophe Rhodes [Sat, 7 Jun 2003 16:37:23 +0000 (16:37 +0000)]
0.8.0.46:
Fix for argumentless CALL-NEXT-METHOD and assignment
... and a simple test.

21 years ago0.8.0.45
Daniel Barlow [Sat, 7 Jun 2003 15:52:03 +0000 (15:52 +0000)]
0.8.0.45
64 bit alien support on x86, by reference to CMUCL
... x86/sap.lisp gets transforms for *-sap-ref-64 which
    do the reference a word at a time
... teach define-alien-type-method (integer :extract-gen)
    to know about *-sap-ref-64
... #!+alpha removed from defknowns for *-sap-ref-64
... compiler/x86/c-call gets hairy great deftransform %alien-funcall
    that transforms 64 bit args and return values
    appropriately.  Lifted & ported from CMUCL by rude mechanicals

This all could use generifying for endianness and putting
somewhere that all 32 bit platforms (i.e. everything but
Alpha, I think) can see it.

Fix the BSD-specific mess in unix-lseek to use off-t like
the other platforms do.  Should now work (untested)

Add mmap/munmap/getpagesize support to SB-POSIX,
courtesy Rudi Schlatte.

SB-UNIX:UNIX-IOCTL second argument is signed, as per
sbcl-devel mail from Vincent Arkesteijn

21 years ago0.8.0.44:
Christophe Rhodes [Sat, 7 Jun 2003 15:09:22 +0000 (15:09 +0000)]
0.8.0.44:
Fix amazingly horrendous bug in constant-dfun generation (thanks
to Gerd Moellmann)
... when the method combination isn't standard, method functions
might not be effective methods.
... in constant-value-miss, aver that we are finding a
constant-value.
... test case from Paul Dietz

21 years ago0.8.0.43:
Christophe Rhodes [Sat, 7 Jun 2003 13:49:11 +0000 (13:49 +0000)]
0.8.0.43:
Fix bug 63, by propagating symbol macros into the walker's
variable environment
... no, I don't claim to have understood the walker fully;
... test for correct behaviour in sb-cltl2's MACROEXPAND-ALL.

21 years ago0.8.0.42:
Christophe Rhodes [Sat, 7 Jun 2003 11:01:58 +0000 (11:01 +0000)]
0.8.0.42:
Quieten the compiler slightly for (LENGTH <VECTOR>)
... one of the transforms wants to constant-fold the above when
<VECTOR> is a 1d SIMPLE-ARRAY of known dimensions.
However, the deftransform definition (with a simple-array
type requirement) caused the compiler to complain when
the argument was known to be a vector but not a simple-array.
Instead, leave the type requirement for the transform open,
and GIVE-UP-IR1-TRANSFORM (with no arguments => silence)
if the argument isn't simple.
... write some tests for LENGTH on vectors

21 years ago0.8.0.41: "Hunting on worms, part II"
Alexey Dejneka [Sat, 7 Jun 2003 06:08:58 +0000 (06:08 +0000)]
0.8.0.41: "Hunting on worms, part II"
        Insertion of type check on a function result continuation
        prevents tail call optimisation, so:
        * pathwise eliminate unnecessary type checks;
        * disable unsafe CAST insertion on function results.

        Now Paul Dietz' test suite finishes with "83 out of 12565
        total tests failed".

21 years ago0.8.0.40:
Christophe Rhodes [Fri, 6 Jun 2003 12:52:52 +0000 (12:52 +0000)]
0.8.0.40:
Fix build on non-x86 (confirmed for sparc; probable for the
others...)
... we can't WRITE (or FORMAT) as early in cold-init as we
used to, because *PRINT-PPRINT-DISPATCH* is now unbound for
typecheck reasons.  Create the FLOAT-REG-SYMBOL vectors at
read-time instead.