[17c4e8] by jimwise
18.104.22.168: fix sb-posix readdir on SunOS/x86
for the time being, disable :largefile on SunOS/x86. Unfortunately,
:largefile works fine on SunOS x86_64, and will be re-enabled on x86
[8e6218] by Nikodemus Siivola
22.214.171.124: renaming oops in MAKE-PACKAGE
When WITH-PACKAGES was renamed WITH-PACKAGE-GRAPH, MAKE-PACKAGE was
* The form was that of a function call, so no program-error.
* Before the undefined function could be called, a non-local transfer always
[930a0e] by Nikodemus Siivola
126.96.36.199: better error messages for invalid variables
Based on patch by Roman Marynchak, lp#387333.
* Same code checks for LET and LET* in addition to lambda-lists, so make sure
* Make the messages for keywords, defined constants, and global lexicals
[bb3994] by Nikodemus Siivola
188.8.131.52: add :NOT-NULL option to C-STRING type
By default NIL is a valid C-STRING, translated to and from C's NULL. This is
There are however many C functions that don't check for NULL, so we want a
...it remains to be seen if this is non-horrible enough, but at least it
Not all C-STRING types have been audited yet, just a bunch of the more
[4078d2] by Nikodemus Siivola
184.108.40.206: terser C-STRING unparsing
Omit parts with default values from the unparsing: just
(C-STRING :EXTERNAL-FORMAT :DEFAULT :ELEMENT-TYPE CHARACTER)
becomes C-STRING, and
(C-STRING :EXTERNAL-FORMAT :UTF-8 :ELEMENT-TYPE CHARACTER)
becomes (C-STRING :EXTERNAL-FORMAT :UTF-8), etc.
[9eba16] by Nikodemus Siivola
220.127.116.11: death to "in: LAMBDA NIL" in compiler messages
The LAMBDA NIL was 99% of the time the lambda introduced by
Have EVAL save original form, and use that to name the lambda
`(NAMED-LAMBDA (EVAL ,SOURCE-CONTEXT) ...)
Finally, DEFINE-SOURCE-CONTEXT for NAMED-LAMBDA that understands the
Additionally, in case there is a legitimate (LAMBDA () ...) form the
[4a1cfe] by Nikodemus Siivola
18.104.22.168: fix MAKE-INSTANCE regression from 22.214.171.124
If we use a fake MAKE-INSTANCE emf in the presence of (SETF
Reported by Slobodan Milnović on sbcl-help.
[feba3c] by Nikodemus Siivola
126.96.36.199: CHECK-KEY-ARGS didn't take :ALLOW-OTHER-KEYS into account
Cases of interest are:
* No :ALLOW-OTHER-KEYS present for sure.
* :ALLOW-OTHER-KEYS with a non-constant argument, or a non-constant
* Constant :ALLOW-OTHER-KEYS NIL.
* Constant :ALLOW-OTHER-KEYS T.
Thanks to Xach for the heads-up!
[0223f4] by Nikodemus Siivola
188.8.131.52: faster slot-accesses in the presence of SLOT-VALUE-USING-CLASS &co
* Introducing SLOT-INFO: a structure we save into the each
This replaces typecheckfuns in permutation vectors, and both the
Given this, when we run into SLOT-VALUE in a method body when there is an
`(funcall (slot-info-reader (svref .pv. (1+ ,pv-offset))) ,parameter)
which is pretty snappy as these things go. Analogously for SET-SLOT-VALUE,
* Previously slot typechecking functions were generated as part of the
Now there's only one typechecking function per type, and that is saved only
* In a couple of places finalize the class a bit earlier if possible to have
* WRAPPER-INSTANCE-SLOTS-LAYOUT now also includes slot-types, and we consider
Detect slot-type violations while updating instances of safe classes.
Similarly for CHANGE-CLASS.
 by Nikodemus Siivola
184.108.40.206: detect invalid use of :PREDICATE with DEFSTRUCT :TYPE
Based on patch by Roman Marynchak, lp#520607.
In case there are :TYPE and :PREDICATE options specified, :NAMED DEFSTRUCT
Also includes the regression test.
[cff4ad] by Nikodemus Siivola
220.127.116.11: be careful about stack-allocation in BACKTRACE-AS-LIST
Replace DX objects with heap-allocated ones to avoid leaking invalid
Note: doesn't deal with objects allocated on stacks of other threads
[ad4fd2] by Nikodemus Siivola
18.104.22.168: revert 22.214.171.124 due to regression (lp#677779)
Reported by Ariel Badichi on sbcl-devel.
Using WITH-COMPILATION-UNIT to silence UNDEFINED-FUNCTION style-warnings for
...and it's not like WITH-COMPILATION-UNIT would ever get to summarize the
Proper fix for this is to use UNDEFINED-REFERENCE-STYLE-WARNING as separate