Section on writing tests in HACKING

Based on Stas' feedback
Remove unnecessary cases from PCL-INSTANCE-P
Don't cons in INITIAL-THREAD-FUNCTION-TRAMPOLINE before clearing *gc-inhibit*

Also in HANDLE-THREAD-EXIT don't cons
More improvements to DEFINE-HASH-CACHE / DEFUN-CACHED

 - The :DEFAULT and :INIT-WRAPPER options are eliminated.
 - Any cache is immediately usable in cold-init.
   (Whether the underlying function works is a different issue)
 - The memoization wrapper is a little faster on a miss
   by avoiding recomputation of the hash for the missing entry.
 - To update a 1-arg/1-result function in the cache costs only 1 cons
   versus formerly 4 words for a 2-vector.
De-cruft CLEAN-UP-PACK-STRUCTURES. Empty bit vectors are not a problem.

And FINITE-SB-ALWAYS-LIVE-COUNT was just plain wrong - it's not
a vector of vectors, but didn't matter. Proper semantics resulted from
resetting elsewhere; this one was supposed to smash pointers for GC.
Delete duplicate DEFTYPE INLINEP. Move comments to the first occurrence.
Optimize (EQUAL[P] "" ...).

Transform into (and (stringp x) (zerop (length x))).
Optimize (string= (the string string) "").

Transform into a (zerop (length string)), and transform STRING/= into
(and (plusp (length string)) 0).
Add a comment to x86-64/pred.lisp:move-if.

It can't use XOR to load 0 because that will overwrite the flags.
Optimize (LOGIOR SIGNED UNSIGNED) on x86-64.

Add two VOPs for combinations of unsigned-num and signed-num
arguments.
Don't alias #\Bell to #\Bel.

Unicode character U+1F514 has the name BELL.

Patch by Krzysztof Drewniak, lp#1319452.
Fix CAS SYMBOL-VALUE for locally special variables.

The case-form of the expansion was wrong, and the read-form used
SYMBOL-GLOBAL-VALUE.

Fixes lp#1098355.
Optimize (- (the (integer 0 2^63) x)) on x86-64.

2^63 is the only unsigned-byte-64 value which fits (signed-byte 64)
when negated. Add FAST-NEGATE/UNSIGNED VOP.
Restore CCL bootstrap

I missed a (declare inline) where renaming generic-abstract-walk-type
to generic-abstract-type-function.

H/T dougk.
Add FAST-NEGATE/UNSIGNED VOP to x86 and ARM.

Same as the x86-64 change.
Optimize (LOGIOR SIGNED UNSIGNED) on x86 and ARM.

Add two VOPs for combinations of unsigned-num and signed-num
arguments.
Handle additional generalized places in ATOMIC-{INCF,DECF}
Don't warn about everything from 'setf-funs' in the cross-compiler
Combine the special-form-constantp hash-tables into one.
Get rid of a bunch of useless gensyms from the image