Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

sbcl Log


Commit Date  
[74a297] by Paul Khuong Paul Khuong

More constraint propagation in the presence of assignment

When SPEED = 3 > COMPILATION-SPEED, propagate type in code
like (cond ((eql (the fixnum x) y) (setf x 42) y) ...).

2011-06-20 01:04:20 Tree
[fb24d8] by Paul Khuong Paul Khuong

Less constraint propagation when COMPILATION-SPEED > SPEED

Propagate much fewer EQL constraints, and propagate fewer constraints
to EQL variables. Can results in a few orders of magnitude speed ups
in compilation times.

2011-06-19 01:14:40 Tree
[e7100f] by Paul Khuong Paul Khuong

More explicit high-level interface for consets

Strictly no performance or behaviour difference, but it may be
helpful to understand constraint propagation or even improve it.

2011-06-18 16:59:23 Tree
[8f31e3] by Paul Khuong Paul Khuong

Faster iteration through a variable's constraints during constraint propagation

Store indices of constraints by usage. Practically eliminates the dependence
on conset intersection/iteration performance. Improves compilation speeds,
especially for large functions.

Also improves lp#792363 and lp#394206.

2011-06-18 16:59:07 Tree
[d2e1e2] by Paul Khuong Paul Khuong

Smarter FIND-CONSTRAINT during constraint propagation

Use hash tables instead of pure linear search for hash
consing of constraints. Significantly reduces the pressure
on conset iteration performance, and improves compilation
speed of large functions.

Improves lp#792363 and lp#394206.

2011-06-18 16:58:25 Tree
[5896b1] by Nikodemus Siivola Nikodemus Siivola

RUN-PROGRAM: apply the external-format to the PTY stream as well

2011-06-17 18:41:31 Tree
[db237f] by Nikodemus Siivola Nikodemus Siivola

build: tweak generate-version.sh to work with older Git

Pre-1.7.2 Gits are pretty common out in the wild, so use wc -l to
get the revision counts instead of rev-list --count.

This has been verified to work with at least Git v1.6.0.2.

2011-06-15 07:49:14 Tree
[81eddb] by Nikodemus Siivola Nikodemus Siivola

rename STYLE to HACKING

Also update a bit for the brave new Git-only world.

2011-06-14 17:47:32 Tree
[d27eb1] by Nikodemus Siivola Nikodemus Siivola

whitespace in tests

2011-06-14 10:24:41 Tree
[d013d0] by Nikodemus Siivola Nikodemus Siivola

add &KEY SILENT to PARSE-LAMBDA-LIST

Passed through to PARSE-LAMBDA-LIST-LIKE, used by %SPLIT-ARGLIST in PCL.

Prior to this GENERIC-FUNCTION-PRETTY-ARGLIST on functions with both
&OPTIONAL and &KEY arguments caused a style-warning -- and inquiring about
the lambda-list isn't the right time for that.

2011-06-14 09:17:15 Tree
[88d80e] by Jim Wise Jim Wise

Convert remaining tests in debug.impure.lisp to use with-test.

2011-06-13 20:27:59 Tree
[bea522] by Nikodemus Siivola Nikodemus Siivola

tests and NEWS for lp#308961

Also add a random FP read/print consistency tester.

For now it skips denormalized double-floats due to bug 793774.

2011-06-11 18:43:52 Tree
[dafa18] by David Vázquez David Vázquez , pushed by Nikodemus Siivola Nikodemus Siivola

FORMAT-AUX-EXP: adjust scale if scale-exponent return 1.0

lp#308961, part 2.

FORMAT-EXP-AUX scales a number such that it will have K digits before of the
decimal point. This relies on scale-exponent.

(format nil "~E" 0.1) ; => "1.e-1"

0: (FORMAT-EXP-AUX #<SB-IMPL::STRING-OUTPUT-STREAM {AFE5DE9}> 0.1 NIL NIL
NIL 1 NIL #\ NIL NIL)
1: (SB-IMPL::SCALE-EXPONENT 0.1)
1: SB-IMPL::SCALE-EXPONENT returned 0.1 0
0: FORMAT-EXP-AUX returned "1"

0.1 is 0.1 * 10^0 according to scale-exponent. Then, it is multiplied by 10^K
before printing. Everything works out fine.

However!

(format nil "~E" 0.01) ; => "10.e-3" ... oops

0: (FORMAT-EXP-AUX #<SB-IMPL::STRING-OUTPUT-STREAM {AA744C1}> 0.01 NIL NIL
NIL 1 NIL #\ NIL NIL)
1: (SB-IMPL::SCALE-EXPONENT 0.01)
1: SB-IMPL::SCALE-EXPONENT returned 1.0 -2
0: FORMAT-EXP-AUX returned "2"

In this example, scale-exponent returns 1.0 and -2, meaning 0.01 = 1.0 *
10^-2. Again, format-aux-exp multiply it by 10^K. But as 1.0 has a digit
before of the decimal point, the result will have K+1 digits.

This is due to format-exp-aux assumed the returned value will be lesser to
1.0. In order to fix this, we decrement K when scale-exponent return 1.0 as
primary value.

2011-06-11 18:43:52 Tree
[58187b] by David Vázquez David Vázquez , pushed by Nikodemus Siivola Nikodemus Siivola

FLONUM-TO-DIGITS handles non-negative input properly

lp#308961, part 1.

SBCL has an extended version of the Burger & Dybwig fp printer, which
supports rounding.

It did not however support zero -- but in eg.

(format nil "~,1F" 0.001)

0.001 is rounded to zero, which leads FLONUM-TO-DIGITS giving us one zero too
many. Ie. it should be

=> "0.0"

but prior to this we got "0.00" instead.

This patch removes the special casing for 0, and instead tests that the lower
limit of the interval (- r m-) is positive in order not to generate extra
zeros.

2011-06-11 18:43:52 Tree
[25692c] by Paul Khuong Paul Khuong

Specialised constant MAKE-{SINGLE,DOUBLE}-FLOAT VOPs on x86 as well

These only trigger when the float to construct is a NaN, so very
marginal, and it doesn't seem worth the trouble on all the other
platforms (that don't support inline constants yet).

2011-06-11 15:28:46 Tree
2011-06-11 14:54:29 Tree
[1fe4bc] by Nikodemus Siivola Nikodemus Siivola

robustify DIRECTORY on logical pathnames

PATHNAME-INTERSECTIONS used to return pathnames with name or type
NIL if there was a mismatch -- but it should not return any
pathnames at all for a mismatch.

2011-06-11 13:56:41 Tree
[30a766] by Paul Khuong Paul Khuong

Fix #!- vs #- confusion in number's singleton-p type method

2011-06-11 05:45:55 Tree
[9e37bf] by Paul Khuong Paul Khuong

Avoid constant folding NaNs from MAKE-{SINGLE,DOUBLE}-FLOAT

Perform it in a specialised transform that checks for NaNs, and
add VOPs for constant arguments to avoid any slowdown.

Fixes lp#486812.

2011-06-11 05:41:27 Tree
[9f5c04] by Paul Khuong Paul Khuong

Improve SINGLE-FLOAT-BITS on x86-64

Avoid narrow-store-to-wide-load hazards, and generally emit sane
MOVSXD for sign extension.

Fixes lp#555201.

2011-06-11 04:09:11 Tree
[edd4f6] by Paul Khuong Paul Khuong

Fix a corner case in RUN-PROGRAM with very long argument strings

Argument string of length on the order of MOST-POSITIVE-FIXNUM
could lead to severe crashes.

I don't know why we bothered declaring FIXNUMs in RUN-PROGRAM.

Also, play with the null termination code a bit, but, really,
such long strings will only end up failing in the OS.

Fixes lp#787237

2011-06-11 03:33:04 Tree
[0a3d79] by Paul Khuong Paul Khuong

MAKE-THREAD accepts :ARGUMENTS to pass to the thread function

The additional keyword argument should be a lsit designator

Based on a patch by Roman Marynchak.

Fixes lp#727384.

2011-06-11 01:52:52 Tree
[39c9c1] by Nikodemus Siivola Nikodemus Siivola

FMAKUNBOUND removes the MACRO-FUNCTION as well

Fixes lp#795705.

2011-06-10 20:32:29 Tree
[37fbb0] by Nikodemus Siivola Nikodemus Siivola

&optional and &key supplied-p arguments in boa-constuctors

...can be used to initialize structure slots.

2011-06-10 20:18:41 Tree
[e0bc74] by Jim Wise Jim Wise

Reorder description of info file installs to work around limited SunOS echo

Scratches a long-standing itch, but not really necessary (result is purely
aesthetic).

2011-06-10 18:35:20 Tree
Older >