Commits on Aug 17, 2003

    Alexey Dejneka
    Alexey Dejneka committed Aug 17, 2003
            * Try to fix bug 267 = optimization issue #7: inside
              NAMED-LAMBDA replace references to a function with the same
              name with self-references;
            * ASSERT-GLOBAL-FUNCTION-DEFINITION-TYPE: do not put type
              assertions for functions with EXPLICIT-CHECK attribute;
            ... FLOAT-RADIX does not perform explicit check;
            * implement cross-compiler versions of %DPB and %WITH-ARRAY-DATA.

    telent committed Aug 17, 2003
    	Rename return_to_lisp_function to arrange_return_to_lisp_function,
    	as threatened
    	SIG_INTERRUPT_THREAD presently only exists on Linux: add
    	#ifdef to avoid breaking other x86en
    	Darwin complains "union has no member named `sival_int'" in
    	handle_rt_signal.  But we're only using that in thread builds
    	anyway, so #ifdef it
    	Bug 75 (:ELEMENT-TYPE for WITH-OUTPUT-TO-STRING) was fixed in
    	some previous version: remove from BUGS file
    	Shameless autopuffery, plus some amount of transpuffery, in
    	CREDITS file.
    	Update NEWS file
    	tests/.cvsignore: don't tell me about threads-foreign-code.*

    Alexey Dejneka
    Alexey Dejneka committed Aug 17, 2003
            * AVER was too early in the cross compiler.

    telent committed Aug 17, 2003
    	Move lines above/below LISP_FEATURE_X86 conditionals, to
    	remove non-x86 brokenness introduced by return-elsewhere
Commits on Aug 16, 2003

    csrhodes committed Aug 16, 2003
    	Merge patch from Brian Mastenbrook for better dlfoo handling
    	on Darwin (plus more-likely cpp options, add boilerplate)
    	... reindent to 4 spaces;
    	ASSQ patch from observation by PFD sbcl-devel 2003-08-16
    	... (NOT (NULL PAIR)) plus explanatory comment;
    	Pragmatism: since not all lisps implement arrays with NIL
    	specialized-array-element-type, our cross-compiler version needs
    	to be more robust.  Symptoms: building sbcl/ppc from openmcl loses
    	in cold-init; sbcl/sparc from sbcl-0.7.x hangs in cross-compiler
    	compilation of STRING
    	... since we don't need any (ARRAY NIL)s to cross-compile SBCL,
    		the answer to SIMPLE-ARRAY-NIL-P for constant-folding
    		purposes in the cross-compiler is always NIL.

    telent committed Aug 16, 2003
    	Implement INTERRUPT-THREAD, which forces another thread to
    	execute a function supplied by the caller.
    	In the process, design a mostly entirely new scheme for
    	calling Lisp code as a result of a handled signal: instead of
    	calling into Lisp directly, frob the signal context and the
    	stack to arrange that the Lisp is called after the signal
    	handler itself has returned.  This is expected to be
    	applicable to signal handlers generally (and will have portability
    	benefits), but needs them to be changed around to call it.
    	Presently it's used only for interrupt-thread (SIGRTMIN)
    	and control stack exhaustion (one branch of SIGSEGV)
    	In principle, all you need do to use this in other places is
    	call return_to_lisp_function in the signal handler, with the
    	context and the function object that you wish to be called.
    	For the x86 you also need to make sure the signal is being
    	handled on the alternate signal stack, otherwise you'll
    	overwrite your own stack frame.

    Alexey Dejneka
    Alexey Dejneka committed Aug 16, 2003
            * Provide cross-compiler versions of several internal
            * BIGNUM-LOGNOT VOP is the same as LOGNOT-MOD32.

    csrhodes committed Aug 16, 2003
    	Fix errors shown up by new ERROR/FORMAT code in sparc backend
Commits on Aug 15, 2003

    csrhodes committed Aug 15, 2003
    	Fix PPC (complex double-float) bug as reported on sbcl-devel
    	by Clemens Heitzinger 2003-08-12
    	... the right way, not as per CSR patch sbcl-devel, but as per
    		CSR words sbcl-devel;
    	... also fix error reporting in CERROR format DEFTRANSFORM
    		(oh, the irony).

    Alexey Dejneka
    Alexey Dejneka committed Aug 15, 2003
            * Fix bug in ASSQ, reported by Paul Dietz;
            * FLOAT-RADIX IGNOREs its argument as was suggested by Clemens
            * fix return type declaration for FFLOOR and friends (reported
              by Paul Dietz);
            * SB-C::DESCRIBE-COMPONENT prints blocks in IR1 component "as
            * introduced "good" (transparent) modular functions;
            ... LOGAND and LOGIOR are :GOOD;
            * on X86: transform 32BIT-LOGICAL-xxx into LOGXXX; implement
              LOGXOR-MOD32; change implementation of FAST-+-MOD32: inherit
              without changes from FAST-+/UNSIGNED=>UNSIGNED :-).
            (On X86 SB-MD5 may be implemented without 32BIT-LOGICAL-xxx
            and evil TRULY-THE.)
Commits on Aug 14, 2003

    csrhodes committed Aug 14, 2003
    	Extend FORMAT string checking to ERROR, CERROR and WARN (and
    	many internal functions too)
    	... correct the surprising number of bugs that this reveals;
    	... since one of said bugs was the *INTEXP-MAX-EXPONENT* one,
    		default this to NIL and make the error non-continuable.

    csrhodes committed Aug 14, 2003
    	Build fixes for asdf-install.  Has installed a module via cliki for
    	me, so maybe it works now.
Commits on Aug 13, 2003

    Alexey Dejneka
    Alexey Dejneka committed Aug 13, 2003
            * Fix bug in the portable implementation of SB-MD5::I;
            * add support for modular functions with argument number
              different from 2;
            * SB!C::CUT-TO-WIDTH: derive node type from the type
            * on x86 reimplement LOGNOT as a modular function and
              implement 32BIT-LOGICAL-NOT in terms of LOGNOT;
            ... remove optimization of LOGNOT with LOGAND dest.
Commits on Aug 12, 2003

    Alexey Dejneka
    Alexey Dejneka committed Aug 12, 2003
            Initial implementation of modular functions:
            * new macro: SB!C:DEFINE-MODULAR-FUNCTION;
            * optimization of LOGAND: try to cut arguments to the needed
              number of bits;
            * implemented + with 32 bit width for x86.
Commits on Aug 11, 2003

    Alexey Dejneka
    Alexey Dejneka committed Aug 11, 2003
            * Quick trick to optimize NJF's SHA1 portable implementation:
              replace LOGNOT with 32BIT-LOGICAL-NOT when its DEST is
              LOGAND with an argument of type (UNSIGNED-BYTE 32).
Commits on Aug 10, 2003
  1. <Krystof> dan-b: you've put a binary file under version control <Krys…

    telent committed Aug 10, 2003
    …tof> was that intentional?

    telent committed Aug 10, 2003
    	A full and final answer[*] to all the people who keep asking
    	for slightly tangential software to be added to contrib: to
    	wit, a contrib module to automate the downloading and
    	installing of packages that are _not_ part of contrib.
    	* (require 'asdf-install)
    	* (asdf-install:install 'xlunit)
    	$ sbcl-asdf-install xlunit
    	See contrib/asdf-install/README for more details and scary
    	security-related muttering.
    	so that files don't have to be written such that the
    	application starts as soon as they're loaded
    	[*] Ha!
Commits on Aug 8, 2003

    telent committed Aug 8, 2003
    	Timezone/DST fixes for years after 2038.  I hope.  This stuff
    	is, I can't help feeling, needlessly confusing.
    	* (multiple-value-list
               (decode-universal-time (encode-universal-time 0 0 12 28 7  2040)))
            (0 0 12 28 7 2040 5 T 0)
    	* (multiple-value-list
               (decode-universal-time (encode-universal-time 0 0 12 29 2  3040)))
    	(0 0 12 29 2 3040 5 NIL 0)
    	Someone decided that READ-LINE ought not to work for binary
    	streams, so fix up SB-EXECUTABLE not to cheat in this way.
  2. .8.2.21

    telent committed Aug 8, 2003
    	Fixes for a couple of threading bugs found by Gilbert Baumann
    	... CONDITION-WAIT should acquire the lock with the correct
    	    value (i.e. the one it had when it went to sleep), not
    	    just the default value.
    	... CONDITION-NOTIFY should get the queue spinlock before
    	    signalling, making it atomic wrt WAIT-ON-QUEUE
    	Added rudimentary thread test script that I thought I'd
    	committed on some previous occasion
Commits on Aug 7, 2003

    csrhodes committed Aug 7, 2003
    	Fix to WITH-TIMEOUT (Stig Sandoe sbcl-devel 2003-07-30)
    	... more than one form now permissible in body.
    	... don't change the interface (yet); I can't think of a
    		backward-compatible way.

    csrhodes committed Aug 7, 2003
    	Slightly-updated version of first cut at FORMAT compile-time
    	argument checking (CSR sbcl-devel 2003-08-06)
    	... only argument count for now.
Commits on Aug 6, 2003

    csrhodes committed Aug 6, 2003
    	Oops (II): Fix alpha, hppa and mips ports broken by new array types
    	... simple-array-UNsigned-byte-29, ah yes.

    csrhodes committed Aug 6, 2003
    	Oops.  Fix x86/thread build (broken by Solaris build fix):
    	... include sbcl.h before using LISP_FEATURE_SB_THREAD

    csrhodes committed Aug 6, 2003
    	Two build fixes
    	... GNU Make is gnumake under Darwin (from Michael Hudson
    		sbcl-devel 2003-07-30)
    	... conditionalize ptrace inclusion on SB_THREAD (from Carlos
    		Ungil sbcl-devel 2003-08-05)
Commits on Aug 5, 2003

    csrhodes committed Aug 5, 2003
    	Add all remaining required (*ptui*) specialized arrays:
    	... (UNSIGNED-BYTE {7,15,29,31});
    	While we're at it, make the cross-compiling dumper more likely
    		to complain if we give it weird array types; we assume
    		(unsigned-byte {8,16,32}) are generally supported by
    	Also make (ARRAY NIL) dumpable in the target compiler.
    	Tested building from cmucl, openmcl, old and new sbcl on x86 and
    		ppc.  Will need confirmation from other architectures.
Commits on Aug 3, 2003

    Alexey Dejneka
    Alexey Dejneka committed Aug 3, 2003
            * DERIVE-TYPE optimizer for AREF does not try to put a type
              assertion on its result;
            * fix type declaration for INTEGER-DECODE-FLOAT;
            * cross-compiler vertions of MAKE-{SINGLE,DOUBLE}-FLOAT now
              work with denormalized numbers;
            ... since this change causes bootstrapping problems under
                previous versions of SBCL, replace a reference to
                LEAST-POSITIVE-DOUBLE-FLOAT with a code, constructing this
Commits on Aug 2, 2003

    csrhodes committed Aug 2, 2003
    	Fix an error in the recent array-type refactoring; type checks
    	on vectors were incorrectly reported (as "unbound variable
    	SAETP" rather than a type error).
Commits on Aug 1, 2003

    csrhodes committed Aug 1, 2003
    	More PPC/Linux and x86/BSD fixes
    	... try to get recursive includes right;
    	... just include target-os.h, which itself includes target-arch-os.h
    		(thanks to Gerd Moellmann)
    	... comment out attempt number two at ppc/linux floating point, which
    		is causing problems on some ppcs (as reported by Eric
    		Marsden sbcl-devel 2003-08-01 and kmr on #lisp from the
    		Debian buildds... I wonder why this doesn't happen on
    		Daniel's iMac)
Commits on Jul 31, 2003

    csrhodes committed Jul 31, 2003
    	Oops.  Fix the other half of the FreeBSD issue
    	... adjust CALL-OUT vop sufficiently that the system doesn't tie
    		itself in knots when doing calls into C (from dtc via
    		cmucl circa 1999 :-)
Commits on Jul 30, 2003

    csrhodes committed Jul 30, 2003
    	Implement SB-EXT:CODE-DELETION-NOTE, at least partly for
    	pfdietz' benefit
    	... I'm too nice, really I am;
    	... we're going to need COERCE-TO-CONDITION in the
    	... extract (somewhat bogusly) format control and arguments from
    		the condition in the SIMPLE-CONDITION case, so that warm
    		init doesn't print every compiler note in long form.

    csrhodes committed Jul 30, 2003
    	We now build on FreeBSD again...
    	... by frobbing x86/c-call.lisp so that we can return 64-bit
    		quantities for UNIX-LSEEK/lseek();
    	and while we're fixing 64-bitness...
    	... mmap takes an off_t argument, so grovel for that and use
    		it, so fixing sb-simple-streams on Darwin and FreeBSD.
Commits on Jul 29, 2003

    csrhodes committed Jul 29, 2003
    	MacOS/Darwin merge.  Points to note:
    	... thanks to Patrik Nordebo, Pierre Mai and Brian Mastenbrook;
    	... mmap()ed simple-streams appear not to work under darwin;
    	... floating point traps are currently non-functional on both ppc
    	... on darwin, hitting ^C, then choosing CONTINUE results in a
    		memory fault;
    	... there's no lchown under darwin;
    	... x86/bsd building is also slightly non-functional currently;
    	... There's a OAOOM problem in src/compiler/ppc/c-call.lisp, and in
Commits on Jul 28, 2003

    csrhodes committed Jul 28, 2003
    	Improvements to build technology inspired by Nikodemus Siivola
    	(sbcl-devel 2003-07-20):
    	... centralize GNU Make finding functionality, and use it
    	... remove bashism from
Commits on Jul 27, 2003

    csrhodes committed Jul 27, 2003
    	Make the prototype of the GENERIC-FUNCTION class (and indeed all
    	other direct instances of GENERIC-FUNCTION) printable;  also use
    	a newline rather than a semicolon in x86-arch.c in the hope that
    	it's more acceptable to OpenBSD.

    csrhodes committed Jul 27, 2003
    	Minor sb-simple-streams frobs...
    	... (member character), not (member 'character);
    	... pass END explicitly to DEVICE-WRITE (thanks to David