- May 05, 2003
- May 04, 2003
-
-
gerd authored
-
gerd authored
Cleanup the code involved. * src/pcl/boot.lisp (keyword-argument-processor): New function. (bind-args): Rewritten. (get-key-arg, get-key-arg1): Removed.
-
gerd authored
-
gerd authored
where it appears in the lambda list. Found by Paul Dietz. * src/code/defmacro.lisp (append-let-binding): New function. (parse-defmacro-lambda-list): Use it for &environment.
-
gerd authored
* 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.
-
gerd authored
-
gerd authored
arguments is methods. Change lambda-lists of some gfs and methods to include &key, or &key &allow-other-keys. Bugs found by Paul Dietz in his test suite. * src/pcl/boot.lisp (bind-args): Handle the case that &key is in the lambda-list, but no keyword args. (get-key-arg1): Additional argument first-time; check for invalid keyword arguments, and add number of args when true. (get-key-arg): Call get-key-arg1. (odd-number-of-keyword-arguments, invalid-keyword-argument): New functions. * src/pcl/init.lisp (make-instance) <symbol, class>: Add &key. (initialize-instance) <slot-object>: Likewise. (reinitialize-instance) <slot-object>: Likewise. (update-instance-for-different-class): Likewise. (update-instance-for-redefined-class): Likewise. (shared-initialize) <slot-object>: Likewise. * src/pcl/std-class.lisp (change-class): Likewise. * src/pcl/slots.lisp (allocate-instance) <standard-class>: (allocate-instance) <structure-class>: Likewise. * src/pcl/methods.lisp (reinitialize-instance) <standard-method>: Likewise. * src/pcl/generic-functions.lisp (change-class) (allocate-instance, update-instance-for-different-class) (update-instance-for-redefined-class): Add &key &allow-other-keys. * src/pcl/fsc.lisp (allocate-instance) <funcallable-standard-class>: Add &key. * src/pcl/std-class.lisp (make-defstruct-allocation-function): Fix a paren bug.
-
- May 03, 2003
-
-
gerd authored
Check for odd-length args if &key seen, instead of when a keyword variable was parsed.
-
gerd authored
inherited slots. This partially a change from 2002-12-24 that made compute-slots compatible with SBCL. * src/pcl/std-class.lisp (compute-slots): Map over slots in reverse cpl order so that inherited slots are more likely to get the same locations as in superclasses. * src/pcl/rt/ctor.lisp: Tests changed accordingly.
-
gerd authored
find. From Alexey Dejneka.
-
- May 02, 2003
-
-
gerd authored
shows, except that there is no test case covering this yet. * src/pcl/ctor.lisp (slot-init-forms): Generate code for initializing unbound shared slots that are not otherwise initialized.
-
gerd authored
SHARED-INITIALIZE being specified to initialize slots that are unbound, including class slots. * src/pcl/init.lisp (shared-initialize): Initialize class slots that are unbound.
-
- May 01, 2003
- Apr 30, 2003
-
-
gerd authored
for the case that more args are supplied than necessary.
-
gerd authored
cpl-or-nil instead of cpl-maybe-early.
-
gerd authored
* src/code/format.lisp (min/max-format-arguments-count) (min/max-format-args, min/max-conditional-args): New functions. * src/compiler/srctran.lisp (check-format-args): New function. (format): New transformer for simple-string format control and (<= speed space), checking number of args. (format) <transforms>: Use min/max-format-arguments-count. * src/code/package.lisp (unintern): Add missing args to format. * src/compiler/disassem.lisp (maybe-note-associated-storage-ref): Remove extraneous format arg.
-
toy authored
sparc v9.
-
gerd authored
*timed-functions*.
-
gerd authored
-
gerd authored
an assertion.
-
gerd authored
(define-condition): Parse :documentation.
-
- Apr 29, 2003
-
-
emarsden authored
Make SIMPLE-PARSE-ERROR subclass PARSE-ERROR (fixes bug in PARSE-INTEGER reported to cmucl-help by Johannes Grødem).
-
emarsden authored
Add missing return type declaration for DEFKNOWN form for %SET-FILL-POINTER.
-
gerd authored
argument type checks are constant-folded away. * src/compiler/ir1opt.lisp (constant-fold-call): In safe code, don't constant-fold a call if one of its arguments requires a type check. * src/compiler/checkgen.lisp (probable-type-check-p): Return true for :error type-checks if safety = 3. Fix ENDP.* test failures when running tests compiled. From SBCL, basically. * src/compiler/ir1opt.lisp (ir1-optimize, ir1-optimize-if): Don't eliminate if-tests requiring type checks. * src/compiler/checkgen.lisp (continuation-check-types): Add parameter force-hairy. (generate-type-checks): Call continuation-check-types with force-hairy true for :error continuations in safe code.
-
gerd authored
Detected by Paul Dietz' tests. * src/pcl/std-class.lisp (make-defstruct-allocation-function): New function. (shared-initialize) <structure-class>: Use it.
-
gerd authored
AMOP compliant. From Kevin Rosenberg on cmucl-imp 2003-04-29. * src/pcl/std-class.lisp (direct-slot-definition-class): (effective-slot-definition-class): Change methods accordingly. (make-direct-slotd): Apply direct-slot-definition-class to initargs instead of funcalling it. (compute-effective-slot-definition): Likewise for effective-slot-definition-class. * src/pcl/generic-functions.lisp (direct-slot-definition-class) (effective-slot-definition-class): Make initargs a &rest arg.
-
- Apr 28, 2003
- Apr 27, 2003
-
-
toy authored
the non-ANSI feature of making -0 and +0 different in type-specifiers. Internal code still assumes this in various places, however. Since our type system is much smarter now than when this was written (and handles type unions and member types much better), perhaps we should clean this up?
-
toy authored
-
toy authored
-
gerd authored
source transforms so that they don't accept more than one index, for better error messages.
-
- Apr 26, 2003
-
-
gerd authored
from superclasses. * src/pcl/std-class.lisp (update-shared-slot-values): New function. (update-class): Call it. (shared-initialize): Slightly rewritten.
-
gerd authored
because the last arg may not be a list.
-
gerd authored
which don't signal an error in safe code because such calls are flushed when the called function is FLUSHABLE and the value of the call is not used. * src/compiler/ir1opt.lisp (flush-dead-code): Suppress flushing of flushable known functions if safety = 3.
-
gerd authored
constant-folding tests for generic-functionness. Fix intersection of function types and generic-function. * src/code/type.lisp (type-intersection2): Handle intersection of FUNCTION-TYPEs with non-FUNCTION-TYPEs, like generic-function. * src/compiler/typetran.lisp (ir1-transform-type-predicate) (typep): Handle generic-function type tests differently. * src/code/class.lisp (class) <:complex-subtypep-arg1>: New type method for function = (function * *).
-