Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to MAIN:||(view) (annotate)|
Merge intl-branch 2010-03-18 to HEAD. To build, you need to use boot-2010-02-1 as the bootstrap file. You should probably also use the new -P option for build.sh to generate and update the po files while building.
Merge Unicode work to trunk. From label unicode-utf16-extfmt-2009-06-11.
Remove package nicknames USER from COMMON-LISP-USER. Add a new 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::.
* bootfiles/18e/boot.lisp: Bootstrap files for the lisp:class = 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.
Entomotomy Bug: sxhash-on-pcl-instances-returns-42 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.
Entomotomy Bug: sxhash-on-pcl-instances-returns-42 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.
Reworking of the values-type system to overcome a number of inconsistencies 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.
When asserting a single value from truncate etc, rather than 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.
Clarify an assertion on the result of round, firstly receiving the only the first value.
The equalp-hash algorithms for vectors and arrays differs because the fill-pointer must be respected for vectors but was being ignored for some vector types.
Ensure that equal-hash is consistent across the various vector types; string and simple-vectors were giving a different hash to the other vector types.
Modify the sxhash-bits-byte to be 29 bits wide rather than just 23 bits. It is typically better not the throw away bits of the key, and the hash may be a 29 bit unsigned fixnum. Similarly modify sxmash to use all 29 bits rather than just 26 bits.
Special case bit vectors within sxhash, returning a useful hash for them rather than a hash of 1.
Add support for EQUALP hash tables; by Douglas Crosher based on the 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.
Fix the handling of fixnums in sxhash; the fixnum hash must be consistent with the integer sxhash transform.
Modify the sxhash double-float and long-float functions to allow them 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.
Fix headed boilerplate.
Fix SXMASH util for SXHASH to not be stupid.
Fix compiler warnings.
Don't export hash-table-weak-p from the common-lisp package.
Only interpose a weak-pointer between the hash-table-bucket-key and the real key if the hash table is supposed to be weak.
Added weak hash table support. Added gengc support.
new structure branch & tuning, see new_struct
Changed the interface to user defined hash tables. There is now a function DEFINE-HASH-TABLE-TEST that takes three arguments: the symbol name of the hash table test, the test function, and the hash function. It updates *hash-table-tests*, which is now internal.
Added EXT:*HASH-TABLE-TESTS* and made MAKE-HASH-TABLE look in it for any :TEST types that it doesn't understand. Entries in EXT:*HASH-TABLE-TESTS* should be lists of the three values: the name, the test function, and the hash function. The test function takes two objects and returns true iff they are the same. The hash function takes one object and returns two values: the (positive fixnum) hash value and true if the hashing depends on pointer values and will have to be redone if the object moves.
Fixed hash-table make-load-form to use the right keywords, and also to expand into smaller (and constant-size ) code.
Added some type declarations so that a call to make-array gets open coded.
Fixed a bug introduced into WITH-HASH-TABLE-ITERATOR. The macrolet body needed an extra level of quoting.
Forgot to decf the entries count in remhash.
Forgot to set the vector subtype when depositing an entry whos hashing was EQ based. Changed the hash-table print function to use ~:@P instead of assuming that it should always print ``entries.''
Missed a place where I changed a name.
Rewrote most everything. MAKE-HASH-TABLE now conforms to the X3J13 spec.
Fixed doc string for maphash to indicate that it returns NIL instead of T.
Fixed my change to make-hash-table to use let* instead of let.
Added make-load-form support. Changed make-hash-table to no longer assign arguments.
New file header with RCS header FILE-COMMENT.
Added Blaine's with-hash-table-iterator.
Took the vm: off of single-float-bits, double-float-low-bits, and double-float-high-bits because they are now in the kernel package.
Changed ``%primitive sxhash-simple-string'' to ``%sxhash-simple-string''
Added initial-elements to make-array calls.
Added a structure branch to SXHASH.
Changed SXHASH to use the float-bits primitives instead of integer-decode- float for hashing float, so that SXHASH don't gag on NaNs and infinities. Also, fixed it to not EQ hash random objects, as that is illegal.
Moved MIPS branch onto trunk; no merge necessary.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|