- Jan 23, 2010
-
-
agoncharov authored
-
rtoy authored
default OS name for the tarballs.
-
rtoy authored
everything is defined yet. Hence, add dummy %SET-FD-STREAM-EXTERNAL-FORMAT and move the real one to fd-stream-extfmt.lisp. This builds. code/fd-stream.lisp: o Always call %SET-FD-STREAM-EXTERNAL-FORMAT, even if LISP::*ENABLE-STREAM-BUFFER-P* is NIL. code/stream.lisp: o Move %SET-FD-STREAM-EXTERNAL-FORMAT to fd-stream-extfmt.lisp. o Add dummy implementation of %SET-FD-STREAM-EXTERNAL-FORMAT. code/fd-stream-extfmt.lisp: o %SET-FD-STREAM-EXTERNAL-FORMAT moved here.
-
rtoy authored
handled by the makefile which sets -DFEATURE_SSE2 appropriately because :SSE2 is a lisp feature saved in internals.inc. This was causing the C code to be rebuilt when building x87 and then sse2 in the same tree. It's not necessary to do that and should not be done.
-
rtoy authored
set-routines so that the stream has the specified external format.
-
- Jan 22, 2010
-
-
rtoy authored
properly. (Broken in previous change for fast streams.)
-
rtoy authored
-
rtoy authored
from the source file, the file is opened using the default external format. This is not right if the file was compiled using a different external format, and we try to read it using the default format. compiler/debug-dump.lisp: o Set the INFO slot to the external format used to source files. code/debug-info.lisp: o Add comment that the INFO slot contains the external format for :FILES. (It was previously unused.) code/debug.lisp: o Open the source file with the same format as used to compile the file.
-
rtoy authored
file position, we need to convert what's left in the buffer into octets to figure out how many octets haven't been delivered yet.
-
rtoy authored
same external format used for reading the file. This ensures that these files will make sense if the source file makes sense for the given external format.
-
rtoy authored
inadvertently broken when the fast external format work was done. The position did not take into account the number of octets that had been read in but not yet processed.
-
- Dec 30, 2009
- Dec 22, 2009
-
-
rtoy authored
-
- Dec 21, 2009
-
-
rswindells authored
-
- Dec 18, 2009
-
-
agoncharov authored
-
- Dec 17, 2009
-
-
rtoy authored
o Remove check for object < 0xf0000000 in scavenge.
-
rtoy authored
o Add UNIX-GETRLIMIT and appropriate constants (for solaris and darwin/x86) code/exports.lisp: o Export them.
-
rtoy authored
areas. For sparc, this means anything below the end of the text section (to capture undefined_tramp and closure_tramp and some weird pointer object in the middle of call_into_c). For darwin/x86, we ignore 0xffffffe9. Needs to be checked on other OSes and architectures. o Move the switch statement of allowed static arrays into its own function.
-
- Dec 15, 2009
-
-
rtoy authored
exist anymore anyway. (It's called set-system-external-format.)
-
- Dec 11, 2009
-
-
rtoy authored
a new limit, we want to take the absolute value of the power!
-
- Dec 07, 2009
-
-
rtoy authored
Lisp string to a C string appropriately. Bug noted by Helmut Eller on cmucl-imp, 2009-12-06. He also provided the basic solution.
-
- Dec 06, 2009
-
-
rtoy authored
instead of spreading it everywhere. o Add WITHOUT-GCING in MAKE-STATIC-VECTOR to make sure nothing moves. (Not sure this is necessary.) o Do the same in FREE-STATIC-VECTOR o Add WITHOUT-INTERRUPTS in FINALIZE-STATIC-VECTORS to make sure clear the weak pointer value and actually free the vector.
-
- Dec 05, 2009
-
-
rtoy authored
This is done by a simple mark-and-sweep GC of the static vectors. When scavenging the spaces, we mark any static vectors by setting the MSB of the header word. After GC is done, an *after-gc-hooks* function finds all of the static vectors that are not marked and frees them. For marked static vectors, we clear the mark bit. code/array.lisp: o Add *STATIC-VECTORS* to keep track of all static vectors that have been allocated. o Update MAKE-ARRAY - to allow generation of static simple unboxed arrays (1D arrays without an array header). - Push a weak pointer to the static vector onto *STATIC-VECTORS* o Add function FREE-STATIC-VECTOR o Add function FINALIZE-STATIC-VECTORS to free static vectors when they are no longer referenced. lisp/gencgc.c: o Update scavenge to check for static vectors. If we find a static vector, mark the static vector by setting the MSB of the header word.
-
- Dec 01, 2009
-
-
rtoy authored
Carl. o Clean up implementation a bit so that we don't have :malloc all over.
-
- Nov 30, 2009
-
-
rtoy authored
-
rtoy authored
on an idea from Carl and Lynn Quam's foreign vector code that he sent many years ago. The static arrays will be GCed if nothing references them. The static arrays are currently limited to strings, 8, 16, and 32-bit integers (signed and unsigned), single and double floats, and complex single and double floats. Static arrays are not adjustable because adjusting an array can change the address if the array grows. (Ok if the array shrinks, but not implemented.) To indicate a static array, the data portion of the vector header word is set to 1. It is normally 0 for all other Lisp vectors. code/array.lisp: o Add :ALLOCATION keyword arg to MAKE-ARRAY to allow allocation of static vectors. Do the appropriate thing for static arrays. o Add MAKE-STATIC-VECTOR. This is Lynn's foreign vector stuff rewritten in Lisp instead of the original mix of Lisp and C. o Add STATIC-ARRAY-P to tell if an array is static or not. o Signal errors in MAKE-ARRAY and ADJUST-ARRAY for invalid options with static arrays. code/describe.lisp: o Indicate if the array is static. compiler/fndb.lisp: o Tell compiler about new keyword argument, :allocation, for MAKE-ARRAY.
-
- Nov 25, 2009
- Nov 21, 2009
-
-
rtoy authored
-
- Nov 20, 2009
-
-
rtoy authored
o Fix typo.
-
- Nov 10, 2009
-
-
rtoy authored
-
- Nov 04, 2009
-
-
rtoy authored
double-double floats and complex double-double floats.
-
- Nov 02, 2009
-
-
rtoy authored
amd64-dd-branch.
-
rtoy authored
-
rtoy authored
sources. No real attempt has been made to make it work, but the cross-compile does create a kernel.core, and the C code compiles (on openSuSE 10.3). The resulting kernel.core does not yet work. Use cross-x86-amd64.lisp as the cross-compile script. This is intended to be cross-compiled using the 20a release for Linux, and only supports x87. The sse2 support has not be ported yet. tools/cross-scripts/cross-x86-amd64.lisp: o Update cross-compile with some missing constants, and frob new symbols. tools/clean-target.sh: o Remove amd64f files too. code/pred.lisp: o Define predicates for double-doubles for bootstrapping to work around recursive known function problems with these predicates. code/sap.lisp: o Define int-sap with (unsigned-byte 64) type declaration. (May not be needed?) code/unix-glibc2.lisp: o Build fails defining map_failed to (int-sap -1). Just hard-wire to 0 for now so we can build. compiler/float-tran.lisp: o Add missing conditional for %complex-double-double-float. compiler/amd64/float.lisp: o Merge double-double support for amd64. Not really tested yet. compiler/amd64/parms.lisp: o Update to match x86 build. In particular, get the space address correct and update the static symbols. compiler/amd64/type-vops.lisp: o DYLAN-FUNCTION-HEADER-TYPE no longer exists. compiler/amd64/vm.lisp: o Add double-double storage classes and register definitions. lisp/Config.amd64: o Bring in line with Config.x86 and friends. lisp/Linux-os.c: o Bring amd64 code up-to-date with x86/linux code. lisp/Linux-os.h o Need to include sys/ucontext.h to get ucontext defined. (Why?) o Also define __USE_GNU so we get the register offsets in the ucontext defined. (Why?) lisp/amd64-arch.c: o Change struct sigcontext to os_context_t. o Use SC_PC instead of context->sc_pc. o Merge some changes in from x86 version, like SC_EFLAGS. May need more work. lisp/amd64-assem.s: o Use rbx instead of ebx for jmp. lisp/amd64-lispregs.h: o Define SC_REG, SC_PC, SC_SP using the new x86 style. lisp/backtrace.c: o Remove inline assembly for now until I figure out what the amd64 version should be. lisp/gencgc.c: o Conditionalize out weak hash table support for now. lisp/gencgc.h: o Set PAGE_SIZE for amd64. (Is 4096 right?) lisp/globals.h: o Export current_dynamic_space_free_pointer and current_auto_gc_trigger like for x86.
-
- Oct 29, 2009
-
-
rtoy authored
-
- Oct 28, 2009
-
-
rtoy authored
complex and floats ensure that the float is converted to a complex with the correct imaginary part. The failed tests from Maxima (rtest_gamma) now pass. (Almost. The required tolerance is a little too tight for sse2, mostly due to a slightly inaccurate exp function. But that's libc's fault, not CMUCL's fault.)
-
rtoy authored
junk in the high part of the xmm register. This causes some tests in maxima to fail. o Same fix for adding/subtracting a complex and a float. The vops need to be examined carefully to make sure we keep the invariant that the high part is zero for double-float values in XMM registers.
-
- Oct 20, 2009
-
-
rtoy authored
downloads/experimental/cross-x86-amd64.lisp.
-