Nikodemus Siivola [Mon, 22 Sep 2008 14:00:34 +0000 (14:00 +0000)]
1.0.20.18: fix sign confusion in reported memory fault addresses
* ...the mechanism sucks as much as ever, but at least the reported
address will make sense for high addresses as well.
Gabor Melis [Mon, 22 Sep 2008 13:56:29 +0000 (13:56 +0000)]
1.0.20.19: gencgc: rename first_object_offset
... to region_start_offset and flip the sign.
Gabor Melis [Mon, 22 Sep 2008 13:55:09 +0000 (13:55 +0000)]
1.0.20.18: minor gencgc cleanups
- removed unused alloc_base_string_list function
- removed superfluous declarations
- less casts
- more respect for the the 80 char limit
Nikodemus Siivola [Sat, 20 Sep 2008 03:54:54 +0000 (03:54 +0000)]
1.0.20.17: replace cut-and-paste duplication of ASSEMBLE with a macrolet
* Slightly more maintainable...
Nikodemus Siivola [Sat, 20 Sep 2008 03:09:58 +0000 (03:09 +0000)]
1.0.20.16: make LOCK and FS prefixes part of the affected instruction
* Disassembler still shows them as a separate instructions, but
in assembler the prefixes become postfixes to the instructions they
modify: (INST MOV X Y :FS), etc.
* Not only does this reduce the amount of conditionalization, but
making prefixes part of the instruction they modify seems necessary
if we ever want to turn on the instruction scheduler on x86oids,
and is probably needed for a peephole optimizer as well.
* Also fix x86-64 build: missed one ALIGN to EMIT-ALIGNMENT renaming.
Nikodemus Siivola [Fri, 19 Sep 2008 20:56:21 +0000 (20:56 +0000)]
1.0.20.15: rename SB-ASSEM:ALIGN to EMIT-ALIGNMENT
* ...and EMIT-ALIGNMENT to %EMIT-ALIGNMENT, as per FIXME.
* Also a missing SEGMENT-NAME -> SEGMENT-TYPE change from 1.0.20.13.
Nikodemus Siivola [Fri, 19 Sep 2008 20:22:17 +0000 (20:22 +0000)]
1.0.20.14: align loops on x86-64
* Intel recommends 16 byte alignment for branch target, and since
code objects are 16 byte aligned on x86-64, we can get it.
Nikodemus Siivola [Fri, 19 Sep 2008 20:06:53 +0000 (20:06 +0000)]
1.0.20.13: don't align elsewhere segments on x86 and x86-86
* There doesn't seem to be any need to do it, and the alignment NOP's are
a waste of space.
* Even though currently only elsewhere segments appear as the second
argument to APPEND-SEGMENT, make sure we omit alignment only from
elsewhere segments by changing SEGMENT-NAME to SEGMENT-TYPE (either
:REGULAR or :ELSEWHERE) and checking it in APPEND-SEGMENT.
Nikodemus Siivola [Fri, 19 Sep 2008 19:06:01 +0000 (19:06 +0000)]
1.0.20.12: :CACHED-CONSTANT TNs don't exist
* Remove FIXMEs asking about them, and other spurious references.
Nikodemus Siivola [Fri, 19 Sep 2008 19:01:19 +0000 (19:01 +0000)]
1.0.20.11: CALL-WITH-TIMING & PRINT-TIME
* Split %TIME into PRINT-TIME and CALL-WITH-TIMING, export the latter
from SB-EXT -- wanting access to the numbers collected is a
perfectly reasonable thing.
* Make TIME print the information collected even if the form unwinds.
Nikodemus Siivola [Fri, 19 Sep 2008 14:55:52 +0000 (14:55 +0000)]
1.0.20.10: semaphore and condition variable fixes
* Keep track of waiters on semaphores, so we know when a wakeup is
needed.
* Interrupt proof semaphores and condition variables.
* Check that the current thread owns the mutex in CONDITION-WAIT.
Nikodemus Siivola [Thu, 18 Sep 2008 20:19:47 +0000 (20:19 +0000)]
1.0.20.9: fix DEFINE-STRUCTURE-SLOT-ADDRESSOR to work with raw slots as well
* Not needed yet, but soon enough... Only one caveat: the instance
passed to the addressor must not be an instance of a subclass!
* Also hopefully fix build on non-x86oids (a missing IGNORABLE
declaraction), and remove pointless MACROEXPAND from ATOMIC-INCF.
(We could keep it, but COMPARE-AND-SWAP should at least behave the
same.)
Nikodemus Siivola [Wed, 17 Sep 2008 22:31:57 +0000 (22:31 +0000)]
1.0.20.8: ATOMIC-INCF implementation
* Modular arithmetic on word-sized unsigned structure slots.
* Uses XADD on x86 and x86-64, a simple lisp-level implementation elsewhere.
Nikodemus Siivola [Wed, 17 Sep 2008 20:24:21 +0000 (20:24 +0000)]
1.0.20.7: COMPARE-AND-SWAP on SYMBOL-VALUE to respect constants and declaimed types
* For constant symbol names which are declaimed SPECIAL, insert the
appropriate THE around the new value.
* For other cases use ABOUT-TO-MODIFY-SYMBOL-VALUE.
* Tests.
Nikodemus Siivola [Mon, 15 Sep 2008 14:09:56 +0000 (14:09 +0000)]
1.0.20.6: smaller allocation regions & reduced pinning
* Align objects at least one page in size on page boundaries.
Previously only "large" objects (those at least 4 pages in size)
were guaranteed page alignment.
* Don't allow small objects to cross page boundaries.
* The effect is to reduce the size of continuous allocation regions
that start and stop on page boundaries. Since GENCGC conservativism
operates on such regions, it's effects are reduced as well: for
SBCL self build this reduces the number of pinned pages by ~45%.
* Also report the amount of bytes found (in case of allocation
failure) more accurately.
Richard M Kreuter [Thu, 11 Sep 2008 21:55:51 +0000 (21:55 +0000)]
1.0.20.5: Fix stupid bugs introduced in 1.0.20.4.
* Dumb mistakes that weren't caught on x86-64 for some reason. Tested
this on Linux/x86, Linux/pcc, NetBSD/x86.
Richard M Kreuter [Thu, 11 Sep 2008 15:52:49 +0000 (15:52 +0000)]
1.0.20.4: Use a new set implementation for constraint propagation.
* Introduce an interface layer called "CONSET" into CP. CONSETs
mostly like SSETs, except that a few destructive operations return
no value.
* Introduce a CONSET implementation that uses a bit-vector and some
bookkeeping instead of an SSET. This tends to improve run time real
time for compilation of many Lisp systems.
Richard M Kreuter [Sat, 6 Sep 2008 17:03:34 +0000 (17:03 +0000)]
1.0.20.3: Minor refactoring in constraint propagation.
* Eliminate keyword arguments to CONSTRAINT-PROPAGATE-IN-BLOCK and
FIND-BLOCK-TYPE-CONSTRAINTS. (Preamble to a soon-to-come reworking
of CP; split into a separate commit per Nikodemus's request.)
Christophe Rhodes [Thu, 4 Sep 2008 13:04:45 +0000 (13:04 +0000)]
1.0.20.2: Fewer XC/reader-conditional confusions
Inspired by Josh Elasser (sbcl-devel 2008-08-29), write code
that tries to be clever about reader conditionals in the
cross-compiler, in order to point out when a mistake is likely.
... and fix the extra buglet that this reveals.
Richard M Kreuter [Wed, 3 Sep 2008 18:59:52 +0000 (18:59 +0000)]
1.0.20.1: Dump characters ofnon-base-strings names in 32-bit quantities
Juho Snellman [Mon, 1 Sep 2008 02:05:41 +0000 (02:05 +0000)]
1.0.20: release, will be tagged sbcl_1_0_20
Richard M Kreuter [Fri, 22 Aug 2008 14:31:30 +0000 (14:31 +0000)]
1.0.19.35: Fix PARSE-, NATIVE-NAMESTRING for logical pathnames.
* Whereas these used to error erroneously, now they error properly.
Richard M Kreuter [Thu, 21 Aug 2008 15:06:16 +0000 (15:06 +0000)]
1.0.19.34: Fix minor bug in TIME.
* Don't print infinitely many zeroes in %FORMAT-DECIMAL when the last
several digits of the first argument are zero. Contributed by Bart Botta.
Paul Khuong [Wed, 20 Aug 2008 21:16:46 +0000 (21:16 +0000)]
1.0.19.33: Improved interrupt handling on darwin/x86[-64]
* Remove an obsolete race condition check in SIGBUS handling
on x86. Accesses to unmapped addresses should no longer result
in infinite loops.
* Now reserve a 256 byte (slightly more than that is actually safe
to use) zone just below SP for signal handlers to safely push
data in.
Paul Khuong [Wed, 20 Aug 2008 20:34:00 +0000 (20:34 +0000)]
1.0.19.32: Small bugfixes
* Modify a couple number functions to avoid silently executing
the default case even when the argument isn't a number.
* Fix an obscure bug in MERGE-LETS.
Nikodemus Siivola [Sun, 17 Aug 2008 10:05:36 +0000 (10:05 +0000)]
1.0.19.31: correct shadowing-import of NIL in NAME-CONFLICT
* Was missing the surrounding LIST -- NIL alone is a designator for
the empty list.
Patch by Michael Weber.
Nikodemus Siivola [Sun, 17 Aug 2008 09:28:10 +0000 (09:28 +0000)]
1.0.19.30: muffle code deletion note from destructuring-bind
* Was emitted when destructuring constant lists.
Nikodemus Siivola [Fri, 15 Aug 2008 11:31:26 +0000 (11:31 +0000)]
1.0.19.29: new function: page_region_start()
...and use where appropriate.
Nikodemus Siivola [Fri, 15 Aug 2008 10:58:15 +0000 (10:58 +0000)]
new function: is_lisp_immediate()
* Use where appropriate in the runtime.
* Since runtime.h now includes fixnum.h, remove a few includes as well.
Gabor Melis [Sun, 10 Aug 2008 21:18:32 +0000 (21:18 +0000)]
1.0.19.27: more ir1 transforms for REPLACE
Supplying START1 or START2 does not inhibit ir1 transforms for
specialized array types.
Nikodemus Siivola [Thu, 7 Aug 2008 14:44:57 +0000 (14:44 +0000)]
1.0.19.26: add THREAD-YIELD to GET-SPINLOCK
* Slightly less catastrophic.
Nikodemus Siivola [Tue, 5 Aug 2008 16:32:17 +0000 (16:32 +0000)]
1.0.19.25: refactor global muffling slightly
* Move TYPEP *MUFFLED-WARNINGS* into a separate function for easier
debugging. (Too hard to replace the inital handler cluster while
running, whereas redefining MUFFLED-WARNING-P is easy.)
Nikodemus Siivola [Tue, 5 Aug 2008 16:29:08 +0000 (16:29 +0000)]
1.0.19.24: incorrect function type canonicalization
* If the signature has both &KEY and &OPTIONAL arguments, the
canonicalization cannot merge &OPTIONAL into &REST. (Not that I am sure why
we should be merging &OPTIONAL into &REST in *any* case, but this caused
bogus warning.)
* Add &KEY SILENT to PARSE-LAMBDA-LIST-LIKE-THING, which silences any
style-warnings from it: we don't want SPECIFIER-TYPE to complain about the
lambda-lists it parses.
Nikodemus Siivola [Tue, 5 Aug 2008 12:58:09 +0000 (12:58 +0000)]
1.0.19.23: COMPILER-WARN accepts conditions
* Accidentally left out from 1.0.19.12.
Nikodemus Siivola [Tue, 5 Aug 2008 10:38:36 +0000 (10:38 +0000)]
1.0.19.22: fix bug #425
* Make CLOSE drop input buffers from ANSI-STREAMs. Reported by Damien
Cassou on sbcl-devel.
* Signal SB-INT:CLOSED-STREAM-ERROR instead of a SIMPLE-ERROR -- good
for clarity, enables a proper test.
Nikodemus Siivola [Mon, 4 Aug 2008 16:34:40 +0000 (16:34 +0000)]
1.0.19.21: delete stale symbol SB-DI:DO-BLOCKS
* Reported by Tobias C. Rittweiler.
Nikodemus Siivola [Mon, 4 Aug 2008 15:58:35 +0000 (15:58 +0000)]
1.0.19.20: fast CLRHASH on empty hash-tables
* Patch by Alec Berryman.
Nikodemus Siivola [Mon, 4 Aug 2008 12:00:58 +0000 (12:00 +0000)]
1.0.19.19: manual updates
* Four patches from Xan Lopez on sbcl-devel, one slightly adjusted.
* Document slot access efficiency issues.
Nikodemus Siivola [Mon, 4 Aug 2008 10:33:54 +0000 (10:33 +0000)]
1.0.19.18: transform ADJOIN, ASSOC, MEMBER, and RASSOC to -EQ versions more often
* Add transforms from %FOO and %FOO-KEY to %FOO-EQ and %FOO-KEY-EQ,
so that propagated type information has a chance to work its magic.
Nikodemus Siivola [Sun, 3 Aug 2008 21:39:09 +0000 (21:39 +0000)]
1.0.19.17: DOLIST variable type on constant lists
* When DOLIST list is a (LIST ...) form where every argument is a
constant, constant-fold it during macro-expansion. (User has no
direct access to the list itself, so this is safe.)
* When DOLIST list ia a constant, add an extra binding,
and annotate its type as (MEMBER ...).
This means that the compiler knows that in
(dolist (x (list 1 2 3)) ...)
X is (INTEGER 1 3).
* Also add a STYLE-WARNING for constant dotted lists in DOLIST.
Nikodemus Siivola [Sun, 3 Aug 2008 19:35:14 +0000 (19:35 +0000)]
1.0.19.16: derive the type of (AREF (THE STRING X) Y) as CHARACTER
* Even though we don't know the exact upgraded array element type, we
do know the result is a character.
* Noticed while wondering why C-ESCAPE had a call to %MEMBER instead
of %MEMBER-EQ.
Nikodemus Siivola [Sat, 2 Aug 2008 08:27:30 +0000 (08:27 +0000)]
1.0.19.15: package name conflict patched from Michael Weber
* Tests for package system name conflict resolution.
* Fixed EXPORT bug which left symbol unexported in conflict
situations.
* Unbreak RESOLVE-CONFLICT restart:
** USEing packages with conflicting symbols
** Correctly handle conflicts involving CL:NIL by passing (list
symbol) to package frobbing functions which take a list
designator.
* Removed commented-out version of NAME-CONFLICT.
Paul Khuong [Fri, 1 Aug 2008 17:10:21 +0000 (17:10 +0000)]
1.0.19.14: Immediate SAP bug fix & grab bag of small changes
* SAPs can't actually be emitted as immediates. Only a problem now that
constants are treated more cleverly.
Fixes the "#.(SB-SYS:INT-SAP #X00000000) fell through ETYPECASE expression"
bug associated with CFFI's NULL-POINTER. Reported by Ingo Bormuth on
sbcl-devel, and by several others on #lisp.
* EAs can still only fit 32 bit displacements on x86-64.
* Make SAP-INT foldable, thus improving code generation for expressions
like (sap= +null-pointer+ sap).
Richard M Kreuter [Fri, 1 Aug 2008 13:16:11 +0000 (13:16 +0000)]
1.0.19.13: Fix WITH-ALIEN for non-x86oids.
Nikodemus Siivola [Fri, 1 Aug 2008 11:19:03 +0000 (11:19 +0000)]
1.0.19.12: give a warning for newly deprecated stack-allcation optimization policies
* Most importantly, keep the symbols around for a while, since otherwise reading
code that tries to twiddle them causes a package-lock violation.
* Make it a refence condition for good measure.
* Prettify the output in from other policy-related warnings while at it.
Nikodemus Siivola [Fri, 1 Aug 2008 07:57:51 +0000 (07:57 +0000)]
1.0.19.11: SB-SYS spring cleaning
* Delete a bunch of unused symbols (and one from SB-KERNEL too.)
* Fix typo: SYSTEM-CONDITION-ADDRESS, not SYSTEM-CONDIION-ADDRESS.
Nikodemus Siivola [Thu, 31 Jul 2008 13:32:10 +0000 (13:32 +0000)]
additional list seeking transformations
* Implement TRANSFORM-LIST-PRED-SEEK, very much akin to
TRANSFORM-LIST-ITEM-SEEK, and use it to optimize MEMBER-IF[-NOT],
ASSOC-IF[-NOT], and RASSOC-IF[-NOT].
* Implement full versions of list seeking functions in terms of the
specialized versions: in some cases this is a win, in some cases a
loss -- but the number of places where functionality is duplicated
is reduced, which should be easier on the maintenance and less
bug-prone.
* Add a TRANSFORM-LIST-ITEM-SEEK transform for RASSOC.
* LVAR-FOR-NAMED-FUNCTION was a restricted form of LVAR-FUN-IS. Do
away with the former, and move the latter to ir1util.lisp.
Nikodemus Siivola [Thu, 31 Jul 2008 12:52:37 +0000 (12:52 +0000)]
1.0.19.9: elide runtime calls to %COERCE-CALLABLE-TO-FUN in more cases
* Core change: %COERCE-CALLABLE-TO-FUN can now convert to
GLOBAL-FUNCTION.
* While at it, refactor the whole "make up a form that returns a
function to use instead of this lvar or source form" thing for
clarity.
* Record slightly crazy OPTIMIZATION possibility.
Nikodemus Siivola [Thu, 31 Jul 2008 06:50:54 +0000 (06:50 +0000)]
1.0.19.8: SB-COVER:REPORT signals an error for non-directory pathnames
* Based on patch by Pierre Mai.
Nikodemus Siivola [Wed, 30 Jul 2008 17:58:39 +0000 (17:58 +0000)]
1.0.19.7: refactor stack allocation decisions
* Remove SB-C::STACK-ALLOCATE-* policies.
* Obey DYNAMIC-EXTENT declarations if SB-EXT:*STACK-ALLOCATE-DYNAMIC-EXTENT*
is true (the default), with the following exceptions:
** Value cells are not stack allocated.
** Vectors that may be longer then a single page are stack
allocated only in SAFETY 0 policies.
* New declaration: SB-INT:TRULY-DYNAMIC-EXTENT. Always stack-allocates,
regardless of SB-EXT:*STACK-ALLOCATE-DYNAMIC-EXTENT*. Also causes stack
allocation of value cells and potentially large vectors.
Used exclusively inside SBCL.
* Move STACK-ALLOCATE-RESULT optimizers from backends to
src/compiler/generic/vm-ir2tran.lisp.
* Documentation.
Nikodemus Siivola [Wed, 30 Jul 2008 16:35:25 +0000 (16:35 +0000)]
1.0.19.6: fix SB-SHOW build
* Patch by Josh Elsasser for STYLE-WARN.
* Make COLD-PRINT able to print improper lists -- early source
locations are conses with the TLF number in the CDR.
Nikodemus Siivola [Wed, 30 Jul 2008 14:39:40 +0000 (14:39 +0000)]
1.0.19.5: minor wording fix
* Patch by Zach Beane.
Nikodemus Siivola [Wed, 30 Jul 2008 13:53:11 +0000 (13:53 +0000)]
1.0.19.4: recursive restart computation
* A call to COMPUTE-RESTARTS from restart test function caused
infinite recursion. Fix with a stack.
* Test-case.
Nikodemus Siivola [Wed, 30 Jul 2008 13:51:55 +0000 (13:51 +0000)]
1.0.19.3: more careful PROGV and SET
* Don't bind constants in PROGV.
* Check variable types before binding / assignment.
* When un-binding, PROGV doesn't temporarily bind a variable to NIL
anymore, but directly to the unbound marker, so that an interrupt
handler cannot see a bogus value.
* Based on patch by Richard Kreuter.
Nikodemus Siivola [Wed, 30 Jul 2008 13:49:08 +0000 (13:49 +0000)]
1.0.19.2: fix alien stack leak
* On x86oids bind *ALIEN-STACK* once for the entire WITH-ALIEN, obviating the need
to release local aliens one-by-one.
* On other platforms protect the cleanup with UWP.
* :STATIC option has been disabled in WITH-ALIEN for a while now --
not sure why, but remove the corresponding bit from docstring as
well.
* Test-case by Andy Hefner.
Nikodemus Siivola [Wed, 30 Jul 2008 13:44:55 +0000 (13:44 +0000)]
1.0.19.1: DERIVE-TYPE optimizer for %%PRIMITIVE
* Fixes #427: vintage TRULY-THE annotated the CALL early enough that
the IR2 conversion of the %PRIMITIVE got the right primitive types.
Now that TRULY-THE is a regular cast, an optimizer is needed to
annotate the call.
* Refactor FIND-TEMPLATE-RESULTS a bit.
* Get rid of now-pointless TRULY-THE wrappers around several
%PRIMITIVE calls.
* Test-case.
Nikodemus Siivola [Wed, 30 Jul 2008 12:06:38 +0000 (12:06 +0000)]
1.0.19: release, will be tagged as sbcl_1_0_19
Nikodemus Siivola [Wed, 30 Jul 2008 11:38:51 +0000 (11:38 +0000)]
1.0.18.30: disable failing test in timer.impure.lisp
* Has been failing intermittently on various platforms, apparently as
long as it has been there. Log as bug #428.
Nikodemus Siivola [Wed, 30 Jul 2008 08:38:16 +0000 (08:38 +0000)]
1.0.18.29: documentation tweaks
* Mention putative buildability on Win64 in NEWS.
* Weak hash tables are supposed to work, don't say otherwise on the
man-page.
* Tweak README: mention INSTALL first. Manual lives in doc/manual
nowadays, INSTALL tells how to build it.
Richard M Kreuter [Sun, 27 Jul 2008 14:44:32 +0000 (14:44 +0000)]
1.0.18.28: Add NEWS entry and manual entry for SB-EXT:*MUFFLED-WARNINGS*.
Nikodemus Siivola [Tue, 22 Jul 2008 17:17:15 +0000 (17:17 +0000)]
1.0.18.27: fix DEFSTRUCT compilation when init-form type is vague
* Reported by Josh Morrison. Regression from the recent DEFSTRUCT
constructor hacking.
Slots initialized by constructor lambda-list arguments have their
types checked, but those slots always initialized directly by the
initform values did not -- wrap the DSD-DEFAULT in a THE.
Nikodemus Siivola [Sun, 20 Jul 2008 07:52:07 +0000 (07:52 +0000)]
1.0.18.26: explain why DX value generators must end their blocks
* Explanation and test-case from Alexey Dejneka -- mistakes are mine in the
transcription.
* Note about REFs to DX closures violating the rule -- which is why we cannot
assert it right now.
* Use DO-USES instead of DOLIST in UPDATE-UVL-LIVE-SETS.
* Fix a stray typo in comment in USE-GOOD-FOR-DX-P.
Nikodemus Siivola [Sat, 19 Jul 2008 16:07:52 +0000 (16:07 +0000)]
1.0.18.25: tweak stack allocation on x86 and x86-64
* Use MAYBE-PSEUDO-ATOMIC in the LIST-OR-LIST* VOP: stack allocation
doesn't need PA.
* When using STACK-ALLOCATE-P parameter with ALLOCATION, also pass in
the lowtag. This allows us to generate
LEA REG [STACK_REG+LOWTAG]
instead of
MOV REG STACK_REG
LEA REG [REG+LOWTAG]
for stack allocation & tagging.
On x86-64 can use the same trick in the inline path for heap
allocation as well.
Nikodemus Siivola [Sat, 19 Jul 2008 11:32:53 +0000 (11:32 +0000)]
1.0.18.24: lift node-insertion logic from RECOGNIZE-DYNAMIC-EXTENT-LVARS
* New function INSERT-NODE-BEFORE, makes the action easier to
understand by separating out the entry/cleanup creation from the
flow-graph hacking.
Nikodemus Siivola [Sat, 19 Jul 2008 09:48:14 +0000 (09:48 +0000)]
1.0.18.23: ALL calls with DX arguments should end their blocks
* Consider this a clarification of 1.0.18.22: MAP-BLOCK-NLXES will
miss calls that don't end their blocks.
If let-conversion happens, as is the case most of the time, this is
not an issue, since the LAMBDA-CALL-LEXENV will hold the lexenv
with the cleanup.
A :LET functional, however, should never appear in
RECOGNIZE-DYNAMIC-EXTENT-LVARS, since let-conversion doesn't happen
until later -- so the conditional was bogus.
So: delete the conditional, and write a comment that points in
the place where we depend on the block-endingness.
* Add a FIXME note to another DX related place where we make nodes
end their blocks, which I don't quite understand.
Nikodemus Siivola [Fri, 18 Jul 2008 20:07:58 +0000 (20:07 +0000)]
1.0.18.22: DX arguments in non-let-converted local calls
* When a non-let function has dynamic extent arguments, the
combination must end its block, or stack analysis will miss the
cleanup, and stack will be popped too soon.
Richard M Kreuter [Wed, 16 Jul 2008 20:51:14 +0000 (20:51 +0000)]
1.0.18.21: More STYLE-WARNINGs
* STYLE-WARN for argument list mismatches for all already-defined
functions.
Richard M Kreuter [Wed, 16 Jul 2008 19:21:03 +0000 (19:21 +0000)]
1.0.18.20: Fewer STYLE-WARNINGs.
* Change definition of UNINTERESTING-ORDINARY-FUNCTION-REDEFINITION-P
so that replacing an interpreted function is always uninteresting
when the new definition comes from the same file.
* Monkey with source-locations so that they get created during LOAD of
a source file when *EVALUATOR-MODE* is :INTERPRET.
Richard M Kreuter [Wed, 16 Jul 2008 17:30:01 +0000 (17:30 +0000)]
1.0.18.19: Fix FUNCTION-KEYWORDS, re-add FUNCTION-KEYWORD-PARAMETERS.
* Recently-renamed FUNCTION-KEYWORD-PARAMETERS did something different
than what FUNCTION-KEYWORDS is supposed to do. Fix
FUNCTION-KEYWORDS, and re-add a distinct FUNCTION-KEYWORD-PARAMETERS
(used indirectly by DESCRIBE, something in sb-introspect, maybe
elsewhere).
Richard M Kreuter [Wed, 16 Jul 2008 11:48:55 +0000 (11:48 +0000)]
1.0.18.18: Add support for abstract namespace addresses for AF_LOCAL sockets.
* Contributed by Matthew D. Swank
Richard M Kreuter [Fri, 11 Jul 2008 18:55:07 +0000 (18:55 +0000)]
1.0.18.17: Alter some STYLE-WARNING names introduced in 1.0.18.16.
Richard M Kreuter [Tue, 8 Jul 2008 21:31:50 +0000 (21:31 +0000)]
1.0.18.16: many STYLE-WARNING changes.
* Add various subclasses of STYLE-WARNING in src/code/condition.lisp
for most of the cases signaled around the system. (A few style
warnings remain SIMPLE-STYLE-WARNINGS for now.)
* Make STYLE-WARN be like WARN (take a condition class name and
arguments).
* Change over many callers of STYLE-WARN to supply names of new
STYLE-WARNING classes and initargs for those conditions.
* Set the default value of SB-EXT:*MUFFLED-WARNINGS* to a type that
includes uninteresting redefinitions of functions and methods.
Richard M Kreuter [Tue, 8 Jul 2008 14:24:53 +0000 (14:24 +0000)]
1.0.18.15: Tweak external-format tests for .gitignore, clean.sh.
Richard M Kreuter [Mon, 7 Jul 2008 15:08:07 +0000 (15:08 +0000)]
1.0.18.14: Tweak .gitignore for 2 Linux/PPC files.
Nikodemus Siivola [Mon, 7 Jul 2008 07:57:18 +0000 (07:57 +0000)]
1.0.18.13: adjust address-spaces for Windows 32
* Dynamic-space was too large after the last adjustment.
Nikodemus Siivola [Fri, 4 Jul 2008 16:10:05 +0000 (16:10 +0000)]
1.0.18.12: adjust address-spaces for Windows 64
* Thanks to John Connors if this works, blame me if it doesn't
(untested, as I don't have a Windows box available, but reputedly
this should be good for both Win32 and Win64.)
Source: http://article.gmane.org/gmane.lisp.steel-bank.devel/10686
Richard M Kreuter [Thu, 3 Jul 2008 21:31:57 +0000 (21:31 +0000)]
1.0.18.11: Add SB-EXT:*MUFFLED-WARNINGS*, to muffle warnings at runtime.
Richard M Kreuter [Thu, 3 Jul 2008 19:24:49 +0000 (19:24 +0000)]
1.0.18.10: Record filenames in DEBUG-SOURCEs during EVAL-WHEN, LOAD.
* During EVAL-WHEN (:COMPILE-TOPLEVEL) and LOAD, record both the
filename and the S-expression in the DEBUG-SOURCE.
* Change clients of the DEBUG-SOURCE structure to use the new slots.
(This also affects SLIME.)
Richard M Kreuter [Mon, 30 Jun 2008 19:37:01 +0000 (19:37 +0000)]
1.0.18.9: Fix fpu_save, fpu_restore on x86-64.
* Incorrect definition lead to segfault during gencgc when gencgc_verbose>1.
Richard M Kreuter [Mon, 30 Jun 2008 18:49:41 +0000 (18:49 +0000)]
1.0.18.8: Sort results of APROPOS-LIST and APROPOS.
Nikodemus Siivola [Mon, 30 Jun 2008 10:33:57 +0000 (10:33 +0000)]
1.0.18.7: just one POWER-OF-TWO-CEILING, thank you
* We had two, of which CEIL-POWER-OF-TWO with arguments that already
were powers of two returned the *next* power of two, and not the
argument, whereas POWER-OF-TWO-CEILING returned the argument if
it already was a power of two.
As far as I can tell returning the argument is fine in those case
in places where CEIL-POWER-OF-TWO was used, so replace it with
POWER-OF-TWO-CEILING -- which really doesn't have to be inline.
Nikodemus Siivola [Mon, 30 Jun 2008 10:04:48 +0000 (10:04 +0000)]
1.0.18.6: rename SB-PCL::FUNCTION-KEYWORD-PARAMETERS to CL:FUNCTION-KEYWORDS
* Not that anyone seems to have missed it yet...
Nikodemus Siivola [Mon, 30 Jun 2008 09:48:27 +0000 (09:48 +0000)]
1.0.18.5: ADJOIN with constant NIL as second argument
* One more bug in TRANSFORM-LIST-ITEM-SEEK.
Nikodemus Siivola [Mon, 30 Jun 2008 09:44:42 +0000 (09:44 +0000)]
1.0.18.4: use CAREFUL-SPECIFIER-TYPE when deriving the type COERCE
* Derived type of the second argument can eg. be a MEMBER type with
where all members are not valid type specifiers: this is a runtime
error, not a compile-time one.
Nikodemus Siivola [Mon, 30 Jun 2008 09:18:32 +0000 (09:18 +0000)]
1.0.18.3: more conservative arithmetic optimizations
* Don't convert (op <int> <single>) to (op (float <int> <single>)
<single) if the integer may be too large for accurate conversion.
Nikodemus Siivola [Mon, 30 Jun 2008 09:00:37 +0000 (09:00 +0000)]
1.0.18.2: more conservative interval artihmetic
* In SAFELY-BINOP, when the other argument must be coerced to single
float, punt if it is an integer that cannot be exactly represented
as a single float.
* Fixes bug 420, and a whole slew of MISC failures in ansi-tests --
including the ones that used to cause a hard crash or a hang: cvs
up -dPC your ansi-test trees, and should huzzah!
Nikodemus Siivola [Mon, 30 Jun 2008 08:35:58 +0000 (08:35 +0000)]
1.0.18.1: correct handling of SATISFIES types in the compiler
* CTYPEP used to retur a secondary value of true in cases where the
function in question was not foldable.
* Slightly sleazily extent SB-C::CONSTANT-FUNCTION-CALL-P (part of
CONSTANTP) to return the primary result of the call as the
secondary value, so CTYPEP can use it.
* Test-case.
Juho Snellman [Sun, 29 Jun 2008 20:11:25 +0000 (20:11 +0000)]
1.0.18: release, will be tagged as sbcl_1_0_18
Nikodemus Siivola [Tue, 24 Jun 2008 17:12:57 +0000 (17:12 +0000)]
1.0.17.42: more string trimming fixes
* Return value in the no-op case for non-simple-strings must not be
the underlying simple string object.
* Correct return type (per spec) for STRING-TRIM &co is
STRING-DESIGNATOR, but as long as we take care, we can make it
STRING -- but the old SIMPLE-STRING is still wrong.
* Instead of making WITH-STRING a full-blown Evil Macro, just use
WITH-ARRAY-DATA at the call site.
* Two more test-cases.
patch by James Knight.
Juho Snellman [Mon, 23 Jun 2008 01:01:38 +0000 (01:01 +0000)]
1.0.17.41: Implement setsid, mlockall and mlockall in sb-posix
* Also refactor some code
* Patch by Travis Cross
Juho Snellman [Mon, 23 Jun 2008 00:55:47 +0000 (00:55 +0000)]
1.0.17.40: Fix build on -raw-instance-init-vops platforms (probably)
* Reported by Xach
Nikodemus Siivola [Tue, 17 Jun 2008 08:08:16 +0000 (08:08 +0000)]
1.0.17.39: fix build on SIG_INTERRUPT_THREAD-less platforms
* Patch by Josh Elsasser.
Christophe Rhodes [Tue, 17 Jun 2008 00:04:17 +0000 (00:04 +0000)]
1.0.17.38: fix linkage-table address->symbol lookup
(from Andy Hefner sbcl-devel 2008-06-11)
Christophe Rhodes [Mon, 16 Jun 2008 23:10:06 +0000 (23:10 +0000)]
1.0.17.37: better indenting of compiler diagnostic messages.
(from Michael Weber sbcl-devel 2008-06-12)
Christophe Rhodes [Mon, 16 Jun 2008 22:56:12 +0000 (22:56 +0000)]
1.0.17.36: better pprinting of DEFPACKAGE forms.
From Michael Weber (sbcl-devel 2008-06-12)
pkhuong [Sun, 15 Jun 2008 11:13:41 +0000 (11:13 +0000)]
1.0.17.35: Bug fixes: cross-compiler's lookup of constants, recursive escaping
* Reinstate :CONSTANT-VALUE in the infodb as :XC-CONSTANT-VALUE
during cross-compilation, since we can't override our host's
standard constants.
* Avoid recursive escaping in BLOCK-GENSYM.
Alexey Dejneka [Sun, 15 Jun 2008 05:28:24 +0000 (05:28 +0000)]
1.0.17.34: Fix bug: READ-LINE did not return T for the last line of ANSI-STREAM.
Reported by Yoshinori Tahara.
Christophe Rhodes [Wed, 11 Jun 2008 20:04:23 +0000 (20:04 +0000)]
1.0.17.33: fix PRINT-OBJECT cache
We mustn't compute the cached cache too early, otherwise we'll
cache effective methods before the actual methods (on RESTART
and the two storage-condition classes) are defined.
Christophe Rhodes [Mon, 9 Jun 2008 21:49:15 +0000 (21:49 +0000)]
1.0.17.32: faster ADD-METHOD to PRINT-OBJECT
The basic idea here is reducing the number of functions whose
discriminating function and effective method cache are
precomputed; in particular, to reduce the number where users can
both legitimately define their own methods, and where a large
number of methods will be applicable to different classes.
The biggest culprit in both of those categories is the
PRINT-OBJECT generic function, which would recompute its entire
dispatch structure every time any method was added or removed.
So, turn off precomputation for names in the CL package; deal
with the bootstrap metacircles that that provokes; special-case
PRINT-OBJECT in COMPUTE-DISCRIMINATING-FUNCTION so that we can
always print certain critical pieces of infrastructure;
also, warn the user if they break our assumptions in
PRINT-OBJECT's specialization.
Fix one broken "how did it ever work" test.
Nikodemus Siivola [Fri, 6 Jun 2008 12:00:23 +0000 (12:00 +0000)]
1.0.17.31: more constant cleverness
* Make MAYBE-EMIT-MAKE-LOAD-FORM can dump _all_ references to
non-trivial named constants using the name (well, not FP constants
for SBCL itself.)
This means that after (DEFCONSTANT +FOO+ "FOO") all references to
+FOO+ are EQ, even in different files.
...some people are going to use this as an unportable performance
hack, and their code will break horribly sooner or later, but more
importantly we need to grovel less things, and more sharing means
less memory use and better cache behaviour.
* Tests.