Attached are two patches against 126.96.36.199.
The first one fixes an important bug in vector-push-extend: the
extension value was strictly obeyed instead of being taken as a
minimum value (and making sure to actually extend the vector before
writing past its end). It also computes a saner value for the
extension when the vector is more than half the maximal length.
The second one reduces consing in refill-input-buffer by moving (go
...) forms outside the body of a without-interrupts (otherwise the
thunk passed to call-without-interrupts isn't stack allocatable), and
by making unix-read inlinable, thus removing the need to cons SAPs up.
A tree with both patches applied passes the same tests as usual on
darwin/x86-64, and the code itself seems quite sane and simple. I
however did not test on x86, nor on other platforms (where tests tend
to be more successful).