Christophe Rhodes [Tue, 6 May 2008 16:43:52 +0000 (16:43 +0000)]
1.0.16.19: cleanups motivated by clisp host-2
Christophe Rhodes [Tue, 6 May 2008 10:45:42 +0000 (10:45 +0000)]
1.0.16.18: Fixes to get clisp through host-1
Just a couple of ignores and code rearrangements.
Nikodemus Siivola [Mon, 5 May 2008 13:26:06 +0000 (13:26 +0000)]
1.0.16.17: log bug #426: inlining failure involing multiple nested calls
* Not a regression, but apparently of CMUCL vintage.
Christophe Rhodes [Sun, 4 May 2008 20:14:35 +0000 (20:14 +0000)]
1.0.16.16: Use declared element type in AREF short-circuit transform
The short-circuit transformation introduced in 1.0.2.17
removed the system's understanding of the declared array element
type (as opposed to the upgraded array element type).
Reintroduce the cleverness, and hope that the use of type=
doesn't remove all the slowdown.
(Issue noted by vy on #lisp afternoon 2008-05-04 BST)
Nikodemus Siivola [Sun, 4 May 2008 15:06:37 +0000 (15:06 +0000)]
1.0.16.15: fix TRANSFORM-LIST-ITEM-SEEK for ADJOIN with constant list arg
* Urk, missed a spot. There is probably little sense to open code ADJOIN
like ASSOC and MEMBER, so let's not.
* Tests.
Thiemo Seufer [Tue, 29 Apr 2008 23:43:03 +0000 (23:43 +0000)]
1.0.16.14:
Fix compiler warning.
Nikodemus Siivola [Tue, 29 Apr 2008 13:58:51 +0000 (13:58 +0000)]
1.0.16.13: use TRANSFORM-LIST-ITEM-SEEK for ADJOIN as well
* Now that the freeze was cancelled, do this properly...
Nikodemus Siivola [Mon, 28 Apr 2008 21:48:39 +0000 (21:48 +0000)]
1.0.16.12: revert ADJOIN change from 1.0.16.5
* The correct expansion is a bit too hairy to implement nicely
with a compiler macro.
* Test-cases.
Second take using TRANSFORM-LIST-ITEM-SEEK coming after the freeze.
Nikodemus Siivola [Thu, 24 Apr 2008 08:36:11 +0000 (08:36 +0000)]
1.0.16.11: ANY-REG is good for pritimitive-type T on x86/x86-64
* Report and test case by Stelian Ionescu.
Nathan Froyd [Thu, 24 Apr 2008 04:08:48 +0000 (04:08 +0000)]
1.0.16.10: function-ify ERROR-CALL and GENERATE-ERROR-CODE on x86
* Saves ~120k in core size.
* Should be done for other backends and ERROR-CALL &co.
refactored appropriately.
Christophe Rhodes [Wed, 23 Apr 2008 21:43:58 +0000 (21:43 +0000)]
1.0.16.9: restore buildability from CMUCL
CMUCL justifiably emits warning on (ecase ... (...) (t ...)).
Use ((t) ...) instead as the last clause. Reported by Andreas
Franke (sbcl-devel 2008-04-23).
Nikodemus Siivola [Wed, 23 Apr 2008 18:21:13 +0000 (18:21 +0000)]
1.0.16.8: NCONC with dx &rest lists
* Remove MAYBE-INLINE declaration: with dx &rest list inlining NCONC doesn't
yield any real benefits.
* Also delete some dead code, and NCONC2 -- interestingly unlike with
APPEND, a compiler-macro to NCONC2 seems to hurt more then it helps
(not that it hurts in any real way).
Nikodemus Siivola [Wed, 23 Apr 2008 17:40:38 +0000 (17:40 +0000)]
1.0.16.7: slightly faster LAST
* Remove MAYBE-INLINE declaration and separate into out-of-line
%LAST0, %LAST1, %LASTN/FIXNUM, and (rather academically)
%LASTN/BIGNUM.
* Add a DEFTRANSFORM to optimize to the most specific version
possible.
Nikodemus Siivola [Wed, 23 Apr 2008 15:42:30 +0000 (15:42 +0000)]
1.0.16.6: slightly faster APPEND
* Declare &REST dynamic-extent and remove MAYBE-INLINE declaration.
* Micro-optimization for type-checking and list walking.
* Compiler-macro into APPEND2 for the common 2 argument case.
Nikodemus Siivola [Wed, 23 Apr 2008 15:29:28 +0000 (15:29 +0000)]
1.0.16.5: faster ADJOIN in normal speed policies
* Remore MAYBE-INLINE declaration, and add a compiler macro so that
MEMBER transform is able to its job.
Nikodemus Siivola [Tue, 22 Apr 2008 09:56:37 +0000 (09:56 +0000)]
1.0.16.4: correct nested DX reasoning
* Propagate dynamic-extentness to an argument of a function whose
result is going to be dx-allocated only if all uses of the argument
lvars are good-for-dx combinations -- otherwise we may accidentally
cause DX allocation of things accessible via other variables.
Christophe Rhodes [Thu, 17 Apr 2008 14:46:17 +0000 (14:46 +0000)]
1.0.16.3: fnstsw %eax is invalid assembler syntax.
Report and patch from Marijn Schouten (sbcl-devel 2008-04-10)
Christophe Rhodes [Thu, 17 Apr 2008 14:05:01 +0000 (14:05 +0000)]
1.0.16.2: Fix FASL header checking logic
We mustn't read a word argument before we're sure that the
wordsize is right; otherwise we risk trying to create a string
of length approximately 2^32.
... reported by stassats@gmail.com on sbcl-devel 2008-04-16
Alexey Dejneka [Sun, 13 Apr 2008 03:48:18 +0000 (03:48 +0000)]
1.0.16.1: fix heap-allocated alien variable reference
William Harold Newman [Sun, 13 Apr 2008 01:39:01 +0000 (01:39 +0000)]
1.0.16: release, will be tagged as sbcl_1_0_16
Nikodemus Siivola [Thu, 27 Mar 2008 17:40:30 +0000 (17:40 +0000)]
1.0.15.41: sod this, revert to the old & simple tar-using contrib installation
* Windows has occasionally *.FASL files, so *.fasl is not robust. Copy
all the files using tar, but keep the find + chown so that contribs
are owned by the installer, not the builder.
Nikodemus Siivola [Wed, 26 Mar 2008 19:32:35 +0000 (19:32 +0000)]
1.0.15.40: more portable contrib module installation
* Going in despite the freeze: earlier version depended on GNU tar,
and broke install.sh on installations where tar was not GNU.
* Patch by Eugene Ossintsev.
Richard M Kreuter [Wed, 26 Mar 2008 15:54:11 +0000 (15:54 +0000)]
1.0.15.39: Remove subclasses of sb-posix:syscall-error
These were added in 1.0.14 (but never documented), and turn out to be
impediments to some future progress on Windows.
Richard M Kreuter [Tue, 25 Mar 2008 21:27:33 +0000 (21:27 +0000)]
1.0.15.38: One more fix for Win32 (oops)
* contrib/sb-posix/posix-tests.lisp: feature-out the fcntl tests on Win32.
Richard M Kreuter [Tue, 25 Mar 2008 21:24:24 +0000 (21:24 +0000)]
1.0.15.37: Windows fixes.
* tools-for-build/grovel-headers.c: add a grovel for EINTR
* contrib/sb-posix/constants.lisp: feature-out the ALIEN-FLOCK structure.
Nikodemus Siivola [Mon, 17 Mar 2008 17:13:40 +0000 (17:13 +0000)]
1.0.15.36: fix bug 423
* TRULY-THE no longer eagerly annotates the LVAR, but rather acts
like THE in unsafe code. (Inserts a cast for which no type-check is
generated.)
* ALLOC-NUMBER-STACK-SPACE and ALLOC-ALIEN-STACK-SPACE were missing
:RESULT-TYPES, which was masked by the old TRULY-THE
implementation. (Tested on x86, x86-64, PPC, but all backends
updated -- hopefully correctly.)
* Docstrings for THE and TRULY-THE.
FWIW, this patch seems to make PPC+GENCGC build happy once again: but
I don't know if that means the problems there were/are related to bug
423 -- or if the exact memory layout just happens to change subtly so
that whatever corruption occurs, just happens to occur in a place
where the GC doesn't see it anymore. (Or if the exact point at which
GC runs is now just slightly different so that the problem pointers
are not live anymore, or...)
Nikodemus Siivola [Mon, 17 Mar 2008 14:10:04 +0000 (14:10 +0000)]
1.0.15.35: fix bitrotted GC sanity checks
* One missing #ifdef.
* Better lossage messages for for some cases.
Nikodemus Siivola [Fri, 14 Mar 2008 20:41:25 +0000 (20:41 +0000)]
1.0.15.34: tweak the PCL cache improvement from 1.0.15.12
* Thanks to Paul Khuong for noting that we weren't actually dropping
50% of the entries, but somewhat less. Now (assuming our RANDOM is
good) we really should average 50%.
Nikodemus Siivola [Fri, 14 Mar 2008 20:10:17 +0000 (20:10 +0000)]
1.0.15.33: implement SB-VM::WITH-CYCLE-COUNTER for x86 and x86-64
* For potential future exporting from SB-SYS.
* Thanks to Paul Khuong and the CMUCL team.
Nikodemus Siivola [Fri, 14 Mar 2008 19:44:25 +0000 (19:44 +0000)]
1.0.15.32: shinier SB-BSD-SOCKET:MAKE-INET-ADDRESS
* Check the input string for wellformedness, and construct a
specialized vector.
Nikodemus Siivola [Fri, 14 Mar 2008 19:03:05 +0000 (19:03 +0000)]
1.0.15.31: thread-safe FIND-CLASS -- really this time
Call It Myopia: it turns out FIND-CLASSOID &co underneath FIND-CLASS
(when called for non-existent classes) were not thread-safe either.
* Get rid of *FIND-CLASS* hash-table, moving the actual PCL classes into
corresponding CLASSOID-CELL (new slot PCL-CLASS).
* Move classoid-cells from the infodb into into *CLASSOID-CELLS*
hash-table. We want to be able to lock around
(or (get-cell) (setf (get-cell) (make-cell)))
and infodb isn't really designed for that. This is the crux of
the breakage:
*** parallel writes to infodb are not thread safe! ***
* Lock over *CLASSOID-CELLS* and *FORWARD-REFERENCED-LAYOUTS*. The
latter should not be really necessary as long as we don't
assume (SETF FIND-CLASS) to be thread-safe, but easier to reason
about it this way. ...and it would be nice for the SETF to be safe
as well.
Related work:
* Don't create cells for non-exitent classes unless we know we are
going to need them -- previously both FIND-CLASSOID and FIND-CLASS
created a cell for every name they were called with, which is
isn't too good. This is especially important as once created these
cells never go away!
Nikodemus Siivola [Thu, 13 Mar 2008 18:35:48 +0000 (18:35 +0000)]
1.0.15.30: thread-safe FIND-CLASS
* Reported by Attila Lendvai.
...I could have sworn I did this already...
Nikodemus Siivola [Thu, 13 Mar 2008 15:40:28 +0000 (15:40 +0000)]
1.0.15.29: record bugs 424 and 425
Nikodemus Siivola [Thu, 13 Mar 2008 15:23:32 +0000 (15:23 +0000)]
1.0.15.28: SB-INTROSPECT: source-locations for objects
* FIND-DEFINITION-SOURCE returns the source-location of the class for
standard-objects, conditions, and structure objects.
* Patch by Tobias C. Rittweiler.
Nikodemus Siivola [Thu, 13 Mar 2008 15:20:56 +0000 (15:20 +0000)]
1.0.15.27: nicer lambda-lists for GCD and LCM
* Patch by Tobias C. Rittweiler.
Nikodemus Siivola [Thu, 13 Mar 2008 15:19:14 +0000 (15:19 +0000)]
1.0.15.26: only one return value from USER-HOMEDIR-PATHNAME
* USER-HOMEDIR-PATHNAME invokes PARSE-NATICE-NAMESTRING in a tailcall
which returns the parsing offset as secondary value---although
USER-HOMEDIR-PATHNAME is specified to only return on value; wrap it
in an explicit (values ...) call.
Patch by Tobias C. Rittweiler.
Nikodemus Siivola [Thu, 13 Mar 2008 13:18:49 +0000 (13:18 +0000)]
1.0.15.25: fix ~R for vigtillions
* Off-by-one error in sb-format::format-print-cardinal-aux was
preventing ~R from printing numbers between 10^63 and 10^66-1.
Patch by Luis Oliveira.
Nikodemus Siivola [Thu, 13 Mar 2008 11:35:20 +0000 (11:35 +0000)]
1.0.15.24: SB-BSD-SOCKETS: add :DONTWAIT option to SOCKET-RECEIVE
* For symmetry with SOCKET-SEND.
Nikodemus Siivola [Thu, 13 Mar 2008 11:07:45 +0000 (11:07 +0000)]
1.0.15.23: typos and grammar
* Fix manpage typo: "inplements". Thanks to Eugene "Oversight"
Ossintsev.
* Fix PPRINT-INDENT docstring: s/is it is a/is a/. Thanks to Cyrus
"Hawkeye" Harmon.
Nikodemus Siivola [Thu, 13 Mar 2008 10:59:59 +0000 (10:59 +0000)]
1.0.15.22: slightly nicer contrib installation
* Install owned by the install.sh runner, not builder. Don't install
CVS directories.
* Thanks to Eugene Ossintsev.
Nikodemus Siivola [Thu, 13 Mar 2008 10:32:40 +0000 (10:32 +0000)]
1.0.15.21: SB-BSD-SOCKETS:NAME-SERVICE-ERROR to inherit from ERROR
* Thanks to Stanislaw Halik.
Nikodemus Siivola [Wed, 12 Mar 2008 18:32:45 +0000 (18:32 +0000)]
1.0.15.20: refactor "system locks" framework, one TIMER buglet
* Choose the degree of GC/interrupt suppression at compile-time.
* Default is not to allow interrupts at all, callers which need
WITH-INTERRUPTS to work can now specify :ALLOW-WITH-INTERRUPTS.
* Should fix reported Stumpwm crashes due to attempts to recursively
obtain *SCHEDULER-LOCK*. (Caused by SIGALRM interrupting GET-MUTEX
inside the call to %TIMER-CANCEL-FUNCTION, which led to recursive
entry to WITH-SCHEDULER-LOCK.)
* Don't reschedule timers for dead threads.
* Three new test-cases for timers, which (1) represent my failing
attempts to trigger the Stumpwm bug described above (2) led to
noticing the rescheduling promblem (3) fail horribly on OS X Tiger
-- not sure if this is our or Darwin's problem...
Nikodemus Siivola [Mon, 10 Mar 2008 19:26:15 +0000 (19:26 +0000)]
1.0.15.19: use TEST X X when possible in SIGNED-BYTE-*-LEN VOPS
* Both x86 and x86-64.
Nikodemus Siivola [Mon, 10 Mar 2008 19:18:01 +0000 (19:18 +0000)]
1.0.15.18: kill commented out ALLOCATION from x86-64
* 'twas a duplicate of ALLOCATION-TRAMP.
Nikodemus Siivola [Mon, 10 Mar 2008 18:49:17 +0000 (18:49 +0000)]
1.0.15.17: better threaded BIND & UNBIND for x86-64
* x86-64 port of 1.0.15.7, plus some x86 cleanups:
-- Rename ALLOCATE-TLS-INDEX-* to ALLOC-TLS-INDEX-* for more
consistent asm routine names.
-- Use (FIXNUMIZE 1) instead of magic number 4.
Shrinks the threaded x86-64 core by ~200k bytes.
Christophe Rhodes [Fri, 7 Mar 2008 12:26:37 +0000 (12:26 +0000)]
1.0.15.16: New modular arithmetic representation decision
Prefers any exactly-matching modular implementation, then tagged
if possible, then untagged. Should make code of the form
(logand xxx most-positive-fixnum)
more tolerable.
Also includes better lognot/fixnum implementation on all
platforms.
Squashed commit of the following:
commit
81776d9aab531db20711320ecea920453e058cef
Author: Christophe Rhodes <csr21@cantab.net>
Date: Fri Mar 7 04:54:03 2008 -0700
Fix lognot for fixnums on alpha.
commit
27ce80579851bf9227d7d1121cf1554dc383049d
Author: SBCL devs <sbcl-dev@aleph.math.ualberta.ca>
Date: Thu Mar 6 15:02:03 2008 -0700
New modular arithmetic ported to alpha
(as yet untested beyond make-genesis-2: lognot/fixnum is buggy)
commit
d6ae6339374983ae874d85f3c52103c77ccad222
Author: Christophe Rhodes <csr21@localhost.localdomain>
Date: Fri Jan 11 17:38:19 2008 +0000
New modular arithmetic ported to mips.
Tested by Thiemo Seufer.
commit
50e2e51d25bb3d3997e4b884b7a15f7ba1992391
Author: Christophe Rhodes <csr21@localhost.localdomain>
Date: Fri Jan 11 17:37:41 2008 +0000
Make find-modular-class get signed and unsigned the right way round.
As it happened, this all worked by accident anyway, because the only
other user of the *foo-modular-class* specials didn't rely on the
separation between the classes, but instead used other data. Hmm...
(Noticed by Nikodemus Siivola)
commit
d3de3d27b212999672644d8a4fccfce9676dbf4f
Author: Christophe Rhodes <csr21@zeus.jesus.cam.ac.uk>
Date: Tue Jan 1 14:25:33 2008 +0000
New modular arithmetic ported to sparc.
As with ppc, the signed modular arithmetic is not terribly useful, as
only good functions have been implemented (so no +, -, * and ash)
commit
e99c204ab165139f4c8f8aacb59d4a825b90b7d1
Author: Christophe Rhodes <mas01cr@gibbons.doc.gold.ac.uk>
Date: Mon Dec 31 18:15:41 2007 +0000
Fix for fixnum LOGNOT on PPC
Use subfic res, x, -4 rather than xori res, x, -4 -- xori's immediate
argument is not sign-extended.
(Thanks to Andy Hefner for the idea to use subfic rather than xori+xoris)
commit
db8ffb719750c8bc655519b03c2081cc3b8d0b2e
Author: Christophe Rhodes <mas01cr@gibbons.doc.gold.ac.uk>
Date: Mon Dec 31 18:13:21 2007 +0000
New modular arithmetic ported to ppc.
Simple modifications only. It remains for someone to add signed modular
definitions of +, -, * and so on for this to become useful on ppc.
commit
5c7562fc1e2a96a81d9bc32fb77ad70ed1794e6e
Author: Christophe Rhodes <crhodes@gibbons.doc.gold.ac.uk>
Date: Mon Dec 31 10:12:26 2007 +0000
New modular arithmetic choice for x86-64
Simply adapt x86-64/arith.lisp by
* removing logxor implementation (as it's now :good)
* adapting %LEA implementation
commit
39054fae6e5a2e55856a506ad497978adcbbd6c2
Author: Christophe Rhodes <csr21@omega.localdomain>
Date: Sun Dec 30 21:50:16 2007 +0000
Better fixnum LOGNOT implementations.
Apparently inherited from cmucl, our fixnum and signed LOGNOT VOPs had
generator costs that preferred the signed representation over the tagged.
Fix this (on all backends; tested only on x86)
commit
6eee19de7a49762ea2f3bbfe89d9ea1b0dcee47f
Author: Christophe Rhodes <csr21@omega.localdomain>
Date: Sun Dec 30 21:29:39 2007 +0000
Better signed modular arithmetic.
All the LOGFOO functions are :good modular functions for signed
modular arithmetic.
LOGXOR is a :good modular function for untagged unsigned modular
arithmetic.
commit
32961ecb51bcfea655f985d1f774a8fc46bd155b
Author: Christophe Rhodes <csr21@omega.localdomain>
Date: Sun Dec 30 19:30:57 2007 +0000
Split untagged modular class into unsigned and signed variants.
FIND-MODULAR-VERSION now takes both KIND and SIGNEDP arguments.
commit
e3b88693c3721cd84d9fb4a01d624d450c120cdd
Author: Christophe Rhodes <csr21@omega.localdomain>
Date: Sun Dec 30 17:58:49 2007 +0000
Choice of modular version, initial commit
Commit of approximately September vintage work, x86-only.
Nikodemus Siivola [Wed, 5 Mar 2008 15:11:18 +0000 (15:11 +0000)]
1.0.15.15: reset DF on x86 and x86-64 after every STD instead of when calling out
* Both the old and the new behaviour should be correct re C-ABI, but
this is much easier to audit. Thanks to Aurelien Jarno for the
initial patch.
* This should also fix the build on platforms with GCC 4.3 compiled
libc signal handling functions, which assume DF to be cleared.
** NOTE ** If kernel/libc does not arrange for DF to be cleared
before calling our handler and restore it afterwards, we can still
be broken by asynch signals on post 4.3 GCC libcs -- but this Is
Not Our Fault, We Think.
* Test-case suggested by Alistair Bridgewater for possible related
default-unknown-values problems on SunOS.
Nikodemus Siivola [Wed, 5 Mar 2008 01:48:06 +0000 (01:48 +0000)]
1.0.15.14: move bignum allocation out of line on x86-64 from MOVE-FROM-[UN]SIGNED
* Essentially port of the work done for x86 earlier (1.0.13.10.)
Shrinks the core by about 500k.
* Change the high-bits test on x86 to be clearer about what happens
(no magic numbers.)
* Fixups cannot be called directly on x86-64, so make the CALL
instruction barf on that instead of silently generating bogus code.
Nikodemus Siivola [Mon, 3 Mar 2008 20:14:24 +0000 (20:14 +0000)]
1.0.15.13: more mnemonic lambda-lists for RPLACD and RPLACA
* CONS and X instead of X and Y. I admit, I use these so seldom that
I have to check the docstring 9 times out of 10 as the lambda-list
Slime used to show was of no help.
Nikodemus Siivola [Mon, 3 Mar 2008 19:34:18 +0000 (19:34 +0000)]
1.0.15.12: better scaling in the PCL cache
* When the cache reaches its maximum size, and entries need to be
dropped, drop a random 50% of them, instead of the more
deterministic set "ones that don't fit": this avoids getting stuck
in a "add A dropping B, add B dropping A, ..." cycle which eats up
ginormous amounts of time. Additionally, dropping 50% seems to be
the best ratio -- experimentally, at least -- but it would be nice
to have a proper analysis...
Note: there is a point (possibly even before our current maximum
cache size) where the allowed probe-depth grows so large that a
tree would work better then a table. It would be good to gracefully
replace the table based cache with a tree when it grows so large.
Nikodemus Siivola [Mon, 3 Mar 2008 15:13:04 +0000 (15:13 +0000)]
1.0.15.11: one more slice of ASSOC micro-optimization
* In %ASSOC and %ASSOC-EQ, test for equality before checking if the
list element is NIL: in the common case only one element needs both
tests, and even in the rare cases (looking for NIL, list contains
several NILs) this is as fast as the old version. Common cases
improved by ~30% by this.
Now, finally, CL:ASSOC is as fast as
(defun fast-assoc (item list)
(loop for e in list
when (eq item (car e))
return e))
when the type of ITEM is known to be (OR FIXNUM (NOT NUMBER)).
* In others %ASSOC-* functions, test for existence of element only
once (the compiler should eliminate the redundant test, though, but
this is cleaner.)
Nikodemus Siivola [Mon, 3 Mar 2008 14:21:50 +0000 (14:21 +0000)]
1.0.15.10: ASSOC and MEMBER were broken for :KEY #'IDENTITY
* Regression caused by 1.0.15.9 -- SET where is should have been SETF.
* Add a few test-cases.
Nikodemus Siivola [Mon, 3 Mar 2008 01:47:53 +0000 (01:47 +0000)]
1.0.15.9: further ASSOC & MEMBER transform improvements
* Neither should be MAYBE-INLINE, as the DEFTRANSFORM result is better.
* Compile the out-of-line bodies with high SPEED, and declare a missing
LIST type.
* Add %ASSOC-EQ, %ASSOC-KEY-EQ, and the corresponding %MEMBER-
versions, and transform to these when (1) no :TEST is given, but
the item to compare against is safe for EQ (2) :TEST is given and
either 'EQ or #'EQ.
Nikodemus Siivola [Sun, 2 Mar 2008 22:38:08 +0000 (22:38 +0000)]
1.0.15.8: fix non-threaded x86 build
* Missing #!+sb-thread in src/assembly/x86/alloc.lisp.
Nikodemus Siivola [Sat, 1 Mar 2008 19:25:41 +0000 (19:25 +0000)]
1.0.15.7: threaded BIND and UNBIND improvements on x86
* TLS index allocation is rare, so move it out of line from BIND.
Shrinks the threaded core by over 170k bytes.
* Make UNBIND use three registers instead of four.
Nikodemus Siivola [Fri, 29 Feb 2008 11:04:43 +0000 (11:04 +0000)]
1.0.15.6: split main part of SUB-SERVE-EVENT into SUB-SUB-SERVE-EVENT
* Easier to understand, fixes periodic polling. Patch by Espen S
Johnsen.
* NEWS entry for 1.0.15.5. as well.
Nikodemus Siivola [Fri, 29 Feb 2008 10:41:46 +0000 (10:41 +0000)]
1.0.15.5: handler from COPY-DESCRIPTOR-TO-STREAM to check EINTR from select()
* Just return, and continue copying the next time. Reported by Vitaly
Mayatskikh on sbcl-devel.
Richard M Kreuter [Wed, 27 Feb 2008 19:03:02 +0000 (19:03 +0000)]
1.0.15.4: Fix a non-POSIX usage of find(1) in binary-distribution.sh
Fix contributed by Josh Elsasser.
Richard M Kreuter [Wed, 27 Feb 2008 18:56:47 +0000 (18:56 +0000)]
1.0.15.3: Have PROBE-FILE return NIL whenever a truename can't be found.
See the mailing list discussions during February 2008 for details.
Richard M Kreuter [Wed, 27 Feb 2008 17:33:45 +0000 (17:33 +0000)]
1.0.15.2: Add binding to fcntl's struct flock in SB-POSIX.
File by file breakdown:
* contrib/sb-posix/constants.lisp
Add an internal ALIEN-FLOCK structure.
* contrib/sb-posix/defpackage.lisp
Export the FLOCK class the accessors.
* contrib/sb-posix/interface.lisp
Define a FLOCK "protocol class", add a path through FCNTL that accepts
FLOCK instances.
* sb-posix/posix-tests.lisp
Test two uses of exclusive (F_WRLCK) locks.
* contrib/sb-posix/sb-posix.texinfo
Add documentation for the FLOCK class to the manual.
Andreas Fuchs [Wed, 27 Feb 2008 16:56:27 +0000 (16:56 +0000)]
1.0.15.1: Fix asdf-install for HTTP servers that omit the Length: header.
Make copy-stream use the output stream's element type, as the input stream
is very likely to be a bivalent stream, which will report CHARACTER, leading
to incompatible element-types.
William Harold Newman [Tue, 26 Feb 2008 14:48:27 +0000 (14:48 +0000)]
1.0.15: release, will be tagged as sbcl_1_0_15
Nikodemus Siivola [Fri, 22 Feb 2008 19:10:36 +0000 (19:10 +0000)]
1.0.14.41: record bug 423
* TRULY-THE interacts badly with *CHECK-CONSISTENCY*.
Nikodemus Siivola [Fri, 22 Feb 2008 16:54:48 +0000 (16:54 +0000)]
1.0.14.40: make deftransforms for UB<N>-BASH-COPY have consistent return type
* Make REPLACE *CHECK-CONSISTENCY* happy: the transforms used to have
return type (VALUES NULL &OPTIONAL), whereas the out-of-line
definitions had return type (VALUES &OPTIONAL).
Nikodemus Siivola [Tue, 19 Feb 2008 16:06:34 +0000 (16:06 +0000)]
1.0.14.39: make GENCGC gencgc_zero_check=1 proof again
* 0.9.8.19 moved zeroing from GC time to allocation time, but after
the point where the check was done -- thus causing the check to
fail immediately if it was turned on. This commit moves the check
after the zeroing, so we're good again.
...which also means that gencgc_zero_check=1 is not very
interesting anymore, since the zeroing happens in the immediate
vicinity of the check.
Nikodemus Siivola [Tue, 19 Feb 2008 10:18:06 +0000 (10:18 +0000)]
1.0.14.38: build runtime with -Wsign-compare, and clean warnings on x86/Linux
* Nothing serious seemed to be going on, though, but since C has nasty
signed vs unsigned comparison semantics, it is better to be clear
about what is going on.
Nikodemus Siivola [Tue, 19 Feb 2008 09:20:09 +0000 (09:20 +0000)]
1.0.14.37: detect the Windows codepage at runtime
* Using the value from the saved core is wrong. Fix by Suzuki Kei on
sbcl-devel.
Nikodemus Siivola [Mon, 18 Feb 2008 19:25:22 +0000 (19:25 +0000)]
1.0.14.36: faster PROPAGATE-FROM-SETS
20-25% improvement for the test-case in bug 188.
* New slot in LAMBDA-VAR: LAST-INITIAL-TYPE, which holds the last
initial-type for that variable seen by PROPAGATE-FROM-SETS.
* Be lazy, and don't PROPAGATE-TO-REFS unless something of
interest has happened, to wit:
-- One of the CSET nodes has a new, more specific type.
-- INITIAL-TYPE has become more specific.
This also allows us elide TYPE-UNION computation in the
uninteresting cases.
* Requires having NODE-REOPTIMIZE set when IR1-OPTIMIZE-SET
is called.
Nikodemus Siivola [Mon, 18 Feb 2008 19:14:11 +0000 (19:14 +0000)]
1.0.14.35: lift MAKE-SINGLE-VALUE-TYPE calls from loops
* Multiple places can use the same type, no need to cons
a new one each time through the loop.
Nikodemus Siivola [Mon, 18 Feb 2008 10:05:40 +0000 (10:05 +0000)]
1.0.14.34: slightly less and slightly faster constraint propagation
* For negated EQL constaints, don't cons up multiple MEMBER-TYPE
instances during a single pass through CONSTRAIN-REF-TYPE:
accumulate a single XSET, and turn it into a MEMBER-TYPE only at
the end.
* Don't construct (NOT (MEMBER ...TON-OF-SYMBOLS...)) types at all,
unless SPEED > COMPILATION speed. Knowing that a variable is not
in a set of symbols is seldom useful, and compiling large CASE
statements with symbols as keys can end up spending huge amounts
of time just building these sets.
* Adjust FD-STREAMS to use an ECASE in the single place in SBCL where
without the aforementioned constraint propagation the compiler is
not able to determine sufficiently constrain the result type. (Not
needed since the build has SPEED > COMPILATION-SPEED, but keeps
things non-brittle.)
Christophe Rhodes [Sun, 17 Feb 2008 19:06:34 +0000 (19:06 +0000)]
1.0.14.33: Resurrexit Alpha
Sort out accumulated bitrot on the Alpha:
* xrefs slot for simple_fun: a couple of places in alpha-assem.S
* arch_skip_instruction(): compilers more careful about lvalues;
* arch_handle_single_step_trap(): implement it. (Untested)
* ld-script.alpha-linux: update for newer systems.
Works For Me. Other systems may vary.
Nikodemus Siivola [Sun, 17 Feb 2008 13:26:15 +0000 (13:26 +0000)]
1.0.14.32: fix bug 407
* %SINGLE-FLOAT and %DOUBLE-FLOAT should not be flushable.
* BUGS entry remains: should (COERCE (EXPT 2 1024) 'SINGLE-FLOAT)
really signal a TYPE-ERROR?
Nikodemus Siivola [Sun, 17 Feb 2008 08:18:40 +0000 (08:18 +0000)]
1.0.14.31: better ANSI-STREAM-FILE-POSITION
* Instead of searching for the external-format object to obtain
the character-width function, store the function (or its result
for fixed-width external formats) directly into the FD-STREAM
object. Non-FD-STREAM ANSI-STREAMS use the old strategy.
Christophe Rhodes [Sat, 16 Feb 2008 10:34:45 +0000 (10:34 +0000)]
1.0.14.30: don't construct obsolete instances
The CTOR make-instance optimization machinery closes over the
class wrapper of the class in question; however, there are
code paths that cause wrappers to be invalidated without causing
all constructors to be recomputed: for instance, the
redefinition of a superclass, or calling
MAKE-INSTANCES-OBSOLETE. This would mean that the CTORs would
create obsolete instances, which would instantly trap, showing
up as slowness in CLOS-heavy code.
Problem and fix largely identified by Andy Hefner in
<http://paste.lisp.org/display/55689>.
Nikodemus Siivola [Fri, 15 Feb 2008 14:42:30 +0000 (14:42 +0000)]
1.0.14.29: update ASDF again
* ...to a version that has correct *asdf-revision*.
Nikodemus Siivola [Thu, 14 Feb 2008 16:43:08 +0000 (16:43 +0000)]
1.0.14.28: small FGEN improvements
* Use a DEFSTRUCT instead of a vector for clarity. Also eliminate the
unused mystery slot.
* Inline code of GET-NEW-FUN-GENERATOR-INTERNAL in
GET-NEW-FUN-GENERATOR.
* Store in a hash-table for O(1) goodness instead of a list.
* ENSURE-FGEN instead of MAKE-FGEN + STORE-FGEN.
* When lifting constants out of code in FGEN construction, leave
constant lists in place: several of the functions we generate FGENs
for have ETYPECASE forms, which will otherwise cause us to close
over the :EXPECTED-TYPE and :POSSIBILITIES arguments to ERROR for
no good reason.
Nikodemus Siivola [Thu, 14 Feb 2008 16:40:45 +0000 (16:40 +0000)]
1.0.14.27: rename MAKE-FIXNUM to POINTER-HASH
* Use VOP translation instead of %PRIMITIVE.
* On x86 and x86-64 improve the pointer-hash slightly: use the whole
address, but none of the tag bits in the hash.
* Fix type in INDEX-FOR-HASHING: the first argument is a HASH, not an
INDEX. Given the better quality of low bits on x86oids (and
hopefully soon on others as well), adjust the mixing a bit.
Nikodemus Siivola [Fri, 8 Feb 2008 14:16:11 +0000 (14:16 +0000)]
1.0.14.26: tweak COND slightly
* Don't expand into a final (COND), but directly to NIL (easier to
read macroexpansion.)
* Check for the common case of final T, so that the last clause can be
unconditional instead of generating redundant IF.
Nikodemus Siivola [Fri, 8 Feb 2008 12:55:54 +0000 (12:55 +0000)]
1.0.14.25: trivial WHEN & UNLESS change
* Implement directly on top of IF & PROGN instead of COND: clearer
macroexpansion, and slightly less work to compile to boot.
Nikodemus Siivola [Fri, 8 Feb 2008 12:49:02 +0000 (12:49 +0000)]
1.0.14.0.24: spell-check and proofread NEWS a bit
* ...and add the "reported by" left out from the last commit.
Nikodemus Siivola [Fri, 8 Feb 2008 12:38:15 +0000 (12:38 +0000)]
1.0.14.0.23: hash-table printing improvements
* Respect printer-control variables when printing readably.
* Print non-null weakness when printing unreadably.
Nikodemus Siivola [Wed, 6 Feb 2008 14:26:41 +0000 (14:26 +0000)]
1.0.14.22: more backtrace verbosity, for a change
* Revert part of the *SHOW-ENTRY-POINT-DETAILS* functionality: always
return the DEBUG-FUN-KIND from FRAME-CALL, so that instead of the
rather confusing
(FOO MY-ARGUMENT)
(FOO MY-ARGUMENT)
a slightly mysterious but hopefully less confusing
(FOO MY-ARGUMENT)
(FOO MY-ARGUMENT) [:EXTERNAL]
appears in backtraces where the XEP hasn't been tail-merged.
Nikodemus Siivola [Wed, 6 Feb 2008 11:46:07 +0000 (11:46 +0000)]
1.0.14.21: debugger refactoring: MAP-BACKTRACE and MAP-FRAME-ARGS
* Thanks to Attila Lendvai.
Nikodemus Siivola [Tue, 5 Feb 2008 04:09:23 +0000 (04:09 +0000)]
1.0.14.20: XSET used EQ instead of EQL for comparison
* Fix it, and add a test specifically for MEMBER using EQL.
Richard M Kreuter [Mon, 4 Feb 2008 22:55:21 +0000 (22:55 +0000)]
1.0.14.19: Fix SB-SHOW, broken for a while.
* Optimization in CONCATENATE broke SB-SHOW in the cross compiler.
Disable this optimization in SB-SHOW.
Nikodemus Siivola [Mon, 4 Feb 2008 22:14:08 +0000 (22:14 +0000)]
1.0.14.18: fix bogus STYLE-WARNING for MAKE-HASH-TABLE :SYNCHRONIZED
* Add :SYNCHRONIZED to thr DEFKNOWN.
* Also fix a bit of totally broken indentation in the
hash-table code.
* Cautionary comment about a potential type-error in parallel code.
* More threaded hash-table tests.
Nikodemus Siivola [Mon, 4 Feb 2008 20:49:27 +0000 (20:49 +0000)]
1.0.14.17: treat (NAMED-LAMBDA NIL ...) like (LAMBDA ...)
* Getting NIL as the source-name of a functional is pretty bogus, and
getting it as the debug-name messes with our careful debug-name
sanity checks. So don't do it then.
Nikodemus Siivola [Mon, 4 Feb 2008 15:40:32 +0000 (15:40 +0000)]
1.0.14.16: add explicit CHECK-CONSTANT-MODIFICATION policy
* Allows using SB-COVER with (RESTRICT-COMPILER-POLICY 'SAFETY 3).
Nikodemus Siivola [Mon, 4 Feb 2008 15:11:35 +0000 (15:11 +0000)]
1.0.14.15: fix typo in inline declaration for SOURCE-FORM-HAS-PATH-P
* Thanks to Peter Graves.
Nikodemus Siivola [Sun, 3 Feb 2008 20:05:54 +0000 (20:05 +0000)]
1.0.14.14 fix SB-POSIX:MK*TEMP() tests
* BSD may be happy with just three Xs in the template, but Linux at
least wants six.
Juho Snellman [Sun, 3 Feb 2008 18:36:18 +0000 (18:36 +0000)]
1.0.14.13: Rewrite non-standard LOOP syntax
* Using XCL as the host compiler did not work due to a FOR/WHILE/FOR
sequence (which is not defined in the spec, though supported by
most implementations). Reported by Peter Graves.
Nikodemus Siivola [Sun, 3 Feb 2008 01:20:43 +0000 (01:20 +0000)]
1.0.14.12: export SB-POSIX:MKSTEMP, add SB-POSIX:MKTEMP and SB-POSIX:MKDTEMP
* Remove the alien struct consing from the calls -- just use the SAP
directly.
* Automagic unsupportedness handling for platforms that miss any of
these.
* Rudimentary tests.
* #-win32 for now.
Nikodemus Siivola [Sun, 3 Feb 2008 00:52:00 +0000 (00:52 +0000)]
1.0.14.11: update ASDF to 1.114 from CCLAN
* On the ASDF side of the wall merge the empty SBCL_HOME handling to
upstream, and canonicalize the whitespace there.
Nikodemus Siivola [Fri, 1 Feb 2008 11:15:34 +0000 (11:15 +0000)]
1.0.14.10: friendly CHECK-TYPE error message for quoted type-specifiers
* (QUOTE ...) is never a valid type-specifier.
* When printing the macro-form responsible for an error, increase
*PRINT-LEVEL* from 1 to 3, for a slightly better compiler-log
reading experience.
Richard M Kreuter [Thu, 31 Jan 2008 19:29:24 +0000 (19:29 +0000)]
1.0.14.9: Fix regression in RUN-PROGRAM when :INPUT et al. are pathnames.
* GET-DESCRIPTOR-FOR is defined with &rest, &key, and
&allow-other-keys, and one pathway passes the &rest list to OPEN. A
recent addition of a keyword argument to GET-DESCRIPTOR-FOR that
OPEN didn't recognize created a problem.
* Add test for the correct behavior.
Nikodemus Siivola [Thu, 31 Jan 2008 13:04:30 +0000 (13:04 +0000)]
1.0.14.8: small TRACE and UNTRACE interface improvements
* (TRACE "FOO") now traces SETF-functions as well.
* (UNTRACE "FOO") is now supported.
Nikodemus Siivola [Thu, 31 Jan 2008 07:22:16 +0000 (07:22 +0000)]
1.0.14.7: quote non-keyword :default-initargs keys in SLOT-INIT-FORMS
* Reported and diagnosed by Matt Marjanovic.
Nikodemus Siivola [Tue, 29 Jan 2008 14:21:59 +0000 (14:21 +0000)]
1.0.14.6: SIMPLE-REFERENCE-ERROR, not SIMPLE-REFERENCE-CONDITION
* Bogus export, reported by Attila Lendvai.
* Fix the test-case to check that the condition type is sane, which
would have caught this in the first place.
Nikodemus Siivola [Tue, 29 Jan 2008 14:08:27 +0000 (14:08 +0000)]
1.0.14.5: fix threaded builds
* Broken by 1.0.14.1: LET*, not LET in MAKE-THREAD now.
Nikodemus Siivola [Tue, 29 Jan 2008 13:56:19 +0000 (13:56 +0000)]
1.0.14.4: increase MAX_INTERRUPTS to 1024
* ...hopefully fixing Stumpwm, and other signal-prone applications.