- Nov 30, 2009
-
-
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.
-
- Oct 18, 2009
-
-
rtoy authored
faster reads on external-formats. This is done by adding an additional buffer to streams so we can convert the entire in-buffer into characters all at once. To build this change, you need to do a cross-compile using boot-2009-10-1-cross.lisp. Using that build, do a normal build with these sources. For a non-unicode build use boot-2009-10-01.lisp with a 20a non-unicode build. code/extfmts.lisp: o Add another slot to the extfmts for copying the state. o Modify EF-OCTETS-TO-STRING and OCTETS-TO-STRING to support the necesssary changes for fast formats. This is incompatible with the previous version because the string is not grown if needed. code/fd-stream-extfmt.lisp: o Set *enable-stream-buffer-p* to T so we have fast streams. code/fd-stream.lisp: o Add new slots to support fast strams. o In SET-ROUTINES, initialize the new slots appropriately. o Update UNREAD-CHAR to be able to back up in the string buffer to unread. o Add implementation to copy the state of an external format. code/stream.lisp: o Change %SET-FD-STREAM-EXTERNAL-FORMAT to be able to change formats even if we've already converted the buffer with a different format. We reconvert the buffer with the old format until we reach the current character. Then the remaining octets are converted using the new format and stored in the string buffer. o Add FAST-READ-CHAR-STRING-REFILL to refill the string buffer, like FAST-READ-CHAR-REFILL does for the octet in-buffer. code/struct.lisp: o Add new slots to hold the string buffer, the current index, and length. These are needed for the fast formats. code/sysmacs.lisp: o Update PREPARE-FOR-FAST-READ-CHAR, DONE-WITH-FAST-READ-CHAR, and FAST-READ-CHAR to support the string buffer. code/string.lisp: o Microoptimization of SURROGATEP to reduce the number of branchs. general-info/release-20b.txt: o Update with these changes pcl/simple-streams/external-formats/utf-16-be.lisp: pcl/simple-streams/external-formats/utf-16-le.lisp: pcl/simple-streams/external-formats/utf-16.lisp: o These formats actually have state, so update them to take a handle an initial state. These are needed if the string buffer ends with a leading surrogate and the next string buffer starts with a trailing surrogate. The conversion needs to combine the surrogates together.
-
- Oct 16, 2009
-
-
rswindells authored
Linux and FreeBSD.
-
- Oct 15, 2009
-
-
rtoy authored
and MACHINE-VERSION return incorrect values on Solaris. Rewrite it to work for both unicode and non-unicode builds, thereby fixing MACHINE-TYPE and MACHINE-VERSION.
-
rtoy authored
use arch_support_sse2 here in case we're running an x87 core on a chip with SSE2 support.
-
rtoy authored
unsetenv.
-
- Oct 14, 2009
-
-
agoncharov authored
As suggested by Madhu <madhu@cs.unm.edu>, removed the ext:getenv function that I had introduced a few days ago. Instead, four foreign function definitions are introduced, following Madhu's proposal. The four functions: unix-getenv unix-setenv unix-putenv unix-unsetenv are defined both in unix.lisp and unix-glibc2.lisp.
-
- Oct 11, 2009
-
-
agoncharov authored
-
- Oct 10, 2009
-
-
agoncharov authored
-
agoncharov authored
-
- Oct 02, 2009
- Sep 30, 2009
-
-
rtoy authored
lisp:codepoint.
-
- Sep 29, 2009
-
-
rtoy authored
-
- Sep 28, 2009
- Sep 20, 2009
-
-
agoncharov authored
change will be re-submitted in about a week, as a part of a bigger change.)
-
agoncharov authored
-
- Sep 19, 2009
-
-
rtoy authored
-
- Sep 17, 2009
-
-
rswindells authored
-
rswindells authored
-
rtoy authored
o Add VM:CHAR-BITS to the list of frobbed symbols. o Replace OLD-PPC with OLD-VM (a nickname for OLD-PPC).
-
rtoy authored
o Add VM:CHAR-BITS to the list of frobbed symbols.
-
rtoy authored
-
rtoy authored
-
- Sep 15, 2009
-
-
rtoy authored
-