Parent Directory | Revision Log
|Links to HEAD:||(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.
Restart internalization work. This new branch starts with code from the intl-branch on date 2010-02-12 18:00:00+0500. This version works and LANG=en@piglatin bin/lisp works (once the piglatin translation is added).
Mark translatable strings; regenerate cmucl.pot and cmucl.po
Add (intl:textdomain "cmucl") to the files to set the textdomain.
Add AMOP style custom slot allocation. Patch from Sverker Wiberg, cmucl-imp, 2005-01-18.
* src/pcl/slots-boot.lisp (ensure-accessor) <setf>: Call slot-missing with value being assigned.
SLOT-VALUE, (SETF SLOT-VALUE), SLOT-BOUNDP, SLOT-MAKUNBOUND not returning values specified by the standard when SLOT-MISSING/SLOT-UNBOUND are called and return. Found by Paul Dietz. * src/pcl/std-class.lisp (compute-effective-slot-definition): Return slot-unbound's primary value. * src/pcl/slots.lisp (slot-value): Return slot-missing's primary value. (set-slot-value): Always return the new value. (slot-boundp): Return a boolean equivalent of slot-missing's primary value. (slot-makunbound): Always return the instance. (slot-value-using-class): Return slot-unbound's primary value. (slot-unbound-internal): Likewise. * src/pcl/slots-boot.lisp (ensure-accessor): Return slot-missing's primary value for slot-value, a boolean equivalent of its primary value for slot-boundp, and always return the value for setf. (accessor-set-slot-value): Always return the new value. (make-optimized-std-reader-method-function): Return slot-unbound's primary value. (make-optimized-std-slot-value-using-class-method-function) (make-internal-reader-method-function): Likewise. * src/pcl/method-slot-access-optimization.lisp (inline-slot-unbound): Return slot-unbound's primary value.
More SLOT-VALUE etc. on conditions. * src/pcl/slots.lisp (slot-value-using-class) (setf slot-boundp-using-class) <condition-class>: New methods. * src/pcl/std-class.lisp (initialize-internal-slot-functions): Use slot-name->class-table. (shared-initialize): Call update-pv-table-cache-info. (compute-slots) <around condition-class>: New method. * src/pcl/slots-boot.lisp (ensure-accessor): Use slot-name->class-table. (get-optimized-std-accessor-method-function) (get-optimized-std-slot-value-using-class-method-function): Handle condition classes. * src/pcl/methods.lisp (*condition-slot-value-using-class-method*) (*condition-setf-slot-value-using-class-method*) (*condition-slot-boundp-using-class-method*): New vars. (condition-svuc-method, set-condition-svuc-method): New functions. (update-std-or-str-methods): Handle conditions. * src/pcl/generic-functions.lisp (condition-class-p): New gf. * src/pcl/dfun.lisp (make-accessor-table): Use slot-name->class-table. * src/pcl/defs.lisp (*the-condition-class*): New var. (slot-name->class-table): New function. (condition): New class. (*early-class-predicates*): Add condition-class-p. * src/pcl/braid.lisp (bootstrap-meta-braid) (bootstrap-initialize-class): Add condition-class stuff. (bootstrap-make-slot-definitions): Simplified. (bootstrap-make-slot-definition): Use slot-name->class-table.
* src/pcl/slots-boot.lisp (ensure-accessor): Remove unmatched ).
Code cleanup. Use EXTENSIONS package to reduce clutter. * src/pcl/defsys.lisp ("PCL", "WALKER"): Use ext. * src/pcl/pkg.lisp ("PCL", "WALKER"): Use ext. * src/pcl/*.lisp: Remove ext: prefixes. * src/pcl/low.lisp (symbolicate*): Renamed from symbolicate. * src/pcl/std-class.lisp (shared-initialize): * src/pcl/defs.lisp (get-built-in-class-symbol) (get-built-in-wrapper-symbol): * src/pcl/braid.lisp (initial-classes-and-wrappers) (bootstrap-meta-braid): Use symbolicate*. * src/pcl/macros.lisp (dolist-carefully): Removed. (true, false, zero): Moved to defclass.lisp. (printing-random-thing-internal): Removed. (printing-random-thing): Removed. (rassq): Removed. (*keyword-package*): Removed. (make-keyword): Removed; import from cl. (memq, delq, assq): Macros removed, import from ext. (get-declaration): Moved to boot.lisp, where it's used. * src/pcl/boot.lisp (get-declaration): Moved here from macros.lisp. * src/pcl/methods.lisp (named-object-print-function, print-object): * src/pcl/low.lisp (print-std-instance): * src/pcl/dfun.lisp (print-dfun-info): * src/pcl/cache.lisp (print-cache, print-wrapper): * src/pcl/boot.lisp (make-early-gf): Use print-unreadable-object instead of printing-random-thing. * src/pcl/defclass.lisp (true, false, zero): Moved here from macros.lisp. * src/pcl/methods.lisp (legal-qualifiers-p) (legal-specializers-p): Use dolist.
* src/pcl/slots-boot.lisp (ensure-accessor): Initialize the slot's entry in *name->class->slotd-table* in case the load-time-value is executed before initialize-internal-slot-functions had a chance to run.
MOP bug fix for problem with (SETF SLOT-VALUE-USING-CLASS) reported by Kevin Rosenberg <email@example.com> on cmucl-imp, Tue, 22 Apr 2003 13:28:23 -0600. There's a test case in the thread on cmucl-imp. * src/pcl/methods.lisp (update-slot-value-gf-info): Moved here from slots-boot.lisp. (get-accessor-method-function): Don't pass nil wrappers to get-secondary-dispatch-function. See comment there. (update-gf-dfun): Remove unused code. * src/pcl/slots-boot.lisp (get-accessor-from-svuc-method-function): Move to methods.lisp, where it's used. * src/pcl/std-class.lisp (compute-slot-accessor-info): Add comment. Code cleanup. * src/pcl/std-class.lisp (compute-default-initargs): Don't use a recursive local function for something that can be done with loop in 2 lines.
* pcl/boot.lisp (parse-defmethod): Rewritten for clarity. Signal an error for most cases of null qualifiers. Improve DESCRIBE on generic functions. * pcl/env.lisp (method-specialized-lambda-list): New function. (describe-object): Use it, and use generic-function-lambda-list. * pcl/methods.lisp (generic-function-pretty-arglist) (method-pretty-arglist): Remove. * pcl/generic-functions.lisp (generic-function-pretty-arglist) (method-pretty-arglist): Remove. AMOP compliance fixes: Reintroduce class METAOBJECT, make GENERIC-FUNCTION a subclass of STANDARD-OBJECT, remove STD-OBJECT. This basically reverts a change of dtc from 1998. * code/describe.lisp (describe-instance): Check for standard-object, not pcl::std-object. * pcl/pkg.lisp ("PCL", "CLOS-MOP"): Export more stuff. * pcl/generic-functions.lisp: Remove some of the useless comments. * pcl/slots.lisp (slot-value-using-class, setf slot-value-using-class) (slot-boundp-using-class, slot-makunbound-using-class): Specialize on standard-object. * pcl/slots-boot.lisp (get-optimized-std-accessor-method-function): Remove an std-class-p case. * pcl/methods.lisp (update-std-or-str-methods): Use standard-object instead of std-object. (mec-all-classes-internal): Use *the-class-standard-object* instead of *the-class-std-object*. (class-test): Don't consider *the-class-std-object*. * pcl/low.lisp (pcl-instance-p) [deftransform]: Use standard-object instead of std-object. * pcl/init.lisp (update-instance-for-different-class) (update-instance-for-redefined-class): Specialize on standard-object instead of std-object. * pcl/dfun.lisp (accessor-values-internal, make-accessor-table) (make-accessor-table): Use *the-class-standard-object* instead of *the-class-std-object*. * pcl/defs.lisp (toplevel): Don't declare *the-class-std-object* special. (standard-object): Single superclass slot-object. (metaobject): New class. (std-object): Class removed. (specializer): Superclass metaobject. (definition-source-mixin, plist-mixin): Superclass standard-object, no metaclass. (documentation-mixin, dependent-update-mixin): No metaclass. (slot-definition, method, generic-function, method-combination): Superclass metaobject. * pcl/cache.lisp (raise-metatype): Don't consider std-class. * pcl/braid.lisp (bootstrap-meta-braid): Don't braid std-class. (bootstrap-initialize-class): Don't consider std-class.
* 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.
*** empty log message ***
Removed now obsolete and incorrect type declaration for the FUNCTION argument to MAKE-OPTIMIZED-STRUCTURE-SLOT-BOUNDP-USING-CLASS-METHOD-FUNCTION which was flushed in version 1.14.
Entomotomy Bug: redefined-classes-and-subtypep This patchset by Gerd Moellmann reenables the previous fix to this bug, without retriggering the obsolete-instance-trap-on-redefined-class bug. Additionally, this cleans up the layout-invalid vs. wrapper-state logic making the code much easier to follow.
Committed two further patches by Gerd Moellmann to remove superfluous slot-boundp checking code for structure-classes.
Minor improvement on the previous commit.
Committed patch by Gerd Moellmann which removes the unused function structure-slot-boundp, and removes code to check structure slots against +slot-unbound+, since structure slots are always bound.
Committed patch by Gerd Moellmann to rename the constant *slot-unbound* to the more fitting name +slot-unbound+.
Huge patch by Gerd Moellmann that removes PCL::ITERATE and PCL::GATHER* in favor of normal CL constructs. In a similar vein to SBCL, this patch also replaces all uses of #'(lambda ...) by just (lambda ...), and removes now-dated looking quotes in front of self-evaluating objects, like keywords and t/nil. The patch has been slightly frobbed by me, to correct a couple of slight oversights, and make more effective use of the loop facility in a number of places.
This fix is derived from the corresponding patch by Alexey Dejneka for SBCL bug 191a. It adds automatic declaration of the ftypes of generated PCL slot getter/setter and boundp GFs (those residing in package SLOT-ACCESSOR-NAME), in order to eliminate bogus undefined function warnings from the compiler.
This set of revisions brings the RELENG_18 branch up to HEAD in preparation for an 18c release.
Remove all #+ and #- conditionals from the source code. What is left is essentially Common Lisp except for explicit references to things in CMUCL specific packages.
Cleanup of the PCL directory. Removed files and conditional code for long dead lisp implementations. Some parts of the code is now a bit easier to read and (hopefully) understand.
Add CMUCL style file-comments; from Peter Van Eynde.
This (huge) revision brings the RELENG_18 branch up to the current HEAD. Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.
Define *slot-unbound* to be a constant, and adjust some of the slot unbound tests to improve the performance of the compiled code.
Rework the PCL class hierarchy to better match the disjoint instance and funcallable-instance types within CMUCL. Add the new class funcallable-standard-object, and the new class std-object as a superclass of both standard-object and funcallable-standard-object. Generic-functions are now funcallable-standard-objects implemented as FINs and disjoint from standard-objects which are implemented as instances in CMUCL, fixing some problems in the type system. This change moves the PCL implementation away from the MOP specification which requires that generic-functions be standard-objects. However ANSI CL does not require generic functions to be standard-objects and the MOP author Gregor Kiczales suggests it is appropriate for generic functions to be disjoint from standard-objects.
This commit brings the PCL repository up to release 17f and also includes the changes in the X86 1.03.7 kit. Although the 1.03.7 changes were already in the repository, the other files appear to be of early vintage and do not work with a 17f system. Hopefully all is correctly synched now.
New definition of NO-SLOT from Harris.
Changed equiv code to get-wrapper-or-nil.
September-16-92-PCL-e has been incorporated into the CMUCL sources thanks to Rick Harris.
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|