Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Remove _N"" reader macro from docstrings when possible.
pcl/boot.lisp: o Recognize but ignore the :DECLARE argument to ENSURE-GENERIC-FUNCTION. general-info/release-20b.txt: o Update
pcl/boot.lisp: o Allow class objects as well as names for the :METHOD-CLASS argument general-info/release-20b.txt: o Update
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 changes from HEAD, update po files.
Fix issue where CMUCL does not correctly handle FLETs in DEFMETHOD bodies which use the same name as that of the generic function. Bug report and fix from Madhu, cmucl-imp, 2010-02-19. An example: (defmethod foo (bar var) (format t "GENERICFOO ~S, ~S.%" bar var)) (defclass fnarr () ()) (defmethod foo ((bar fnarr) var) (flet ((foo (&optional arg) (foo var (class-of arg)))) ; gf FOO call (foo bar))) ; local function FOO call ;; (incorrect) Error when evaluating (foo (make-instance 'fnarr) t)
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.
Merge code from main branch of 2005-12-17 to ppc gencgc branch. Still doesn't work of course.
Signal a program-error instead of error when the number of arguments to a methood is wrong. Bug found by ansi-tests.
Add support for source location recording, from Helmut Eller on cmucl-imp: The patch below adds a somewhat general mechanism to the get the "current location". So every macro that wants to record the source location, can insert a call to SOURCE-LOCATION in the generated code and safe the result in a appropriate place. SOURCE-LOCATION is a compiler-macro and returns a quoted struct with the source info. The patch adds the definition for SOURCE-LOCATION some modifications for the defclass, defgeneric and defmethod macros. Classes, generic functions and methods have already a "source" slot and the result of SOURCE-LOCATION is just stored into that slot. (The source slot contains currently only the *loadpath*, which is is not very useful, if the fasl file is in a different directory than the source file.)
Take out the fix for the problem of PCL optimizations being blindly applied to method parameters which are assigned to. This fixes a bug that shows up in McCLIM. (From Gerd, on cmucl-imp.)
Suppress slot access and gf-call optimizations for method parameters that are being assigned to in the method body. Reported by Hans Chalupsky on cmucl-imp. * src/pcl/boot.lisp (method-parameter): New function, extracted from make-pv-call. (assigned-method-params): New function. (make-method-lambda-internal): Call it to disable optimizations on method parameters being assigned to. * src/pcl/method-slot-access-optimization.lisp (get-param/class-to-optimize): Use new function method-parameter. * src/pcl/gf-call-optimization.lisp (make-pv-call): Ditto. * src/pcl/std-class.lisp (ensure-class-using-class): Don't setq a method parameter.
Silence warnings about free ignore declarations in method functions. Reported by Craig Lanning. * src/pcl/boot.lisp (simple-lexical-method-functions): Rebind next-methods and method-args, and declare ignorable.
* src/pcl/methods.lisp (#+loadable-pcl): Return new method. * src/pcl/boot.lisp (early-add-named-method): Return new method. (add-method, remove-method) [#-loadable-pcl]: Return the gf.
* src/pcl/boot.lisp (pcl::%check-cnm-args): Fix the policy of the deftransform.
* src/pcl/info.lisp (split-declarations): Declare arg call-next-method-p ignored. * src/pcl/boot.lisp (bind-simple-lexical-method-macros) (bind-fast-lexical-method-macros): Change lambda-list of with-rebound-original-arguments. (bind-lexical-method-functions): Declare some variables ignored. (bind-lexical-method-functions): Call with-rebound-original-arguments with the right arg. * src/pcl/dfun.lisp (cache-miss-values-internal): Don't call set-emf-name. * src/pcl/fngen.lisp (flush-emf-cache): Fix a typo.
In safe code, signal an error if the set of methods applicable to arguments to CALL-NEXT-METHOD is different from the set of methods applicable to original method arguments. Found by Paul Dietz. * src/pcl/boot.lisp (bind-simple-lexical-method-macros) (bind-fast-lexical-method-macros): New local macro check-cnm-args-body. (bind-lexical-method-functions): Use it. (%check-cnm-args): New function, defknown, deftransform.
CALL-NEXT-METHOD when used without arguments, should always use original arguments. Found by Paul Dietz. * src/pcl/boot.lisp (bind-simple-lexical-method-macros) (bind-fast-lexical-method-macros): Add local macro with-rebound-original-arguments. (bind-lexical-method-functions): Use it to save original arguments for call-next-method. Unconditionally define call-next-method and next-method-p like in 18e. * src/pcl/info.lisp (split-declarations): Remove ignore declarations like in 18e.
A generic function can have more than one name, via (SETF FDEFINITION), and it's possible to define methods with both names. Method functions are named with the name specified in DEFMETHODS. Methods metaobjects are unnamed. Taking this all together means that we must always use METHOD-FUNCTION-GET :NAME to find out the name of a method function if we want to use it. This showed up in gray-streams.lisp. Found by Paul Werkowski. * src/pcl/boot.lisp (method-function-name): Moved here from combin.lisp; use method-function-get :name. * src/pcl/combin.lisp (method-function-name): Move to boot.lisp.
Support for inlineing of methods in effective methods. * src-emf/docs/cmu-user/extensions.tex (Inlineing Methods in Effective Methods): New subsection. * src-emf/pcl/combin.lisp: (method-function-name, make-direct-call, make-direct-calls) (call-method-list-methods): New functions. (memf-test-converter, memf-code-converter): Arrange for generating funcalls instead of invoke- macros. * src-emf/pcl/boot.lisp (*inline-methods-in-emfs*): New variable. (expand-defmethod): If set, arrange for inlineing fast method functions. * src-emf/pcl/pkg.lisp ("PCL"): Export flush-emf-cache. * src-emf/pcl/fngen.lisp (flush-emf-cache): New function.
* src-gf/pcl/boot.lisp (invoke-effective-method-function): Add an inhibit-warnings. See the comment there for the reason.
CLHS 7.6.5 keyword argument checking for calls to generic functions. Found by Paul Dietz, of course. This also includes some minor code cleanup and a fix for a bug caused by a typo. * src-gf/pcl/std-class.lisp (compute-effective-slot-definition-initargs): Reformatted to make it readable on a tty. * src-gf/pcl/methods.lisp (set-condition-svuc-method): Fix a typo. * src-gf/pcl/low.lisp (parse-lambda-list): Add an ignore declaration. * src-gf/pcl/init.lisp (valid-initargs): Use method-lambda-list*. * src-gf/pcl/dfun.lisp (use-caching-dfun-p): Use generic-function-methods*. (use-constant-value-dfun-p): Ditto. (use-dispatch-dfun-p): Don't use dispatching dfuns when we must check keyword arguments according to CLHS 7.6.5, because this computes emfs for sets methods that aren't applicable together in the usual sense; this screws up emf keyword argument checking, of course. (make-initial-dfun): Use gf-arg-info*. (update-dfun): Use generic-function-name*. (final-accessor-dfun-type, make-accessor-table) (compute-applicable-methods-using-types) (compute-applicable-methods-using-types): Likewise. * src-gf/pcl/combin.lisp (standard-compute-effective-method): Don't use the single-call-method optimization if we must check keyword arguments according to CLHS 7.6.5. (callable-generator-for-emf): Rewritten to add a keyword argument check to the emf. (emfs-must-check-applicable-keywords-p) (compute-applicable-keywords, check-applicable-keywords): New functions. (odd-number-of-keyword-arguments, invalid-keyword-argument): Moved here from boot.lisp. (make-effective-method-lambda): Add a check-applicable-keywords form to the emf, if appropriate. (memf-test-converter, memf-code-converter) (memf-constant-converter): Deal with check-applicable-keywords. (*applicable-methods*): New variable. (make-callable): Bind it. (make-emf-name): Use generic-function-name*. * src/pcl/braid.lisp (ensure-non-standard-class): Remove an used branch. * src/pcl/boot.lisp (*make-method-lambda-gf-name*): Removed. (expand-defmethod): Don't bind it. (make-method-lambda-internal): Don't add &key to the method function's lambda-list if the gf has &key. (bind-args): Rewritten. Don't do keyword checking as this is done in emfs now. (get-key-arg, get-key-arg1): Simplified; do less checking. (generic-function-name*, generic-function-methods*) (gf-arg-info*, method-lambda-list*): New functions. (check-method-arg-info): Use them. (gf-lambda-list-from-method): New function. (gf-lambda-list): Use it. Don't add &allow-other-keys to a gf's lambda-list if a method has &key. (get-generic-function-info): Use gf-arg-info*. (parse-specialized-lambda-list): Add an ignore declaration. (odd-number-of-keyword-arguments, invalid-keyword-argument): Moved to combin.lisp. (check-generic-function-lambda-list): Remove &more stuff because that's checked elsewhere now (and Python can even tell it is). * src-gf/pcl/ctor.lisp (install-optimized-constructor): Remove an unmatched ).
* src/pcl/macros.lisp (pcl-internal-function-name-p): New function. * src/pcl/boot.lisp (set-arg-info1): Use it instead of relying on valid-function-name-p to return nil as second value for PCL-internal functions.
DEFGENERIC.ERROR. from Paul Dietz' tests. * src/pcl/boot.lisp (expand-defgeneric): Add argument precedence order option checking.
Paul Dietz' DEFGENERIC.ERROR.4. Check for repeated lambda variables. * src/pcl/boot.lisp (parse-generic-function-lambda-list) (analyze-lambda-list, parse-specialized-lambda-list): Use parse-lambda-list. (expand-defmethod): Proclaim the generic function using the unspecialized lambda list, not the method's specialized lambda list. * src/pcl/low.lisp (parse-lambda-list): New function.
Methods with &optional args could be called with too many arguments without signaling an error. Found by Paul Dietz' test suite, MAKE-LOAD-FORM.ERROR.2. * src/pcl/boot.lisp (too-many-args): New function. (bind-args): Use it.
Found by Christophe Rhodes: (defgeneric foo (&rest x &key)) (defmethod foo (&rest x) x) (foo 1) should signal an error. This fix works only for methods defined with DEFMETHOD. MAKE-METHOD-LAMBDA doesn't have enough information available to always do the right thing, alas. * src/pcl/boot.lisp (*make-method-lambda-gf-name*): New variable. (expand-defmethod): Bind it to the gf's name. (gf-key-p): New function. (make-method-lambda-internal): Determine from *make-method-lambda-gf-name* if the gf has &key and add &key to the method function's lambda-list if appropriate.
* src/pcl/boot.lisp (bind-args): Unod last change because it doesn't handle ignored &key vars well.
* src/pcl/boot.lisp (bind-args): Fix last change.
Generate inline code for keyword argument processing in methods. Cleanup the code involved. * src/pcl/boot.lisp (keyword-argument-processor): New function. (bind-args): Rewritten. (get-key-arg, get-key-arg1): Removed.
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.
Detect odd-length keyword argument lists, invalid keyword 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.
* 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.
* pkg.lisp: Some fixes of symbol names etc. * braid.lisp (no-applicable-method-error, no-next-method-error) (no-primary-method-error): Added -error suffix for ANSI. * env.lisp (describe-object): Don't print slots for condition classes. * pkg.lisp ("PCL"): Fix a typo in an export. * env.lisp (make-load-form): New method for classes. * macros.lisp (legal-class-name-p): Don't check for nil. DEFCLASS with nil as class name fails anyway because it tries to redefine standard type NIL. * braid.lisp (slot-initargs-from-structure-slotd): Make it a local function in ensure-non-standard-class.
* low.lisp (*canonical-class-names*): Remove. (*inhibit-class-name-canonicalization*, canonical-class-name): Remove. * defclass.lisp (expand-defclass): Don't canonicalize class names. * boot.lisp (parse-specialized-lambda-list): Don't use canonical-class-name.
(parse-specialized-lambda-list-1): Rewritten to use kernel:parse-lambda-list.
(parse-specialized-lambda-list): Wrap specializer name canonicalization around the old function.
*** empty log message ***
* pcl/boot.lisp (generic-function-name-p): Use valid-function-name-p.
Entomotomy Bug: call-next-method-lexical-args This commit fixes the problem by ripping out all call-next-method and next-method-p optimizations done by PCL through code walking, since the CMUCL compiler is smart enough to do all those optimizations (like removing unused local functions, and/or inlining the code if it isn't closed over) better by itself. This leads to the elimination of quite a bit of hairy code from PCL. Since there currently exists no way to locally override a user-supplied ignore declaration on a variable for macro-generated code, we need to remove ignore declarations for method arguments, in order not to generate superfluous warnings. This is suboptimal, and hence should be corrected through compiler enhancements at some time.
Flushed the #+copy-&rest-arg controlled copying of rest arguments, since the code was both unused in CMUCL, and was erroneous in places, too. This brings us in line with SBCL which removed the code early on.
Fixed long-standing unmatched close parenthesis in expand-defgeneric that I introduced in version 1.40.
Entomotomy Bug: no-next-method-unimplemented Applied patch by Gerd Moellmann to implement the ANSI-mandated generic function no-next-method.
Committed modified patch by Gerd Moellmann (from SBCL changes), that removes make-parameter-references, replacing it with generation of ignorable declarations for all specialized parameters. Note that this differs from the original patch, which generated ignorable declarations for all required parameters, based on the current consensous on cmucl-imp. Also turned references to .pv-cell. and .next-method-call. into ignorable declarations.
Entomotomy Bug: documentation-generic-function-wrong-argument-precedence-order Applied Gerd Moellmann's patch to record the precedence order of early generic functions as is.
Committed patch by Gerd Moellmann to check generic function declarations against the set of forbidden declarations specified by the ANSI entry on defgeneric.
Merged patch by Gerd Moellmann to replace (load-truename) with *load-pathname*, thus dropping the function load-truename, in order to improve location-independent source recording.
Committed patch by Gerd Moellmann to replace the logic of analyze-lambda-list with kernel:parse-lambda-list. Also removes keyword-spec-name, which was duplicating efforts already undertaken by analyze-lambda-list.
Committed patch by Gerd Moellmann to rename the constant *slot-unbound* to the more fitting name +slot-unbound+.
Committed Gerd Moellmann's patch to turn various errors related to incongruent lambda-lists into program-errors.
This change, based on a patch by Gerd Moellmann, improves keyword argument error checking for methods, so that illformed argument lists will be detected. Also includes some minor cleanups and code-reductions. Closes Entomotomy bug defmethod-keyword-argument-checking-too-lax.
This commits various patches submitted by Gerd Moellmann to remove unused code in various parts of PCL. See also bug misc-unused-code-in-pcl in Entomotomy.
Patches by Gerd Moellmann to improve checking of GF lambda lists for well-formedness, as described in ANSI Section 3.4.2 Generic Function Lambda Lists. See also bug generic-function-lambda-list-checking-too-lax in entomotomy.
Removed the shadowed version of dotimes from PCL, replacing it with normal cl:dotimes, introducing explicit fixnum declarations where they weren't obviously unnecessary. Based on a patch by Gerd Moellmann.
Patch by Gerd Moellmann to turn old-style into new-style eval-when's in the PCL code base.
Patch from Gerd Moellmann to modify more simple-program-error sites to use the new simple-program-error function.
Slightly frobbed patch from Gerd Moellmann that eliminates the function EXTRACT-DECLARATIONS in favour of SYSTEM:PARSE-BODY. This also removes the ability for macros to expand into declarations, which isn't allowed anymore by ANSI CL.
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.
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation for release tagging 18d.
In the handling of GF definition for a name with an existing non-GF function definition: Remove references in error messages to broken make-specializable, and provide a reasonable continue restart, which just drops the old definition.
Fixed buglet in the argument processing for the :METHOD-CLASS option to DEFGENERIC: ENSURE-GENERIC-FUNCTION-USING-CLASS failed to coerce the :METHOD-CLASS argument to a class object, as specified in the AMOP, page 187 (entry for ENSURE-GENERIC-FUNCTION-USING-CLASS). This caused GENERIC-FUNCTION-METHOD-CLASS to return the uncoerced class name (i.e. a symbol), instead of a class, which caused both PCL internal as well as external code to fail.
From Pierre Mai: o All the stuff from cmu-low.lisp has been merged into low.lisp. o Therefore cmu-low.lisp has been removed completely. o All the stuff in low.lisp which either wasn't used in current PCL or was unnecessary in CMU CL, or which was implemented as no-ops for CMU CL has been removed. o Calls in other files to functions which were dropped have been removed. o Source order reorganised a bit and added several comments and doc-strings. o Made `*optimize-speed*' consistent for small and non-small cores, and fixed ordering problem. o Added `*compile-lambda-silent-p*' which when true (the default) will cause compile-lambda to be silent when compiling PCL-generated code.
Change toplevel PROCLAIMs to DECLAIMs.
Add a defensive declaration to PARSE-SPECIALIZERS.
Correct the handling of non-keyword keyword argument names, ensuring they are correctly quoted (from Pierre R. Mai), and correct the result type of make-keyword which is in general a symbol not a keyword.
Correct the handling of non-keyword keyword argument names, ensuring they are correctly quoted (from Pierre R. Mai), and correcting the result type of make-keyword which is in general a symbol not a keyword.
Fix expand-defgeneric and expand-defmethod to notify compile environment that the named generic-function exists. This to suppress undefined function warnings.
Fix expand-defgeneric and expand-defmethod to notify compile environment that the named generic-function exists. This to suppress undefined function warnings.
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.
Further cleanup of the code now that the :SETF feature is assumed standard.
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.
Fix for the :method option in expand-defgeneric, removing a broken check; spotted by Liam Healy.
Update from the current main branch.
Simple-program-error is now exported from the KERNEL package.
Fixes and improvements to July-14 commit dealing with condition types in calls to error. From Douglas.
This revision merges in many of the fixes for ANSI condition types in various calls to ERROR. Those easily handled by using new condition types simple-file-error and simple-program-error are included. The only functional change here is that the function CHARACTER no longer accepts an integer argument so as to be ANSI compliant. This may break some code.
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.
Use IGNORABLE declaration for .ARGS-TAIL. to kill spurious warnings when &aux vars are used in defmethods
Werkowskis source kit 1.03.7
When updating arg-info slots, check to see if the value is already there. This can reduce non-shared pages.
CMU17 changes and bug fixes. STANDARD-CHAR-P can only be called on characters. Added FREEZE-TYPE declarations to speed type tests. Added uses of THE FUNCTION in some apply/funcalls. Changed bootstrapping stuff to use MAKE-BOOT-WRAPPER instead of MAKE-WRAPPER so that we can have a different interface (pass in the name instead of the class.) Use KERNEL:INSTANCE-LAMBDA instead of LAMBDA for the functions that we stick in funcallable-instance-functions.
September-16-92-PCL-e has been incorporated into the CMUCL sources thanks to Rick Harris.
This is is March-92-PCL 2c
This is September 92 PCL.
This is July 92 PCL
This is March-92-PCL-2a.
Don't qualify IGNORABLE as being in the EXT package, 'cause it's not.
CMUCL has a real SYMBOL-MACROLET, so use it instead of defining a macro.
Put renaming of setf functions under CMU conditional.
Added ignorable declarations on some spurious variable bindings.
Merged with latest PCL version.
*** empty log message ***
Changed some SETF\ PCL\ functions to be real SETF functions. Changed EXPAND-DEFMETHOD to stick in a FTYPE declaration to tell the compiler about the generic function.
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|