- Mar 27, 2007
- Mar 23, 2007
-
-
rtoy authored
silly bug that (float <neg bignum> 1w0) was returning a positive result instead of negative. o Rename DOUBLE-DOUBLE-FLOAT to DOUBLE-DOUBLE-FLOAT-FROM-BITS to match other functions and to make it separate from the same function in the KERNEL package. o Modify DOUBLE-DOUBLE-FLOAT-FROM-BITS to look at the bignum and extract out the pieces better. Look for a pattern <53 bits> <zeroes> <53 bits> where <zeroes> is a set of consecutive zero bits. We use the 2 53-bit sections to create the double-double-float. o Make DOUBLE-DOUBLE-FLOAT-FROM-BITS honor the sign. o Add BIGNUM-FLOAT-DIGITS to figure out how many bits of the bignum should be used to create the float. o Call BIGNUM-FLOAT-DIGITS from BIGNUM-TO-FLOAT instead of using FLOAT-FORMAT-DIGITS.
-
- Mar 22, 2007
-
-
rtoy authored
-
- Mar 21, 2007
- Mar 20, 2007
-
-
rtoy authored
exception. This was happening when the faulting FP instruction was in the delay slot of a branch. The PC was incremented to the branch target, and hence had the wrong information. The FPQ structure has the right information. code/sparc-svr4-vm.lisp: o Add FPQ structure so we can access the information about the faulting FP instruction. compiler/sparc/float.lisp: o Extract the correct information about the faulting FP instruction instead of from the PC.
-
rtoy authored
-
- Jan 23, 2007
-
-
rtoy authored
and two-arg comparision working. They're no longer needed.
-
- Jan 20, 2007
-
-
fgilham authored
source comment associated with change.
-
- Jan 18, 2007
-
-
rtoy authored
-
rtoy authored
Extend LOG2 function to handle more cases, and make LOG call LOG2 appropriately, and add LOG2-DD to handle the double-double-float cases.
-
rtoy authored
sign. This caused (FLOAT -1/9 1w0) to return -0.11111111111111109877529972638715w0 instead of 0.111111111111111111111111111111111w0.
-
- Jan 16, 2007
-
-
rtoy authored
print/read consistency because "foo.~01~ is printed as "foo.~1~". This could be fixed in other places, but it seems best not to allow leading zeroes in the version number. Patch from Madhu, cmucl-imp, 2007-01-14.
-
- Jan 13, 2007
-
-
fgilham authored
-
- Jan 11, 2007
-
-
fgilham authored
return value is discarded. Since (adjust-array) may return a new array, this is wrong.
-
- Dec 22, 2006
-
-
rtoy authored
another issue with uninitialized &aux variables. (defstruct (foobar (:constructor make-foobar (xxx &key (aaa nil) (bbb nil) &aux (foobar-data xxx) (aaa (or aaa (getf foobar-data :aaa) 1)) (bbb (or bbb (getf foobar-data :bbb) (1+ aaa)))))) (aaa (required-argument) :type fixnum) (bbb (required-argument) :type fixnum)) (make-foobar nil) -> #<foobar :aaa 1 :bbb 2> But CMUCL gives type errors. To fix Albert's issue, modify CREATE-BOA-CONSTRUCTOR to keep track of the &aux vars separately from the other arglist vars. Adjust CREATE-VECTOR-CONSTRUCTOR, CREATE-LIST-CONSTRUCTOR, CREATE-STRUCTURE-CONSTRUCTOR, and CREATE-FIN-CONSTRUCTOR to take an extra arg for the &aux vars. For CREATE-STRUCTURE-CONSTRUCTOR, we only put declarations for the other arglist vars. To make sure we store the right kinds of objects into the slots, we also wrap (the <type> init) for each initial value. Also CLHS 3.4.6 has an example of a boa constructor using an aux variable without an initializer. CMUCL was not handling that right. Modify CREATE-BOA-CONSTRUCTOR to change the initializer to use (or <aux> slot-default-value) to get the correct default value into the slot if the aux variable doesn't.
-
- Dec 19, 2006
-
-
cshapiro authored
definition, if the symbol is symbol macro, return the expansion. Otherwise, if the symbol is a local definition but not a symbol macro, return the symbol and report no expansion. Previously, the otherwise case was not handled and macroexpand-1 fell through in error to test forms for global cases. Among other things, this caused the expansion of global symbol macros shadowed by lexical variable bindings.
-
- Dec 02, 2006
-
-
rtoy authored
o Need to clear out the individual invalid operation bits when clearing the invalid exception bit. code/exports.lisp: compiler/ppc/parms.lisp: o Export FLOAT-INVALID-OP-1-BYTE. (Needs a better name.)
-
- Nov 16, 2006
-
-
rtoy authored
o Pass the modes to GET-FP-OPERANDS compiler/ppc/float.lisp: o If the destination register is the same as one of the source registers, an overflow or underflow exception will have replaced the source register with the result. In that case, replace the source value with NIL to indicate we don't know. (We could recompute the source from the result, but there would be a round-off error.)
-
- Nov 14, 2006
-
-
rtoy authored
is single-float.
-
rtoy authored
code/float-trap.lisp: o Set FP modes now. o Clear out sticky bits in SIGFPE handler code/ppc-vm.lisp: o Add (setf sigcontext-floating-point-modes) to set the FP mode. compiler/ppc/parms.lisp: o Add fields for various invalid operations bits. o Fix float-fast-bit
-
- Nov 08, 2006
-
-
rtoy authored
dynamic-space-overflow-warning-hit.
-
- Oct 02, 2006
-
-
rtoy authored
o Add a new :WHEREIN-ONLY option for trace, which is like :WHEREIN, but only if the immediate caller is one of the listed functions instead of anywhere in the backtrace. general-info/release-19d.txt: o Update for :WHEREIN-ONLY
-
- Aug 21, 2006
-
-
rtoy authored
can now read and print -0w0. code/float.lisp: o Adjust float-sign so that we get the correct sign when double-double-floats are used. o Adjust FLOAT-RATIO to call %MAKE-DOUBLE-DOUBLE-FLOAT so that we preserve the sign of the number. This is safe because the components are known to be properly scaled. compiler/float-tran.lisp: o Use %MAKE-DOUBLE-DOUBLE-FLOAT in %DOUBLE-DOUBLE-FLOAT to preserve the sign of the original float. This is safe because the components are known to be properly scaled. o Add a FLOAT-SIGN deftransform to handle DOUBLE-DOUBLE-FLOAT.
-
rtoy authored
-
rtoy authored
*READ-INTO-SIMPLE-ARRAY-RECOGNIZED-TYPES* so that READ-VECTOR can read binary data from streams of those types. Fixes Trace ticket 7.
-
- Aug 18, 2006
-
-
rtoy authored
o Replace the magic value #x80000000 with +eq-based-hash-value+. lisp/gencgc.c: o Replace the magic value 0x80000000 with EQ_BASED_HASH_VALUE. o When freeing the hash entry, we forgot to reset the hash-vector entry to EQ_BASED_HASH_VALUE.
-
rtoy authored
tables. Use boot-2006-08-1-cross to cross-compile. During worldload, you'll get a restart. Choose the CLOBBER-IT restart. bootfiles/19c/boot-2006-08-1-cross.lisp: o Cross-compile script to mark that a cross-compile is needed. Nothing fancy, just load up the example scripts. code/hash-new.lisp: o Update the allowed values for the weak-p slot of a hash table. o Change hash table printer to print out the test and weak style. o Update MAKE-HASH-TABLE to allow other values for :weak-p keyword arg and set the weak-p slot appropriately. o Produce an error if a weak key, key-and-value, or key-or-value table is created but the test is not EQ or EQL. compiler/ppc/parms.lisp: compiler/sparc/parms.lisp: o Add :KEY, :VALUE, :KEY-AND-VALUE, and :KEY-OR-VALUE symbols to the static symbols because C code needs them. lisp/gencgc.c: o Add necessary support to handle the new hash types.
-
- Aug 16, 2006
-
-
rtoy authored
o Add a new slot to the hash-table structure for GC to use for linking weak tables together. (Previously we used the weak-p slot for this. Let's make it explicit, now. Plus, this allows us to use weak-p to indicate other types of weak tables, should they be implemented.) lisp/gencgc.c: o Update defstruct appropriately. o Use the new next-weak-table slot to chain the weak tables together. o Previously we scanned the weak tables in several places in the code. However, this scanning also removed entries. I don't think we want that because later scans could make a key valid. Thus: - Change scav_hash_entries so that it doesn't remove a hash-table entry unless told to. - Add new function to scavenge weak tables without removing a weak entry. - Adjust scan_weak_tables to remove weak entries. NOTE: When building, you'll be asked twice about the hash-table structure changing size. Just select the CLOBBER-IT restart in both cases.
-
- Aug 14, 2006
-
-
rtoy authored
than 'EQ. o Make the hash-table printer indicate if the hash table is weak.
-
- Aug 11, 2006
-
-
rtoy authored
'lisp::empty-hash-entry instead. Not the best solution, since the user can still access this symbol, but being an implementation-specific, non-exported symbol, this seems acceptable. Should try to use the unbound marker instead.
-
- Jul 21, 2006
-
-
rtoy authored
key-value vector contains the desired value, so use that wherever we need to. :EMPTY should only be used for initializing the kv vector.
-
- Jul 20, 2006
-
-
rtoy authored
hash-table.
-
rtoy authored
lisp/gencgc.c: o Make last_free_page non-static so Lisp can see it. o Add get_page_table_info so Lisp can easily get at the flags and bytes_used slots of a page table entry. code/room.lisp: o Add gencgc-page-size constant. o Fix SPACE-BOUNDS for sparc and ppc with gencgc. The dynamic-space-free-pointer is something different, and we really wanted the last_free_page. o Update MAP-ALLOCATED-OBJECTS to handle gencgc (from sbcl). Unallocated pages are skipped, as well as anything at the end of a page that is not in use.
-
- Jul 19, 2006
-
-
rtoy authored
so make dd-%sin, dd-%cos, dd-%tan handle that.
-
rtoy authored
using __kernel_rem_pio2. Use the accurate reduction in dd-%sin, dd-%cos, dd-%tan. The original version were renamed dd-%%sin, dd-%%cos, dd-%%tan because we still need them to evaluate the functions for small args. This also has the side effect that we don't signal overflow for moderately large args (~1w50) anymore.
-
rtoy authored
o Implement ABS for complex double-double-floats.
-
rtoy authored
cos, tan.
-
rtoy authored
lisp/Config.ppc_darwin o Compile e_rem_pio2.c and k_rem_pio2.c code/irrat.lisp: o Update the arg reduction code to support ppc. We call out to the C sin, cos, and tan functions, after the argument has been accurately reduced.
-