- Aug 25, 2003
-
-
gerd authored
bootstrapping. * src/bootfiles/18e/boot16.lisp: New file. * src/docs/cmu-user/extensions.tex (Dynamic-Extent Declarations): New section. * src/compiler/x86/macros.lisp (dynamic-extent-allocation): Rename from stack-allocation, save an instruction. (allocation): Don't call trust-dynamic-extent-declaration-p. * src/compiler/x86/alloc.lisp (%dynamic-extent-start) (%dynamic-extent-end): New vops. (list-or-list*): Add constant arg dynamic-extent. (fixed-alloc): Likewise. * src/compiler/generic/vm-ir2tran.lisp (do-fixed-alloc): Call fixed-alloc with dynamic-extent arg. * src/compiler/hppa/alloc.lisp (%dynamic-extent-start) (%dynamic-extent-end): Add dummy vops. * src/compiler/mips/alloc.lisp: * src/compiler/ppc/alloc.lisp: * src/compiler/alpha/alloc.lisp: * src/compiler/rt/alloc.lisp: Likewise. * src/compiler/seqtran.lisp (mapper-transform): Add dynamic-extent declarations. * src/compiler/node.lisp (continuation): Add slot dynamic-extent. (cleanup): Add :dynamic-extent to type of slot kind. * src/compiler/knownfun.lisp (dynamic-extent-closure-safe): New attribute. * src/compiler/ir2tran.lisp (ir2-stack-allocate): New function. (ir2-convert-closure): Handle dynamic-extent case differently. (%dynamic-extent, %dynamic-extent-start, %dynamic-extent-end) <ir2-convert>: New optimizers. (list, list*): Handle dynamic-extent. * src/compiler/ir1tran.lisp (*trust-dynamic-extent-declarations*) (*dynamic-extent-trace*): New variables. (trust-dynamic-extent-declaration-p): New function. (process-dynamic-extent-declaration) (dynamic-extent-allocation-p, dynamic-extent-closure-args) (gen-%dynamic-extent, with-dynamic-extent): New functions/macros. (ir1-convert-combination): Handle dynamic-extent closure args. (ir1-convert-combination-args): Add arg dynamic-extent-args. Set continuation-dynamic-extent for these args. (process-dynamic-extent-declaration): Rewritten. (ir1-convert-dynamic-extent-bindings): New function. (ir1-convert-special-bindings): Call it. (ir1-convert-lambda-body): Handle dynamic-extent rest lists. (let): Handle dynamic-extent vars. (let*): Call ir1-convert-dynamic-extent-bindings. * src/compiler/globaldb.lisp (*trust-dynamic-extent-declarations*) (trust-dynamic-extent-declaration-p): Remove. * src/compiler/fndb.lisp: Add dynamic-extent-closure-safe attribute to assorted functions. * src/compiler/envanal.lisp (environment-analyze): Call find-dynamic-extent-safe-closures. (emit-cleanups): Handle :dynamic-extent cleanups. (*suppress-dynamic-extent-closure-safe*): New variable. (mark-dynamic-extent-safe-closures) (find-dynamic-extent-safe-closures): New functions. * src/compiler/byte-comp.lisp (compute-produces-and-consumes): Treat :dynamic-extent like :tagbody cleanups. * src/code/exports.lisp ("C"): Export ir2-stack-allocate, %dynamic-extent, %dynamic-extent-start, %dynamic-extent-end. * src/code/byte-interp.lisp (%dynamic-extent): (%dynamic-extent-start, %dynamic-extent-end): New functions. (toplevel): Enable block compilation.
-
- Aug 06, 2003
-
-
toy authored
{alpha,hppa,mips,ppc}/alloc.lisp: Add dynamic-extent arg to the make-closure VOP. (Not tested.)
-
- Aug 05, 2003
-
-
toy authored
DYNAMIC-EXTENT arg. (Untested on these platforms, except for sparc.)
-
- Aug 03, 2003
-
-
gerd authored
have according to CLtS. Found by Paul Dietz. Use boot14.lisp to bootstrap. * src/compiler/generic/utils.lisp (fixnumize): Renamed from fixnum. * src/bootfiles/18e/boot14.lisp: New file. * src/code/exports.lisp ("VM"): Export fixnumize. * src/assembly/alpha/arith.lisp, src/assembly/alpha/array.lisp: * src/assembly/alpha/assem-rtns.lisp, src/assembly/hppa/arith.lisp * src/assembly/hppa/array.lisp, src/assembly/hppa/assem-rtns.lisp * src/assembly/mips/alloc.lisp, src/assembly/mips/arith.lisp * src/assembly/mips/array.lisp, src/assembly/mips/assem-rtns.lisp * src/assembly/mips/bit-bash.lisp, src/assembly/ppc/arith.lisp * src/assembly/ppc/array.lisp, src/assembly/ppc/assem-rtns.lisp * src/assembly/rt/alloc.lisp, src/assembly/rt/arith.lisp * src/assembly/rt/array.lisp, src/assembly/rt/assem-rtns.lisp * src/assembly/sparc/arith.lisp, src/assembly/sparc/array.lisp * src/assembly/sparc/assem-rtns.lisp, src/assembly/x86/arith.lisp * src/assembly/x86/array.lisp, src/assembly/x86/assem-rtns.lisp * src/compiler/alpha/alloc.lisp, src/compiler/alpha/arith.lisp * src/compiler/alpha/array.lisp, src/compiler/alpha/call.lisp * src/compiler/alpha/move.lisp, src/compiler/alpha/nlx.lisp * src/compiler/alpha/static-fn.lisp, src/compiler/alpha/subprim.lisp * src/compiler/alpha/values.lisp, src/compiler/generic/utils.lisp * src/compiler/hppa/alloc.lisp, src/compiler/hppa/arith.lisp * src/compiler/hppa/array.lisp, src/compiler/hppa/call.lisp * src/compiler/hppa/move.lisp, src/compiler/hppa/nlx.lisp * src/compiler/hppa/static-fn.lisp, src/compiler/hppa/subprim.lisp * src/compiler/hppa/values.lisp, src/compiler/mips/alloc.lisp * src/compiler/mips/arith.lisp, src/compiler/mips/array.lisp * src/compiler/mips/call.lisp, src/compiler/mips/move.lisp * src/compiler/mips/nlx.lisp, src/compiler/mips/static-fn.lisp * src/compiler/mips/subprim.lisp, src/compiler/mips/values.lisp * src/compiler/ppc/alloc.lisp, src/compiler/ppc/arith.lisp * src/compiler/ppc/array.lisp, src/compiler/ppc/call.lisp * src/compiler/ppc/move.lisp, src/compiler/ppc/nlx.lisp * src/compiler/ppc/static-fn.lisp, src/compiler/ppc/subprim.lisp * src/compiler/ppc/values.lisp, src/compiler/rt/alloc.lisp * src/compiler/rt/arith.lisp, src/compiler/rt/array.lisp * src/compiler/rt/call.lisp, src/compiler/rt/move.lisp * src/compiler/rt/nlx.lisp, src/compiler/rt/static-fn.lisp * src/compiler/rt/subprim.lisp, src/compiler/rt/values.lisp * src/compiler/sparc/alloc.lisp, src/compiler/sparc/arith.lisp * src/compiler/sparc/array.lisp, src/compiler/sparc/call.lisp * src/compiler/sparc/move.lisp, src/compiler/sparc/nlx.lisp * src/compiler/sparc/static-fn.lisp, src/compiler/sparc/subprim.lisp * src/compiler/sparc/values.lisp, src/compiler/x86/alloc.lisp * src/compiler/x86/arith.lisp, src/compiler/x86/array.lisp * src/compiler/x86/call.lisp, src/compiler/x86/cell.lisp * src/compiler/x86/macros.lisp, src/compiler/x86/memory.lisp * src/compiler/x86/move.lisp, src/compiler/x86/nlx.lisp * src/compiler/x86/pred.lisp, src/compiler/x86/static-fn.lisp * src/compiler/x86/subprim.lisp, src/compiler/x86/values.lisp: Use fixnumize instead of fixnum.
-
- Jul 21, 2003
-
-
emarsden authored
(DEF-SMALL-DATA-VECTOR-FROBS) for Alpha backend. This bug is triggered by operations on bit arrays. From Daniel Barlow via SBCL.
-
- Jul 20, 2003
-
-
emarsden authored
platforms.
-
- Mar 06, 2003
-
-
pmai authored
Attached is the full patch containing the addition of the ISTREAM-MEMORY-BARRIER VOP, the change to GENTRAP to use the bugchk opcode, and also a boot file to allow the patched sources to be compiled with an unpatched binary.
-
- Feb 16, 2003
-
-
emarsden authored
Extra static symbols for the recent core-search-path changes, for the Alpha architecture.
-
- Feb 12, 2003
-
-
emarsden authored
preparation for the 18e release. This change makes it necessary to intervene during the rebuild: when loading the FASL files, a continuable error related to fasl-file-version mismatch will be signalled. Say (setq cl::*skip-fasl-file-version-check* t) then select the CONTINUE restart, and the build should proceed without problems.
-
- Oct 07, 2002
-
-
toy authored
o Fix a few typos in code. o Delete a few unused symbols from various places o Use something better than %%RWSEQ-EOF%% for the eof marker. o Add target-foreign-linkage vars for the PPC and HPPA ports to aid cross-compilation. (The values are very likely wrong, but they're not used yet.) Based on a larger patch from Eric Marsden.
-
- Mar 31, 2002
-
-
pw authored
- change the FASL file format to store fasl-file version as uint32, rather than a single octet. This requires small changes to the FASL dumper and two FOP functions - change the FASL-FILE-FORMAT to #x18d for each of the backends - change the byte-code version number to #x18d - make the FASL file version checking errors continuable - add a variable CL::*SKIP-FASL-FILE-VERSION-CHECK* that avoids the version check - add a bootfile that bootstraps this change Loading an old FASL file results in the following behaviour: ,---- | Error in function COMMON-LISP::CHECK-VERSION: | #<Stream for file "/usr/local/lib/cmucl/lib/subsystems/defsystem-library.x86f"> | was compiled for fasl-file version 3E3F02, but this is version 18D | Restarts: | 0: [CONTINUE] Load #<Stream for file "/usr/local/lib/cmucl/lib/subsystems/defsystem-library.x86f"> anyway | 1: Return NIL from load of #p"modules:defsystem-library". | 2: Return NIL from load of "home:.cmucl-init". | 3: [ABORT ] Skip remaining initializations. `----
-
- Feb 20, 2001
-
-
dtc authored
two register args popped by call_into_c, avoiding potential stack corruption. Noted by Daniel Barlow.
-
- Oct 23, 2000
-
-
dtc authored
rather than arithmetic shift to form the result. From Juergen Weiss.
-
- Oct 16, 2000
-
-
dtc authored
-
- Jan 17, 2000
-
-
dtc authored
unsigned-nums. Including a union of both these primitive type restrictions results in a template type that can not be achieved by either of them. Problem noted by Raymond Toy.
-
- Nov 11, 1999
-
-
dtc authored
been removed and this produced a compile error.
-
- Feb 20, 1999
-
-
pw authored
From: Julian Dolby <dolby@csag-226-8.UCSD.EDU> Enclosed below are diffs against the cvs repository as of Feb 12; aside from minor changes like using different include files (e.g. validate.h instead of x86-validate.h in Linux-os.c) and adding alpha-linux specifics unix-glibc2.lisp, there are two code changes. The first is to signal handling. I had to put the POSIX-SIGS ifdefs into places used by alpha but not by x86, and I ifdef'ed out most of the linux #define kludges for signals for alpha linux, since alpha linux uses OSF/1 signals rather than linux ones. The second is that the trick of or'ing 2 into the reg_ALLOC address to cause faults does not work on alpha linux since the kernel traps and handles the unaligned access; I did not find a way to change that kernel behavior, so I changed the code to or (1<<63) into the address to cause a seg fault, and then check, in the seg fault handler, to see if the high-order address bits are set. One change I made is to the memory layout (lisp/alpha-validate.h and compiler/alpha/parms.lisp); that change is not needed to make lisp run on alpha linux, but is there because I wanted more heap space.
-
- Jul 24, 1998
-
-
dtc authored
remove unnecessary conditionals.
-
- Mar 11, 1998
-
-
dtc authored
1. Better coding of the creation of complex floats with a destination on the stack. 2. Realpart and imagpart part can now load directly from the stack saving an unnecessary load.
-
- Mar 10, 1998
- Mar 04, 1998
- Mar 03, 1998
-
-
dtc authored
slots. This allows consing to be avoided when writing to these slots as for the float type.
-
- Feb 12, 1998
-
-
dtc authored
two-arg->=, and two-arg-/= are probably required.
-
- Jan 26, 1998
- Jan 24, 1998
-
-
dtc authored
although it probably wasn't broken on the Alpha.
-
- Jan 22, 1998
-
-
dtc authored
should be a tagged-num no a positive-fixnum.
-
- Jan 21, 1998
-
-
dtc authored
Adding signed-byte 8 and 16 accessors which were trivial because there was already support for signed partial accessors. Fix a typo in define-partial-setter signed short constant.
-
dtc authored
support function. This will bring these ports inline with the x86 port making cross-compiling easier, however these are not enable yet as their require some bootstrapping.
-
dtc authored
-
- Jun 07, 1997
-
-
pw authored
-
- Apr 26, 1997
-
-
dtc authored
move-to-sap VOP because pointers need to be in descriptor-regs.
-
- Mar 17, 1997
-
-
pw authored
-
- Oct 31, 1994
-
-
ram authored
-
- Apr 30, 1994
-
-
hallgren authored
of 32.
-
- Apr 06, 1994
-
-
hallgren authored
-