Nikodemus Siivola [Mon, 2 Apr 2007 13:40:48 +0000 (13:40 +0000)]
1.0.4.17: interrupt handler spring cleaning
* interrupt_handle_now was always called with the real context, not
a void context: remove the useless cast. Also fix
FOREIGN_FUNCTION_CALL_FLAG usage there.
* low_level_interrupt_handle_now was also always called with the real
context, not a void context: useless cast is now gone. It also
needs no FP control restoration or Darwin context fixage.
* maybe_now_maybe_later and low_level_maybe_now_maybe_later were
missing the Darwin context fix on one codepath.
* interrupt_handle_now_handler was missing the FP control fixage.
Nikodemus Siivola [Mon, 2 Apr 2007 08:37:36 +0000 (08:37 +0000)]
1.0.4.16: some GC and interrupt refactoring
* Conditionalize foreign_function_call_active on
FOREIGN_FUNCTION_CALL_FLAG for clarity, and excice it from x86
assember code.
* Rename interrupt_maybe_gc to cheyneygc_handle_wp_violation, and
move it cheyneygc.c. Don't pretend it is a signal handler, but pass
in just the context and faulting address it needs.
* Make gc_trigger_hit to accept the faulting address directly, since
we already have it handy, and move it to cheneygc.c.
* Rename interrupt_maybe_gc_int to maybe_gc, and move it to
gc-common.c. Don't pretend it is a signal handler, but pass in just
the context it needs.
* maybe_gc_pending unused, deleted.
* Only a single bytes_consed_between_gcs declaration, in gc.h.
* Whitespace.
No significant functional changes. Tested on x86/GENCGC, PPC/GENCGC,
and PPC/Cheney.
...did you know that stepping is broken on PPC/Cheney but not on
PPC/GENCGC?
Thiemo Seufer [Sun, 1 Apr 2007 19:49:25 +0000 (19:49 +0000)]
1.0.4.15:
Add missing void parameters.
Nikodemus Siivola [Sun, 1 Apr 2007 19:40:00 +0000 (19:40 +0000)]
1.0.4.14: oops! duplicate definition of print_unknown
* ECHERRYPICK.
Nikodemus Siivola [Sun, 1 Apr 2007 19:36:16 +0000 (19:36 +0000)]
1.0.4.13: refactor trap handling
* All architectures had an essentially identical switch(trap){...}
for different trap codes. Pull this into a single shared
handle_trap function, which dispatches to architecture specific
functions where necessary.
* Remove unnecessary signal and siginfo arguments from breakpoint
handling functions and interrupt_internal_error as a tentative step
towards admitting that POSIX is not the only world out there.
* Clean up some compiler warnings from the runtime, and a missing
anti-copyright header.
* Fix the PPC build... at least on G4 Darwin 10.3: no suseconds_t
here.
Tested on x86, x86-64, and PPC. Sparc, MIPS (and Alpha) testing
needed.
Nikodemus Siivola [Sat, 31 Mar 2007 10:51:20 +0000 (10:51 +0000)]
1.0.4.12: stale bugs
* bug 27 has not been observed in ages, and our interrupt handling has
changed sufficiently since to consider the case closed.
* bug 78 has ...evolved.
* bug 256.b has been fixed (test added now.)
* bug 381 was fixed a while back by MAYBE-CYCLIC-P.
Nikodemus Siivola [Sat, 31 Mar 2007 10:12:15 +0000 (10:12 +0000)]
1.0.4.11: trivial hash-table cleanup / optimization
* Hash table code does lots of AREFs using indexes (* 2 i) and (1+ (* 2 i)),
where I obviously has to be less then (floor array-dimension-limit 2),
for which both calculations are known to fit into a fixnum.
* Define such a type (aka INDEX/2) and use it where appropriate. We
were already doing this in WITH-HASH-TABLE-ITERATOR, but not
elsewhere.
Nikodemus Siivola [Thu, 29 Mar 2007 18:33:34 +0000 (18:33 +0000)]
1.0.4.10: conditionalize bignum-character line writing test
* Takes too long on 64 bit platforms!
Nikodemus Siivola [Thu, 29 Mar 2007 18:08:47 +0000 (18:08 +0000)]
1.0.4.9: writing bignum characters onto a single line
* FD-STREAM-CHAR-POS can run into bignums. It might be prudent to
stop incrementing it for stupendously long lines, but this will
do for now.
William Harold Newman [Wed, 28 Mar 2007 17:59:16 +0000 (17:59 +0000)]
1.0.4.8:
"What's old is new again" or "what was he thinking?"
At least in the wisdom of hindsight I can see that my new RANDOM
is not ready for release, so I have reverted it. This
version should be essentially 1.0.4.5 with a new version
number. (It also has an extra, orphaned file in
src/compiler/integer-tran.lisp. When I revisit the
problem later, that should be cleaned up one way or
another, meanwhile I don't feel like deleting it and
then likely recreating it later.)
Sorry about the confusion.:-(
William Harold Newman [Wed, 28 Mar 2007 14:32:08 +0000 (14:32 +0000)]
1.0.4.7:
Argh! My shiny new RANDOM-of-INTEGER in 1.0.4.6 was badly broken
for 64-bit CPUs.
Replace RANDOM-CHUNK with %RANDOM-WORD (mostly) or %RANDOM32
(for code which implicitly knows which foo-FLOAT bit
subsequences are <=32 bits).
William Harold Newman [Tue, 27 Mar 2007 16:20:38 +0000 (16:20 +0000)]
1.0.4.6:
rewrote RANDOM for INTEGER case to eliminate (small) bias
Alas, it doesn't seem practical to test this properly. (Difficulty
of building a nice test suite seems to be a pervasive
problem for randomized code.) I could write a test case
narrowly targeted to detect the old bug, but I don't
think I could make even that single test simultaneously
fast enough and reliable enough that it would be
a good candidate for run-tests.sh. And aiming at a
more comprehensive set of tests just makes the
making-it-fast-enough problem that much harder.
Rudi Schlatte [Tue, 27 Mar 2007 05:58:07 +0000 (05:58 +0000)]
1.0.4.5 slot reader/writer documentation in the manual
* Also remove writers for sb-bsd-sockets:host-ent class slots
* Thanks to Richard M Kreuter
Gabor Melis [Mon, 26 Mar 2007 15:30:02 +0000 (15:30 +0000)]
1.0.4.4: simplify JOIN-THREAD interface
Nikodemus Siivola [Mon, 26 Mar 2007 10:30:21 +0000 (10:30 +0000)]
1.0.4.3: interrupt and GC issues
* Add WITHOUT-INTERRUPTS to WITHOUT-GCING.
* Warn if WITH-INTERRUPTS nested in WITHOUT-GCING.
* Make sure that SIG_STOP_FOR_GC and SIG_RESUME_FROM_GC are enabled on
threaded builds before calling into SUB-GC from the runtime.
* Better WITHOUT-GCING, WITHOUT-INTERRUPTS, and WITH-INTERRUPTS
documentation.
* Internals documentation about POSIX signal safety rules.
Cyrus Harmon [Mon, 26 Mar 2007 02:23:05 +0000 (02:23 +0000)]
1.0.4.2: really commit darwin sb-posix fixes
* see commit log message for 1.0.4.1. the sb-posix files didn't get
properly committed.
* in short, revert sb-posix st_atime, st_mtime, and st_ctime behavior
to the way it was before I tried to fix things for the
x86-64/darwin port.
Cyrus Harmon [Mon, 26 Mar 2007 00:57:09 +0000 (00:57 +0000)]
1.0.4.1: fix sb-posix atime/mtime/ctime
* st_atime, st_mtime and st_ctime were broken in a perhaps misguided
attempt to fix these for x86-64 by exposing the timespec struct
instead of just passing the first time_t (which is really the
tv_sec field of the struct) as the return value. This patch
restores the previous behavior. This may cause a regression for
x86_64/darwin, but we should find a better fix. We should also
consider removing the wrapped_stat bit and the corresponding C code
wrapper.
William Harold Newman [Sun, 25 Mar 2007 16:39:54 +0000 (16:39 +0000)]
1.0.4: release, will be tagged as sbcl_1_0_4
Gabor Melis [Fri, 23 Mar 2007 16:09:49 +0000 (16:09 +0000)]
1.0.3.48: mark JOIN-THREAD as experimental
Gabor Melis [Wed, 21 Mar 2007 08:26:19 +0000 (08:26 +0000)]
1.0.3.47: fixed threads tests
lisphacker [Sun, 18 Mar 2007 23:46:07 +0000 (23:46 +0000)]
1.0.3.46: De-pessimized x86 sub-byte DATA-VECTOR-SET/* VOPs.
Reduced register usage requirements by one (much needed) register.
Gabor Melis [Sun, 18 Mar 2007 19:30:25 +0000 (19:30 +0000)]
1.0.3.45: added JOIN-THREAD
Implementation by NIIMI Satoshi. Added more docstrings and changed the
interface according to the styling advice of Thomas F. Burdick.
Cyrus Harmon [Sun, 18 Mar 2007 17:36:55 +0000 (17:36 +0000)]
1.0.3.44: x86-64 print vop preserves 16-byte stack alignment
* rework the x86-64 print (really should be debug-print or some such)
to preserve 16-byte stack alignment. This was breaking
x86-64/darwin sb-show builds.
Andreas Fuchs [Sun, 18 Mar 2007 01:57:45 +0000 (01:57 +0000)]
1.0.3.43: Restore manual autobuildability
Adding a dependency of ../../output/sbcl.core in the manual's Makefile goes
against the ability of specifying the SBCL_SYSTEM to the build process. This
change should restore the old behavior.
Nikodemus Siivola [Sun, 18 Mar 2007 00:06:52 +0000 (00:06 +0000)]
1.0.3.42: two LOOP buglets
* Avoid bogus package-lock violations from LOOP, don't declare types
for special variables in COMMON-LISP. Reported by Eric Marsen on
sbcl-devel.
* Avoid attempts to coerce loop variable initialization values to
range-limited types. Reported by Andras Simon on sbcl-devel.
Nathan Froyd [Sat, 17 Mar 2007 21:24:59 +0000 (21:24 +0000)]
1.0.3.41:
Use a local variable for %%CURRENT-{VOP,SEGMENT}%% rather than a
dynamic variable; eliminates spurious BOUNDP checks and
generates smaller code for VOP emitters. Saves ~170k on core
size on x86-64/linux.
Juho Snellman [Fri, 16 Mar 2007 03:57:08 +0000 (03:57 +0000)]
1.0.3.40: :EXECUTABLE T implies --noinform
* Patch from Kevin Reid.
* Not the right solution. This can be revisited once somebody
implements the mythical saving of command-line parameters into the
core.
* Also check in some fixes to the build process of the manual (patch
by Richard Kreuter).
Cyrus Harmon [Thu, 15 Mar 2007 15:14:15 +0000 (15:14 +0000)]
1.0.3.39: larger heap size for x86-64/darwin
* removed darwin specific params for space locations.
* modify gettimeofday of call on darwin x86-64 to not pass in a
timezone pointer as this causes the gettimeofday syscall to
occasionally fail. This is a temporary hack and should be fixed.
Nikodemus Siivola [Mon, 12 Mar 2007 12:04:14 +0000 (12:04 +0000)]
1.0.3.38: record bug #411, disable NAN-COMPARISONS test on x86-64
...avaiting the attention of x86-64 hackers...
Juho Snellman [Thu, 8 Mar 2007 18:09:32 +0000 (18:09 +0000)]
1.0.3.37: Oops, fix bad argument types in the new x86-64 modular arithmetic VOPs
sa2c [Thu, 8 Mar 2007 11:12:21 +0000 (11:12 +0000)]
1.0.3.36: Don't fail on timeout on contrib/sb-simple-streams tests.
Timeout may occur on the restricted systems (e.g. FreeBSD with
jail(8) or blackhole(4) is used) when connecting to even localhost.
Juho Snellman [Wed, 7 Mar 2007 05:20:27 +0000 (05:20 +0000)]
1.0.3.35: fix problem with backtraces showing NIL as the function name
* Reported by Edi Weitz
* Might also fix the debug.impure failures that some people have
reported on BSDs
Nathan Froyd [Wed, 7 Mar 2007 02:12:56 +0000 (02:12 +0000)]
1.0.3.34:
Make (SETF C-STRING->LISP-STRING) substantially faster and cons less.
Cyrus Harmon [Tue, 6 Mar 2007 23:26:32 +0000 (23:26 +0000)]
1.0.3.33: sb-bsd-sockets fixes for x86-64/darwin
* add gethostbyname2 (#+darwin)
* make ai_addrlen be a socklen_t (#+darwin)
* turn off :sb-bsd-sockets-addrinfo on x86-64/darwin as this seems
to be broken
* workaround gethostbyname length bug by alllowing length 4 or 8
on x86-64 darwin
Cyrus Harmon [Tue, 6 Mar 2007 18:29:54 +0000 (18:29 +0000)]
1.0.3.32: make-local-alien stack alignment simplification
* treat x86-64/darwin stack like x86-64/linux rather than x86/darwin
* remove stack-pointer saving vops as we don't need to save and
restore the stack in order to preserve 16-byte alignment as the
stack should already be 16-byte aligned
Nikodemus Siivola [Mon, 5 Mar 2007 16:58:26 +0000 (16:58 +0000)]
1.0.3.31: fix new = and /= transformations for NaNs
* (= nan nan) is false, and (/= nan nan) is true, as pointed out by
CSR.
* More tests.
Juho Snellman [Mon, 5 Mar 2007 00:57:52 +0000 (00:57 +0000)]
1.0.3.30: More compact typechecks on x86-64
* Patch by Lutz Euler
Juho Snellman [Sun, 4 Mar 2007 23:52:39 +0000 (23:52 +0000)]
1.0.3.29: kill a bogus "variable defined but not used" warning in FORMATTER
Juho Snellman [Sun, 4 Mar 2007 23:47:58 +0000 (23:47 +0000)]
1.0.3.28: handle output for fatal-compiler-errors more consistently
* Format the output like it's done for other errors / warnings
* Output to *error-output*
* Output unconditionally regardless of the value of *compiler-verbose*
Juho Snellman [Sun, 4 Mar 2007 23:42:32 +0000 (23:42 +0000)]
1.0.3.27: disable test for get-host-by-name for non-existing hosts
* Many people have DNS setups where this test will always fail.
Juho Snellman [Sun, 4 Mar 2007 23:39:34 +0000 (23:39 +0000)]
1.0.3.26: port modular-xor/fixnum changes from x86 to x86-64
* Code like (logand most-positive-fixnum (logxor (the fixnum x)
(the fixnum y))
would end up with a full call to SB-VM::LOGXOR-MOD64.
Cyrus Harmon [Sat, 3 Mar 2007 20:53:15 +0000 (20:53 +0000)]
1.0.3.25: freebsd sb-bsd-sockets fixes
* SO_NO_CHECK doesn't exist on freebsd. Make this #-freebsd.
* EAI-ADDRFAMILY and EAI-NODATA are deprecated and don't exist on
freebsd. Make these #-freebsd.
Cyrus Harmon [Sat, 3 Mar 2007 20:19:26 +0000 (20:19 +0000)]
1.0.3.24: remove win32 alien-timeval
* remove alien-timeval struct defintion
* make define-protocol-class timeval be #-win32
Cyrus Harmon [Sat, 3 Mar 2007 18:58:48 +0000 (18:58 +0000)]
1.0.3.23: fix sb-posix timeval struct
* add timeval struct for #+win32 and use long instead of suseconds_t
Cyrus Harmon [Sat, 3 Mar 2007 18:28:43 +0000 (18:28 +0000)]
1.0.3.22: fix with-pinned-object buglets
* on ppc types and variables were unused, which was causing a warning
which was getting promoted to an error. make them ignorable.
* #+(or x86 x86-64) -> #!+(or x86 x86-64) which should help building
from non sbcl hosts.
* also fix indentation in timeval struct definition
Cyrus Harmon [Sat, 3 Mar 2007 17:52:46 +0000 (17:52 +0000)]
1.0.3.21: suseconds_t -> long on win32
* suseconds_t doesn't exist on win32, so use long instead
Nikodemus Siivola [Sat, 3 Mar 2007 17:21:58 +0000 (17:21 +0000)]
1.0.3.20: better SEARCH transform
* Better type declarations for index variables -- fixes the
performance regression in BENCH-STRINGS from the NaN-comparison
changes.
* Extend the transform to work with general vectors, arbitrary :TEST and
:KEY, and constant but arbitrary :FROM-END.
* Tests.
Nikodemus Siivola [Sat, 3 Mar 2007 10:49:26 +0000 (10:49 +0000)]
1.0.3.19: the count argument in DOTIMES is known to be an integer
* Declaring it as such for the non-constant expansion of dotimes
allows the inversion of >= to < kick in for the termination test.
sa2c [Sat, 3 Mar 2007 07:19:36 +0000 (07:19 +0000)]
1.0.3.18: Fix build on FreeBSD/amd64
Cyrus Harmon [Sat, 3 Mar 2007 06:24:38 +0000 (06:24 +0000)]
1.0.3.17: fix x86-64-assem.S build
* on darwin, use GSYM(GNAME(all_threads)),%rax, on linux use
GNAME(all_threads). This is isn't the cleanest fix, but it should
restore buildability while I work out a proper fix.
Cyrus Harmon [Sat, 3 Mar 2007 00:42:01 +0000 (00:42 +0000)]
1.0.3.16: experimental x86-64/darwin suport
* fix sb-posix time structs to match headers on darwin
* comment out mtime sb-posix test as this isn't working ATM
* add UD2A trap stuff to x86-64 and corresponding word-imm support
* remove bogus extern-alien-name in boxed_region fixups
* add compiler parameters for Darwin
* add x86-64 darwin config file
* some type safety fixes (proper types) in darwin-dlshim.c
* use setpgid on Darwin
* add signal context support x86-64/darwin
* report trap instead of si_code for trap_Error/trap_Cerror
* unsigned -> unsigned long in purify.c
* add mach exception handler support for x86-64/darwin
* x86-64 assembly hacks to make darwin's assembler happy
* update x86-64-bsd-os.c to suppot darwin and mach exceptions
* add x86-64-darwin-os.c/h
* update LDSO stubs for x86-64 darwin
Cyrus Harmon [Fri, 2 Mar 2007 22:43:43 +0000 (22:43 +0000)]
1.0.3.15: timeval tv-usec should be suseconds-t not time-t
* add suseconds-t to grovel-headers
* fix timeval struct such that tv-usec is a suseconds-t instead of time-t
* fix whitespace
Cyrus Harmon [Fri, 2 Mar 2007 17:52:55 +0000 (17:52 +0000)]
1.0.3.14: fix print_obj on x86-64
* debugging code in print_obj was hardcoded to use 3-bit lowtags.
Now it's hardcoded to use appropriate 4-bit lowtags on x86-64.
* Added a fixme about how this should be fixed properly at some point.
Nikodemus Siivola [Fri, 2 Mar 2007 17:03:09 +0000 (17:03 +0000)]
1.0.3.13: working NaN comparison tests outside Darwin
* Other platforms have invalid operation traps normally in effect.
Juho Snellman [Fri, 2 Mar 2007 06:08:37 +0000 (06:08 +0000)]
1.0.3.13: "Oops"
Juho Snellman [Fri, 2 Mar 2007 05:05:32 +0000 (05:05 +0000)]
1.0.3.12: Use the interpreter when creating functions for undeclared aliens
* No sense in invoking the compiler, since the functions will
just be discarded after one use.
* Undeclared aliens should no longer be hideously expensive
Juho Snellman [Fri, 2 Mar 2007 04:35:58 +0000 (04:35 +0000)]
1.0.3.11: Fix deportation gc safety bug
* Pin objects that are deported by taking a SAP to a GCd object
* In some cases the object that the SAP is taken to isn't actually
EQ to the one that was deported -> split deportation into
separate alien-type-class-methods for the allocation and the
actual deportation.
* Don't do pinning on non-x86oids, since we can't really disable
the GC during all alien calls.
Juho Snellman [Fri, 2 Mar 2007 03:16:31 +0000 (03:16 +0000)]
1.0.3.10: Add -D_REENTRANT to Solaris CFLAGS
* Otherwise localtime_r in time.c won't be found.
* Problem and solution reported by Thomas Burdick.
Juho Snellman [Fri, 2 Mar 2007 02:02:01 +0000 (02:02 +0000)]
1.0.3.9: Allow characters as string designators for SHADOW
* Patch by Eric Marsden
Juho Snellman [Fri, 2 Mar 2007 01:37:08 +0000 (01:37 +0000)]
1.0.3.8: Use an explicit :initial-element 0 when making sset storage vectors
* Would cause build failures with clisp and abcl
* Patch by Peter Graves
Juho Snellman [Fri, 2 Mar 2007 01:33:13 +0000 (01:33 +0000)]
1.0.3.7: Compile XEPs using the policy from the correct environment
* Didn't matter before the fop-compiler function handling changes.
Juho Snellman [Fri, 2 Mar 2007 00:59:07 +0000 (00:59 +0000)]
1.0.3.6: Make sb-bsd-sockets use getaddrinfo/getnameinfo where available
* Generally thread-safe functions (though not on OS X) unlike
gethostbyaddr/gethostbyname.
* The interfaces are not totally compatible (e.g. no aliases data
available, different error codes, etc). Try to make this change as
transparent as possible.
* Clean up old CMUCL compability cruft
* Delete the obsolete documentation generator
* Add a little extra documentation on the name-service to the manual
Christophe Rhodes [Wed, 28 Feb 2007 16:05:57 +0000 (16:05 +0000)]
1.0.3.5: slightly different SEQUENCE type handling.
The UNION TYPE= issue affects type derivation as in
(defun foo (x)
(declare (type (simple-array character) x))
(subseq x 1 2))
where the system fails to derive that the intersection of
consed-sequence and (simple-array character) is distinct from
consed-sequence. Change SEQUENCE to be an explicit union of
LIST, VECTOR and an EXTENDED-SEQUENCE named type, defining
appropriate type methods, and the symptom (but not the cause)
goes away.
(Note: it may well be that the EXTENDED-SEQUENCE named type
disappears again, to be replaced by an actual protocol class
similar to FUNDAMENTAL-STREAM for Gray streams, for reasons of
future extensibility and ease of compatibility with other Lisps.
Waiting for ILC feedback...)
Andreas Fuchs [Wed, 28 Feb 2007 13:01:58 +0000 (13:01 +0000)]
1.0.3.4: make-target-2.lisp split into compile and dump phases.
* Split make-target-2.lisp into make-target-2.lisp and
make-target-2-load.lisp, reducing unnecessary state that was kept around.
Not keeping symbols that were interned during the compilation of PCL
saves us 400kB on x86 and between 1MB and 1.5MB on x86_86.
* Unintern symbols that are internal to CL-USER before dumping the core.
This doesn't save any space; just removes confusion.
Christophe Rhodes [Wed, 28 Feb 2007 12:56:26 +0000 (12:56 +0000)]
1.0.3.3:
Make the #=/## reader macro work on funcallable instances.
William Harold Newman [Tue, 27 Feb 2007 23:25:38 +0000 (23:25 +0000)]
1.0.2:
logged bug
Nikodemus Siivola [Tue, 27 Feb 2007 21:57:12 +0000 (21:57 +0000)]
1.0.3.1: fix behaviour of >= and <= with NaNs
* Problem: (>= (/ 0.0 0.0) 1.0) evaluates to true.
Move inversion from >= to < and from <= to > from the source
transformations to new deftransforms, and make it conditional on
the derived type, avoiding the inversion for potential floats.
This fixes the NaN issues with >= and <=, but exposes gaps in our
transformations for =, causing a constraint propagation test to
fail...
* Tweak the deftransform for = so that another transformation can
co-exist with it.
Write INTERVAL-= and INTERVAL-/=, and deftransforms for = and /=
based on them.
This fixes the constant propagation issue, except for the bug it
exposes elsewhere...
* INTERVAL-INTERSECTION/DIFFERENCE returns bogus intersections -- fix
it.
...and all is well.
* Tests.
* NUMERIC-TYPE-OR-LOSE is unused, deleted.
* Also fix tests/stream.impure.lisp for UTF-8 environments.
William Harold Newman [Tue, 27 Feb 2007 20:03:42 +0000 (20:03 +0000)]
1.0.3:
release, will be tagged as sbcl_1_0_3
William Harold Newman [Thu, 22 Feb 2007 20:14:13 +0000 (20:14 +0000)]
1.0.2.27:
fixed thinko in man page (thanks to Trent Buck and Zach Beane)
Nikodemus Siivola [Mon, 19 Feb 2007 11:55:51 +0000 (11:55 +0000)]
1.0.2.26: replace *all-components* special with a local variable
* Was used only in COMPILE-TOPLEVEL where it was also bound.
Juho Snellman [Tue, 13 Feb 2007 07:40:38 +0000 (07:40 +0000)]
1.0.2.25: Better MUFFLE-CONDITIONS handling for inlined functions
* Inherit MUFFLE-CONDITIONS from the call-site
lexenv. Otherwise it's basically impossible to selectively
muffle "alien runtime allocation" notes, at least for
SB-GROVELed alien functions.
Juho Snellman [Mon, 12 Feb 2007 03:43:11 +0000 (03:43 +0000)]
1.0.2.24: Support readlink in SB-POSIX
* Thanks to Richard M Kreuter
Juho Snellman [Mon, 12 Feb 2007 03:20:39 +0000 (03:20 +0000)]
1.0.2.23: Clean up handling SB-POSIX functions with runtime wrappers
* Thanks to Richard M Kreuter
Juho Snellman [Mon, 12 Feb 2007 03:12:40 +0000 (03:12 +0000)]
1.0.2.22: Minor NetBSD changes
* Use gtar as the tar in asdf-install (thanks to Jon Buller)
* Fix bashism in make-target-contrib.sh (thanks to Magnus Henoch)
Nathan Froyd [Wed, 7 Feb 2007 19:12:42 +0000 (19:12 +0000)]
1.0.2.21:
Make ASH VOPs use 'LEA <reg>, [<reg>+<reg>]' instead of
'LEA <reg>, [<reg>*2]' on x86 and x86-64, resulting in
shorter code.
Nathan Froyd [Wed, 7 Feb 2007 18:35:54 +0000 (18:35 +0000)]
1.0.2.20:
Fix parenthetical typo.
Juho Snellman [Tue, 6 Feb 2007 18:24:55 +0000 (18:24 +0000)]
1.0.2.19: Fix fopcompiling references to undefined variables
* While undefined, this should be handled the same way in the compiler
and the fopcompiler
* Signal a warning, use the symbol-value of the slot
* Reported by Gregory Vanuxem on sbcl-devel
Christophe Rhodes [Tue, 6 Feb 2007 15:51:14 +0000 (15:51 +0000)]
1.0.2.18:
Whoops. Add the new files for the PPC/NetBSD port, from
Aymeric Vincent.
Juho Snellman [Tue, 6 Feb 2007 08:11:17 +0000 (08:11 +0000)]
1.0.2.17: Bypass the hairy AREF transform for simple arrays
* To improve compilation speed for array-heavy code
Juho Snellman [Tue, 6 Feb 2007 06:12:07 +0000 (06:12 +0000)]
1.0.2.16: Replace SVREF with DATA-VECTOR-REF in %INSTANCE-TYPEP deftransform
* Since the SVREF is compiled with SAFETY 0, it'd eventually get
transformed to exactly the same thing, but going through several
heavy intermediate stages.
* Big compilation speed improvement for code that uses structs.
Juho Snellman [Tue, 6 Feb 2007 05:51:30 +0000 (05:51 +0000)]
1.0.2.15: Cache the results of BLOCK-PHYSENV during lifetime analysis
* Fetching the home-lambda of a block (needed in
BLOCK-PHYSENV) can be an expensive operation under some
circumstances, and it needs to be done a lot during lifetime
analysis when compiling with high DEBUG (e.g. 30% of the
total compilation time for CL-PPCRE with DEBUG 3 just for
that).
Juho Snellman [Tue, 6 Feb 2007 05:24:13 +0000 (05:24 +0000)]
1.0.2.14: Speed up constraint propagation
* Rewrite ADD-EQL-VAR-VAR-CONSTRAINT to do a constant number of
passes over the constraint set, rather than an amount proportional
to the amount of EQL constraints on the variables in question.
* Use SSET-MEMBER directly in CONSTRAIN-REF-TYPE, rather than
a COPY-SSET and SSET-INTERSECTION.
Juho Snellman [Tue, 6 Feb 2007 05:06:37 +0000 (05:06 +0000)]
1.0.2.13: Use an sset for LAMBDA-CALLS-OR-CLOSES
* Used to be an unsorted list (often long) and PUSHNEW / NUNION
Juho Snellman [Tue, 6 Feb 2007 04:48:36 +0000 (04:48 +0000)]
1.0.2.12: New hash-based implementation of ssets
* The old version that used sorted lists had bad worst case performance,
which was especially noticeable with constraint propagation on
hairy functions.
* Use yet another custom hash implementation (with open addressing
and double hashing), since the standard hash-tables are too heavy
for this (e.g. locking overhead, memory consumption).
* An sset implementation based on balanced trees was also tested,
but in practice turned out to be even slower than the sorted lists,
due to the high
* DO-SSET-ELEMENTS no longer iterates in SSET-ELEMENT-NUMBER order,
but we don't seem to rely on the old behaviour anywhere.
Christophe Rhodes [Mon, 5 Feb 2007 07:23:40 +0000 (07:23 +0000)]
1.0.2.11:
NetBSD/PPC support (from Aymeric Vincent sbcl-devel 2007-01-18).
Nathan Froyd [Mon, 5 Feb 2007 03:58:32 +0000 (03:58 +0000)]
1.0.2.10:
Delete a pile of unused bignum code.
Nathan Froyd [Mon, 5 Feb 2007 03:47:01 +0000 (03:47 +0000)]
1.0.2.9:
Micro-optimizations to the bignum code: use LOGTEST and LOGBITP
where appropriate.
Christophe Rhodes [Sun, 4 Feb 2007 16:26:47 +0000 (16:26 +0000)]
1.0.2.8:
Two slightly improved comments relating to the extensible
sequences checked in in the 1.0.0 series.
Cyrus Harmon [Fri, 2 Feb 2007 19:26:23 +0000 (19:26 +0000)]
1.0.2.7: Darwin/MacOS threading improvements
* use LOCK_CREATE_THREAD on MacOS/Darwin too
* add new mach_exception_lock and grab this lock when handling
exceptions
* fix signal mask restoring logic (I think...)
* restore float state in addition to thread state when done
handling an emulated signal
Nathan Froyd [Mon, 29 Jan 2007 21:24:11 +0000 (21:24 +0000)]
1.0.2.6:
*sigh* Fix #+sb-unicode builds.
Nathan Froyd [Mon, 29 Jan 2007 20:38:40 +0000 (20:38 +0000)]
1.0.2.5:
Fix DATA-VECTOR-{REF,SET}-WITH-OFFSET for #-sb-unicode builds.
Nathan Froyd [Mon, 29 Jan 2007 18:30:24 +0000 (18:30 +0000)]
1.0.2.4: Improve inlined array heap allocation on x86.
...allow IMMEDIATE SCs to ALLOCATE-VECTOR-ON-HEAP;
...use shorter instructions to set the widetag.
Cuts a couple of pages off of sbcl.core.
Nathan Froyd [Sun, 28 Jan 2007 19:58:54 +0000 (19:58 +0000)]
1.0.1.3:
Fix two buglets in MAKE-EA-FOR-FLOAT-REF.
Nathan Froyd [Sat, 27 Jan 2007 03:57:20 +0000 (03:57 +0000)]
1.0.2.2:
Delete a few spurious debugging FORMATs.
Nathan Froyd [Sat, 27 Jan 2007 03:45:45 +0000 (03:45 +0000)]
1.0.2.1: DATA-VECTOR-{REF,SET}-WITH-OFFSET for the x86
Compile calls of (AREF FOO (+ INDEX <constant>) more efficiently:
... turn DATA-VECTOR-{REF,SET} into
DATA-VECTOR-{REF,SET}-WITH-OFFSET when the element type of FOO
is at least 8 bits wide;
... introduce general mechanism for optimization of such calls;
... redo the x86 DATA-VECTOR-FOO VOPs, reducing the number of such
VOPs in the process;
... do the same for BIGNUM-REF and SAP-REF-FOO.
Upshot: 5-10% increase in performance on array-heavy code such
as Ironclad; a 20% increase in performance has been observed
on cellular automata codes. Some restrictions apply; see the
KLUDGE in src/compiler/generic/vm-tran for an example.
William Harold Newman [Thu, 25 Jan 2007 15:51:34 +0000 (15:51 +0000)]
1.0.2:
release, will be tagged as sbcl_1_0_2
Gabor Melis [Tue, 23 Jan 2007 16:04:53 +0000 (16:04 +0000)]
1.0.1.35: propagate (EQL X Y) constraints symmetrically
After an (EQL X Y) test both X and Y shall inherit the constraints
of the other. Thanks to jsnell for spotting this.
sa2c [Sun, 21 Jan 2007 03:48:23 +0000 (03:48 +0000)]
1.0.1.34: quote fix for old cpp
fix build with gcc 2.95.
Juho Snellman [Fri, 19 Jan 2007 01:55:46 +0000 (01:55 +0000)]
1.0.1.33: Better forward reference handling in WITH-COMPILATION-UNIT ...
* ... for the case where a forward reference is made during
compilation, and the referenced function is loaded from a
pre-existing fasl while still inside the same compilation unit.
(Reported by Jeremy Brown).
* Tests.
Juho Snellman [Fri, 19 Jan 2007 00:07:26 +0000 (00:07 +0000)]
1.0.1.32: More syscall wrappers on NetBSD, to work around C preprocessor abuse
* socket, dirent (patch from Richard Kreuter)