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

21 years ago0.8.0.39:
Alexey Dejneka [Fri, 6 Jun 2003 09:09:12 +0000 (09:09 +0000)]
0.8.0.39:
        * Convert proclaimed function result type into a type check.
        ... recanned several incautious worms.

21 years ago0.8.0.38:
Christophe Rhodes [Thu, 5 Jun 2003 21:07:10 +0000 (21:07 +0000)]
0.8.0.38:
Fix build with :SB-SHOW (patch from Nikodemus Siivola sbcl-devel
2003-05-31)
... also some whitespace (and now-outdated comment) deletion
in target-error

21 years ago0.8.0.37:
Christophe Rhodes [Thu, 5 Jun 2003 19:58:32 +0000 (19:58 +0000)]
0.8.0.37:
Make DEFCONSTANT throw an error of type SB-EXT:DEFCONSTANT-UNEQL
... rearrange build order so that macros are defined at the
birth of the cross-compiler (and that relevant variables are
declared special)
... define the condition type (slots for OLD-VALUE, NEW-VALUE
and NAME)
... actually throw the error in %DEFCONSTANT (and have an ABORT
restart, too)
... document and test

21 years ago0.8.0.36:
Alexey Dejneka [Thu, 5 Jun 2003 17:25:27 +0000 (17:25 +0000)]
0.8.0.36:
        Included module SB-CLTL2.

21 years ago0.8.0.35:
Christophe Rhodes [Thu, 5 Jun 2003 15:52:56 +0000 (15:52 +0000)]
0.8.0.35:
Compiler depessimization, (part IV of XL :-)
... let's see what happens if we're a little less demure about
putting derived function types into the globaldb.  We don't
actually use them unless SB-EXT:*DERIVE-FUNCTION-TYPES* is true,
so this shouldn't make a difference to the compiler in normal
circumstances (though it does when the compiler is being built,
and also can do for libraries who choose to use the extension)

This is probably a staging post on the way to ANSI-style
optimization of file-compilation, wherein we can treat all the
functions in one file as tightly coupled (see CLHS 3.2.2.3)

21 years ago0.8.0.34:
Alexey Dejneka [Thu, 5 Jun 2003 06:24:26 +0000 (06:24 +0000)]
0.8.0.34:
        * Fixed bug 253.
        * "Exactly" declare types of alien routines.

21 years ago0.8.0.33
Daniel Barlow [Wed, 4 Jun 2003 15:29:38 +0000 (15:29 +0000)]
0.8.0.33
Extend RUN-PROGRAM with a :SEARCH option that makes it look
along $PATH for the executable

Export SB-EXT:FIND-EXECUTABLE-IN-SEARCH-PATH, which does the
actual lookup in the preceding function

Add a couple of test cases

21 years ago0.8.0.32:
Alexey Dejneka [Wed, 4 Jun 2003 13:39:32 +0000 (13:39 +0000)]
0.8.0.32:
        Put CSR's bug report about type checking in CAST chains.

21 years ago0.8.0.31:
Alexey Dejneka [Wed, 4 Jun 2003 06:03:09 +0000 (06:03 +0000)]
0.8.0.31:
        Optional entry points are converted on demand.

21 years agoIR1-convertion of lambda is separated into
Alexey Dejneka [Wed, 4 Jun 2003 05:58:18 +0000 (05:58 +0000)]
IR1-convertion of lambda is separated into
src/compiler/ir1tran-lambda.lisp.

21 years ago0.8.0.30
Daniel Barlow [Tue, 3 Jun 2003 22:34:53 +0000 (22:34 +0000)]
0.8.0.30
Update ASDF from upstream:
... export OPERATION-ON-{WARNINGS,FAILURE}
... add verbosity control to make loading optionally much
            more quiet (operate 'load-op :verbose nil)
        ... muffle STYLE-WARNINGS from loaded code in REQUIRE hook.
            Perhaps slightly contentious, but I think while it's fair
            to present these to developers, they just clutter the place
    up as far as end-users are concerned

Some TODO notes in SB-POSIX

21 years ago0.8.0.29:
Christophe Rhodes [Tue, 3 Jun 2003 16:03:43 +0000 (16:03 +0000)]
0.8.0.29:
Port fix to PCL from Gerd Moellmann regarding metacircles:
there was a hole in the metacircularity detection of legacy PCL,
which is filled by bypassing ordinary slot access for standard
classes in cache miss handling when doing so would lead to
another cache miss.
... *CACHE-MISS-VALUES-STACK* and *STANDARD-SLOT-LOCATIONS* (not
audited for threadsafety)

21 years ago0.8.0.28:
Christophe Rhodes [Tue, 3 Jun 2003 14:57:59 +0000 (14:57 +0000)]
0.8.0.28:
Efficient version of WITH-RECURSIVE-LOCK
... since the frame-pointer is lispobj aligned, we can safely
pun it into a fixnum without fearing that we'll point
into space.  All those SAP-INTs and MAKE-LISP-OBJs then
compile into null moves, and no more efficiency notes.

21 years ago0.8.0.27:
Alexey Dejneka [Tue, 3 Jun 2003 12:29:16 +0000 (12:29 +0000)]
0.8.0.27:
        Fixed bug 252: use UNLINK-NODE to delete returns in merging
        toplevel lambdas.

21 years ago0.8.0.27:
William Harold Newman [Mon, 2 Jun 2003 22:12:04 +0000 (22:12 +0000)]
0.8.0.27:
redid DESCRIBE and DESCRIBE-OBJECT newlining/freshlining to
be consistent with each other (so e.g. we don't get
multiple leading newlines when DESCRIBEing an instance
of STRUCTURE-OBJECT) and to conform to ANSI spec with
minimal surprise:
...DEFUN DESCRIBE now longer FRESH-LINEs.
...DEFUN DESCRIBE no longer does PPRINT-LOGICAL-BLOCK, either,
since FRESH-LINE inside PP-L-B can make a mess.
...DESCRIBE-OBJECT methods consistently do FRESH-LINEs, as in
the spec example, and if they use the prettyprinter,
they create their own PPRINT-LOGICAL-BLOCKs.
(No, this style -- coders paid by the line, mixing high level
CLOS dispatch with low-level physical output bypassing
the pretty-printer -- is not the way that I would have
specified the behavior, but I was still programming in C
and C++ when the spec was written, and no one asked me.)
deleted *DESCRIBE-METAOBJECTS-AS-OBJECTS-P*, since its output
is so messy I doubt people want to use it (and if I'm
wrong the implementation is trivial to restore, with
the only trickiness being figuring out a decent
interface to support)
added warning for the unwary/unwise in SB-BSD-SOCKETS docs

21 years ago0.8.0.26:
Christophe Rhodes [Mon, 2 Jun 2003 15:55:48 +0000 (15:55 +0000)]
0.8.0.26:
A couple of contrib fixes
... adjust the dependencies in sb-posix (patch from Rudi
Schlatte sbcl-devel 2003-06-02)
... gray-streams stream-foo-sequence take their arguments in
the other order (David Lichteblau 2003-06-01)

21 years ago0.8.0.25:
Christophe Rhodes [Mon, 2 Jun 2003 15:41:33 +0000 (15:41 +0000)]
0.8.0.25:
Merge "(defmacro nada (()))" patch (David Lichteblau sbcl-devel
2003-06-02)

21 years ago0.8.0.24:
Christophe Rhodes [Sun, 1 Jun 2003 15:44:54 +0000 (15:44 +0000)]
0.8.0.24:
A couple of small fixes:
... make the raw-slot reffer/setters in the case of
UNSIGNED-BYTE raw type (when the accessor is just AREF) know
that they're dealing with a (SIMPLE-ARRAY (UNSIGNED-BYTE 32)
(*)), quietening the compiler a little.
... make a fallback constructor, not an optimized constructor,
for condition classes.  (reported by eightjean on #lisp IRC)

21 years ago0.8.0.23:
Christophe Rhodes [Sun, 1 Jun 2003 11:15:54 +0000 (11:15 +0000)]
0.8.0.23:
Fix a couple of bugs from Paul Dietz' test suite
... multiple class/superclass redefinitions can leave a layout
with an INVALID value of T; this case needs to be handled in
CHECK-WRAPPER-VALIDITY.  (thanks to Gerd Moellmann)
... (SETF FIND-CLASS) will eventually pass NIL to (SETF
FIND-CLASSOID), so that had better be able to handle it.

21 years ago0.8.0.22:
Christophe Rhodes [Sun, 1 Jun 2003 10:48:21 +0000 (10:48 +0000)]
0.8.0.22:
        Unbreak WITH-PACKAGE-ITERATOR (which I managed to break when
        introducing enough type declarations to quieten the compiler)
        ... in the :INHERITED case, ,',SYMBOLS isn't necessarily true,
                so when ,',HASH-VECTOR isn't bound to a hash-vector, we
                need to set ,',COUNTER to NIL, rather than try seeking
                down ,',HASH-VECTOR.

21 years ago0.8.0.21
Daniel Barlow [Sat, 31 May 2003 20:56:02 +0000 (20:56 +0000)]
0.8.0.21
Add contrib/asdf-module.mk to the list of files that go into a
binary distribution (thanks to David Lichteblau for bug report)

21 years ago0.8.0.20:
Christophe Rhodes [Fri, 30 May 2003 11:26:58 +0000 (11:26 +0000)]
0.8.0.20:
Minor contrib infrastructure frob:
... don't use :force t to ensure building, because firstly it's
hideously expensive in time, as we have to build base systems
several times; secondly, it won't work if the semantics change
to not propagate the FORCE value to depended systems; and
thirdly it doesn't work anyway in the presence of our current
TEST-OP implementation.  Delete suspicious files (including
*.fasl under contrib/) at the start of make-target-contrib.sh
instead.
... cvsignore contrib/systems

21 years ago0.8.0.19:
Christophe Rhodes [Fri, 30 May 2003 10:44:10 +0000 (10:44 +0000)]
0.8.0.19:
No-one's complained, so merge CSR patch "Type checking on global
variables" (sbcl-devel 2003-05-27)
... fix SB-XC:PROCLAIM to queue up TYPE and FTYPE proclamations
when the system isn't initialized, and then reproclaim them
later;
... fix EVAL to punt to the compiler if there's a type proclamation
for FOO in (SETQ FOO ...);
... proclaim the types of the various CL:*FOO* variables, according
to the CLHS;
... fix two instances of undefined behaviour in the test suite. :-)

21 years ago0.8.0.18:
Christophe Rhodes [Fri, 30 May 2003 09:39:21 +0000 (09:39 +0000)]
0.8.0.18:
Fix bug in APROPOS (reported by cliini on #lisp IRC 2003-05-29)
... it's the second value from FIND-SYMBOL that we want to
compare to :EXTERNAL, not the primary :)
... while we're at it, quieten WITH-PACKAGE-ITERATOR (and
incidentally LOOP FOR ... BEING EACH SYMBOL IN ...)

21 years ago0.8.0.17
Daniel Barlow [Fri, 30 May 2003 02:35:48 +0000 (02:35 +0000)]
0.8.0.17
 SB-GROVEL : include stdio.h in generated C file
 unconditionally - we use printf, after all

 SB-POSIX specification updates: more detail on types,
 designators, foreign memory

 SP-POSIX TODO list updated with feedback from c.l.l thread

21 years ago0.8.0.16:
Christophe Rhodes [Thu, 29 May 2003 16:14:44 +0000 (16:14 +0000)]
0.8.0.16:
Code deletion, yay
... since we've expunged *BYTES-CONSED-BETWEEN-GCS* everywhere else,
we might as well stop it being set and confusing people, so
delete it;
... since our CMUCL brethren have decided that 12Mb is a good value
for (BYTES-CONSED-BETWEEN-GCS), let's follow that.  Note that
this increases the default on x86, but decreases the historical
default on non-x86 (though in recent times a refactor had
likewise changed that default);
... fix an error caught by new function warning stuff: bogus
parenthesis in a sparc VOP.

21 years ago0.8.0.15:
Christophe Rhodes [Thu, 29 May 2003 12:28:01 +0000 (12:28 +0000)]
0.8.0.15:
A couple more minor fixes:
... LOOP FOR ... FROM ... can apparently accept complex numbers
in some cases.  Ew.  Make it so, but attempt to limit
the damage by still providing compile-time diagnostics
where possible.
... disassemble FUCOM on x86 correctly.  (thanks to Raymond Toy)
... unBAshify test script.  (thanks to Henrik Motakef)

21 years ago0.8.0.14:
William Harold Newman [Wed, 28 May 2003 15:15:23 +0000 (15:15 +0000)]
0.8.0.14:
changed #(1.2.3.4) value (changed in 0.8.0.12) in the sources
too (with more guidance from ZB on #lisp)

21 years ago0.8.0.13:
Christophe Rhodes [Wed, 28 May 2003 14:49:35 +0000 (14:49 +0000)]
0.8.0.13:
Miscellaneous grab bag of fixes
... use SB!XC:MOST-POSITIVE-FIXNUM in bit-bash type; the
expression is no doubt still wrong for 64-bit lisps, but
it stands a chance of being right for 32-bit; :)
... NIL is a valid structure slot name; (yes, really!)
... whine about invalid keywords in macro calls even if there
are no defined keywords (but just &KEY) in the lambda
list;
... prettify the compile-time warning in
%COMPILE-TIME-TYPE-ERROR a little;
... a couple of IGNOREs

21 years ago0.8.0.12:
William Harold Newman [Wed, 28 May 2003 14:26:48 +0000 (14:26 +0000)]
0.8.0.12:
added .cvsignore files in contrib/, and made corresponding
changes in clean.sh (didn't clean up foo.c in clean.sh)
(Maybe if we called it grovel-tmp.c or something I'd
be more comfortable with its treewide autodeletion.)
fixed #(1.2.3.4) thinko in sb-bsd-sockets docs (pointed out
by Zachary Beane on sbcl-devel 2003-05-27)

21 years ago0.8.0.11:
Christophe Rhodes [Wed, 28 May 2003 11:51:10 +0000 (11:51 +0000)]
0.8.0.11:
Merge patch from Antonio Martinez (sbcl-devel 2003-05-19
"read-sequence for fundamental-binary-input-streams")
... and WRITE-SEQUENCE, as well.
Merge patch from Andreas Fuchs (sbcl-devel 2003-05-20
"(defmethod foo (&key bla &rest blub) t)")
... detect more erroneous specialized lambda lists;
... handle the error in the SOURCE-CONTEXT method for DEFMETHOD,
otherwise we can't print the error message we want;
... fix the bogus lambda list in simple-streams and in the
test suite;
... include tests for a variety of bogus input.

(I would also like to mark the occasion of SBCL's very own millennium
bug, as we observe the CVS revision number for version.lisp-expr tick
over from 1.999 to 1.1000.  "Should auld acquaintance be forgot...")

21 years ago0.8.0.10:
Alexey Dejneka [Tue, 27 May 2003 18:13:39 +0000 (18:13 +0000)]
0.8.0.10:
        Beautified (I hope) error reporting for "single-value"
        compile-time type errors.

21 years ago0.8.0.9:
Christophe Rhodes [Tue, 27 May 2003 16:17:26 +0000 (16:17 +0000)]
0.8.0.9:
Minor buglet fixes:
... remove bogus YES-OR-NO-P and Y-OR-N-P extra level of
indirection.  (thanks to Antonio Martinez)
... make clocc-ansi-test whine less, by not making
COMPILER-ERROR inherit from SERIOUS-CONDITION
... add a couple of IGNORE/IGNORABLEs

21 years ago0.8.0.8:
Christophe Rhodes [Tue, 27 May 2003 13:32:57 +0000 (13:32 +0000)]
0.8.0.8:
        Some slight MAKE-LOAD-FORM-related fixes
        ... in general, slots can be named by any symbols; DEFCLASS is
                more stringent in its requirements, so move the extra
                checks into the DEFCLASS macro.
        ... now structure slots can be named by keywords again.
        ... make MAKE-LOAD-FORM-SAVING-SLOTS results on structures
                cause the compiler to be less verbose, by using a
                lower-level setter (SB!KERNEL:SLOT-SETTER-LAMBDA-FORM).

[ oops, forgot to commit the tests ]

21 years ago0.8.0.8:
Christophe Rhodes [Tue, 27 May 2003 13:32:11 +0000 (13:32 +0000)]
0.8.0.8:
Some slight MAKE-LOAD-FORM-related fixes
... in general, slots can be named by any symbols; DEFCLASS is
more stringent in its requirements, so move the extra
checks into the DEFCLASS macro.
... now structure slots can be named by keywords again.
... make MAKE-LOAD-FORM-SAVING-SLOTS results on structures
cause the compiler to be less verbose, by using a
lower-level setter (SB!KERNEL:SLOT-SETTER-LAMBDA-FORM).

21 years ago0.8.0.7:
Christophe Rhodes [Tue, 27 May 2003 09:20:01 +0000 (09:20 +0000)]
0.8.0.7:
Various contrib/ fixes
... isolate the sb-bsd-sockets tests from the rest of the
system, so that they're not included in the
sb-simple-streams tests. (thanks to Rudi Schlatte)
... replace asm/errno.h with errno.h include in
sb-simple-streams. (thanks to Rudi Schlatte)
... make sb-grovel more likely to emit C9x compliant code, by
minimizing rightward drift.

21 years ago0.8.0.6:
Alexey Dejneka [Tue, 27 May 2003 08:35:52 +0000 (08:35 +0000)]
0.8.0.6:
        * Walker knows about NAMED-LAMBDA;
        * implemented short form of VALUES type specifier.

21 years ago0.8.0.5:
Alexey Dejneka [Mon, 26 May 2003 14:42:23 +0000 (14:42 +0000)]
0.8.0.5:
        * Deleted obsolete bug 244;
        * optimizer for ARRAY-HEADER-P knows about 0-dimensional
          arrays;
          ... fixed bug 250.

21 years ago0.8.0.4:
Alexey Dejneka [Mon, 26 May 2003 08:17:13 +0000 (08:17 +0000)]
0.8.0.4:
        Fixed bug 249: local functions did not check type of unused
        arguments.

21 years ago0.8.0.3:
Alexey Dejneka [Mon, 26 May 2003 04:25:52 +0000 (04:25 +0000)]
0.8.0.3:
        Merged CAST branch.

        Changes since -cast.8:
        * separated usage of object and values types;
        * fixed warning and error reports for compile-time type
          errors;
        * inline structure slot accessors are implemented with source
          transforms;
        * enabled warning emitting for type errors in some paths to
          CAST;
        * removed check for type errors in arguments of a call of a
          flushable function;
        * source transforms are made nameless.

21 years ago0.8.0.2:
Christophe Rhodes [Sun, 25 May 2003 22:34:23 +0000 (22:34 +0000)]
0.8.0.2:
Fix stack exhaustion stack exhaustion death
... define DEFINE-FUNCTION-NAME-SYNTAX function-name-defining macro;
... use it for SETF functions, and define LEGAL-FUNCTION-NAME-P
and FUN-NAME-BLOCK-NAME in terms of VALID-FUNCTION-NAME-P;
... also define internal PCL generalized function name syntax as
such, and test for internalness in SET-ARG-INFO1;
... OAOO bonus: delete bits of SB!PCL::CLASS-PREDICATE that were
decorating the compiler;

(note: this API is interface-compatible with CMUCL's for defining
generalized function name syntax.  However, it's not currently exported
from SB-EXT because I happen to think that calling something
VALID-FUNCTION-NAME-P when it returns two values, the second of which
is syntactically significant, is a bit lame, and maybe we'll be able
to agree a better name between the two projects)

21 years ago0.8.0.1:
Christophe Rhodes [Sun, 25 May 2003 22:26:13 +0000 (22:26 +0000)]
0.8.0.1:
Fix build on FreeBSD
... don't #include <proc.h>, which defines a struct thread; (thanks
to Henrik Motakef)
... do sigaltstack() if #+c-stack-is-control-stack (which is, in
practice, all the time).

(this /may/ break building on OpenBSD, which uses the same OS-dependent
routines; it is possible that OpenBSD needs something from <proc.h>;
if so, we need to find some compromise)

21 years ago0.8.0:
William Harold Newman [Sun, 25 May 2003 15:11:35 +0000 (15:11 +0000)]
0.8.0:
release, tagged as sbcl_0_8_0

21 years ago0.8alpha.0.45:
Christophe Rhodes [Thu, 22 May 2003 16:46:58 +0000 (16:46 +0000)]
0.8alpha.0.45:
Fix profiler bug reported by APD sbcl-devel 2003-05-21:
... update *N-BYTES-FREED-OR-PURIFIED* in SUB-GC;
... add a smoke test.
Increment FASL file version number due to change in
DEFSTRUCT-SLOT-DESCRIPTION structure.

21 years ago0.8alpha.0.44:
Kevin Rosenberg [Thu, 22 May 2003 16:00:20 +0000 (16:00 +0000)]
0.8alpha.0.44:
    sb-aclrepl/inspect.lisp: Change usage of dsd-%name to dsd-name

21 years ago0.8alpha.0.43:
Kevin Rosenberg [Tue, 20 May 2003 16:15:18 +0000 (16:15 +0000)]
0.8alpha.0.43:
    contrib/sb-aclrepl:
       Rework newline handling to ensure a fresh line
       Correct README file

21 years ago0.8alpha.0.42:
Christophe Rhodes [Tue, 20 May 2003 14:42:25 +0000 (14:42 +0000)]
0.8alpha.0.42:
improvements to sb-simple-streams contrib (from Rudi Schlatte)
... don't spam *features* anymore
... writes of large chunks of data work now, instead of
failing silently

21 years ago0.8alpha.0.41:
Christophe Rhodes [Tue, 20 May 2003 10:49:26 +0000 (10:49 +0000)]
0.8alpha.0.41:
Firefighting the build, part II
... remove DSD-%NAME optimization, in the interest of making
SLOT-VALUE (and hence MAKE-LOAD-FORM-SAVING-SLOTS)
a more reliable operation.
... now the name of the slot is the symbol in the DEFSTRUCT
form, as expected; also, now the CL package is pristine,
containing only the 978 exported symbols.
Essentially this version has built from CMUCL and built itself
successfully.

21 years ago0.8alpha.0.40:
Christophe Rhodes [Tue, 20 May 2003 10:36:02 +0000 (10:36 +0000)]
0.8alpha.0.40:
Firefighting the build, part I
... make SLOT-VALUE work on :READ-ONLY T structure slots
Notes:

* This version may have a subtle breakage that may or may not
bite.  The forthcoming 0.8alpha.0.41 commit will fix that
subtle breakage, but it was fixed chronologically before in my
tree, so I haven't taken out that fix to test this one in
isolation.  I hope that makes sense...)

* The new implementation of MAKE-LOAD-FORM-SAVING-SLOTS seems
very slow; this may be a perceptual problem.  What is
incontrovertible is that it is very noisy; it chatters about
compiling many top-level forms, caused by PCL generating
LOAD-TIME-VALUE forms for ENSURE-ACCESSOR to optimize SLOT-VALUE.
A fix for this, at least for structure objects, will probably be
forthcoming in 0.8alpha.0.4x.

21 years ago0.8alpha.0.39:
Christophe Rhodes [Mon, 19 May 2003 16:25:10 +0000 (16:25 +0000)]
0.8alpha.0.39:
A couple more CLOS fixes:
... make &OPTIONAL argument count checking less lax in methods
(caught by pfdietz' MAKE-LOAD-FORM.ERROR.2)
... make :ARGUMENT-PRECEDENCE-ORDER and :METHOD-COMBINATION
DEFGENERIC options do sanity checking on their arguments
(:A-P-O caught by pfdietz' suite; :M-C
checking defensively installed :-)

21 years ago0.8alpha.0.38:
Christophe Rhodes [Mon, 19 May 2003 14:47:14 +0000 (14:47 +0000)]
0.8alpha.0.38:
Slight change to REQUIRE/PROVIDE protocol
... as observed by Tony Martinez sbcl-devel 2003-05-13, REQUIRE
takes a string designator, so allow this
... update to latest ASDF, which changes the asdf hook slightly
such that individual modules are required (ha!) to
PROVIDE themselves; make it so.

21 years ago0.8alpha.0.37:
Christophe Rhodes [Mon, 19 May 2003 14:05:17 +0000 (14:05 +0000)]
0.8alpha.0.37:
Make MAKE-LOAD-FORM(-SAVING-SLOTS) vaguely conform
... and in the process, remind myself of just how horrible the
:JUST-DUMP-IT-NORMALLY hack was.
... more methods on MAKE-LOAD-FORM;
... real, CLOS-based introspective definition of
MAKE-LOAD-FORM-SAVING-SLOTS...
... which means that we have to hold off from using MLFSS until
it's around, so make JUST-DUMP-IT-NORMALLY use
:SB-JUST-DUMP-IT-NORMALLY rather than MLFSS in its
definition for the target.
Fix the type.impure.lisp test for the new definition of
condition classes (oops).