/[cmucl]/src/pcl/dfun.lisp
ViewVC logotype

Log of /src/pcl/dfun.lisp

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Tag:

Revision 1.41 - (view) (annotate) - [select for diffs]
Mon Apr 19 02:31:14 2010 UTC (3 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: GIT-CONVERSION, HEAD, RELEASE_20b, cross-sol-x86-2010-12-20, cross-sol-x86-base, cross-sol-x86-merged, cross-sparc-branch-base, release-20b-pre1, release-20b-pre2, snapshot-2010-05, snapshot-2010-06, snapshot-2010-07, snapshot-2010-08, snapshot-2010-11, snapshot-2010-12, snapshot-2011-01, snapshot-2011-02, snapshot-2011-03, snapshot-2011-04, snapshot-2011-06, snapshot-2011-07, snapshot-2011-09, sparc-tramp-assem-2010-07-19, sparc-tramp-assem-base
Branch point for: RELEASE-20B-BRANCH, cross-sol-x86-branch, cross-sparc-branch, sparc-tramp-assem-branch
Changes since 1.40: +2 -2 lines
Diff to previous 1.40
Remove _N"" reader macro from docstrings when possible.

Revision 1.40 - (view) (annotate) - [select for diffs]
Fri Mar 19 15:19:03 2010 UTC (4 years ago) by rtoy
Branch: MAIN
CVS Tags: post-merge-intl-branch, snapshot-2010-04
Changes since 1.39: +15 -14 lines
Diff to previous 1.39
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.

Revision 1.39.20.1 - (view) (annotate) - [select for diffs]
Thu Feb 25 20:34:56 2010 UTC (4 years, 1 month ago) by rtoy
Branch: intl-2-branch
Changes since 1.39: +2 -1 lines
Diff to previous 1.39 , to next main 1.41
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).

Revision 1.39.18.2 - (view) (annotate) - [select for diffs]
Sat Feb 13 01:28:04 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
CVS Tags: intl-branch-2010-03-18-1300, intl-branch-working-2010-02-19-1000
Changes since 1.39.18.1: +14 -14 lines
Diff to previous 1.39.18.1 , to branch point 1.39 , to next main 1.41
Mark translatable strings; regenerate cmucl.pot and cmucl.po

Revision 1.39.18.1 - (view) (annotate) - [select for diffs]
Mon Feb 8 17:15:53 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
CVS Tags: intl-branch-working-2010-02-11-1000
Changes since 1.39: +2 -1 lines
Diff to previous 1.39
Add (intl:textdomain "cmucl") to the files to set the textdomain.

Revision 1.38.14.1 - (view) (annotate) - [select for diffs]
Thu Jun 19 03:30:45 2008 UTC (5 years, 9 months ago) by rtoy
Branch: unicode-utf16-branch
CVS Tags: unicode-snapshot-2009-05, unicode-snapshot-2009-06, unicode-utf16-char-support-2009-03-25, unicode-utf16-char-support-2009-03-26, unicode-utf16-extfmt-2009-03-27, unicode-utf16-extfmt-2009-06-11, unicode-utf16-extfmts-pre-sync-2008-11, unicode-utf16-extfmts-sync-2008-12, unicode-utf16-sync-2008-07, unicode-utf16-sync-2008-09, unicode-utf16-sync-2008-11, unicode-utf16-sync-2008-12, unicode-utf16-sync-label-2009-03-16
Branch point for: unicode-utf16-extfmt-branch
Changes since 1.38: +2 -2 lines
Diff to previous 1.38 , to next main 1.41
Merge changes from HEAD to the unicode-utf16 branch.

Revision 1.39 - (view) (annotate) - [select for diffs]
Sat May 24 14:41:39 2008 UTC (5 years, 10 months ago) by rtoy
Branch: MAIN
CVS Tags: RELEASE_19f, RELEASE_20a, amd64-dd-start, intl-2-branch-base, intl-branch-base, label-2009-03-16, label-2009-03-25, merge-sse2-packed, merge-with-19f, merged-unicode-utf16-extfmt-2009-06-11, portable-clx-base, portable-clx-import-2009-06-16, pre-merge-intl-branch, release-19f-base, release-19f-pre1, release-20a-base, release-20a-pre1, snapshot-2008-06, snapshot-2008-07, snapshot-2008-08, snapshot-2008-09, snapshot-2008-10, snapshot-2008-11, snapshot-2008-12, snapshot-2009-01, snapshot-2009-02, snapshot-2009-04, snapshot-2009-05, snapshot-2009-07, snapshot-2009-08, snapshot-2009-11, snapshot-2009-12, snapshot-2010-01, snapshot-2010-02, snapshot-2010-03, sse2-base, sse2-checkpoint-2008-10-01, sse2-merge-with-2008-10, sse2-merge-with-2008-11, sse2-packed-2008-11-12, sse2-packed-base, unicode-string-buffer-base, unicode-string-buffer-impl-base
Branch point for: RELEASE-19F-BRANCH, RELEASE-20A-BRANCH, amd64-dd-branch, intl-2-branch, intl-branch, portable-clx-branch, sse2-branch, sse2-packed-branch, unicode-string-buffer-branch, unicode-string-buffer-impl-branch
Changes since 1.38: +2 -2 lines
Diff to previous 1.38
Fix issue with slot-value-using-class and
get-accessor-method-function.

See cmucl-imp, 2008/04/03, PCL bug?.  Bug and link to solution
provided by Hans Hubner.  Solution based on sbcl patch 0.8.14.27.

Here's the test case:

(in-package :cl-user)

(use-package :pcl)

(defclass test-metaclass (standard-class)
  ())

(defmethod validate-superclass ((sub test-metaclass) (super standard-class))
  t)

(defmethod (setf slot-value-using-class) :before (newval (class test-metaclass) object slotd)
  (print 'setf-slot-value-using-class-before))

(defmethod (setf slot-value-using-class) :after (newval (class test-metaclass) object slotd)
  (print 'setf-slot-value-using-class-after))

(defclass test-class ()
  (slot)
  (:metaclass test-metaclass))

Revision 1.36.2.1 - (view) (annotate) - [select for diffs]
Mon Dec 19 01:10:21 2005 UTC (8 years, 3 months ago) by rtoy
Branch: ppc_gencgc_branch
CVS Tags: ppc_gencgc_snap_2005-12-17, ppc_gencgc_snap_2006-01-06
Changes since 1.36: +12 -7 lines
Diff to previous 1.36 , to next main 1.41
Merge code from main branch of 2005-12-17 to ppc gencgc branch.  Still
doesn't work of course.

Revision 1.38 - (view) (annotate) - [select for diffs]
Thu Aug 18 16:55:00 2005 UTC (8 years, 8 months ago) by rtoy
Branch: MAIN
CVS Tags: double-double-array-base, double-double-array-checkpoint, double-double-base, double-double-init-%make-sparc, double-double-init-checkpoint-1, double-double-init-ppc, double-double-init-sparc, double-double-init-sparc-2, double-double-init-x86, double-double-irrat-end, double-double-irrat-start, double-double-reader-base, double-double-reader-checkpoint-1, double-double-sparc-checkpoint-1, pre-telent-clx, release-19c, release-19c-base, release-19c-pre1, release-19d, release-19d-base, release-19d-pre1, release-19d-pre2, release-19e, release-19e-base, release-19e-pre1, release-19e-pre2, snapshot-2005-09, snapshot-2005-10, snapshot-2005-11, snapshot-2005-12, snapshot-2006-01, snapshot-2006-02, snapshot-2006-03, snapshot-2006-04, snapshot-2006-05, snapshot-2006-06, snapshot-2006-07, snapshot-2006-08, snapshot-2006-09, snapshot-2006-10, snapshot-2006-11, snapshot-2006-12, snapshot-2007-01, snapshot-2007-02, snapshot-2007-03, snapshot-2007-04, snapshot-2007-05, snapshot-2007-06, snapshot-2007-07, snapshot-2007-08, snapshot-2007-09, snapshot-2007-10, snapshot-2007-11, snapshot-2007-12, snapshot-2008-01, snapshot-2008-02, snapshot-2008-03, snapshot-2008-04, snapshot-2008-05, unicode-utf16-base, unicode-utf16-string-support
Branch point for: double-double-array-branch, double-double-branch, double-double-reader-branch, release-19c-branch, release-19d-branch, release-19e-branch, unicode-utf16-branch
Changes since 1.37: +6 -1 lines
Diff to previous 1.37
Signal a program-error instead of error when the number of arguments
to a methood is wrong.  Bug found by ansi-tests.

Revision 1.36.4.1 - (view) (annotate) - [select for diffs]
Thu Jun 16 13:59:03 2005 UTC (8 years, 10 months ago) by rtoy
Branch: release-19b-branch
CVS Tags: release-19b-pre2
Changes since 1.36: +7 -7 lines
Diff to previous 1.36 , to next main 1.41
Merge from HEAD to revert bogus dfun changes.

Revision 1.37 - (view) (annotate) - [select for diffs]
Wed Jun 15 17:30:59 2005 UTC (8 years, 10 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2005-07, snapshot-2005-08
Changes since 1.36: +6 -6 lines
Diff to previous 1.36
Revert this back to rev 1.35.  This change had nothing to do with AMOP
:allocation and caused a regression on defmethod-forwared-referenced.1
test.

Revision 1.36 - (view) (annotate) - [select for diffs]
Thu Jan 27 14:45:58 2005 UTC (9 years, 2 months ago) by rtoy
Branch: MAIN
CVS Tags: ppc_gencgc_snap_2005-05-14, release-19b-base, release-19b-pre1, snapshot-2005-02, snapshot-2005-03, snapshot-2005-04, snapshot-2005-05, snapshot-2005-06
Branch point for: ppc_gencgc_branch, release-19b-branch
Changes since 1.35: +7 -7 lines
Diff to previous 1.35
Add AMOP style custom slot allocation.

Patch from Sverker Wiberg, cmucl-imp, 2005-01-18.

Revision 1.35 - (view) (annotate) - [select for diffs]
Wed Aug 27 09:02:00 2003 UTC (10 years, 7 months ago) by gerd
Branch: MAIN
CVS Tags: amd64-merge-start, lisp-executable-base, mod-arith-base, prm-before-macosx-merge-tag, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, snapshot-2003-10, snapshot-2003-11, snapshot-2003-12, snapshot-2004-04, snapshot-2004-05, snapshot-2004-06, snapshot-2004-07, snapshot-2004-08, snapshot-2004-09, snapshot-2004-10, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01
Branch point for: lisp-executable, mod-arith-branch, release-19a-branch
Changes since 1.34: +8 -16 lines
Diff to previous 1.34
	Changes in generic function's method combination don't take
	effect until a method is added or removed from the gf.
	Reported by Andreas Fuchs on a SBCL mailing list.

	* src/pcl/methods.lisp (reinitialize-instance)
	<standard-generic-function>: Make it an around method, call
	flush-effective-method-cache if the method combination changes.

	* src/pcl/dfun.lisp (flush-effective-method-cache): New function.
	(*effective-method-cache*): Renamed from *effective-method-table*.

Revision 1.34 - (view) (annotate) - [select for diffs]
Mon Aug 25 20:10:41 2003 UTC (10 years, 7 months ago) by gerd
Branch: MAIN
Changes since 1.33: +4 -5 lines
Diff to previous 1.33
	Lazy signaling of errors because of invalid method qualifiers,
	for ANSI compliance.

	* src/pcl/defcombin.lisp (compute-effective-method):  If
	*in-precompute-effective-methods-p*, generate an emf consisting of
	a call to %invalid-qualifiers if there are such methods.

	* src/pcl/combin.lisp (standard-compute-effective-method): Likewise.
	(make-effective-method-lambda): Handle %invalid-qualifiers like
	%no-primary-method.

	* src/pcl/braid.lisp (%invalid-qualifiers): New function.
	(invalid-qualifiers): New method.

	* src/pcl/generic-functions.lisp (invalid-qualifiers): New gf.

	* src/pcl/dfun.lisp (*max-emf-precomputation-methods*): Set to 100.

	* src/docs/cmu-user/extensions.tex (Effective Method Precomputation):
	Change description of *max-emf-precomputation-methods*.

Revision 1.33 - (view) (annotate) - [select for diffs]
Mon Jul 28 14:13:34 2003 UTC (10 years, 8 months ago) by gerd
Branch: MAIN
CVS Tags: dynamic-extent-base, sparc_gencgc, sparc_gencgc_merge
Branch point for: dynamic-extent, sparc_gencgc_branch
Changes since 1.32: +6 -5 lines
Diff to previous 1.32
	Loading gray-streams lead to a vicious metacircle because
	effective methods of close were no longer precomputed, and close
	is being used somewhere inside the compiler during emf
	compilation.

	* src/pcl/gray-streams.lisp (toplevel): Call pcl-close
	before setting the fdefinition of close to it, analogous
	to what was already done for pcl-open-stream-p.

	* src/pcl/dfun.lisp (break-vicious-metacircle): Put the
	error in infinite-error-protect, just in case.

Revision 1.32 - (view) (annotate) - [select for diffs]
Mon Jul 28 10:43:15 2003 UTC (10 years, 8 months ago) by gerd
Branch: MAIN
Changes since 1.31: +6 -4 lines
Diff to previous 1.31
	CLtS effectively forbids method load-time precomputation of
	effective methods (which I think is either yet another oversight,
	or bad language design).  Found by Paul Dietz.

	Set *max-emf-precomputation-methods* to > 0 to allow
	precomputation of effective methods at method load-time for
	generic functions having less than the specified number of
	methods.

	* src/pcl/dfun.lisp (*max-emf-precomputation-methods*): Set to 0.

	* src/pcl/pkg.lisp ("PCL"): Export *max-emf-precomputation-methods*.

Revision 1.31 - (view) (annotate) - [select for diffs]
Thu Jul 17 12:40:35 2003 UTC (10 years, 9 months ago) by gerd
Branch: MAIN
Changes since 1.30: +15 -10 lines
Diff to previous 1.30
	Method definition takes something like O(n^3) time.
	Reported by Eric Daniel.

	* src/pcl/dfun.lisp (*max-emf-precomputation-methods*):
	New variable.
	(finalize-specializers): Use it.

Revision 1.30 - (view) (annotate) - [select for diffs]
Thu Jun 5 12:35:22 2003 UTC (10 years, 10 months ago) by gerd
Branch: MAIN
Changes since 1.29: +57 -31 lines
Diff to previous 1.29
	Fix a bug in constant-value dispatching found by Paul Dietz.

	* src/pcl/dfun.lisp (use-constant-value-dfun-p): Check more
	preconditions.
	(constant-value-miss): Add an assertion.

Revision 1.29 - (view) (annotate) - [select for diffs]
Tue Jun 3 10:28:23 2003 UTC (10 years, 10 months ago) by gerd
Branch: MAIN
Changes since 1.28: +2 -3 lines
Diff to previous 1.28
	* 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.

Revision 1.28 - (view) (annotate) - [select for diffs]
Sun May 25 14:33:49 2003 UTC (10 years, 10 months ago) by gerd
Branch: MAIN
Changes since 1.27: +19 -35 lines
Diff to previous 1.27
	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 ).

Revision 1.27 - (view) (annotate) - [select for diffs]
Sun May 11 11:30:34 2003 UTC (10 years, 11 months ago) by gerd
Branch: MAIN
Changes since 1.26: +2 -2 lines
Diff to previous 1.26
	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.

Revision 1.26 - (view) (annotate) - [select for diffs]
Sun May 4 13:11:21 2003 UTC (10 years, 11 months ago) by gerd
Branch: MAIN
Changes since 1.25: +4 -4 lines
Diff to previous 1.25
	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.

Revision 1.25 - (view) (annotate) - [select for diffs]
Wed Apr 30 18:42:23 2003 UTC (10 years, 11 months ago) by gerd
Branch: MAIN
Changes since 1.24: +3 -3 lines
Diff to previous 1.24
	* src/pcl/dfun.lisp (saut-class-eq, saut-eql): Use
	cpl-or-nil instead of cpl-maybe-early.

Revision 1.24 - (view) (annotate) - [select for diffs]
Mon Apr 14 21:45:22 2003 UTC (11 years ago) by gerd
Branch: MAIN
CVS Tags: remove_negative_zero_not_zero
Changes since 1.23: +4 -2 lines
Diff to previous 1.23
	* src-head/pcl/dfun.lisp (cache-miss-values-internal): Test
	for accessors.

	* src-head/pcl/rt/defmethod.lisp (defmethod-metacircle.0): New
	test.

	* src-head/pcl/rt/defgeneric.lisp (method-class.0): Call
	the method with the non-standard method class.

	* src-head/pcl/rt/pkg.lisp ("PCL-TEST"): Don't shadowing-import
	from PCL.

Revision 1.23 - (view) (annotate) - [select for diffs]
Sun Apr 13 16:39:22 2003 UTC (11 years ago) by gerd
Branch: MAIN
Changes since 1.22: +8 -3 lines
Diff to previous 1.22
	* src/pcl/dfun.lisp (cache-miss-values-internal):
	Push wrappers on *cmv-stack* instead of classes.

	* src/pcl/rt/defgeneric.lisp (method-class.0): New test.

	* src/pcl/gf-call-optimization.lisp (compute-calls):
	Simplify.

	* src/pcl/cache.lisp (probe-cache): Remove version in #+nil.

Revision 1.22 - (view) (annotate) - [select for diffs]
Fri Mar 28 16:07:42 2003 UTC (11 years ago) by gerd
Branch: MAIN
Changes since 1.21: +159 -23 lines
Diff to previous 1.21
	Break some vicious metacircles.

	* pcl/dfun.lisp (*standard-classes*, *standard-slot-locations*):
	New variables.
	(compute-standard-slot-locations, standard-slot-value)
	(standard-slot-value/gf, standard-slot-value/method)
	(standard-slot-value/eslotd, standard-slot-value/class)
	(maybe-update-standard-class-locations): New functions.
	(*cmv-stack*): New variable.
	(cache-miss-values-internal): Use it to detect vicious circles,
	and call break-vicious-metacircle.
	(break-vicious-metacircle, accesses-standard-class-slot-p)
	(find-standard-class-accessor-method): New functions.

	* pcl/std-class.lisp (update-slots): Call
	maybe-update-standard-class-locations.

	* pcl/fixup.lisp (toplevel): Call compute-standard-slot-locations.

Revision 1.21 - (view) (annotate) - [select for diffs]
Wed Mar 26 17:15:22 2003 UTC (11 years ago) by gerd
Branch: MAIN
Changes since 1.20: +5 -4 lines
Diff to previous 1.20
	* 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.

Revision 1.20 - (view) (annotate) - [select for diffs]
Tue Mar 25 13:37:54 2003 UTC (11 years ago) by gerd
Branch: MAIN
Changes since 1.19: +8 -23 lines
Diff to previous 1.19
	* dfun.lisp (make-initial-dfun): Reactivate the call to
	precompute-effective-methods, because effective method
	computation detects methods with invalid qualifiers early.

	* methods.lisp (precompute-effective-methods): Reactivate.

Revision 1.19 - (view) (annotate) - [select for diffs]
Tue Mar 25 11:40:03 2003 UTC (11 years ago) by gerd
Branch: MAIN
Changes since 1.18: +3 -3 lines
Diff to previous 1.18
	* std-class.lisp (class-direct-slots, class-slots)
	(class-default-initargs, class-direct-default-initargs):
	Add methods for condition-class.

	* dfun.lisp (saut-class): Change a let to let*.

Revision 1.18 - (view) (annotate) - [select for diffs]
Sat Mar 22 16:15:17 2003 UTC (11 years ago) by gerd
Branch: MAIN
Changes since 1.17: +595 -492 lines
Diff to previous 1.17
* bootfiles/18e/boot[12].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.

Revision 1.17.2.4 - (view) (annotate) - [select for diffs]
Wed Mar 19 15:39:03 2003 UTC (11 years, 1 month ago) by gerd
Branch: cold-pcl
Changes since 1.17.2.3: +82 -70 lines
Diff to previous 1.17.2.3 , to branch point 1.17 , to next main 1.41
(cpl-or-nil): New function.
(saut-not-class, saut-not-prototype)
(class-applicable-using-class-p, saut-class): Use it.

Revision 1.17.2.3 - (view) (annotate) - [select for diffs]
Tue Mar 18 12:35:46 2003 UTC (11 years, 1 month ago) by gerd
Branch: cold-pcl
Changes since 1.17.2.2: +62 -27 lines
Diff to previous 1.17.2.2 , to branch point 1.17
(*lazy-dfun-compute-p*): Remove.
(finalize-specializers): New function.
(make-initial-dfun): Call finalize-specializers.  Don't
call precompute-effective-methods.

Revision 1.17.2.2 - (view) (annotate) - [select for diffs]
Mon Mar 10 13:09:01 2003 UTC (11 years, 1 month ago) by gerd
Branch: cold-pcl
Changes since 1.17.2.1: +2 -2 lines
Diff to previous 1.17.2.1 , to branch point 1.17
*** empty log message ***

Revision 1.17.2.1 - (view) (annotate) - [select for diffs]
Sun Mar 9 12:47:21 2003 UTC (11 years, 1 month ago) by gerd
Branch: cold-pcl
Changes since 1.17: +478 -422 lines
Diff to previous 1.17
*** empty log message ***

Revision 1.17 - (view) (annotate) - [select for diffs]
Wed Dec 18 00:57:04 2002 UTC (11 years, 4 months ago) by pmai
Branch: MAIN
CVS Tags: cold-pcl-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2
Branch point for: cold-pcl, release-18e-branch
Changes since 1.16: +3 -6 lines
Diff to previous 1.16
Entomotomy Bug: pcl-gf-cache-cacheing-not-needed

This commits a patch by Gerd Moellmann which elides the elaborate cacheing
of GF caches, since modern GCs are usually better at handling this.
Performance on x86 with generational GC seems unharmed by this, other ports
using the non-generational GC will have to investigate.  Should this turn
up performance problems, the patch might get reverted.

Revision 1.16 - (view) (annotate) - [select for diffs]
Thu Nov 28 16:23:32 2002 UTC (11 years, 4 months ago) by pmai
Branch: MAIN
Changes since 1.15: +1 -6 lines
Diff to previous 1.15
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.

Revision 1.15 - (view) (annotate) - [select for diffs]
Sat Sep 7 13:16:48 2002 UTC (11 years, 7 months ago) by pmai
Branch: MAIN
CVS Tags: UNICODE-BASE
Branch point for: UNICODE-BRANCH
Changes since 1.14: +7 -3 lines
Diff to previous 1.14
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.

Revision 1.14 - (view) (annotate) - [select for diffs]
Mon Aug 26 02:23:12 2002 UTC (11 years, 7 months ago) by pmai
Branch: MAIN
CVS Tags: LINKAGE_TABLE, PRE_LINKAGE_TABLE
Changes since 1.13: +175 -172 lines
Diff to previous 1.13
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.

Revision 1.7.2.3 - (view) (annotate) - [select for diffs]
Sat Mar 23 18:51:17 2002 UTC (12 years ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18d
Changes since 1.7.2.2: +18 -27 lines
Diff to previous 1.7.2.2 , to branch point 1.7 , to next main 1.41
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation
for release tagging 18d.

Revision 1.13 - (view) (annotate) - [select for diffs]
Tue Oct 30 22:50:58 2001 UTC (12 years, 5 months ago) by pmai
Branch: MAIN
Changes since 1.12: +2 -2 lines
Diff to previous 1.12
Trivial spelling fix.  From a patch by Eric Marsden.

Revision 1.12 - (view) (annotate) - [select for diffs]
Sat May 26 18:30:18 2001 UTC (12 years, 10 months ago) by pmai
Branch: MAIN
Changes since 1.11: +14 -18 lines
Diff to previous 1.11
Fixed bug reported by Marco Antoniotti in the call to
no-applicable-method for generic functions with zero methods.  Just
removing the erroneous special-case call and letting the normal code
path handle the situation fixes this.

Revision 1.11 - (view) (annotate) - [select for diffs]
Tue Apr 10 22:37:22 2001 UTC (13 years ago) by pw
Branch: MAIN
Changes since 1.10: +4 -9 lines
Diff to previous 1.10
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.

Revision 1.7.2.2 - (view) (annotate) - [select for diffs]
Tue May 23 16:38:47 2000 UTC (13 years, 10 months ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18c
Changes since 1.7.2.1: +12 -14 lines
Diff to previous 1.7.2.1 , to branch point 1.7
This set of revisions brings the RELENG_18 branch up to HEAD in preparation
for an 18c release.

Revision 1.10 - (view) (annotate) - [select for diffs]
Sun May 30 23:13:56 1999 UTC (14 years, 10 months ago) by pw
Branch: MAIN
Changes since 1.9: +10 -16 lines
Diff to previous 1.9
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.

Revision 1.9 - (view) (annotate) - [select for diffs]
Sun Dec 20 04:30:19 1998 UTC (15 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.8: +4 -0 lines
Diff to previous 1.8
Add CMUCL style file-comments; from Peter Van Eynde.

Revision 1.7.2.1 - (view) (annotate) - [select for diffs]
Tue Jun 23 11:25:30 1998 UTC (15 years, 9 months ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18b
Changes since 1.7: +3 -3 lines
Diff to previous 1.7
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.

Revision 1.8 - (view) (annotate) - [select for diffs]
Fri Jun 5 02:53:52 1998 UTC (15 years, 10 months ago) by dtc
Branch: MAIN
Changes since 1.7: +3 -3 lines
Diff to previous 1.7
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.

Revision 1.7 - (view) (annotate) - [select for diffs]
Sat Jan 18 14:31:55 1997 UTC (17 years, 3 months ago) by ram
Branch: MAIN
CVS Tags: RELEASE_18a
Branch point for: RELENG_18
Changes since 1.6: +132 -28 lines
Diff to previous 1.6
Werkowskis source kit 1.03.7

Revision 1.6.1.9 - (view) (annotate) - [select for diffs] (vendor branch)
Sat Oct 29 04:12:27 1994 UTC (19 years, 5 months ago) by ram
Branch: cmu
Changes since 1.6.1.8: +4 -9 lines
Diff to previous 1.6.1.8 , to next main 1.41
Back out of part of supposed fix to get-secondary-dispatch-function1 for
no-applicable-methods, since it seems to be breaking things.

Revision 1.6.1.8 - (view) (annotate) - [select for diffs] (vendor branch)
Thu Oct 27 19:28:55 1994 UTC (19 years, 5 months ago) by ram
Branch: cmu
Changes since 1.6.1.7: +1 -1 lines
Diff to previous 1.6.1.7
typo

Revision 1.6.1.7 - (view) (annotate) - [select for diffs] (vendor branch)
Thu Oct 27 16:29:41 1994 UTC (19 years, 5 months ago) by ram
Branch: cmu
Changes since 1.6.1.6: +17 -5 lines
Diff to previous 1.6.1.6
In dispatch cost estimation, add special-case for structure typep and fill in
some guesses for CMU costs.

Revision 1.6.1.6 - (view) (annotate) - [select for diffs] (vendor branch)
Thu Sep 29 20:35:52 1994 UTC (19 years, 6 months ago) by ram
Branch: cmu
Changes since 1.6.1.5: +1 -2 lines
Diff to previous 1.6.1.5
Arg is GF, not generic-function in use-dispatch-dfun.

Revision 1.6.1.5 - (view) (annotate) - [select for diffs] (vendor branch)
Wed Sep 28 14:08:42 1994 UTC (19 years, 6 months ago) by ram
Branch: cmu
Changes since 1.6.1.4: +46 -24 lines
Diff to previous 1.6.1.4
New parameterized version of use-dispatch-dfun-p from Harris.

Revision 1.6.1.4 - (view) (annotate) - [select for diffs] (vendor branch)
Tue Aug 23 16:18:25 1994 UTC (19 years, 7 months ago) by ram
Branch: cmu
Changes since 1.6.1.3: +19 -4 lines
Diff to previous 1.6.1.3
Fix to :after methods on accessor functions.  Also, fixed some problems with
the result of get-secondary-dispatch-function1 when there are no methods.

Revision 1.6.1.3 - (view) (annotate) - [select for diffs] (vendor branch)
Sun Sep 19 08:47:51 1993 UTC (20 years, 7 months ago) by ram
Branch: cmu
Changes since 1.6.1.2: +1 -0 lines
Diff to previous 1.6.1.2
In USE-DISPATCH-DFUN-P don't treat built-in classes any different for cmu17.

Revision 1.6.1.2 - (view) (annotate) - [select for diffs] (vendor branch)
Thu Sep 9 12:26:16 1993 UTC (20 years, 7 months ago) by phg
Branch: cmu
Changes since 1.6.1.1: +31 -19 lines
Diff to previous 1.6.1.1
Richard Harris' fix to allow for very big dispatch functions replaces 
USE-DISPATCH-DEFUN-P with three functions: USE-DISPATCH-DFUN-P,
SIMPLE-DISPATCH-FUNCTION-P, and DISPATCH-FUNCTION-CLASS-TYPEP-COUNT.
The problem arose when a generic function had some 10 primary and additional
before methods.

Revision 1.6.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Tue Jul 20 18:57:19 1993 UTC (20 years, 9 months ago) by ram
Branch: cmu
Changes since 1.6: +14 -6 lines
Diff to previous 1.6
Freeze-type dfun-info.  Use instance-lambda for funcallable instance 
functions.  Changed some uses of (or std-instance-p fsc-instance-p) to 
pcl-instance-p.

Revision 1.6 - (view) (annotate) - [select for diffs]
Tue Jan 12 18:24:10 1993 UTC (21 years, 3 months ago) by phg
Branch: MAIN
Branch point for: cmu
Changes since 1.5: +6 -1 lines
Diff to previous 1.5
September-16-92-PCL-e has been incorporated into the CMUCL sources thanks
to Rick Harris.

Revision 1.3.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Mon Dec 14 12:48:50 1992 UTC (21 years, 4 months ago) by ram
Branch: patch_16
Changes since 1.3: +18 -5 lines
Diff to previous 1.3 , to next main 1.41
This is is March-92-PCL 2c

Revision 1.5 - (view) (annotate) - [select for diffs]
Mon Nov 9 15:18:58 1992 UTC (21 years, 5 months ago) by ram
Branch: MAIN
Changes since 1.4: +907 -284 lines
Diff to previous 1.4
This is September 92 PCL.

Revision 1.4 - (view) (annotate) - [select for diffs]
Sat Aug 1 15:28:36 1992 UTC (21 years, 8 months ago) by ram
Branch: MAIN
Changes since 1.3: +108 -31 lines
Diff to previous 1.3
This is July 92 PCL

Revision 1.3 - (view) (annotate) - [select for diffs]
Mon Jun 1 18:37:52 1992 UTC (21 years, 10 months ago) by ram
Branch: MAIN
Branch point for: patch_16
Changes since 1.2: +565 -487 lines
Diff to previous 1.2
This is March-92-PCL-2a.

Revision 1.2 - (view) (annotate) - [select for diffs]
Sat Oct 19 17:22:19 1991 UTC (22 years, 6 months ago) by ram
Branch: MAIN
Changes since 1.1: +59 -16 lines
Diff to previous 1.1
Merged with latest PCL version.

Revision 1.1.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Sat Oct 19 16:44:38 1991 UTC (22 years, 6 months ago) by ram
Changes since 1.1: +59 -16 lines
Diff to previous 1.1 , to next main 1.41
*** empty log message ***

Revision 1.1 - (view) (annotate) - [select for diffs]
Sun Aug 12 03:46:28 1990 UTC (23 years, 8 months ago) by wlott
Branch: MAIN
Initial revision

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.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5