Juho Snellman [Mon, 10 Dec 2007 05:35:10 +0000 (05:35 +0000)]
1.0.12.23: Optimize STRING-*-TRIM
* Add deftransforms for STRING(-LEFT|-RIGHT|)-TRIM of simple strings.
As a sleazy benchmark trick, also optimize for constant character bags.
* Rewrite the function versions of the string trimmers for more
code reuse. New versions also no longer cons up a new string when
no trimming needs to be done. (Allowed in the spec, as pointed out
by Attila Lendvai)
* Add tests.
Juho Snellman [Mon, 10 Dec 2007 04:40:34 +0000 (04:40 +0000)]
1.0.12.22: Optimize READ-SEQUENCE into strings and READ-LINE
* Have READ-LINE and READ-SEQUENCE directly use the cin buffer whenever
one exists, instead of going through FAST-READ-CHAR. READ-LINE already
did this in some circumstances, but often .
* READ-LINE on normal data with short lines is around 50% faster, with
abnormally long lines about 75% faster. (On my laptop -- IIRC the
difference was smaller on a workstation).
* READ-SEQUENCE into a simple string is up to 80% faster.
* Modify FAST-READ-CHAR-REFILL a bit to make it nicer to use in the
non-read-char cases.
* Fix a utf-8 resyncing bug in READ-LINE (masked by the test case
in external-format.impure not having a newline at the end, which
caused READ-LINE to always take the slow path).
Nikodemus Siivola [Sun, 9 Dec 2007 18:11:51 +0000 (18:11 +0000)]
1.0.12.21: using default external format for RUN-PROGRAM args and env
* Patch by Harald Hanche-Olsen: use STRING-TO-OCTETS to build the
vector of string pointers. Also allows non-simple strings.
Nikodemus Siivola [Sun, 9 Dec 2007 15:19:21 +0000 (15:19 +0000)]
1.0.12.20: compiling files with unicode names
* Patch by Attile Lendvai: UTF-8 encode the original filename for
writing it ot the fasl.
Nikodemus Siivola [Sun, 9 Dec 2007 15:04:48 +0000 (15:04 +0000)]
1.0.12.19: runtime cleanups by Daniel Lowe
* Rename SymbolFunction to StaticSymbolFunction, and implement it as
an inline function instead of a macro.
* Implement make_lispobj, make_fixnum, and fixnum_value as inline
functions.
Nikodemus Siivola [Sun, 9 Dec 2007 14:37:22 +0000 (14:37 +0000)]
1.0.12.18: faster member-type operations
* XSET is a generic set implementation, that uses lists of small sets,
and switches to hashes for larger ones. Current switchoff point is
12 -- but some operations would benefit from a larger one. TODO:
There are other places in SBCL that will probably want to use XSET
as well.
* Instead of storing members directly in the set object, store them in
an XSET -- except for floating point zeros which go into a list of
their own, simplifying the canonicalization a bit. (By adding
complexity elsewhere, of course. Maybe this is not TRT after all...)
* ...now member type arithmetic is mostly O(1) or O(N), instead of
O(BAD), but some operations cons more then before: old implemenation
manageg eg. union without consing when either set was the subset of
the other one -- not so anymore.
Nikodemus Siivola [Wed, 5 Dec 2007 17:23:25 +0000 (17:23 +0000)]
1.0.12.17: Gray streams as part of composite streams
* READ-N-BYTES needs to deal with Gray streams.
Nikodemus Siivola [Wed, 5 Dec 2007 15:16:02 +0000 (15:16 +0000)]
1.0.12.16: sequence optimizations: FILL
* Use DEFUN instead of DEFINE-SEQUENCE-TRAVERSER for FILL: the
dispatched to functions do all the necessary checking, and do it
better since they know more about the types.
* New function: STRING-FILL*.
* Rewrite VECTOR-FILL* and LIST-FILL* for efficiency.
* Macros VECTOR-FILL and LIST-FILL were expanded only in VECTOR-FILL*
and LIST-FILL* -- get rid of them.
* Compile-time dispatch to STRING-FILL*, VECTOR-FILL*, LIST-FILL*, and
SB-SEQUENCE:FILL.
* Comment above %CHECK-VECTOR-SEQUENC-BOUNDS no longer applies, delete
it.
Brian Mastenbrook [Sun, 2 Dec 2007 17:00:14 +0000 (17:00 +0000)]
1.0.12.15: PPC/Darwin fixes
* Build fix on Leopard (10.5) thanks to Sidney Markowitz
* Finally remove obsolete G5 sigcontext fix as 10.2 is totally old
Nikodemus Siivola [Sat, 1 Dec 2007 18:57:57 +0000 (18:57 +0000)]
1.0.12.14: sequence optimizations: COPY-SEQ
* Compile-time dispatch to STRING-SUBSEQ*, VECTOR-SUBSEQ*,
LIST-COPY-SEQ*, and SB-SEQUENCE:COPY-SEQ.
* Share code between COPY-LIST and LIST-COPY-SEQ* via light macrology.
* COPY-SEQ on lists should check for improper lists.
Nikodemus Siivola [Sat, 1 Dec 2007 18:35:33 +0000 (18:35 +0000)]
1.0.12.13: sequence optimizations: SUBSEQ, part 3
* Split the optimized data-vector accessor fetching logic into a
global macro, so that sequence functions can fetch the appropriate
setter/getter just once, instead of doing the dispatch per access.
* Use this to optimize VECTOR-SUBSEQ*.
Nikodemus Siivola [Sat, 1 Dec 2007 18:06:11 +0000 (18:06 +0000)]
1.0.12.12: sequence optimizations: SUBSEQ, part 2
* New function: STRING-SUBSEQ*, and a compile-time dispatch to it with
the element-type or simplicity is uncertain.
* Slightly better VECTOR-SUBSEQ*.
Nikodemus Siivola [Sat, 1 Dec 2007 18:04:13 +0000 (18:04 +0000)]
1.0.12.11: WITH-ARRAY-DATA bugfixes
* Inverted bounds-checking test in WITH-ARRAY-DATA -- check bounds
when INSERT-ARRAY-BOUNDS-CHECKS is _not_ zero, not the other way
around. "Oops."
* Small optimization buglets TRANSFORM-%WITH-ARRAY-DATA/MUBLE: elided
bounds checking, bad return value for END, and careless caller might
pass in a complex arrey.
Nikodemus Siivola [Sat, 1 Dec 2007 17:05:38 +0000 (17:05 +0000)]
1.0.12.10: sequence optimizations: SUBSEQ, part 1
* Compile-time dispatch to VECTOR-SUBSEQ* for vectors
whose element-type or simplicity is uncertain.
* Compile-time dispatch to SB-SEQUENCE:SUBSEQ for generic
sequences.
Nikodemus Siivola [Fri, 30 Nov 2007 17:46:09 +0000 (17:46 +0000)]
1.0.12.9: don't limit TOUCH-OBJECT to descriptor-regs
* Allows objects known to be FIXNUM to be pinned. Question:
why is a FIXNUM not acceptable to a DESCRIPTOR-REG?
Nikodemus Siivola [Fri, 30 Nov 2007 14:18:31 +0000 (14:18 +0000)]
1.0.12.8: refactor bounding index error signalling functions
* We need two variants: one that uses ARRAY-TOTAL-SIZE for
the limit, other othat uses LENGTH. Call them ARRAY- and
SEQUENCE-BOUNDING-INDICES-BAD-ERROR.
Nikodemus Siivola [Fri, 30 Nov 2007 13:12:21 +0000 (13:12 +0000)]
1.0.12.7: oops, missed one SEARCH transform
* Check bounds properly before entry to the code, and
elide checks in the inner loop.
kreuter [Fri, 30 Nov 2007 02:16:25 +0000 (02:16 +0000)]
1.0.12.6: Removing UNIX-NAMESTRING, part 1
* Get NATIVE-NAMESTRING to do all and only the desired things for all
accepted non-wild NAME and TYPE components. Add a few tests for
these cases.
* Add new user-visible features to PARSE-NATIVE-NAMESTRING and
NATIVE-NAMESTRING for parsing/unparsing things "as files" or "as
directories"; these are convenient for use with SB-POSIX, and will
be handy in a few places in SBCL's internals, too.
Nikodemus Siivola [Thu, 29 Nov 2007 17:30:11 +0000 (17:30 +0000)]
1.0.12.5: WITH-ARRAY-DATA touchups
* Eliminate some double-bounds checks: since WITH-ARRAY-DATA does
bounds checking, there is no need to vet START and END with
%CHECK-VECTOR-SEQUENCE-BOUNDS.
* Eliminate some fill-pointer confusion: Since WITH-ARRAY-DATA is
used both in contexts where fill-pointer needs to be used, and
in contexts where we only care about the total array size, add
a :CHECK-FILL-POINTER argument to WITH-ARRAY-DATA.
* Do bounds checking in WITH-ARRAY-DATA based on
INSERT-ARRAY-BOUNDS-CHECKS policy -- not SPEED vs. SAFETY
comparison. Adjust tests to check for this.
Nikodemus Siivola [Thu, 29 Nov 2007 15:24:51 +0000 (15:24 +0000)]
1.0.12.4: delete bad ROOM test
* Invalid on most platforms.
Nikodemus Siivola [Mon, 26 Nov 2007 18:06:06 +0000 (18:06 +0000)]
1.0.12.3: less weakening of type-checks
* WEAKEN-TYPE used to return T for any union-type. Instead, handle
union-types implemented by backend properly.
* Also, if no supertype is found, don't replaces with T, as
eg. oddball union types weakened to T can easily lead to heap
corruption if the unchecked object ends up being trusted by the
compiler. (See: WEAKEN-UNION-2 in type.impure.lisp.)
Nikodemus Siivola [Mon, 26 Nov 2007 17:39:43 +0000 (17:39 +0000)]
1.0.12.2: oops, test in wrong place
Nikodemus Siivola [Mon, 26 Nov 2007 17:37:03 +0000 (17:37 +0000)]
1.0.12.1: more bogus FIXNUM declarations in ROOM
* Test-case by Sidney Markowitz.
William Harold Newman [Mon, 26 Nov 2007 00:33:55 +0000 (00:33 +0000)]
1.0.12: release, will be tagged as sbcl_1_0_12
Nikodemus Siivola [Tue, 20 Nov 2007 14:50:40 +0000 (14:50 +0000)]
1.0.11.35: fixed bug 417
* Don't store non-unique objects like symbols, fixnums,
or characters in *SOURCE-PATHS*.
* For future refactoring ease, always access *SOURCE-PATHS*
via GET-SOURCE-PATH and NOTE-SOURCE-PATH.
Nikodemus Siivola [Tue, 20 Nov 2007 14:19:54 +0000 (14:19 +0000)]
1.0.11.34: better SUBSEQ on lists
* Be prepared to handle bignum cases (once we support
them.)
* Better (and faster) error-checking.
Juho Snellman [Mon, 19 Nov 2007 23:54:22 +0000 (23:54 +0000)]
1.0.11.33: Oops, restore REPLACE deftransforms that got dropped in refactoring
Nikodemus Siivola [Mon, 19 Nov 2007 15:26:28 +0000 (15:26 +0000)]
1.0.11.32: fix bogus fixnum declarations in ROOM
...conservative approximation: some of the changed
declaractions may have been safe after all.
Juho Snellman [Mon, 19 Nov 2007 01:04:38 +0000 (01:04 +0000)]
1.0.11.31: Make SB-PROFILE cons less
* dx allocate the closed over variables for the profiling wrapper
* Fixes a bug where a profiled function A calling profiled function
B would cause 6 words of consing to be attributed to A in the
profiler.
kreuter [Sun, 18 Nov 2007 19:46:01 +0000 (19:46 +0000)]
1.0.11.30: restore buildability on Windows after 1.0.11.27.
src/runtime/wrap.c: move conditional definition of WIN32_LEAN_AND_MEAN
so that it precedes other #includes, to prevent
conflicting win32 stuff from being pulled in by the
new wrap.h.
src/runtime/wrap.h: Add preprocessor conditionals to guard against repeated
inclusion.
tools-for-build/grovel-headers.c: grovel the wrapped stat types on win32.
Juho Snellman [Sun, 18 Nov 2007 04:13:27 +0000 (04:13 +0000)]
1.0.11.29: Faster CONCATENATE on strings
* Add a result-type dependent DEFTRANSFORM which open-codes directly
to calls to REPLACE.
* Constant-fold the array reads for constant string arguments
in the transform (intended as a slezy benchmark trick, but actually
it looks as if having some literal strings mixed in with
variables is pretty common in real world CONCATENATE uses).
* Add transforms for REPLACE on mixed SIMPLE-BASE-STRINGS and
(SIMPLE-ARRAY CHARACTER (*)) to support.
* Speeds up a simple benchmark of concatenating two three-character
strings by a factor of 15, and by a factor of 30 when the strings
are constant. For a more real-world example, doing DIRECTORY on
a large set of files speeds up by 25%.
Also:
* Fix a broken test (extra close paren) that was uncovered by
the write-no-partial-fasls change.
kreuter [Sun, 18 Nov 2007 01:13:40 +0000 (01:13 +0000)]
1.0.11.28: Fix one Win32 regression introduced by 1.0.11.26-27.
* grovel-headers.c now pulls in src/code/runtime.h, and so needs a
kludge to keep Win32's definition of boolean from conflicting with
SBCL's. This kludge already existed in win32-os.c, so I moved it
into runtime.h.
kreuter [Sat, 17 Nov 2007 22:27:10 +0000 (22:27 +0000)]
1.0.11.27: Oops-fix -- committed intermediate code to 1.0.11.26
kreuter [Sat, 17 Nov 2007 20:23:29 +0000 (20:23 +0000)]
1.0.11.26: correcting some types in SB-UNIX.
Nikodemus Siivola [Sat, 17 Nov 2007 16:34:00 +0000 (16:34 +0000)]
1.0.11.25: don't leave incomplete fasls around after compilation
* CLHS says the first return value of COMPILE-FILE is
NIL if "file could not be created" -- interpret this
to mean "fasl could not be created" and don't count
incomplete fasls as fasls.
Nikodemus Siivola [Wed, 14 Nov 2007 18:30:14 +0000 (18:30 +0000)]
1.0.11.24: internal hash-table usage thread-safety, part 2
* Logical hosts.
* TRACE.
* Instrumenting profiler.
* Mapping over *PACKAGE-NAMES*.
Nikodemus Siivola [Wed, 14 Nov 2007 15:57:27 +0000 (15:57 +0000)]
1.0.11.23: internal hash-table usage thread-safety, part 1
* Use :SYNCHRONIZED hash-tables for the most part, and a light dash of
WITH-LOCKED-HASH-TABLE as approriapte: *FORWARD-REFERENCED-LAYOUTS*,
CLASSOID-SUBCLASSES, *COMPILED-DEBUG-FUNS*, *FUN-END-COOKIES*,
*COMPONENT-BREAKPOINT-OFFSETS*, *EFFECTIVE-METHOD-CACHE*.
* Replace *FOREIGN-LOCK* with *SHARED-OBJECT-LOCK* and hash-table
based locking for *LINKAGE-INFO* for efficiency.
Nikodemus Siivola [Mon, 12 Nov 2007 17:14:50 +0000 (17:14 +0000)]
1.0.11.22: hash-table synchronization support
* :SYNCHRONIZED argument to MAKE-HASH-TABLE.
* HASH-TABLE-SYNCHRONIZED-P predicate.
* WITH-LOCKED-HASH-TABLE for coarser locks.
* Additional MAPHASH & WITH-HASH-TABLE-ITERATOR documentation.
* :LOCKED argument added to DOHASH, and used where appropriate
(some usages might be overly conservative, though, and could
be removed.)
Christophe Rhodes [Sat, 10 Nov 2007 23:57:52 +0000 (23:57 +0000)]
1.0.11.21: Give NO-PRIMARY-METHOD a reference.
Motivated by _deepfire's question on #lisp
Nikodemus Siivola [Fri, 9 Nov 2007 17:38:14 +0000 (17:38 +0000)]
1.0.11.20: fix with-pinned-objects stack corruption potential
* In the old WITH-PINNED-OBJECTS implementation we pushed pointers
onto stack explicitly (without telling the compiler), executed
the body, and _prior_to_returning_values_of_body_ popped the pointers.
If the values from the body were in progress of being returned via
unknown-values convention we would (try to) pop the pointers while
the last callee stack frame (where the values to be returned are)
is still on the stack. In many cases this was harmless, as the correct
SP was restored soon enough, but there were bad interactions as well.
* Solution: instead of explicitly pushing pointers, use a LET to
add binding to the current stack frame for the objects, and further
use a magic TOUCH-OBJECT function implemented with an empty VOP
to trick the compiler into keeping the variables live till the end
of the body.
Probably not perfect, but seems to do the job. Of the added test-case,
the MULTIPLE variants used to fail prior to this.
Nikodemus Siivola [Fri, 9 Nov 2007 14:57:01 +0000 (14:57 +0000)]
1.0.11.19: hard failure for corrupted fixups vectors
* Prior to this SBCL used to only print an error message to stderr of
the process, but since bogus fixups should only occur if something
is badly wrong we prefer to lose().
Juho Snellman [Fri, 9 Nov 2007 01:10:21 +0000 (01:10 +0000)]
1.0.11.18: Make fasls LISP-IMPLEMENTATION-VERSION specific
* As discussed on sbcl-devel.
* Reduce the support burden: We get a lot of bug reports that turn
out to be caused by stale fasls, and even more people probably
don't report these problems, but just end up thinking that SBCL
crashes all the time.
* +FASL-FILE-VERSION+ retained for backwards compability, but should
only be incremented if the actual fasl format changes.
William Harold Newman [Thu, 8 Nov 2007 21:08:40 +0000 (21:08 +0000)]
1.0.11.17: fixed dumb buglet in DEFMACRO NAMED-LET
Someone (jsnell?) on #lisp pointed out that there was still a
#!+SB-DOC left behind after some clod deleted the corresponding
doc string.:-|
also a few comment tweaks
Rudi Schlatte [Wed, 7 Nov 2007 07:24:55 +0000 (07:24 +0000)]
1.0.11.16: Fix tyops in the manual
* Patch submitted by Eugene Ossintsev
Rudi Schlatte [Wed, 7 Nov 2007 06:34:26 +0000 (06:34 +0000)]
1.0.11.15: Fix sb-posix building on Windows
* This should unbreak slime on Windows (First reported by Jerry van Dijk)
* Fix suggested by nyef on #lisp
Nikodemus Siivola [Tue, 6 Nov 2007 15:01:06 +0000 (15:01 +0000)]
1.0.11.14: thread-safe FORM-NUMBER-TRANSLATIONS
* Instead of keeping global tables, allocate new ones for each
call. Since common case seems to be a "decently small" form,
use a list instead of hash-table.
...but we could really do with a better internal set representation
for arbitrary objects -- both here and in MEMBER type machinery.
Nikodemus Siivola [Tue, 6 Nov 2007 14:25:37 +0000 (14:25 +0000)]
1.0.11.13: dead code deletion
* *IR1-LAMBDA-DEBUG-FUN* and *IR1-BLOCK-DEBUG-BLOCK* have been
unused for a looong time...
Nikodemus Siivola [Tue, 6 Nov 2007 14:21:50 +0000 (14:21 +0000)]
1.0.11.12: MAPHASH and WITH-HASH-TABLE documentation
* paraphrase the hash-table traversal/side-effect rule
Nikodemus Siivola [Tue, 6 Nov 2007 14:17:40 +0000 (14:17 +0000)]
1.0.11.11: expand zero-object WITH-PINNED-OBJECTS to a PROGN
* x86 and x86-64 only.
Nikodemus Siivola [Tue, 6 Nov 2007 13:43:25 +0000 (13:43 +0000)]
1.0.11.10: remove useless WITHOUT-GCING
* The surrounding WITH-RECURSIVE-SYSTEM-SPINLOCK
has :WITHOUT-GCING T.
Nikodemus Siivola [Tue, 6 Nov 2007 13:33:13 +0000 (13:33 +0000)]
1.0.11.9: whitespace
* Fix indentation of target-hash-table.lisp.
Rudi Schlatte [Mon, 5 Nov 2007 04:30:37 +0000 (04:30 +0000)]
1.0.11.8: also fix install-info on Debian
Also reported by Eugene Ossintsev
Rudi Schlatte [Mon, 5 Nov 2007 04:14:41 +0000 (04:14 +0000)]
1.0.11.7: Don't try to register info-* files using install-info
Reported by Eugene Ossintsev
NIIMI Satoshi [Sun, 4 Nov 2007 15:54:19 +0000 (15:54 +0000)]
1.0.11.6: canonicalize whitespaces only on updated files
Cyrus Harmon [Sat, 3 Nov 2007 08:54:31 +0000 (08:54 +0000)]
1.0.11.5: update tests for newer macos version
* use MAC_OS_X_VERSION_10_5 instead of __DARWIN_UNIX03
Rudi Schlatte [Sat, 3 Nov 2007 08:05:03 +0000 (08:05 +0000)]
1.0.11.4: Unset GREP_OPTIONS when filtering nm output in linux-nm
* Nuke it since there is no grep option (that I could see) to
reverse -i or ignore the GREP_OPTIONS variable
* Patch by Daniel Lowe
William Harold Newman [Fri, 26 Oct 2007 12:48:14 +0000 (12:48 +0000)]
1.0.11.3: belatedly recognizing STREAM-ERROR and PARSE-ERROR printing is OK
* (In my 1.0.9.60 patch, I fixed a READER-ERROR printing bug and
wrote that parallel PARSE-ERROR and STREAM-ERROR printing bugs
remained and that I would fix them. Now finally returning to
fix them, I find that they were fixed already, the tests work
with with no additional fixes needed.)
* so I just un-#+NILed-out the tests
* also made a few trivial rearrangements in
src/code/condition.lisp, moving things around without changing
meaning
Rudi Schlatte [Fri, 26 Oct 2007 06:23:07 +0000 (06:23 +0000)]
1.0.11.2: defer package creation of defpackage
Patch by Zach Beane to sbcl-devel 2007-10-09
Rudi Schlatte [Fri, 26 Oct 2007 04:33:34 +0000 (04:33 +0000)]
1.0.11.1: Handle set-but-empty environment variables
... SBCL_HOME= sbcl crashed on startup
... Patch by Michael Weber
William Harold Newman [Thu, 25 Oct 2007 21:28:03 +0000 (21:28 +0000)]
1.0.11: release, will be tagged as sbcl_1_0_11
Rudi Schlatte [Mon, 22 Oct 2007 04:16:12 +0000 (04:16 +0000)]
1.0.10.55: Remove non-portable arguments to find, xargs
NIIMI Satoshi [Sun, 21 Oct 2007 23:25:35 +0000 (23:25 +0000)]
1.0.10.54: Fix build with old gcc
Surround code fragment with braces for variable declarations.
Cyrus Harmon [Sun, 21 Oct 2007 23:19:12 +0000 (23:19 +0000)]
1.0.10.53: fix undefined-alien errors on darwin
* the new mach exception handling stuff was checking to see if there
were two faults on the page by checking the region's protection
status and bailing out assuming that there were two faults on the
same page. The problem was that it was following this code path for
undefined-alien errors (and presumably control-stack-exhausted)
thereby just resignalling an EXC_BAD_ACCESS, ad infinitum. Moved
the checks for the page address being undefined_alien_address, or
the control stack guard pages up before checking the page
protection.
Rudi Schlatte [Sun, 21 Oct 2007 05:15:04 +0000 (05:15 +0000)]
1.0.10.52: fix clean.sh for whitespace-containing source directories
NIIMI Satoshi [Sat, 20 Oct 2007 06:27:20 +0000 (06:27 +0000)]
1.0.10.51: New function: THREAD-YIELD
An interface to sched_yield(). And use it in busy loops in some tests.
Nikodemus Siivola [Fri, 19 Oct 2007 13:57:11 +0000 (13:57 +0000)]
1.0.10.50: short-circuit LVAR type derivation when type becomes T
* Even if there are uses we have not considered yet,
%LVAR-DERIVED-TYPE can stop if the type turns into the universal
type.
Nikodemus Siivola [Fri, 19 Oct 2007 13:25:03 +0000 (13:25 +0000)]
1.0.10.49: deadline refinements
* Deadlines are per-thread. (Children do no inherit their parents
deadlines.)
* SIGNAL-DEADLINE estabilishes a DEFER-DEADLINE restart.
* Handle SIGNAL-DEADLINE returning due to deferred deadlines where
necessary.
* Documentation.
Nikodemus Siivola [Thu, 18 Oct 2007 13:23:12 +0000 (13:23 +0000)]
1.0.10.48: new function TRY-RESTART
* Factor out all "find-restart and maybe invoke-restart" logic to one
place.
Nikodemus Siivola [Thu, 18 Oct 2007 12:56:51 +0000 (12:56 +0000)]
1.0.10.47: proper fix for "high-debug-known-function-inlining"
* Add ALLOW-INSTRUMENTING slot to CLAMBDA, taking it's value
from *ALLOW-INSTRUMENTING*.
* Require LAMBDA-ALLOW-INSTRUMENTING to be true for emission
of BIND/UNBIND-SENTINEL.
* Remove the earlier KLUDGE workaround.
Juho Snellman [Sun, 14 Oct 2007 23:40:55 +0000 (23:40 +0000)]
1.0.10.46: Inline the local functions in MAYBE-REHASH
* Fixes small hash-table speed regression introduced in
1.0.10.14 (and hidden by the other improvements in that
commit).
* 15-30% speedup over .14 on common hash operations.
Nikodemus Siivola [Thu, 11 Oct 2007 15:33:55 +0000 (15:33 +0000)]
1.0.10.45: save typecheck-function in slot-table even if location is not saved
* Otherwise non-standard metaclasses for which optimized instance
accessors can be used don't get the typecheck-fun from the wrapper
in the function returned from MAKE-OPTIMIZED-STD-WRITER-FUNCTION.
* Test-case.
* Missing NEWS entry for .44.
Nikodemus Siivola [Thu, 11 Oct 2007 13:13:07 +0000 (13:13 +0000)]
1.0.10.44: BUFFER-P, not BUFFERP
* Reported by Yuri Vishnevsky on sbcl-devel.
* Test-case coming Real Soon.
NIIMI Satoshi [Thu, 11 Oct 2007 09:20:36 +0000 (09:20 +0000)]
1.0.10.43: Fix NaN comparison on x86-64
Comisd and comiss sets all of ZF, PF, and CF of EFLAGS if its
operand contains NaN. Because PF is never set by normal
comparison, we use it to check NaN. This is same as "=" vops.
NIIMI Satoshi [Thu, 11 Oct 2007 03:19:27 +0000 (03:19 +0000)]
1.0.10.42: change dynamic space area on FreeBSD
If KVA_PAGES is extended from 256 to 384 (1GB to 1.5GB), stack starts
0x9FC00000. So change dynamic space from 0x60000000-0xA0000000 to
0x58000000-0x98000000.
Nowadays, 4GB of address space is too small, isn't it?
NIIMI Satoshi [Wed, 10 Oct 2007 21:36:49 +0000 (21:36 +0000)]
1.0.10.41: Remove unnecessary sched_yield()
Don't call sched_yield() on thread creation and retirement, since
the cost of sched_yield() is very high on FreeBSD 7.
Rudi Schlatte [Mon, 8 Oct 2007 11:02:52 +0000 (11:02 +0000)]
1.0.10.40: Fix build for windows when source directory contains spaces
Rudi Schlatte [Mon, 8 Oct 2007 08:34:44 +0000 (08:34 +0000)]
1.0.10.39: .gitignore additions for windows
Rudi Schlatte [Mon, 8 Oct 2007 06:19:26 +0000 (06:19 +0000)]
1.0.10.38: fix get-host-by-address on Darwin
sockaddr_in has a length field on Darwin but not on linux
Cyrus Harmon [Mon, 8 Oct 2007 04:30:21 +0000 (04:30 +0000)]
1.0.10.37: fix x86-64/darwin build
* use MAC_OS_X_VERSION_10_5 instead of __DARWIN_UNIX03 as the test
for new style headers as __DARWIN_UNIX03 is defined when building
x86-64 on 10.4
Cyrus Harmon [Mon, 8 Oct 2007 01:46:30 +0000 (01:46 +0000)]
1.0.10.36: support for Darwin versions that support __DARWIN_UNIX03
* on some versions of darwin symbols without a leading _ are dropped
by the linker. Use a leading _ on Darwin ldso_stub functions.
* Add a FIXME about 128-bit integeer passing being broken on x86-64
* _DARWIN_UNIX03 support
** os_context_t is now __darwin_ucontext
** eip -> __eip (and friends) - use macro hackery EIP etc...
** use darwin_ucontext/darwin_mcontext instead of struct
ucontext/mcontext where appropriate.
** struct ucontext -> os_context_t where appropriate
* allow socket-error for the aceptable errors in inet-socket error
test cases
* Add a fix me about a rumored OS bug fix that in name-service tests
Cyrus Harmon [Sun, 7 Oct 2007 20:21:58 +0000 (20:21 +0000)]
1.0.10.35: fix sb-posix test on linux
* look for sys instead of wheel when testing getgrnam
Andreas Fuchs [Sun, 7 Oct 2007 11:00:33 +0000 (11:00 +0000)]
1.0.10.34: Fix sb-posix:get{{gr,pw}nam},pwuid,grgid} for non-existing entries.
Used to signal memory fault, now returns NIL on queries for non-existing
users or groups.
Thiemo Seufer [Sat, 6 Oct 2007 21:53:45 +0000 (21:53 +0000)]
1.0.10.33: Lesson: Test before commit.
Cyrus Harmon [Sat, 6 Oct 2007 17:55:05 +0000 (17:55 +0000)]
1.0.10.32: better mach exception handling
* Patch from Ole Myren Rohne for better mach exception handling. This
deals with the case where the kernel started a signal handler
before our mach exception handler got a chance to run. This was
causing us to inappropriately SIGILL and die. This patch fixes
this, along with some general cleanup issues, including the
call_handler_on_thread wrapper function.
* TODO: this logic needs to be applied to the x86-64/darwin port as
well
Cyrus Harmon [Sat, 6 Oct 2007 16:53:53 +0000 (16:53 +0000)]
1.0.10.31: sb-posix support for getgrnam and getgrgid
* add alien-group and group protocol-class
* add define-gr-call macro a la define-pw-call
* alien definitions for getgrnam and getgrgid
* trivial test for above calls
NIIMI Satoshi [Sat, 6 Oct 2007 13:26:32 +0000 (13:26 +0000)]
1.0.10.30: Fix build without sb-thread
Nikodemus Siivola [Fri, 5 Oct 2007 14:48:40 +0000 (14:48 +0000)]
1.0.10.29: MUTEX refactoring & optimization
* (SETF MUTEX-VALUE) removed entirely. Using it was never sane,
and in the new setup entirely broken.
* On futex platforms, keep track of state of the mutex: free, taken,
or contested (taken and may have one ore more threads waiting).
* On release, if the mutex is not contested, there is no need to
perform the wakeup.
* Document assumptions made by GET-MUTEX & RELEASE-MUTEX better.
* Update FASL version.
Nikodemus Siivola [Fri, 5 Oct 2007 14:00:08 +0000 (14:00 +0000)]
1.0.10.28: export semaphore interface
* Semaphores are a fundamental threading construct -- export them.
Clean up the interface slightly: not (SETF SEMAPHORE-COUNT), note
that being a subclass of STRUCTURE-OBJECT is not guaranteed, etc.
NIIMI Satoshi [Fri, 5 Oct 2007 11:30:20 +0000 (11:30 +0000)]
1.0.10.27: Change unportable find option "-path"
The find option "-path" is not portable. Use "-prune" not to
recurse into CVS directory.
Rudi Schlatte [Fri, 5 Oct 2007 09:21:28 +0000 (09:21 +0000)]
1.0.10.26: More sb-posix documentation, thanks to Richard M Kreuter
Thiemo Seufer [Fri, 5 Oct 2007 00:55:27 +0000 (00:55 +0000)]
1.0.10.25: Build fix, add a missing bit of hashtable rewrite.
Thiemo Seufer [Thu, 4 Oct 2007 23:02:59 +0000 (23:02 +0000)]
1.0.10.24: Don't include CVS cruft in binary distributions.
Thiemo Seufer [Thu, 4 Oct 2007 23:01:57 +0000 (23:01 +0000)]
1.0.10.23: Shuffle def* foo around for less compiler warnings.
Thiemo Seufer [Thu, 4 Oct 2007 23:00:26 +0000 (23:00 +0000)]
1.0.10.22: Code formatting.
Thiemo Seufer [Thu, 4 Oct 2007 22:59:32 +0000 (22:59 +0000)]
1.0.10.21: MIPS will soon need an explicit -fPIC flag, too.
Thiemo Seufer [Thu, 4 Oct 2007 22:56:15 +0000 (22:56 +0000)]
1.0.10.20: Code provision for a future MIPS gencgc port.
Thiemo Seufer [Thu, 4 Oct 2007 22:54:48 +0000 (22:54 +0000)]
1.0.10.19: Check also for MIPS foreign_function_call lossage
... and fix a spelling typo.
Thiemo Seufer [Thu, 4 Oct 2007 22:52:51 +0000 (22:52 +0000)]
1.0.10.18: Define __USE_GNU only if it wasn't already defined.
Thiemo Seufer [Thu, 4 Oct 2007 22:48:45 +0000 (22:48 +0000)]
1.0.10.17: Reformat string, and fix compiler warning.
Rudi Schlatte [Thu, 4 Oct 2007 05:12:34 +0000 (05:12 +0000)]
1.0.10.16: Add some documentation for sb-posix
Mutilated contrib/sb-posix/README, removing
non-implementation-specific bits and referring to sb-alien instead.
... Some examples would be nice.