Steel Bank Common Lisp

lp:~nikodemus/sbcl/master

Created by Nikodemus Siivola on 2012-04-18 and last modified on 2013-06-06
Get this branch:
bzr branch lp:~nikodemus/sbcl/master

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Nikodemus Siivola
Project:
SBCL
Status:
Merged

Import details

Import Status: Invalid

This branch is an import of the HEAD branch of the Git repository at git://sbcl.git.sourceforge.net/gitroot/sbcl/sbcl.git.

Last successful import was on 2013-08-30.

Import started on 2013-09-03 on galapagos and finished on 2013-09-03 taking 1 minute — see the log
Import started on 2013-09-01 on galapagos and finished on 2013-09-01 taking 1 minute — see the log
Import started on 2013-08-31 on pear and finished on 2013-08-31 taking 30 seconds — see the log
Import started on 2013-08-31 on pear and finished on 2013-08-31 taking 30 seconds — see the log

Whiteboard

Recent revisions

6469. By Lutz Euler on 2013-06-06

Simplify getting the contents of assembler segments.

Extend FINALIZE-SEGMENT to compact the segment's buffer and provide an
exported function to get at this buffer. This resolves an old KLUDGE
noted at ON-SEGMENT-CONTENTS-VECTORLY, making this function unnecessary.

There are several benefits to this change: First, the consumers of
assembler segment's contents, like WRITE-SEGMENT-CONTENTS which is used
for example during FASL dumping, or MAKE-CORE-COMPONENT, now call
WRITE-SEQUENCE respectively COPY-BYTE-VECTOR-TO-SYSTEM-AREA only once
per segment and not once per the pieces of the segment's contents that
ON-SEGMENT-CONTENTS-VECTORLY provided, which makes for less overhead.

Second, this allows to greatly simplify the whole operation of
DISASSEMBLE-ASSEM-SEGMENT, in the course deleting several helpers of it.
So far this repartitioned the pieces of the segment's contents from
ON-SEGMENT-CONTENTS-VECTORLY, while caring not to split the contents
inside instructions, which needed a sizable amount of code. Now the
segment's contents are simply disassembled as a whole. Also, the old
code (specifically SEGMENT-OVERFLOW) didn't take prefix instructions
into account correctly which surfaced as the bug in lp#1085729.

Fixes lp#1085729.

Also, fix an unrelated typo in NEWS.

6468. By Stas Boukarev on 2013-06-05

Stop exporting unused symbols.

6467. By Stas Boukarev on 2013-06-05

Factor out read-var-integer into a function.

read-var-integer macro is used quite a number of times, expand the
macro into a SETF, which calls %read-var-integer, which does actual
reading. Reduces the core size by 65KB on x86-64.

6466. By Stas Boukarev on 2013-06-05

sb-bsd-sockets: More robust inet-socket-bind test on Windows.

Nested unwind-protects aren't supported on Windows.

6465. By Stas Boukarev on 2013-06-05

Get rid of vm-support-routines indirection.

VM routines were defined using two functions, one calling another
through structure slots. This is unnecessary, removing leads to a
~200KB core size reduction on x86-64.

6464. By Stas Boukarev on 2013-06-05

Optimize (mod FIXNUM) type-checks on x86oids.

Instead of two (and (>= x 0) (< x FIXNUM)) comparisons, do one
unsigned.
(mod power-of-two) is further optimized by doing one mask test
determine the range and fixnumness in one go.

6463. By Stas Boukarev on 2013-06-04

sb-bsd-socket tests: don't listen on a predefined port.

Listening on 1974 prevents from building contribs in parallel.

6462. By Christophe Rhodes on 2013-06-04

fix CL case conversions of characters involving iota subscript

Oh boy. Judging by the length of the web page explaining the issue
(at <http://www.tlg.uci.edu/~opoudjis/unicode/unicode_adscript.html>)
this is a bit of a minefield. I hope that this doesn't contribute
further to the trouble...

Although the combined _WITH_PROSGEGRAMMENI characters are of
general class "Lt" (i.e. titlecase), for CL purposes we treat them
as the uppercase equivalent of the lowercase _WITH_YPOGEGRAMMENI
characters (as directly specified by the case mapping data in
UnicodeData.txt). This is a little awkward, and involves a bit
of rearrangement in the indices of the misc table entries to make
the (CL) uppercase/lowercase tests efficient, but seems to be the
best of all possible worlds given that we must comply with CL's
character-to-character case mappings -- the alternative of not
providing an uppercase version of LOWERCASE_OMEGA_WITH_YPOGEGRAMMENI
seems even weirder.

The way this is done in ucd.lisp is a little bit kludgy, because we
have to avoid giving the same exception to the serbian titlecase
digraphs (Dz and friends) which mustn't map to anything, or else
we'd break invertibility. (The lowercase dz and uppercase DZ are
already (CL) case mappings of each other). Probably the thing which
will confuse future readers is that some (Unicode) titlecase
characters are (CL) upper-case-p.

6461. By Paul Khuong on 2013-06-03

Simpler and more precise type derivation for APPEND/NCONC

 We can suppose that all but the last argument are lists when
 deriving the return type... and the logic to compute the return
 type can be much simpler: it's either a CONS, the last argument,
 or we don't know which (yet).

6460. By Stas Boukarev on 2013-06-03

Uninitialized type-error conditions can now be printed.

(print (make-condition 'simple-type-error)) signalled an unbound slot
error.

Reported by Eric Marsden, fixes lp#1184586.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.