Really make BINDING* accept declarations
Remove trace-table.

It hasn't been ever used in SBCL, and it was supposed to be used for
making precise backtraces for the precise GC.
There are probably better ways to achieve precises backtraces.
Remove TRACE-TABLE-OFFSET slot from CODE.

It stored the byte offset to the location where the code ended and
where the trace table started, but since there's no trace tables, it
was only used for getting the byte size of the code.
The code size is already stored in the CODE-SIZE slot, but in words
and rounded up to two words.
Store verbatim bytes instead and do the conversions when necessary.
Further change to BINDING* to make it more really right.
Improve cache hit rate for some memoized functions.

TYPE= and CSUBTYPEP forced eviction another entry at least
70% to 80% of the time. Enlarging them fixed that.
Also we now choose (arbitrarily) one of two possible lines
for any cache entry, giving another slight performance boost.

The :hash-function specified in DEFUN-CACHED must not
perform masking any more. It's done automatically.
Reconcile error messages between {MAKE,ADJUST}-ARRAY.

Due to ADJUST-ARRAY's guts being extremely confusing, this code tries to
perform more checks up front and re-orders them to be more user-friendly.

There was no obvious reason why one place should say
 "~S is not an array with a fill-pointer"
and another
 "~S is not of type (SATISFIES ARRAY-HAS-FILL-POINTER-P)".
or
 :INITIAL-CONTENTS may not be specified with the :INITIAL-ELEMENT or :DISPLACED-TO option.
vs
 Neither :INITIAL-ELEMENT nor :INITIAL-CONTENTS can be specified along with :DISPLACED-TO

So those messages are more uniform now, and as a bonus,
DATA-VECTOR-FROM-INITS takes only 7 args intead of 9.
Fix a GC assert error message.

It was using %l for printing a number, change it to %ld.
Advise compiler that *{HANDLER,RESTART}-CLUSTERS* are always-bound.
Add some type-derivers
Optimize assembly/x86-64/arith.lisp.

Mostly dealing with fixnum type checking.
Don't memoize the trivial case of a few 2-arg type functions.

TYPE=, TYPE-{INTERSECTION,UNION}2, and CSUBTYPEP
can test (EQ type1 type2) faster than computing the hash.
Derive that (INTERN x "KEYWORD") produces a KEYWORD
Add a remark about meta-compile.
Make -EMPTY-,-UNIVERSAL-,-WILD- types into defglobals

(Renaming with double-earmuffs would be gratuitous noise.)
support for DragonFly BSD

x86(-64) only for now, and threads are currently non-functional.
Closes lp#1292845, thanks to Vasily Postnicov.
Enforce types returned from CLOS stream-read-char (etc) methods.

As per discussion on sbcl-devel, these are necessary as a consequence
of change 7cdaadca removing checks from callers of READ-CHAR et. al.
Revert "Derive that (INTERN x "KEYWORD") produces a KEYWORD"

This reverts commit 1d796c22c86e8be5e49857edb3637cc9b70d0d94.
Fix some immediate encoding issues on ARM.

Function with a lot of arguments easily overflow the immediate limits.

There are still problems with stack load and stores with large offsets.
1.2.1: will be tagged as "sbcl-1.2.1"
Merge tag 'sbcl-1.2.1'

changes in sbcl-1.2.1 relative to sbcl-1.2.0:
  * enhancement: GENCGC is enabled on ARM.
  * enhancement: better error reporting for invalid calls to local functions.
  * enhancement: support for GNU/kFreeBSD distributions.  (lp#1079954, thanks
    to Christoph Egger)
  * enhancement: experimental support for threads on NetBSD/x86-64.  (thanks
    to Robert Swindells)
  * enhancement: support for DragonFly BSD.  (lp#1292845, thanks to Vasily
    Postnicov)
  * bug fix: TYPE-OF must not return AND/OR/NOT expressions.
    (lp#1317308)
  * bug fix: accessing NIL arrays stopped producing errors. (lp#1311421)
  * bug fix: DISASSEMBLE no longer prints unwanted stuff. (lp#1251861)
  * bug fix: compiling SVREF on unknown types no longer produces scary errors.
    (lp#1258716)
  * bug fix: assorted LOOP fixes and enhancements. (lp#645534, lp#1322923,
    lp#700538, lp#613876, lp#695286, lp#798388)
  * bug fix: silence compiler notes from the SEARCH transform. (lp#1071310)
  * bug fix: array type intersection handles T and unknown element types
    correctly. (lp#1258716)
  * bug fix: fix a corner case in array type unparsing that would result in
    misleading translations from our internal type representation.
  * bug fix: array-rank now sees through union and intersection types.
    (lp#1310574)
  * bug fix: when DECLARE expressions are in the wrong place, be careful not
    to attempt to evaluate the subforms.  (lp#573747; thanks to Roman
    Marynchak)
  * bug fix: misplaced and missing declarations in DEFTRANSFORM. (lp#1066451)
  * bug fix: FBOUNDP returned NIL for a class of incorrect function names
    instead of signaling an error. (lp#1095483)
  * bug fix: fix a compile-time AVER in regalloc: lifetime analysis
    used to (rarely) introduce duplicate conflict markers in a single
    TN/block pair. (lp#1327008)

Conflicts:
	src/runtime/bsd-os.c
	src/runtime/thread.c

Sync with upstream