sbcl.git
13 years ago1.0.43.21: typo in COPYING file
Nikodemus Siivola [Mon, 4 Oct 2010 09:51:59 +0000 (09:51 +0000)]
1.0.43.21: typo in COPYING file

 Spotted by Jean-Philippe Paradis.

13 years ago1.0.43.20: missing NEWS for 1.0.43.19
Nikodemus Siivola [Mon, 4 Oct 2010 09:31:02 +0000 (09:31 +0000)]
1.0.43.20: missing NEWS for 1.0.43.19

 EOM

13 years ago1.0.43.19: don't record source-paths for sub-parts of quoted constants
Nikodemus Siivola [Mon, 4 Oct 2010 09:27:56 +0000 (09:27 +0000)]
1.0.43.19: don't record source-paths for sub-parts of quoted constants

 Fixes the performance-half of lp#654289.

13 years ago1.0.43.18: index SB-EXT:*EVALUATOR-MODE* under #'EVAL in the manual
Nikodemus Siivola [Mon, 4 Oct 2010 09:15:32 +0000 (09:15 +0000)]
1.0.43.18: index SB-EXT:*EVALUATOR-MODE* under #'EVAL in the manual

 Looking for "Interpreter" in the concept index isn't probably the
 first thing most people do.

 Fixes the documentation half of lp#654289.

13 years ago1.0.43.17: fix static symbols for array dispatch tables
Nathan Froyd [Mon, 4 Oct 2010 02:12:53 +0000 (02:12 +0000)]
1.0.43.17: fix static symbols for array dispatch tables

The array dispatch tables have gone through several renamings.  Unfortunately,
the references to the names in compiler/generic/parms.lisp have not been
renamed as well.  Do so, and micro-optimize generic array access slightly.

(Optimizing SYMBOL-VALUE on static/global symbols would help as well...)

13 years ago1.0.43.16: compiler: Fix non-unicode build.
Alastair Bridgewater [Sun, 3 Oct 2010 14:50:53 +0000 (14:50 +0000)]
1.0.43.16: compiler: Fix non-unicode build.

  * Building #-sb-unicode has been broken since 1.0.36.15, due
to a bug in the then-new element type handling for unions of
array types.

  * The value originally selected as a sentinel value for not
having processed any of the types in a union was *empty-type*,
which is also the element-type of (array nil (*)), also known
as a subtype of string.

  * Simple-string is a union type of (array nil (*)), (array
character (*)), and simple-base-string on sb-unicode targets.
It is a union type of (array nil (*)) and simple-base-string
on non-unicode targets.

  * Because the (array nil (*)) came first in the list of
types in the union, and because its element-type was
*empty-type*, the sentinel value, it was ignored when
computing the overall array element type.

  * Because the character and base-char types are disjoint,
the overall array element type calculation came up with the
correct answer on unicode builds.

  * To correct the problem, select a sentinel value that is
not a type object: NIL.

  * From IRC, this morning:
[9:40] * nikodemus hates (array nil)
[9:40] <nikodemus> and it hates me right back

13 years ago1.0.43.15: use gcc-3 compiler in Cygwin for runtime too
Nikodemus Siivola [Sun, 3 Oct 2010 08:42:37 +0000 (08:42 +0000)]
1.0.43.15: use gcc-3 compiler in Cygwin for runtime too

GCC-4.x can not compile with -mno-cygwin; running gcc -mno-cygwin prints
a message advising to use mingw cross-compiler.

Patch by Kalyanov Dmitry.

13 years ago1.0.43.14: typo in asdf-module.mk
Nikodemus Siivola [Sun, 3 Oct 2010 08:37:48 +0000 (08:37 +0000)]
1.0.43.14: typo in asdf-module.mk

 * gcc-3, not gcc=3. I wonder how I managed to do that.

13 years ago1.0.43.13: "minor fixed for Win32" from Kalyanov Dmitry
Nikodemus Siivola [Thu, 30 Sep 2010 08:43:55 +0000 (08:43 +0000)]
1.0.43.13: "minor fixed for Win32" from Kalyanov Dmitry

 * fix run-sbcl.sh for cygwin: need to convert the path.

 * fix contrib building for cygwin with GCC 4.x installed: require GCC
   3.x since GCC 4.x apparently doesn't do -mno-cygwin.

 * PeekConsoleInput's third argument is the number of array in elements,
   not bytes. http://msdn.microsoft.com/en-us/library/ms684344%28VS.85%29.aspx
   Old usage led to stack overwriting.

13 years ago1.0.43.12: edit STYLE for stricter patch submission guidelines
Nikodemus Siivola [Thu, 30 Sep 2010 08:40:35 +0000 (08:40 +0000)]
1.0.43.12: edit STYLE for stricter patch submission guidelines

 * "git format-patch -1" is superior to plain diffs, since it includes the commit
   message as well -- and the patch author is the best person to write it.

 * Explain when to use Launchpad and when to use sbcl-devel.

13 years ago1.0.43.11: smarter timer expiry
Nikodemus Siivola [Thu, 30 Sep 2010 08:39:39 +0000 (08:39 +0000)]
1.0.43.11: smarter timer expiry

 When expiring timers, run all expired timers instead of setting the
 system timer again after expiring a single one.

 Hopefully addresses lp#375515.

13 years ago1.0.43.10: make.sh now accepts --dynamic-space-size=<size> option
Nikodemus Siivola [Thu, 30 Sep 2010 08:36:38 +0000 (08:36 +0000)]
1.0.43.10: make.sh now accepts --dynamic-space-size=<size> option

 ...so users can build SBCL with the right default without
 touching source.

 Fixes lp#383222.

13 years ago1.0.43.9: .cvsignore contrib/test-passed
Nikodemus Siivola [Thu, 30 Sep 2010 08:34:41 +0000 (08:34 +0000)]
1.0.43.9: .cvsignore contrib/test-passed

 ...for the benefit of those still using the CVS. :)

 Fixes lp#650558.

13 years ago1.0.43.8: ALLOCATION-INFORMATION also provides the actual page
Nikodemus Siivola [Thu, 30 Sep 2010 08:33:40 +0000 (08:33 +0000)]
1.0.43.8: ALLOCATION-INFORMATION also provides the actual page

 Important for figuring out why garbage is retained and why a page
 keeps getting dirty.

13 years ago1.0.43.7: update expected test failures on Darwin/x86-64
Nikodemus Siivola [Thu, 30 Sep 2010 08:25:49 +0000 (08:25 +0000)]
1.0.43.7: update expected test failures on Darwin/x86-64

 Bunch of tests in debug.impure.lisp have been passing for a while
 now.

 Missing NEWS entry for last commit.

13 years ago1.0.43.6: fix overeager input-buffer filling by external-format routines
Nikodemus Siivola [Thu, 30 Sep 2010 08:23:34 +0000 (08:23 +0000)]
1.0.43.6: fix overeager input-buffer filling by external-format routines

 Fixes lp#643686.

 Previously the character-input functions returned only after filling the
 entire request by fast-read-char-refill, or if an EOF was reached.

 This meant that on a pipe we would not receive any input until there
 was a buffer's worth of it, or the other end closed.

 Not so good. New the drill is:

   0, N characters requested.

   1. Decode upto N characters from binary buffer to the character
      buffer.

   2. If any characters were decoded or at EOF, return.

   3. Otherwise refill the binary buffer with at most one read()
      and goto 1.

 Previously at #1 we returned only if the entire request was
 satisfied.

13 years ago1.0.43.5: add :EXTERNAL-FORMAT argument to RUN-PROGRAM
Nikodemus Siivola [Thu, 30 Sep 2010 08:21:22 +0000 (08:21 +0000)]
1.0.43.5: add :EXTERNAL-FORMAT argument to RUN-PROGRAM

 Selects the encoding for :INPUT, :OUTPUT, and :ERROR :STREAMs.

13 years ago1.0.43.4: deal with interrupted open(2) calls
Nikodemus Siivola [Thu, 30 Sep 2010 07:38:07 +0000 (07:38 +0000)]
1.0.43.4: deal with interrupted open(2) calls

 Particularly if the other end is a FIFO, it isn't all that
 hard to get interrupted before open() completes.

13 years ago1.0.43.3: make (LOAD-TIME-VALUE (THE (VALUES FIXNUM) 42)) work again
Nikodemus Siivola [Thu, 30 Sep 2010 07:15:57 +0000 (07:15 +0000)]
1.0.43.3: make (LOAD-TIME-VALUE (THE (VALUES FIXNUM) 42)) work again

 An explicit THE + VALUES broke LOAD-TIME-VALUE.

 FIxes lp#646796.

13 years ago1.0.43.2: remove bashishm from source-distribution.sh
Nikodemus Siivola [Thu, 30 Sep 2010 07:12:47 +0000 (07:12 +0000)]
1.0.43.2: remove bashishm from source-distribution.sh

 Thanks to Jim Wise, lp#644702.

13 years ago1.0.43.1: better handling of complex array types in fill-pointer ops
Nikodemus Siivola [Thu, 30 Sep 2010 07:03:25 +0000 (07:03 +0000)]
1.0.43.1: better handling of complex array types in fill-pointer ops

 Derive the fact that the result of MAKE-ARRAY is (NOT SIMPLE-ARRAY)
 when possible.

 Instead of DEFOPTIMIZERs asserting that various functions need a
 complex array, put the right type in the DEFKNOWNs instead.

 Also remove a few of redundant typechecks: FILL-POINTER ->
 ARRAY-HAS-FILL-POINTER call path does all the checks any of the other
 operations need.

 Fixes lp#309130.

13 years ago1.0.43: will be tagged as sbcl_1_0_43
Juho Snellman [Thu, 30 Sep 2010 01:07:36 +0000 (01:07 +0000)]
1.0.43: will be tagged as sbcl_1_0_43

13 years ago1.0.42.54: #!+darwin the nanosleep hack
Juho Snellman [Mon, 27 Sep 2010 23:42:11 +0000 (23:42 +0000)]
1.0.42.54: #!+darwin the nanosleep hack

     * At least on linux the the output value of nanosleep can drift
       up a little bit compared to the input. Combined with the hack
       for the darwin nanosleep problems, this caused early exits
       from SLEEP.

13 years ago1.0.42.53: *TTY* stream needs to serve events as well
Nikodemus Siivola [Mon, 27 Sep 2010 15:17:08 +0000 (15:17 +0000)]
1.0.42.53: *TTY* stream needs to serve events as well

 Regression from 1.0.42.43.

13 years ago1.0.42.52: fix Windows build
Nikodemus Siivola [Tue, 21 Sep 2010 16:47:21 +0000 (16:47 +0000)]
1.0.42.52: fix Windows build

 Kludge around FD_SETSIZE on Windows.

13 years ago1.0.42.51: disable split html manual building
Nikodemus Siivola [Tue, 21 Sep 2010 15:29:10 +0000 (15:29 +0000)]
1.0.42.51: disable split html manual building

 Makeinfo tries to generate an overly long filename for one of the
 split parts (SB-BSD-SOCKETS:SOCKET-MAKE-STREAM, to be exact),
 breaking the documentation build.

 Fixes lp#643636. Regression since 1.0.42.

13 years ago1.0.42.50: workaround a Darwin nanosleep() bug
Nikodemus Siivola [Tue, 21 Sep 2010 13:10:37 +0000 (13:10 +0000)]
1.0.42.50: workaround a Darwin nanosleep() bug

 Fixes lp#640516.

 It turns out that on Darwin, if a nanosleep() call is interrupted,
 and the signal handler takes longer than the requested sleep time
 was, then the call will return with EINTR and (unsigned)-1 in the
 remaining seconds.

 Since we call nanosleep() again when it returns with EINTR with the
 remaining time, this would cause us to sleep ~136 years...

 So, check that the remainder is not increasing before calling
 nanosleep() again.

 Many, many thanks to Joe Lobraco who reported and diagnosed the
 issue.

13 years ago1.0.42.49: fix (SETF DOCUMENTATION) for macros
Nikodemus Siivola [Tue, 21 Sep 2010 11:23:32 +0000 (11:23 +0000)]
1.0.42.49: fix (SETF DOCUMENTATION) for macros

 Fixes lp#643958.

 Patch Stas Boukarev, test-case by yours truly.

 Nice and simple, so going in mid-freeze.

13 years ago1.0.42.48: more contextual CAREFUL-EXPAND-MACRO messages
Nikodemus Siivola [Mon, 20 Sep 2010 08:24:50 +0000 (08:24 +0000)]
1.0.42.48: more contextual CAREFUL-EXPAND-MACRO messages

 Differentiate between compiler-macroexpansion and macroexpansion in
 the warning messages.

13 years ago1.0.42.47: fix regressions from 1.0.42.46.
Nikodemus Siivola [Mon, 20 Sep 2010 08:23:52 +0000 (08:23 +0000)]
1.0.42.47: fix regressions from 1.0.42.46.

 ...need to learn read the test suite output properly...

13 years ago1.0.42.46: style-warn users about READ-FROM-STRING &optional gotcha
Nikodemus Siivola [Mon, 20 Sep 2010 07:33:24 +0000 (07:33 +0000)]
1.0.42.46: style-warn users about READ-FROM-STRING &optional gotcha

 Check -- at runtime if need be! -- if the EOF-ERROR-P argument to
 READ-FROM-STRING is one of its keyword arguments, and signal a
 style-warning explaining the issue if so,

 Since the runtime check surprisingly has a measurable cost, add a
 compiler-macro that

  * signals the style-warning at compile-time.

  * rewrites the call into required-args-only form.

 Which actually nets us a 2% speedup... perhaps we should consider
 more widespread rewriting of &KEY calls into required-args-only form.

13 years ago1.0.42.45: more descriptive errors for exceeding FD_SETSIZE
Nikodemus Siivola [Sun, 19 Sep 2010 21:33:31 +0000 (21:33 +0000)]
1.0.42.45: more descriptive errors for exceeding FD_SETSIZE

 Instead of a type-error whose meaning is pretty opaque to an average
 user, signal an error with a descriptive message.

 Add bug numbers to the previous select()/poll() changes in NEWS.

13 years ago1.0.42.44: oops, this bit was not supposed to go in...
Nikodemus Siivola [Sun, 19 Sep 2010 20:11:58 +0000 (20:11 +0000)]
1.0.42.44: oops, this bit was not supposed to go in...

13 years ago1.0.42.43: FD-STREAMS no longer hook into SERVE-EVENT by default
Nikodemus Siivola [Sun, 19 Sep 2010 20:08:47 +0000 (20:08 +0000)]
1.0.42.43: FD-STREAMS no longer hook into SERVE-EVENT by default

 * SOCKET-MAKE-STREAM, and MAKE-FD-STREAM have new keyword
   argument :SERVE-EVENTS which requests that blocking IO on the
   stream should dispatch to SERVE-EVENT. For SOCKET-MAKE-STREAM the
   default is T, for MAKE-FD-STREAM the default it NIL.

 * Don't call SYSREAD-MAY-BLOCK-P at all unless we need to to handle
   events or check for timeout.

 * Make WAIT-UNTIL-FD-USABLE use UNIX-SIMPLE-POLL instead of going
   into SUB-SERVE-EVENT when appropriate:

   ** Explicit requests to not serve events.

   ** Timeout 0.

   ** No other handlers and no periodic polling function.

 * When FD-STREAM-SERVE-EVENTS is false but write returns EWOULDBLOCK,
   don't queue output but wait till poll(2) says we can go.

 * UNIX-SIMPLE-POLL uses poll() only on platforms where a build-time
   test shows it to exist and work as expected. Elsewhere it is built
   on top of good 'ol select().

13 years ago1.0.42.42: hack around *AUTO-EVAL-IN-FRAME* issues
Nikodemus Siivola [Sun, 19 Sep 2010 19:09:21 +0000 (19:09 +0000)]
1.0.42.42: hack around *AUTO-EVAL-IN-FRAME* issues

 When frame doesn't have sufficient debug information and
 *AUTO-EVAL-IN-FRAME* is true -- the default -- the debugger REPL
 becomes useless in the frame. Oops.

 So, in those cases punt to regular EVAL instead -- which is the right
 thing most of the time. To avoid confusion by DWIM, tell the user
 when punting to global context.

13 years ago1.0.42.41: use poll(2) instead of select(2) in SYSREAD-MAY-BLOCK-P
Nikodemus Siivola [Sun, 19 Sep 2010 14:14:15 +0000 (14:14 +0000)]
1.0.42.41: use poll(2) instead of select(2) in SYSREAD-MAY-BLOCK-P

 Calling select() with a single FD is just waste.

 This also means that we don't use select() outside of serve-event,
 paving way to having more fds open than FD_SETSIZE allows.

13 years ago1.0.42.40: replace hardcoded FD-SETSIZE with a groveled one
Nikodemus Siivola [Sun, 19 Sep 2010 13:36:30 +0000 (13:36 +0000)]
1.0.42.40: replace hardcoded FD-SETSIZE with a groveled one

13 years ago1.0.42.39: workaround for lp#308914
Nikodemus Siivola [Sun, 19 Sep 2010 13:07:37 +0000 (13:07 +0000)]
1.0.42.39: workaround for lp#308914

 Detect and escape from endless loops in ORDER-UVL-SETS.

13 years ago1.0.42.38: fix SB-INTROSPECT:VALID-FUNCTION-NAME-P docstring
Nikodemus Siivola [Sun, 19 Sep 2010 12:41:58 +0000 (12:41 +0000)]
1.0.42.38: fix SB-INTROSPECT:VALID-FUNCTION-NAME-P docstring

 lp#641896

13 years ago1.0.42.37: use more NAMED-LAMBDAs in PCL generated code
Nikodemus Siivola [Mon, 13 Sep 2010 11:04:00 +0000 (11:04 +0000)]
1.0.42.37: use more NAMED-LAMBDAs in PCL generated code

 Previously backtraces and profiles showed eg.

   (LAMBDA (.ARG0. .ARG1. .ARG2.))

 for effective method functions, and

   (LAMBDA (VALUE))

 for slot typechecking functions.

 Use NAMED-LAMBDA to name these sensibly:

  (DFUN <generic-function-name>)

  (SLOT-TYPECHECK <class-name> <slot-name>)

13 years ago1.0.42.36: micro-optimize x86 assembly comparison VOPs
Nathan Froyd [Fri, 10 Sep 2010 23:06:09 +0000 (23:06 +0000)]
1.0.42.36: micro-optimize x86 assembly comparison VOPs

No need to load the address of the assembly routine into a temporary
register, as we do on x86-64.  We can jump to the address directly
with CALL.

13 years ago1.0.42.35: tests: Update :fails-on clause for a test
Alastair Bridgewater [Wed, 8 Sep 2010 01:12:16 +0000 (01:12 +0000)]
1.0.42.35: tests: Update :fails-on clause for a test

  * Test dynamic-extent.impure.lisp / BUG-586105 expects that both
lists and vectors can be stack-allocated, but not all platforms
support this.  Fortunately, the platforms that do support it also
have a feature conditional for it.  Added a :fails-on clause to
the test.

13 years ago1.0.42.34: threads: Consolidate thread-specific static symbols
Alastair Bridgewater [Wed, 8 Sep 2010 01:04:41 +0000 (01:04 +0000)]
1.0.42.34: threads: Consolidate thread-specific static symbols

  * The x86, x86-64 and ppc backends all had the same three static
symbols used for threading.  Rather than having each backend add
the same symbols to the static symbol list, add them to the list
of common static symbols.  In the unlikely(?) event that we commit
a threaded port to mainline that doesn't use these symbols, we can
revisit this change.

13 years ago1.0.42.33: ppc: Improve pseudo-atomic implementation
Alastair Bridgewater [Sun, 5 Sep 2010 17:01:01 +0000 (17:01 +0000)]
1.0.42.33: ppc: Improve pseudo-atomic implementation

  * The runtime (ppc-assem.S) used a shorter, more concise
    sequence of instructions for testing pseudo-atomic than the
    compiler (ppc/macros.lisp) did.  Altered the compiler to use
    the same sequence as the runtime.

  * Both the compiler and the runtime used magic numbers in the
    pseudo-atomic sequence instead of using named constants.
    Fixed, using the existing named constants.

13 years ago1.0.42.32: fix for lp#611361
Christophe Rhodes [Sat, 4 Sep 2010 08:01:27 +0000 (08:01 +0000)]
1.0.42.32: fix for lp#611361

Only omit IGNORE declarations for required method parameters, not all
parameters.

13 years ago1.0.42.31: fix build with clisp 2.49
Nikodemus Siivola [Fri, 3 Sep 2010 13:28:34 +0000 (13:28 +0000)]
1.0.42.31: fix build with clisp 2.49

 Patch by Josh Elsasser, lp#629144.

 Previously, if a clisp 2.49 host was used, the build failed during
 make-host-1 in src/code/cross-sap.lisp with several "redefining SETF
 expander" errors. The same *suppress-check-redefinition* fix used in
 make-host-2 is enough to placate clisp and allow the build to finish
 successfully.

13 years ago1.0.42.30: missing docstring for GET-PROTOCOL-BY-NAME
Nikodemus Siivola [Fri, 3 Sep 2010 13:24:49 +0000 (13:24 +0000)]
1.0.42.30: missing docstring for GET-PROTOCOL-BY-NAME

 Patch by Jim Wise, lp#628885.

13 years ago1.0.42.29: tweak run-program.impure.lisp
Nikodemus Siivola [Fri, 3 Sep 2010 13:21:57 +0000 (13:21 +0000)]
1.0.42.29: tweak run-program.impure.lisp

 Make READ-LINEISH less bogus.

 Fixes lp#628887, I hope.

13 years ago1.0.42.28: package locks to guard against DEFMACRO -> DEFUN and vice-versa
Nikodemus Siivola [Fri, 3 Sep 2010 13:01:32 +0000 (13:01 +0000)]
1.0.42.28: package locks to guard against DEFMACRO -> DEFUN and vice-versa

 * Fixes lp#576637.

 * PROCLAIM-AS-FUN-NAME is called quite often at compile time, but actually
   does something we care about only rarely -- assert the lock only when
   something changes, so that

    (WITHOUT-PACKAGE-LOCKS (DEFUN LOCKED:FOO ...))

   keeps working for the common case.

 * Similar logic in %DEFMACRO.

 * Some tests adjusted.

13 years ago1.0.42.27: cleanup: My last commit was supposed to be .27
Alastair Bridgewater [Fri, 3 Sep 2010 05:47:27 +0000 (05:47 +0000)]
1.0.42.27: cleanup: My last commit was supposed to be .27

  * My export shell script had a bug, introduced during
refactoring, causing it to read the wrong version.lisp-expr
to determine the old version number, thus causing the
version number to not be incremented after the first commit
in the series.  What I get for trying to be too clever.

  * Updated version.lisp-expr, gave an explanatory comment
in the commit message (this commit message).

13 years ago1.0.42.26: git: Add a couple of new patterns to .gitignore
Alastair Bridgewater [Fri, 3 Sep 2010 00:32:49 +0000 (00:32 +0000)]
1.0.42.26: git: Add a couple of new patterns to .gitignore

  * One or more tests tend to create .so files in the tests/
directory.  Ignore "tests/*.so".

  * The process of building the manual produces a couple of .html
files in the doc/manual/ directory.  Ignore "doc/manual/*.html".

13 years ago1.0.42.26: tests: Fix broken :fails-on clause for a dynamic-extent.impure test
Alastair Bridgewater [Fri, 3 Sep 2010 00:26:50 +0000 (00:26 +0000)]
1.0.42.26: tests: Fix broken :fails-on clause for a dynamic-extent.impure test

  * Test case dynamic-extent.impure.lisp / (:NO-CONSING
:HASH-TABLES) fails on threaded PPC targets, but because the
clause was not quoted, it evaluated to all threaded targets,
which was wrong.  My mistake, too.

  * Added NEWS entry forgotten in 1.0.42.23, also my mistake.

13 years ago1.0.42.25: check parent-lambdas in defined-fun-functional
Nikodemus Siivola [Thu, 2 Sep 2010 14:33:05 +0000 (14:33 +0000)]
1.0.42.25: check parent-lambdas in defined-fun-functional

 * Fixes lp#308951.

 * REFERENCE-LEAF could gain access to a functional in a strange
   lexenv using DEFINED-FUN-FUNCTIONAL, messing up access to bindings.

   Don't return a functional if the current lexenvs parent-lambda chain
   does not hold the parent of the functional.

   Also provides a more elegant fix for MISC.320.

13 years ago1.0.42.24: print symbols with fully qualified names in critical places
Nikodemus Siivola [Thu, 2 Sep 2010 08:14:31 +0000 (08:14 +0000)]
1.0.42.24: print symbols with fully qualified names in critical places

 Patch by Attila Lendvai, lp#622789.

 Less room for package confusion this way.

13 years ago1.0.42.23: x86-64: Fix passing of unboxed complex float arguments.
Alastair Bridgewater [Thu, 2 Sep 2010 00:34:28 +0000 (00:34 +0000)]
1.0.42.23: x86-64: Fix passing of unboxed complex float arguments.

  * This has been broken since 1.0.27.14 (x86oid frame pointer
bias).

  * The "move-arg" VOPs for complex floats required a different
adjustment when being placed relative to the normal frame base
pointer, due to the bias, than when being placed relative to
other base pointers.  Unfortunately, a new requirement was also
added that restricted the appropriate registers for use as
frame base pointers to one, and one which would not normally be
selected, leading to "Unexpected offset" errors.

  * Removed the restriction.

  * The logic in EA-FOR-CXF-STACK is still broken: The frame bias
is only applied when the frame pointer is RSP, which will never
happen, and is not applied when the frame pointer is any other
register.  At the same time, so far as I can tell, the bias seems
to be unneccessary.

  * Bug reported by sykopomp in #lispgames.

13 years ago1.0.42.22: x86-64: Add test case for unboxed complex float arguments.
Alastair Bridgewater [Thu, 2 Sep 2010 00:34:13 +0000 (00:34 +0000)]
1.0.42.22: x86-64: Add test case for unboxed complex float arguments.

  * This has been broken since 1.0.27.14.

13 years ago1.0.42.21: grab-bag of Solaris related fixes
Nikodemus Siivola [Wed, 1 Sep 2010 18:11:09 +0000 (18:11 +0000)]
1.0.42.21: grab-bag of Solaris related fixes

 Patch by Jim Wise, lp#627581.

 * make make-doc.sh work on SunOS (due to old /bin/sh)

 * avoid the struct dirent distrust-length build issue in sb-posix

 * fix an issue in the run-program.ed test

 * add .html to .cvsignore

13 years ago1.0.42.20: use platform-dependent CFLAGS consistently in tests
Nikodemus Siivola [Wed, 1 Sep 2010 17:21:07 +0000 (17:21 +0000)]
1.0.42.20: use platform-dependent CFLAGS consistently in tests

 Patch by Josh Elsasser, lp#615499.

 In his words:

 "Attached is a patch which moves all the duplicated, out-of-sync C
 compiler flag selection in the tests into a single wrapper script.
 When passed a flag like -sbcl-pic or -sbcl-shared, the script will
 decided if -fPIC or -shared/-bundle is needed based on SOFTWARE-TYPE
 and MACHINE-TYPE which SBCL has passed in the environment.

 I tested this on several x86 OSes and a couple PowerPC, as well as
 SunOS on SPARC and OpenBSD on x86-64. For the -sbcl-pic case I have
 verified that -fPIC is needed on OpenBSD-PowerPC, OpenBSD-X86-64,
 SunOS-SPARC and SunOS-X86; the other cases are guesses based on the
 existing reader conditionals. It is not needed on Darwin or Linux on
 PowerPC, or on any x86 OSes I tested aside from SunOS.

 I haven't verified that -arch x86_64 is actually needed on
 Darwin-X86-64, or that something like -m64 isn't needed on other
 X86-64 OSes (aside from OpenBSD)."

13 years ago1.0.42.19: make SB-CONCURRENCY more GC friendly
Nikodemus Siivola [Wed, 1 Sep 2010 16:57:12 +0000 (16:57 +0000)]
1.0.42.19: make SB-CONCURRENCY more GC friendly

 * Patch by "3b", lp#628098.

 * Break chains of detached nodes, so conservativism won't kill us.

13 years ago1.0.42.18: let's take that again
Nikodemus Siivola [Wed, 1 Sep 2010 16:09:24 +0000 (16:09 +0000)]
1.0.42.18: let's take that again

 Previous commit was supposed to have this commit message:

 "OpenBSD build fix -- signal handlers need to lead FPU control word"

 * Patch by Josh Elsasser, lp#615492.

   In his words:

   OpenBSD/amd64 recently began running signal handlers with a clean
   FPU state, making it necessary to load the floating point control
   word. The attached patch does exactly this, and works equally well
   on OpenBSD systems from both before and after the signal handler
   change was made.

   This patch is necessary to build SBCL x86-64 on recent -current
   snapshots of OpenBSD, and for the upcoming 4.8 release.

 * Committing untested, as I don't have OpenBSD handy.

13 years ago1.0.42.17: better host lisp fasl-type logic
Nikodemus Siivola [Wed, 1 Sep 2010 16:05:17 +0000 (16:05 +0000)]
1.0.42.17: better host lisp fasl-type logic

 * Patch by Josh Elsasser, lp#615492.

   In his words:

   OpenBSD/amd64 recently began running signal handlers with a clean
   FPU state, making it necessary to load the floating point control
   word. The attached patch does exactly this, and works equally well
   on OpenBSD systems from both before and after the signal handler
   change was made.

   This patch is necessary to build SBCL x86-64 on recent -current
   snapshots of OpenBSD, and for the upcoming 4.8 release.

 * Committing untested, as I don't have OpenBSD handy.

13 years ago1.0.42.17: better host lisp fasl-type logic
Nikodemus Siivola [Wed, 1 Sep 2010 15:46:18 +0000 (15:46 +0000)]
1.0.42.17: better host lisp fasl-type logic

 * Patch by "nixeagle", lp#592903.

   Use COMPILE-FILE-PATHNAME to figure out the right pathname-type.

13 years ago1.0.42.16: better RANDOM type-error reporting
Nikodemus Siivola [Wed, 1 Sep 2010 15:27:07 +0000 (15:27 +0000)]
1.0.42.16: better RANDOM type-error reporting

 * Since RANDOM has an explicit check for the type, use the EXPLICIT-CHECK
   flag in the DEFKNOWN...

 * Patch by Stas Boukarev, lp#598986.

13 years ago1.0.42.15: prevent inline expansion from creating refs to dead lambda-vars
Nikodemus Siivola [Wed, 1 Sep 2010 14:42:09 +0000 (14:42 +0000)]
1.0.42.15: prevent inline expansion from creating refs to dead lambda-vars

 * Fixes lp#454681.

 * Patch by Alexey. In his words, in reference to the test-case:

   (multiple-value-bind (iterator+977 getter+978)
       (does-not-exist-but-does-not-matter)
     (flet ((iterator+976 ()
              (funcall iterator+977)))
       (declare (inline iterator+976))
       (let ((iterator+976 #'iterator+976))
         (funcall iterator+976)))))

   Inline expansion of ITERATOR+976 tries to refer to a dead
   LAMBDA-VAR ITERATOR+977 of varargs entry, which was substituted
   with ITERATOR+977 of &OPTIONAL processor. Thus the referenced
   variable is dead and is not bound anywhere.

   The attached patch fixes the problem by giving up on inline
   expansion if it tries to make a reference to a dead LAMBDA-VAR,
   similar to the way dead BLOCK tags are treated.

13 years ago1.0.42.14: socket-connect thread safety, version 2
Nikodemus Siivola [Wed, 1 Sep 2010 14:14:55 +0000 (14:14 +0000)]
1.0.42.14: socket-connect thread safety, version 2

 * Code from 1.0.40.7 to use getprotobyname_r.

 * Use grovel-features.sh to check for its and getprotobynumber_r's
   existence, and add feature :os-provides-getprotoby-r when so.

   If they do not exist, use a lock instead.

13 years ago1.0.42.13: update ASDF to 2.004
Nikodemus Siivola [Wed, 1 Sep 2010 12:26:00 +0000 (12:26 +0000)]
1.0.42.13: update ASDF to 2.004

 * Patch by Faré Rideau, lp#605260.

   (Not quite as-is: I split the git scripting from the makefile into
    pull-asdf.sh for clarity.)

13 years ago1.0.42.11: reinline nested LIST and VECTOR calls in MAKE-ARRAY initial-contents
Nikodemus Siivola [Wed, 1 Sep 2010 11:53:16 +0000 (11:53 +0000)]
1.0.42.11: reinline nested LIST and VECTOR calls in MAKE-ARRAY initial-contents

 * Fixes lp#586105.

 * The source transform for MAKE-ARRAY makes LIST and VECTOR notinline
   so that the deftransforms can pick initial-contents and dimensions
   apart.

   However, when a list or vector in initial-contents is not part of
   the initialization structure but an actual initialization value,
   then notinline loses both performance in general, and foils nested
   DX in particular.

   So, walk the initial-contents and restore inlining for the actual
   initialization values.

13 years ago1.0.42.11: SB-EXT:WORD for use with ATOMIC-INCF &co
Nikodemus Siivola [Wed, 1 Sep 2010 09:15:14 +0000 (09:15 +0000)]
1.0.42.11: SB-EXT:WORD for use with ATOMIC-INCF &co

 (Symbol previously known as SB-VM:WORD.)

 * Requiring users to #+ their way to (UNSIGNED-BYTE 32) and 64 is
   just mean and brittle.

13 years ago1.0.42.10: guard against time travel by getrusage()
Nikodemus Siivola [Tue, 31 Aug 2010 15:23:50 +0000 (15:23 +0000)]
1.0.42.10: guard against time travel by getrusage()

 * Fixes lp#544421, we hope.

 * Apparently sometimes getrusage() returns a smaller value on second
   call -- this seems to happen under pretty extreme loads, mostly --
   which we want to guard against.

13 years ago1.0.42.9: fix defmethod declarations for aliases of builtin classes as specializers
Nikodemus Siivola [Tue, 31 Aug 2010 14:29:15 +0000 (14:29 +0000)]
1.0.42.9: fix defmethod declarations for aliases of builtin classes as specializers

 * Fixes lp#618387.

 * When we have a :defined class that we want a type declaration for, don't use
   the name we used to look up the class, but the CLASS-NAME of the class.

13 years ago1.0.42.8: fix build on OpenBSD/i386 -current and upcoming 4.8 release
Nikodemus Siivola [Tue, 31 Aug 2010 13:04:54 +0000 (13:04 +0000)]
1.0.42.8: fix build on OpenBSD/i386 -current and upcoming 4.8 release

 * Patch by Josh Elsasser, lp#615489.

 * On OpenBSD/i386, the structure that stores the FPU state during
   signals was recently moved.

   Add a script to tools-for-build/ which is run from make-config.sh
   to detect where the FPU state is located, and create a
   src/runtime/openbsd-sigcontext.h header containing a #define which
   src/runtime/x86-bsd-os.c can use.

   This is necessary to build SBCL on recent -current snapshots of
   OpenBSD, and for the upcoming 4.8 release.

 * Missing NEWS entry for last commit.

13 years ago1.0.42.7: fix shell scripts on Solaris (and FreeBSD?)
Nikodemus Siivola [Tue, 31 Aug 2010 12:46:41 +0000 (12:46 +0000)]
1.0.42.7: fix shell scripts on Solaris (and FreeBSD?)

 * Patch by Josh Elsasser, lp#615497.

 * Fixes for run-sbcl.sh and tests/subr.sh on Solaris, some of which I
   believe were also necessary on FreeBSD.

 * A missing #include needed on Solaris is also added.

13 years ago1.0.42.6: fix os-provides-dladdr-test.c
Nikodemus Siivola [Tue, 31 Aug 2010 12:26:44 +0000 (12:26 +0000)]
1.0.42.6: fix os-provides-dladdr-test.c

  For dladdr to be present in dlfcn.h, #define _GNU_SOURCE should be
  before any includes.

  Patch by Stas Boukarev.

13 years ago1.0.42.5: revert 1.0.42.2, "correct defknown for data-vector-ref-with-offset"
Nikodemus Siivola [Tue, 31 Aug 2010 11:27:35 +0000 (11:27 +0000)]
1.0.42.5: revert 1.0.42.2, "correct defknown for data-vector-ref-with-offset"

 Adjusting the defknown also requires adjusting the VOPs to accept negative
 indexes, and since I don't have time right now to audit the sign handling
 in them, I'm reverting for now.

 Saga continues on https://bugs.launchpad.net/sbcl/+bug/622958

13 years ago1.0.42.4: fix compiler-macros for WRITE and WRITE-TO-STRING
Nikodemus Siivola [Mon, 30 Aug 2010 15:06:46 +0000 (15:06 +0000)]
1.0.42.4: fix compiler-macros for WRITE and WRITE-TO-STRING

 * Based on patch by Stas Boukarev, lp#598374 and lp#581564.

 * Handle output-stream designators in WRITE.

 * Avoid name capture in WRITE-TO-STRING.

13 years ago1.0.42.3: DOTIMES and non-integer counts
Nikodemus Siivola [Mon, 30 Aug 2010 11:13:18 +0000 (11:13 +0000)]
1.0.42.3: DOTIMES and non-integer counts

 * For non-literal non-integer counts we already did the right thing,
   but eg. literal floats slipped under the radar.

 * Patch by Roman Marynchak, lp#619393.

13 years ago1.0.42.2: correct defknown for data-vector-ref-with-offset
Nikodemus Siivola [Mon, 30 Aug 2010 10:44:59 +0000 (10:44 +0000)]
1.0.42.2: correct defknown for data-vector-ref-with-offset

 * If the offset is positive, the index can be negative and still
   correct.

 * Fixes lp#622958

13 years ago1.0.42.1: add release script
Christophe Rhodes [Sun, 29 Aug 2010 14:33:50 +0000 (14:33 +0000)]
1.0.42.1: add release script

The script automates many of the tasks involved in performing the minimum
level of sanity checking that I am comfortable with, and enumerates others
that remain unscriptable despite 10 years of user interface "improvements"
at Sourceforge.  It is unlikely to generalise to other release managers'
setups and taste without a little effort.

13 years ago1.0.42: will be tagged as sbcl_1_0_42
Christophe Rhodes [Sun, 29 Aug 2010 14:13:26 +0000 (14:13 +0000)]
1.0.42: will be tagged as sbcl_1_0_42

13 years ago1.0.41.56: Fix for asdf-install (launchpad bug #612998)
Christophe Rhodes [Tue, 24 Aug 2010 16:27:02 +0000 (16:27 +0000)]
1.0.41.56: Fix for asdf-install (launchpad bug #612998)

Reported by Phil Hargett; patch by Jim Wise from Phil's description

13 years ago1.0.41.55: Solaris fixes
Juho Snellman [Mon, 23 Aug 2010 23:21:27 +0000 (23:21 +0000)]
1.0.41.55: Solaris fixes

     * Remove bashisms.
     * Conditionalize out some constants and functions that
       don't exist on Solaris.
     * Patch from Jim Wise.

13 years ago1.0.41.54: fix binary-distribution.sh for configurable prefixes
Nikodemus Siivola [Sat, 21 Aug 2010 09:41:15 +0000 (09:41 +0000)]
1.0.41.54: fix binary-distribution.sh for configurable prefixes

 ...that is, also include the file prefix.def, which specifies where
 the system is configured to install. Now that I think of it, it might
 be more elegant to be able to query the runtime about its default
 SBCL_HOME, actually...

 Thanks to Bruce O'Neel.

13 years ago1.0.41.53: more make.sh tweakery, part N
Nikodemus Siivola [Wed, 18 Aug 2010 14:56:59 +0000 (14:56 +0000)]
1.0.41.53: more make.sh tweakery, part N

 Aka stuff that was supposed to be in .52, but got left out.

 * Create output/ if necessary for saving the prefix.

 * Put back the semicolon that fell on the floor and rolled into a corner.

 Scripting is hard, dammit.

13 years ago1.0.41.52: more make.sh tweakery
Nikodemus Siivola [Wed, 18 Aug 2010 14:49:27 +0000 (14:49 +0000)]
1.0.41.52: more make.sh tweakery

 * Empty string as the value for an option is treated as if the option
   wasn't provided at all, which makes scripting builds easier.

 * Temporary support for legacy-style xc host specifications for the
   benefit of clbuild &co. Add a noisy message to the end of the build
   so people will hopefully notice.

13 years ago1.0.41.51: eliminate accidental bash-ism from run-sbcl.sh
Nikodemus Siivola [Tue, 17 Aug 2010 16:06:34 +0000 (16:06 +0000)]
1.0.41.51: eliminate accidental bash-ism from run-sbcl.sh

 Thanks to Josh "Eagle Eye" Elsasser.

13 years ago1.0.41.50: additional error checking for DEFTYPE &co
Nikodemus Siivola [Tue, 17 Aug 2010 12:26:24 +0000 (12:26 +0000)]
1.0.41.50: additional error checking for DEFTYPE &co

 Based on patch by Roman Marynchak.

 * Make PARSE-DEFMACRO check that the lambda-list is actually a list.

 * Define BAD-TYPE as an utility to signal SIMPLE-TYPE-ERRORS, instead
   of having to write the keyword calls everywhere.

 * Fixes https://bugs.launchpad.net/sbcl/+bug/576594

13 years ago1.0.41.49: comment on patch submission formats in STYLE
Nikodemus Siivola [Tue, 17 Aug 2010 12:21:32 +0000 (12:21 +0000)]
1.0.41.49: comment on patch submission formats in STYLE

 Also edit the prose from I -> we at least in a few places to
 avoid confusion.

13 years ago1.0.41.48: make run-sbcl.sh work on Darwin (and presumably other BSD-clones)
Nikodemus Siivola [Tue, 17 Aug 2010 11:35:24 +0000 (11:35 +0000)]
1.0.41.48: make run-sbcl.sh work on Darwin (and presumably other BSD-clones)

 * BSD readlink doesn't support -f, fall back on dirname if readlink
   didn't work.

13 years ago1.0.41.47: (EXPT 0.0 0.0) and (EXPT 0 0.0) to signal an error
Nikodemus Siivola [Mon, 16 Aug 2010 12:53:42 +0000 (12:53 +0000)]
1.0.41.47: (EXPT 0.0 0.0) and (EXPT 0 0.0) to signal an error

 https://bugs.launchpad.net/sbcl/+bug/571581

 From patch by Roman Marynchack.

13 years ago1.0.41.46: further make.sh tweaks
Nikodemus Siivola [Mon, 16 Aug 2010 11:44:28 +0000 (11:44 +0000)]
1.0.41.46: further make.sh tweaks

 * Remove OpenMCL and Clisp examples from make.sh help
   string. Builders who need them should be able to figure them
   out. From the SBCL and CMUCL examples, I think -- and this way they
   won't go stale...

 * Also check for empty arguments to --foo= style command line options.

13 years ago1.0.41.45: make.sh command-line parsing
Nikodemus Siivola [Sun, 15 Aug 2010 13:59:00 +0000 (13:59 +0000)]
1.0.41.45: make.sh command-line parsing

 Based on patches by Daniel Herring:

 * Simple --option and --option=arg command-line parser in make.sh.

 * Supported options:

   ** --xc-host=<command> to specify XC host option instead of a
      positional argument. (Incompatible change!)

   ** --prefix=<path> to specify a non-standard install location for
      both build and install.sh.

      Addresses https://bugs.launchpad.net/sbcl/+bug/550889

   ** --help

 Semi-related minor cleanup:

 * Use --no-userinit and --no-sysinit instead of version.lisp-expr as
   the default inits for self-building: they have been around long
   enough now that it should not stop anyone from building, and makes
   for a somewhat less magical looking "//Build options: ..." line in
   the build log.

13 years ago1.0.41.44: runtime: Fix build on non-threaded x86oids.
Alastair Bridgewater [Wed, 11 Aug 2010 14:59:01 +0000 (14:59 +0000)]
1.0.41.44: runtime: Fix build on non-threaded x86oids.

  * In 1.0.41.21, I accidentally broke non-threaded x86oid builds.

  * Reported by Josh Elsasser and Bruce O'Neel with patches
provided, and Harald Hanche-Olsen without a patch.

  * This fix based on the patch by Josh Elsasser.

13 years ago1.0.41.43: fix for RENAME-PACKAGE's return value
Christophe Rhodes [Tue, 10 Aug 2010 10:59:04 +0000 (10:59 +0000)]
1.0.41.43: fix for RENAME-PACKAGE's return value

Patch from Eric Marsden (sbcl-devel 2010-07-26)

13 years ago1.0.41.42: ppc: Documentation and NEWS updates for threading.
Alastair Bridgewater [Sun, 8 Aug 2010 01:14:39 +0000 (01:14 +0000)]
1.0.41.42: ppc: Documentation and NEWS updates for threading.

  * Threading now officially experimentally supported on Linux/PPC.

  * Added PPC Linux to the list of platforms with experimental
thread support in the INSTALL file and the manual.

  * Updated NEWS.

13 years ago1.0.41.41: tests: Fix tests for ppc-threading changes.
Alastair Bridgewater [Sun, 8 Aug 2010 01:14:23 +0000 (01:14 +0000)]
1.0.41.41: tests: Fix tests for ppc-threading changes.

  * The variable current_control_stack_pointer is no longer valid
on threaded targets.  Substitute thread_control_stack_size, which
is valid on all targets, fixing alien.impure.lisp.

  * Some dynamic-extent tests currently fail on threaded PPC.
Updated :fails-on information in dynamic-extent.impure.lisp.

  * Test (:timer :parallel-unschedule) locked up my linux/ppc box
when running.  Disabled, fixing timer.impure.lisp.  Interestingly,
while the lockup in question killed the keyboard and the mouse,
briefly pressing the power button caused backlogged events to be
processed, and repeatedly pressing the power button eventually
unlocked the system completely.

  * Test (:interrupt-thread :interrupt-consing-child :again) uses
sb-kernel:*pseudo-atomic-bits*, which is an x86oid-only symbol
(other ports use various parts of reg_ALLOC instead).  Disabled the
test on non-x86oid ports, fixing threads.impure.lisp.

13 years ago1.0.41.40: ppc: Shorten the gencgc allocation sequence.
Alastair Bridgewater [Sun, 8 Aug 2010 01:14:04 +0000 (01:14 +0000)]
1.0.41.40: ppc: Shorten the gencgc allocation sequence.

  * Rearrange the allocation sequence to avoid all branches,
relying on the runtime to manipulate the point at which
execution resumes from an allocation trap to compensate.

  * Update the runtime to match the new allocation sequence.

  * There is a further possible optimization here: The runtime
allocation trap handler can also accept an ADDI instruction
where the current sequence uses an ADD.  In the case of a
fixed allocation size, this would save loading the temp
register with the size.

  * Another optimization, along the same lines as the previous
one: With a fixed allocation size, adjusting the pointer to
point to the beginning of the data block and setting the lowtag
could be done in a single instruction.

  * A third optimization, one which would entail modifying the
allocation trap handler slightly, and depends on at least the
first optimization above being in place: Once temp-tn is no
longer being used to hold the allocation size for fixed
allocations, it is available to hold the address of the
alloc region when threading is disabled, thus saving having to
reload it (two instructions).

13 years ago1.0.41.39: ppc: Rename reg_L2 to reg_THREAD on threaded builds.
Alastair Bridgewater [Sun, 8 Aug 2010 01:13:50 +0000 (01:13 +0000)]
1.0.41.39: ppc: Rename reg_L2 to reg_THREAD on threaded builds.

  * This is largely to make the disassembly less confusing when it
refers to TLS slots and other per-thread data.

13 years ago1.0.41.38: ppc: Runtime damage for threads.
Alastair Bridgewater [Sun, 8 Aug 2010 01:13:36 +0000 (01:13 +0000)]
1.0.41.38: ppc: Runtime damage for threads.

  * Call out to pthread_getspecific() from call_into_lisp in
order to obtain the TLS block for lisp operation.

  * Tie together the runtime / gencgc version of pseudo-atomic
and the arch-specific / interrupt context version of pseudo-
atomic, to fulfill the requirements of the earlier pseudo-
atomic restructuring.

  * Generally use the thread structure instead of global
variables where appropriate.

  * Save our TLS block in the pthread per-thread storage area.

  * SIG_STOP_FOR_GC appears to default to masked on PPC, so
unblock it in initial_thread_trampoline().

  * Link with -lpthread when appropriate.

13 years ago1.0.41.37: ppc: allocation fixes for threaded builds.
Alastair Bridgewater [Sun, 8 Aug 2010 01:13:20 +0000 (01:13 +0000)]
1.0.41.37: ppc: allocation fixes for threaded builds.

  * Use the alloc region in the thread structure instead of the
global boxed_region.

13 years ago1.0.41.36: ppc: Implement atomic-{incf,decf} as atomic operations.
Alastair Bridgewater [Sun, 8 Aug 2010 01:13:06 +0000 (01:13 +0000)]
1.0.41.36: ppc: Implement atomic-{incf,decf} as atomic operations.

  * ATOMIC-INCF and ATOMIC-DECF require a VOP in order to serve as
actual atomic operations.  This VOP is also required to serve as a
memory barrier.  Implemented.