- Aug 18, 2006
-
-
rtoy authored
-
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
-
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 17, 2006
-
-
rtoy authored
-
- 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
- Aug 12, 2006
-
-
rtoy authored
the table could change the reachability of some weak pointer values. (Mentioned by Gabor Melis in #lisp).
-
- 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.
-
rtoy authored
zero for normal vectors and non-zero for the key/value vector in a hash table.
-
rtoy authored
scavenge some stuff there. (Not 100% sure we need this either, but Lynn's weak hash table test still passes.)
-
rtoy authored
support, and update *features* to :cmu19c instead of :cmu19a.
-
rtoy authored
would be broken but the value was still alive. Now only scan the weak pointers at the very end (like we used to), instead with the weak hash tables.
-
- Aug 10, 2006
-
-
cshapiro authored
-
- Aug 07, 2006
-
-
rtoy authored
-
- Aug 04, 2006
-
-
rtoy authored
(key) hash tables. Then use it in several places where we need to scan the weak objects before closing the region. This fixes all of the problems with weak pointers and weak hash tables reported by Lynn Quam, cmucl-imp, 2006/07/04. Not 100% sure the solution is all correct, but it seems to be working.
-
- Jul 21, 2006
- 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
Someone running FreeBSD and NetBSD should verify this is correct.
-
rtoy authored
-
rtoy authored
-
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
-
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.
-
rtoy authored
accurately reduce the arg and therefore compute the value of trig functions accurately. lisp/Config.linux_gencgc: o Compile e_rem_pio2.c and k_rem_pio2.c code/irrat.lisp: o Disable %sin, %cos, %tan functions. o Implement %sin, %cos, and %tan to call the fdlibm routine __ieee754_rem_pio2 to do argument reduction before calling the sin, cos, tan vops. compiler/x86/float.lisp: o Disable the vops for %sin, %cos, and %tan, so the Lisp code in irrat.lisp is used.
-
rtoy authored
-
- Jul 18, 2006
- Jul 17, 2006
-
-
rtoy authored
interrupt_handle_now directly. (For debugging purposes.)
-
- Jul 14, 2006
- Jul 13, 2006