- Sep 28, 2007
-
-
rtoy authored
MAPHASH needs to grab the kv-vector from the hash table for each iteration because the hash table may have been rehashed. (This mostly reverts the code to the previous version, where this bug was introduced.)
-
- 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.
-
- Jun 30, 2006
-
-
rtoy authored
The merge is from the tag "double-double-irrat-end". The double-double branch is now obsolete. The code should build without double-double support (tested on sparc) as well as build with double-double support (tested also on sparc).
-
- Oct 21, 2005
-
-
rtoy authored
underflow traps are enabled and rehash-threshold is very small.
-
- Sep 30, 2005
-
-
rtoy authored
:newest are equivalent in CMUCL. src/pathname.lisp: o Make EQUAL compare pathnames such that version nil and :newest are equal. src/hash-new.lisp: o Adjust sxhash to treat :version nil and :newest the same. (Version :newest is hashed as if it were nil.)
-
- Sep 26, 2005
-
-
rtoy authored
components of a pathname object.
-
- Sep 08, 2004
-
-
rtoy authored
boot6-sxhash to bootstrap this change for ppc.
-
- Jun 09, 2004
-
-
rtoy authored
they are arithmetically equal. Do this by adding 0.0 to the number, which does nothing to the number, except convert -0.0 to 0.0.
-
- May 17, 2004
-
-
rtoy authored
zero on creation, and is computed when sxhash is called, which is then cached.
-
- May 15, 2004
-
-
rtoy authored
instead of a random value, just like on sparc.
-
- May 14, 2004
-
-
rtoy authored
itself. Only for sparc currently. Doesn't lazily compute the symbol hash yet. Simple test shows a 5% increase in compilation speed, despite making make-symbol significantly slower. * src/code/hash-new.lisp (internal-sxhash): Use the symbol-hash slot instead of computing the hash value. * src/compiler/generic/new-genesis.lisp (allocate-symbol): Write out the sxhash value of the symbol into the symbol-hash slot. * src/compiler/globaldb.lisp (info-hash): Update to use the symbol hash instead of computing the sxhash. * src/code/symbol.lisp (make-symbol): Compute the symbol hash when creating the symbol. * src/compiler/sparc/cell.lisp ((symbol-hash)): Add vop to extract out the symbol hash from a symbol. * src/compiler/generic/objdef.lisp: Rename the unused slot to hash, so we can make it the symbol hash.
-
- Dec 01, 2003
-
-
toy authored
prevents division by zero or overflow errors if the rehash-threshold is too small.
-
- Sep 25, 2003
-
-
toy authored
and *RUNTIME-FEATURES* and setting them appropriately as files are loaded so that recompiling CMUCL produces a result with the same set of features. *RUNTIME-FEATURES* is a subset of *FEATURES* that is written out to internals.h so the C code can be compiled appropriately. A simple bootstrap with boot17 is needed.
-
- Jul 15, 2003
-
-
gerd authored
on interpreted functions.
-
- Jun 18, 2003
-
-
gerd authored
package COMMON-LISP which LISP uses, so that COMMON-LISP no longer has the non-ANSI nickname LISP. To bootstrap, use boot13.lisp as target:bootstrap.lisp with pmai's build scripts, and do a full compile. * src/bootfiles/18e/boot13.lisp: Change for all the package changes. * src/code/exports.lisp: New package common-lisp, which lisp uses. * src/tools/worldload.lisp: * src/tools/setup.lisp: Use cl-user instead of user. Use lisp:: instead of cl::. * src/tools/worldcom.lisp: * src/tools/snapshot-update.lisp: * src/tools/pclcom.lisp: * src/tools/mk-lisp: * src/tools/hemcom.lisp: * src/tools/config.lisp: * src/tools/comcom.lisp: * src/tools/clxcom.lisp: * src/tools/clmcom.lisp: * src/pcl/defsys.lisp: * src/motif/lisp/initial.lisp: * src/interface/initial.lisp: * src/hemlock/lispmode.lisp (setup-lisp-mode): Use cl-user instead of user. * src/code/save.lisp (assert-user-package): * src/code/print.lisp (%with-standard-io-syntax): Find cl-user package instead of user. * src/code/package.lisp (package-locks-init): Add lisp. (package-init): Don't add user nickname to cl-user. * src/code/ntrace.lisp (*trace-encapsulate-package-names*): Add common-lisp. * src/code/hash.lisp (toplevel): * src/code/hash-new.lisp (toplevel): Use in-package :lisp instead of :common-lisp. * src/code/float-trap.lisp (sigfpe-handler): Don't qualify floating-point-inexact with ext:. * src/pcl/simple-streams/strategy.lisp (sc): * src/pcl/simple-streams/null.lisp (null-read-char): * src/pcl/simple-streams/internal.lisp (allocate-buffer) (free-buffer): * src/pcl/simple-streams/impl.lisp (%check, %read-line) (%peek-char, %read-byte): * src/pcl/simple-streams/file.lisp (open-file-stream) (device-close): * src/pcl/simple-streams/classes.lisp (simple-stream) (device-close): * src/pcl/macros.lisp (toplevel): * src/pcl/braid.lisp (lisp::sxhash-instance): * src/pcl/env.lisp (toplevel): * src/compiler/generic/objdef.lisp (symbol-hash): * src/code/stream.lisp (read-sequence, write-sequence): * src/code/macros.lisp (defmacro, deftype): * src/code/eval.lisp (interpreted-function): * src/code/defstruct.lisp (defstruct): * src/code/debug.lisp (debug-eval-print): Use lisp:: instead of cl::.
-
- May 06, 2003
-
-
gerd authored
like structures.
-
- Mar 27, 2003
-
-
gerd authored
creating weak tables in #-gencgc. * lisp/gencgc.c (gc_assert): Ensure macro expansion is always a C statement. (struct hash_table): New struct. (HASH_TABLE_SIZE, EQ_HASH): New macros. (weak_hash_tables): New variable. (survives_gc, u32_vector, free_hash_entry, record_for_rehashing) (scav_hash_entries, scav_weak_entries, scan_weak_tables) (scav_hash_vector): New functions. (scav_vector): Removed. (scav_weak_pointer, trans_weak_pointer, scan_weak_pointers): Cleaned up. (gc_init_tables): Use scav_hash_vector instead of scav_vector. (garbage_collect_generation): Call scan_weak_tables. (everywhere): Add casts, change format strings, etc. to placate the compiler. * lisp/FreeBSD-os.h: Fix a function prototype.
-
- Mar 22, 2003
-
-
gerd authored
= pcl:class part. To get it booted from 18e, cross-compile using boot1.lisp as bootstrap.lisp in pmai's build scripts, then do a normal compile with boot2.lisp as bootstrap.lisp with the resulting Lisp. * code/byte-interp.lisp, code/defstruct.lisp, code/describe.lisp: * code/error.lisp, code/exports.lisp, code/hash-new.lisp: * code/hash.lisp, code/macros.lisp, code/misc.lisp: * code/package.lisp, code/pred.lisp, code/sharpm.lisp, code/type.lisp: * compiler/dump.lisp, compiler/fndb.lisp, compiler/globaldb.lisp: * compiler/proclaim.lisp, compiler/typetran.lisp, compiler/xref.lisp: * compiler/generic/primtype.lisp, compiler/generic/vm-type.lisp: Changes for to use kernel::class etc. * code/class.lisp (toplevel): Shadow class, built-in-class etc. (class): Give it conc-name %class-. (toplevel) [#+bootstrap-lisp-class=pcl-class]: Define old accessors. (everywhere): Use new class accessors. * compiler/generic/vm-fndb.lisp (%make-instance): Change from unsafe to flushable and movable. * code/ntrace.lisp (expand-trace, untrace): Changes for method tracing. * code/profile.lisp (profile, profile-all, unprofile): Method profiling. * pcl/*.text, pcl/bench.lisp, pcl/extensions.lisp: * pcl/fast-init.lisp, pcl/precom1.lisp, pcl/precom4.lisp: * pcl/structure-class.lisp, pcl/user-instances.lisp: Removed. * tools/pclcom.lisp: Changes for my PCL and lisp:class = pcl::class.
-
- Mar 10, 2003
-
-
gerd authored
Treat NIL as a symbol, to produce the same result as the DEFTRANSFORM for sxhash/symbol in c:generic/vm-tran.lisp.
-
- Nov 28, 2002
-
-
pmai authored
This commit is a slight rewrite of the previously committed fix, which sxhash-instance work even when handed non-PCL instances and funcallable-instances, while enabling the use of stored hash-codes for all PCL funcallable-instances.
-
- Nov 21, 2002
-
-
pmai authored
Committed a slightly reworked patch by Gerd Moellmann that introduces new hash-code slots into (funcallable-)standard-instances, which get initialized to persistent, sequential numbers upon instance creation, thus providing better sxhash/equal hashing.
-
- Jul 10, 2002
-
-
toy authored
* (pcl:class-precedence-list (find-class 'null)) should have symbol occurring before list, as per CLHS. * minor changes to certain error conditions: eg trying to set DEFAULT-DIRECTORY to a non-existent directory should raise a condition of type FILE-ERROR. (Some of these changes are from Alexey Dejneka, via SBCL). * cleanup of some Hemlock-related symbols that shouldn't be exported when :no-hemlock is defined.
-
- Mar 30, 2001
-
-
pw authored
internal-sxhash doesn't deal correctly with strings that have fill pointers; consequently, equal hash tables don't work correctly either. >From 18c: *(defvar foo (make-array 32 :element-type 'base-char :adjustable t :fill-pointer 7)) FOO * (setf (subseq foo 0) "typedef") "typedef" * (sxhash foo) 182883518 * (sxhash "typedef") 194663162 * (defvar h (make-hash-table :test #'equal)) H * (setf (gethash foo h) 'bar) BAR * (gethash "typedef" h) NIL NIL Attached is a fix. Tim
-
- Nov 04, 2000
-
-
dtc authored
from Eric Marsden.
-
- Jul 06, 2000
-
-
dtc authored
causing problems: o Redefine coerce-to-values to convert a single value type into (values type), rather than the former definition (values type &rest t). A single value type such as fixnum is now equivalent to (values fixnum). Values-type-union and values-type-intersection will canonicalise values types with a single value such as (values fixnum) back to a single value type such as fixnum. o Now when the compiler makes assertions for the first value of continuations that may be generating multiple values it asserts the type as (values type &rest t), or as (value &optional type &rest t) if it is not sure that the continuation does generate a value. o Enhance the type check generation to better handle the now common values types with optional and rest arguments. Add the new function Values-types-asserted which converts asserted optional and rest arguments to required arguments that have been proven to be delivered, Thus an assertion such as (values &optional fixnum &rest t) will generate a fixnum type check if the proven type if (values t). o The compiler is now far more likely to pickup attempts to use an assertion to select a subset of values. For example (the (values fixnum) (values x y)) will generated a compiler warning. o Update single values type assertions where appropriate to clarify that the received values may be optional or that multiple values may be received. For example, a macro argument which had been asserted to be a list via (the list ,...) would now be asserted to be (the (values &optional list &rest t)) etc. o Have the IR1 translator for THE convert single value types into (values &optional type &rest t) so that code such as (the fixnum (values x y)) will still work acceptably. This does not restrict the possible type assertions as the values types may be used and are not modified.
-
dtc authored
using a single value type assertion following values '(the index (values ...)), use a multiple values types assertion '(the (values index t) ...), which is simpler for the compiler.
-
dtc authored
only the first value.
-
- Jan 16, 2000
-
-
dtc authored
fill-pointer must be respected for vectors but was being ignored for some vector types.
-
- Jan 15, 2000
-
-
dtc authored
string and simple-vectors were giving a different hash to the other vector types.
-
- Jan 14, 2000
- Jan 13, 2000
-
-
dtc authored
work of William H. Newman and Cadabra Inc. Special case characters within sxhash returning the character code rather than returning a constant, as per the new equalp-hash. Declare hash-table-count and hash-table-size inline so they compile to inline slot accesses.
-
dtc authored
consistent with the integer sxhash transform.
-
dtc authored
to be compiled to fast native code, and to make use of the sign bit. Fix and update the sxhash double-float transform to be consistent. Add a transform for the sxhash of long-floats.
-
- Dec 04, 1999
-
-
dtc authored
-