Commit graph

1960 commits

Author SHA1 Message Date
Alexey Dejneka 073fc2ae57 0.8.13-dx.2:
* Differ UVL and DX LVARs in IR1 component printout.
* %LISTIFY-REST-ARGS treats DX in the same way as LIST.
* Replace (SETF (FUN-INFO-STACK-ALLOCATE-RESULT ...)) with
  DEFOPTIMIZER.
* DEFOPTIMIZER interns FUN-INFO-* into SB[!-]C.
* Physenv analysis does not insert %DYNAMIC-EXTENT-END when not
  needed.
* Pull Christophe[?] out of hell: replace *DYNAMIC-EXTENT* hack with
  MAYBE-PSEUDO-ATOMIC macro.
* Changed representation of LVAR-DYNAMIC-EXTENT: now it is a CLEANUP
  or NULL.
* LET-variable substitution does not break stack allocation.
* DX propagation in SUBSTITUTE-LVAR-USES.
2004-09-09 06:18:56 +00:00
Alexey Dejneka c57b46945b 0.8.13-dx.1:
This is an EXPERIMENTAL branch, devoted to implementation of
        stack-allocating of dynamic-extent arguments in local calls.

        * Annotate DX LVARs of arguments during local call
          recognition; areas of DX are protected with CLEANUPs;
        * the final decision on stack allocation is made by physical
          anvironment analysis with help of new "optimizer" kind
          STACK-ALLOCATE-RESULT;
        * stack analysis finds appropriate places to free stack; note,
          that stack-allocated objects cannot be moved;
        * LIST and LIST* on X86 can allocate result on stack.

        Note, that this version does not work on anything except X86.
2004-08-08 05:44:14 +00:00
Nathan Froyd 0223ed57f7 0.8.13.40:
Un-32-bit-ify bignum.lisp in various ways, even trying to
	  do a quick fixup on the comments to remove 32-bit
	  assumptions.  Hasn't been tested with a real 64-bit
	  implementation, mind you.

	There's a *lot* of code for doing bignum digit divides
	  (anything prefixed with #!+32x16-divide);  no platform
	  currently uses it, but it might be worth twiddling with
	  the code to see if it's an improvement over the
	  VOP currently implementing %FLOOR.  Certainly it'd be
	  nice to move more code into Lisp-land.
2004-08-08 03:13:53 +00:00
Nikodemus Siivola 5aebec6d3a 0.8.13.39: REQUIRE SANITY
* Detect infinite recursion in require, and signal a
	       reasonable error before running out of file-handles.
            * Prettier REQUIRE cross-reference in the manual, even
	       though this makes it slightly more brittle.
2004-08-07 18:21:05 +00:00
Nikodemus Siivola b2decb8f7e 0.8.13.38: Conditionally clean
* Delete unused MAKE-LOAD-FORM for ENCAPSULATED-CONDITION,
               which was accidentally left over from the first round of
               COMPILER-ERROR refactoring.
            * Indulge in a little OAOOM, getting the full
               ENCAPSULATED-CONDITION into the cross-compiler, so that
               we can have sensible error messages during build.
2004-08-07 16:57:54 +00:00
Nikodemus Siivola c2a1fc60b9 0.8.13.37: Logically not quite
* Fix misplaced paren in the deftransform for
               SB-KERNEL:WORD-LOGICAL-NOT. No new tests, as
               this is thoroughly caught by the old ones.
2004-08-07 16:52:22 +00:00
Nikodemus Siivola d1441ffce0 0.8.13.36: NO-WORD-BYTES?
Oops: the recent move of N-WORD-BYTES from target/parms.lisp to
  generic/early-vm.lisp broke build on Sparc, and in all likelihood on
  PPC as well. Moved NUMBER-STACK-DISPLACEMENT a tad later in the
  build (from target/parms.lisp to target/vm.lisp) and all is well
  with Sparc. PPC not tested.
2004-08-07 12:20:10 +00:00
Nathan Froyd 1ca02b016c 0.8.13.35:
* SB!VM:WORD-LOGICAL-FOO transforms were being defined per-backend,
	  when in reality they can be shared.  Make it so.
	* The `length' slot in SB!VM:PRIM-SLOT-OBJECT wasn't being used;
	  delete it, but retain the :LENGTH option in
	  SB!VM:DEFINE-PRIMITIVE-OBJECT, because that *is* being used.
	  (mostly to generate offsets for GENESIS header files)
2004-08-07 02:24:48 +00:00
Nathan Froyd ee94b07644 0.8.13.34:
* Start using Helmut Eller's cute computed features expression
	  to distinguish between 32-bit and 64-bit pieces of code.
	  Particularly useful because architecture names are not
	  hardcoded; this idiom may have to be squirreled away in a
	  function somewhere.
	* SB!VM:WORD-SHIFT and SB!VM:N-WORD-BYTES were being defined
	  the same way in every backend; move their definitions to
	  generic/early-vm for MORE OOAO.  Tidy up comments in various
	  backends for remaining constants--you can almost see the
	  common code cut-and-pasted in each backend...
2004-08-06 22:55:16 +00:00
Nathan Froyd dc6275b2e4 0.8.13.33:
Clean up a few more 32-bit assumptions and add exports for
	  useful constants
2004-08-06 18:43:45 +00:00
Nathan Froyd e0697854ef 0.8.13.32:
Various C fixes, mostly to make gcc a little quieter
2004-08-06 15:37:35 +00:00
Nathan Froyd bfe145acc0 0.8.13.31:
Handle FIXME in src/code/fop.lisp:
	... rename *LOAD-SYMBOL-BUFFER* to *FASL-SYMBOL-BUFFER*
	... bind it on entrance to LOAD-AS-FASL
2004-08-05 17:45:37 +00:00
Christophe Rhodes efea157110 0.8.13.30:
Fix bug in ctor optimization reported by Axel Schairer
	cmucl-help 2004-08-05:
	... quote the key initargs if we're going to call a :before
		or :after initialization method;
	... write a test case based on his example.
2004-08-05 16:47:23 +00:00
Christophe Rhodes 0f534f7e3e 0.8.13.29:
Inline allocation on the x86 isn't a universal win.
	... OK, then, optimize for the increasingly-common case
		(high-spec machines)
	... and provide a backend-subfeature for those advanced users
		who know where their sbcl is going to run.
2004-08-05 16:37:04 +00:00
Christophe Rhodes 21ff212864 0.8.13.28:
Improve metacycle resolution (from test case from Bruno Haible
	"vicious metacycle when ..." sbcl-devel 2004-08-02)
	... find the slot reader specialized on the nearest class in the
		CPL, not just in the identical class;
	... incorporate Bruno's test case.
2004-08-05 13:12:56 +00:00
Christophe Rhodes eba7d5d4fd 0.8.13.27:
Make make-config.sh work better on SunOS (thanks to Vincent
	Arkensteijn)
2004-08-05 10:43:08 +00:00
Nathan Froyd ace140856e 0.8.13.26:
* Rename {32,64}BIT-LOGICAL-FOO to WORD-LOGICAL-FOO in all ports.
	  This builds and passes all tests on x86, but I am unsure about
	  its effects on other ports.
	* Declare SB!VM:WORD with DEF!TYPE so it is known to both the
	  host compiler and the cross-compiler (and we can use it in
	  DEFKNOWN declarations, e.g.)
	* Fix errors in debug.impure.lisp test
2004-08-04 22:15:31 +00:00
Nathan Froyd b9a60d8c09 0.8.13.25:
* add new COUNT transform on bitvectors; add tests for same
	* begin to use SB!VM:WORD instead of (UNSIGNED-BYTE foo) where
	  appropriate
2004-08-04 15:55:04 +00:00
Christophe Rhodes 5f07d8690b 0.8.13.24:
MORE FASTER BIGNUMS
	... merge Juho Snellman's bignum-gcd improvement (sbcl-devel
		2004-08-02)
	... don't wait for sparc numbers since accidents occurred with
		source trees.
2004-08-04 12:18:12 +00:00
Christophe Rhodes 8b3e66baac 0.8.13.22:
Been a while since I've done this...
	... add forgotten waitpid-macros.c file from previous commit
2004-08-04 11:45:19 +00:00
Christophe Rhodes 14a1a09073 0.8.13.22:
SB-POSIX enhancements
	... fork, wait and waitpid from Thomas Burdick (sbcl-devel
		2004-05-10)
	... C wrappers for waitpid macros
	... chroot from Istvan Marko (sbcl-devel 2004-06-07)
2004-08-04 10:54:17 +00:00
Christophe Rhodes 61dc1d5c0b 0.8.13.21:
Implement INPUT-STREAM-P and OUTPUT-STREAM-P methods on
	FUNDAMENTAL-STREAM
	... should do the right thing, even in the presence of multiple
		inheritance.
2004-08-04 10:45:31 +00:00
Nathan Froyd b192aee93a 0.8.13.20:
LESS MAGIC NUMBERS (and LESS GRAMMAR)
	... removed a fair number of numeric constants from alpha support
	    files, replacing them with their symbolic equivalents from
	    generic/early-vm.lisp.  probably haven't rooted out all of
	    the offenders, but it's a start.
2004-08-03 17:28:47 +00:00
Nathan Froyd fe36a56422 0.8.13.19:
Alpha/Tru64 build now completes make-{host,target}-1.sh
	... fix new LOGCOUNT vop (*cringe*)
	... setpgrp() fix for RUN-PROGRAM's C support
	... -taso flag now properly passed to cc
	... assembly code rearranged to satisfy Digital's as
2004-08-02 17:28:24 +00:00
Nathan Froyd c152a399a4 0.8.13.18:
* add some new Alpha instructions
	* provide a better LOGCOUNT for Alpha
	* stop GENESIS from complaining about duplicate functions
	  on Alpha/Tru64
2004-08-02 16:23:54 +00:00
Christophe Rhodes 78689792e8 0.8.13.17:
Merge partly-working fix for bug 61
	... I think this fixes it on sparc, ppc and maybe mips.
	... alpha is broken because it seems that just about every
		backtrace has a "bogus stack frame", maybe arising from
		the PAL stuff?  Dunno.
	... x86 is broken because, well, erm, dunno.
2004-08-02 12:29:29 +00:00
Christophe Rhodes a3cf4cf656 0.8.13.16:
Delete README from sb-bsd-sockets.asd
2004-08-02 11:42:55 +00:00
Nikodemus Siivola ece943d690 0.8.13.15: Oh Bother, Where Art Thou?
* Add missing sb-bsd-sockets.texinfo -- this was the whole
                point of the previous texinfoization exercise, after all.
2004-08-02 09:27:35 +00:00
Nikodemus Siivola 8a3c76ab97 0.8.13.14: Texinfoization continues
* Move documentation for SB-BSD-SOCKETS into user manual,
                deleting docs (FAQ, TODO, NEWS, and doc.lisp remain yet).
            * Automatically generate class-precedence-list information
                for classes and conditions in the manual, ditto for
                documented slots.
            * Start documentation for each contrib on a new page for
                clarity. (twiddle, twiddle)
2004-08-01 23:33:05 +00:00
Christophe Rhodes 73f066da2f 0.8.13.13:
Fix the logic in computing symbols for parse-vop-operands
	... the count was all wrong.  Fix it.
	... (bug is detected in make-host-2, so if I've got it wrong
		again it'll show up: but this works on the alpha)
2004-07-30 11:25:55 +00:00
Christophe Rhodes ad5cd25382 0.8.13.12:
Fix for division-of-integer-by-constant-zero bug
	... don't perform the 2^k transform for k = -1 (which when
		rounded to an integer gives zero...)
	... tests.
2004-07-30 10:45:30 +00:00
Daniel Barlow fb85331225 0.8.3.11
Inline allocation for GENCGC ...

	 ... add allocation-inline, which does direct access to
	 allocation region fields based on %fs (for threads)
	 or &boxed_region (unithread), falling through to
	 assembler routines and eventual call to alloc()
	 if we've run out of space in the region

	 ... relevant assembler glue, partly borrowed from CMUCL
	 but with changes to do thread-local access when appropriate

	 ... patch alloc() to use boxed_region instead of
	 all_threads->region on unithread builds

	 ... clean up cut/pasted code in allocation-notinline
2004-07-29 22:41:26 +00:00
Nikodemus Siivola bcb7a9c9d1 0.8.13.10: I don't think we're in lisp-land anymore...
* Display foreign function names in backtraces on platforms
              with dladdr. Essentially a port of Helmut Eller's patch
              for CMUCL. Works fine on x86 and Sparc at least.
           * Clean up some spurious sb-alien package prefixes from
              foreign.lisp while at it.
2004-07-29 11:29:52 +00:00
Nikodemus Siivola e29e584efd 0.8.13.9: Referendum Alienum
* Fixed: mutually referent alien structure definitions.
	      Test for the same. Reported by Rick Taube on sbcl-help
              sbcl-help 26 Jul 2004.
           * Fixed: WITH-ALIEN object can now refer to structures
              locally defined in the same WITH-ALIEN. Test for the
              same.
2004-07-29 00:49:10 +00:00
Christophe Rhodes ba2e958087 0.8.13.8:
Fix some backtrace problems for sparc.
	... mips, alpha probably still broken.
2004-07-28 08:43:29 +00:00
Christophe Rhodes f5c7c1e83c 0.8.13.7:
Just for fun: implement the Intel prefetch instructions, and
	conditionally use (one of) them in typetag checking
	... no, it doesn't make anything noticeably faster; why do you
		ask?
2004-07-27 17:56:34 +00:00
Christophe Rhodes 6a1dcd75ab 0.8.13.6:
Merge disassembly integration in sb-sprof (Juho Snellman
	26-07-2004 sbcl-devel)
	... deeply cute.
2004-07-27 11:49:33 +00:00
Christophe Rhodes a87f7ecb8b 0.8.13.5:
Fix backtrace on ppc.  (Brian Downing sbcl-devel 2004-07-19)
	... use BUG to report breakdown in logic;
	... some tests fail on x86, so comment them out;
	... untested as yet on non-x86 non-ppc.
2004-07-27 11:16:17 +00:00
Christophe Rhodes 88bcaaccbc 0.8.13.4:
Performance improvement to sb-sprof from Juho Snellman
	(sbcl-devel "Less sb-sprof consing" 2004-07-20)
	... make the included QSORT more specialized
2004-07-26 16:43:12 +00:00
Christophe Rhodes 7118efc35a 0.8.13.3:
Improve BIGNUM-GCD ever so slightly
	... BIGNUM-INDEX isn't actually usefully INDEX, because we
		require the ability to index individual bits.  Divide
		the type by 32, then.
	... rearrange bignum.lisp slightly to declare types of functions
		before their use.  (Aside: I'm not sure why I need the
		type declaration, given that the final compiler can
		derive the type fine.  Maybe the cross-compiler is
		lobotomized in some significant way here?)
2004-07-26 10:24:40 +00:00
Christophe Rhodes 47c2f13d9c 0.8.13.2:
Fix for one egregious excessive use of symbols, in VOP parsing.

	Symbols for arguments, results and temporaries must be unique
	per-VOP, not necessarily globally unique.  Ensure that this is
	so, saving approximately 2000 symbols on x86.
2004-07-26 10:18:00 +00:00
Christophe Rhodes 64fb1f7507 0.8.13.1:
Implement MAP-REFERENCING-OBJECTS, and make the implementation
	of LIST-REFERENCING-OBJECTS use it.
	... note potential badness of cutoff point in space search.
		(could this be the problem in ROOM T?)
	Improvements to stale-symbols script.
	... if there is more than one reference, don't bother chasing
		all the others down;
	... closures can contain stuff;
	... print symbols and references a little more nicely.
2004-07-26 10:15:39 +00:00
William Harold Newman db1814b928 0.8.13:
release, tagged as sbcl_0_8_13
2004-07-25 20:57:11 +00:00
Andreas Fuchs 992302a10c 0.8.12.55:
Really return the host-ent's address in sb-bsd-sockets::make-host-ent
2004-07-25 16:54:35 +00:00
Andreas Fuchs 891ba76c84 0.8.12.54:
Various rather urgent sb-grovel and sb-bsd-sockets fixes.

	* sb-grovel uses WITH-ALIEN now for the WITH-* macros,
	  to allow use of SB-ALIEN:ADDR on variables allocated that way.
	* sb-bsd-sockets: name-service code now return addresses as vectors
	  again.
	* sb-bsd-sockets: fix socket-receive into relative workingness
	  again: use (deref (deref array) i) instead of (deref array i);
	  type-convert the results
2004-07-25 11:31:36 +00:00
Nikodemus Siivola 4a59cac803 0.8.12.53: Increment +FASL-FILE-VERSION+ due to changed %DEFPACKAGE
signature (change happened with package-locks).
2004-07-25 08:03:33 +00:00
William Harold Newman 1998ef5334 0.8.12.52:
reduced (ROOM T) functionality down to just (ROOM),
		since (ROOM T) is flaky on my machine again and
		I don't know how to fix it
	logged the problem in BUGS
2004-07-23 21:26:59 +00:00
Andreas Fuchs 55e886b775 0.8.12.51:
Make socket-receive allocate a buffer if it's passed a length arg.

	Reported on CLL by Miguel Arroz; I removed that bit of code in .10
	and forgot to put it back in.
2004-07-22 12:08:00 +00:00
Christophe Rhodes 3bdadd34bc 0.8.12.50:
Various fixes from Vincent Arkesteijn
	... just text fixes for now
2004-07-22 07:46:31 +00:00
Nikodemus Siivola c696666acb 0.8.12.49: MORE CORRECT ENGLISH
* Fix a trivaial typo.
            * Grammar fix grammar.
2004-07-22 00:18:40 +00:00