/[cmucl]/src/pcl/std-class.lisp
ViewVC logotype

Log of /src/pcl/std-class.lisp

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Links to cold-pcl-base: (view) (annotate)
Sticky Tag:

Revision 1.43 - (view) (annotate) - [select for diffs]
Thu Feb 6 15:20:12 2003 UTC (11 years, 2 months ago) by gerd
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.42: +7 -3 lines
Diff to previous 1.42
* pcl/defs.lisp (standard-method): Change superclass
plist-mixin to documentation-mixin so that we don't throw
away the method documentation.

* pcl/cmucl-documentation.lisp (setf documentation): Use
set-random-documentation.

* pcl/defcombin.lisp (set-random-documentation): New function.
(load-short-defcombin, load-long-defcombin): Use it.

* pcl/env.lisp (describe-object) <standard-generic-function>:
Print the generic function doc string, if any.  Print method doc
strings.
(describe-object) <class>: Print slots.

* code/describe.lisp (describe-symbol): If a class names
a PCL class, describe-object the PCL class.

Revision 1.42 - (view) (annotate) - [select for diffs]
Fri Jan 3 21:41:00 2003 UTC (11 years, 3 months ago) by pmai
Branch: MAIN
Changes since 1.41: +13 -5 lines
Diff to previous 1.41
Entomotomy Bug: redefining-class-breaks-accessing-of-class-slots

Commited patch by Gerd Moellmann that fixes a bug in the accessing of
class-slots for redefined classes in certain cases, due to caches not
being flushed because of reused wrappers.

Revision 1.41 - (view) (annotate) - [select for diffs]
Fri Jan 3 20:33:01 2003 UTC (11 years, 3 months ago) by pmai
Branch: MAIN
Changes since 1.40: +6 -1 lines
Diff to previous 1.40
Entomotomy Bug: finalize-inheritance-missing-method-on-forward-referenced-class

As noted by Gerd Moellmann, PCL needs a method on finalize-inheritance
specialized for forward-referenced-class, which signals a relevant error,
since forward-referenced-classes can't be finalized.

Revision 1.40 - (view) (annotate) - [select for diffs]
Fri Jan 3 20:17:49 2003 UTC (11 years, 3 months ago) by pmai
Branch: MAIN
Changes since 1.39: +16 -1 lines
Diff to previous 1.39
Entomotomy Bug: finalize-instance-not-being-called-on-class-finalization

Fix to ensure that finalize-inheritance (the bug's name is a misnomer) is
called on class-finalization, from Gerd Moellmann via SBCL.

Revision 1.39 - (view) (annotate) - [select for diffs]
Sun Dec 22 14:09:52 2002 UTC (11 years, 3 months ago) by pmai
Branch: MAIN
Changes since 1.38: +75 -44 lines
Diff to previous 1.38
Entomotomy Bug: slot-definition-allocation-not-amop-compliant

Added needed second half of patch, from Gerd Moellmann via SBCL, to cure
newly introduced problem with inheritance of class slots.  Also committed
modified version (again via SBCL) of Gerd's COMPUTE-SLOTS revamp for more
modular computation of slot locations.

Revision 1.38 - (view) (annotate) - [select for diffs]
Wed Dec 18 16:29:06 2002 UTC (11 years, 4 months ago) by pmai
Branch: MAIN
Changes since 1.37: +11 -11 lines
Diff to previous 1.37
Entomotomy Bug: slot-definition-allocation-not-amop-compliant

Committed a slightly adjusted patch from Gerd Moellmann, which makes the
GF slot-definition-allocation return :class for class slots, as specified
by AMOP, instead of the class object, as it did previously.

Revision 1.37 - (view) (annotate) - [select for diffs]
Tue Oct 29 16:20:45 2002 UTC (11 years, 5 months ago) by pmai
Branch: MAIN
Changes since 1.36: +24 -6 lines
Diff to previous 1.36
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.

Revision 1.36 - (view) (annotate) - [select for diffs]
Sat Oct 19 14:56:03 2002 UTC (11 years, 6 months ago) by pmai
Branch: MAIN
Changes since 1.35: +2 -2 lines
Diff to previous 1.35
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.

Revision 1.35 - (view) (annotate) - [select for diffs]
Sat Oct 19 14:32:44 2002 UTC (11 years, 6 months ago) by pmai
Branch: MAIN
Changes since 1.34: +5 -5 lines
Diff to previous 1.34
Committed patch by Gerd Moellmann to rename the constant *slot-unbound* to
the more fitting name +slot-unbound+.

Revision 1.34 - (view) (annotate) - [select for diffs]
Sat Sep 7 13:28:46 2002 UTC (11 years, 7 months ago) by pmai
Branch: MAIN
CVS Tags: UNICODE-BASE
Branch point for: UNICODE-BRANCH
Changes since 1.33: +3 -3 lines
Diff to previous 1.33
Committed patches by Gerd Moellmann to eliminate PCL's without-interrupts
in favour of either system:without-interrupts (for non-MP versions), and
a lock-based approach for MP versions.  Note that the latter is a bit
experimental, see the comments in the code for details.

Revision 1.33 - (view) (annotate) - [select for diffs]
Tue Aug 27 18:46:49 2002 UTC (11 years, 7 months ago) by pmai
Branch: MAIN
CVS Tags: LINKAGE_TABLE, PRE_LINKAGE_TABLE
Changes since 1.32: +21 -22 lines
Diff to previous 1.32
Patch from Gerd Moellmann to modify more simple-program-error sites to
use the new simple-program-error function.

Revision 1.32 - (view) (annotate) - [select for diffs]
Mon Aug 26 02:23:15 2002 UTC (11 years, 7 months ago) by pmai
Branch: MAIN
Changes since 1.31: +124 -128 lines
Diff to previous 1.31
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.31 - (view) (annotate) - [select for diffs]
Mon Aug 19 16:43:15 2002 UTC (11 years, 8 months ago) by pmai
Branch: MAIN
Changes since 1.30: +43 -10 lines
Diff to previous 1.30
Patch from Gerd Moellmann to bring error detection of defclass in line
with ANSI requirements:

o If there are any duplicate slot names, an error of type
  program-error is signaled.
o If an initialization argument name appears more than once in
  :default-initargs class option, an error of type program-error is
  signaled.
o If any of the following slot options appears more than once in a
  single slot description, an error of type program-error is signaled:
  :allocation, :initform, :type, :documentation.

Revision 1.30 - (view) (annotate) - [select for diffs]
Wed Jun 5 23:17:47 2002 UTC (11 years, 10 months ago) by pmai
Branch: MAIN
Changes since 1.29: +1 -2 lines
Diff to previous 1.29
This fixes a bug noted by Nicolas Neuss, where executing a defclass
form with a metaclass of structure-class would result in the
generation of recursive print-object methods, so that the printing of
instances of such a class would result in an endless loop.  The bug
was caused by the changes that made structure-printing ANSI
compliant.  Removing a now redundant :print-function option to the
automatically generated defstruct form cured the problem.

Revision 1.29 - (view) (annotate) - [select for diffs]
Wed Jun 5 23:00:12 2002 UTC (11 years, 10 months ago) by pmai
Branch: MAIN
Changes since 1.28: +17 -11 lines
Diff to previous 1.28
Make change-class ANSI-compliant, by allowing the passing of
initargs.  This fix is thanks to Espen S. Johnsen, who noted that
update-instance-for-different-class already supported the passing of
initargs, so that the fix is only to make change-class accept
initargs, and pass them along to u-i-f-d-c.  Also fixes a probably
undetected bug in change-class with a lisp::class second argument
(bogus apply in env.lisp).

Revision 1.28 - (view) (annotate) - [select for diffs]
Thu Nov 29 03:50:35 2001 UTC (12 years, 4 months ago) by pmai
Branch: MAIN
Changes since 1.27: +9 -10 lines
Diff to previous 1.27
Fixed AMOP conformance bug of ensure-class-using-class reported by
Hannu Koivisto:  ensure-class-using-class shouldn't default unsupplied
:direct-superclasses or :direct-slots arguments in its calls to
make-instance and reinitialize-instance.

Code audit showed that only coerce-to-class relied on the old
behaviour.  This was necessary because the initialization code for
std-class didn't default an unsupplied value for :direct-superclasses
correctly, producing a class with no direct superclasses, contrary to
the AMOP.  Fixed this as well.

Revision 1.27 - (view) (annotate) - [select for diffs]
Tue Apr 10 22:37:23 2001 UTC (13 years ago) by pw
Branch: MAIN
Changes since 1.26: +2 -3 lines
Diff to previous 1.26
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.26 - (view) (annotate) - [select for diffs]
Thu Aug 3 16:58:56 2000 UTC (13 years, 8 months ago) by pw
Branch: MAIN
Changes since 1.25: +11 -3 lines
Diff to previous 1.25
These changes remove some obsolete and unused type system interface codes,
and introduces code to "inform-type-system-about-std-class". The effect
of this new code is to put minimal class definitions into the compile-time
environment to prevent undefined-type warnings. These definitions are
replaced with the correct class defs at load-time.

Revision 1.25 - (view) (annotate) - [select for diffs]
Sun May 30 23:14:08 1999 UTC (14 years, 10 months ago) by pw
Branch: MAIN
Changes since 1.24: +6 -21 lines
Diff to previous 1.24
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.24 - (view) (annotate) - [select for diffs]
Sun Mar 14 01:14:14 1999 UTC (15 years, 1 month ago) by dtc
Branch: MAIN
Changes since 1.23: +3 -4 lines
Diff to previous 1.23
Further cleanup of the code now that the :SETF feature is assumed standard.

Revision 1.23 - (view) (annotate) - [select for diffs]
Thu Mar 11 16:51:16 1999 UTC (15 years, 1 month ago) by pw
Branch: MAIN
Changes since 1.22: +7 -19 lines
Diff to previous 1.22
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.

Revision 1.22 - (view) (annotate) - [select for diffs]
Fri Feb 12 21:47:14 1999 UTC (15 years, 2 months ago) by pw
Branch: MAIN
Changes since 1.21: +4 -3 lines
Diff to previous 1.21
/tmp/z.tmp

Revision 1.21 - (view) (annotate) - [select for diffs]
Tue Jan 12 17:51:09 1999 UTC (15 years, 3 months ago) by pw
Branch: MAIN
Changes since 1.20: +1 -5 lines
Diff to previous 1.20
Modifies EXPAND-DEFCLASS to substitute pcl::standard-class for
lisp:standard-class in the superclass list given to defclass. This
is consistent with the treatment given the :metaclass option argument.

std-class.lisp is restored to its original state wiping out all traces
of bogus change introduced in revision 1.19.

Revision 1.20 - (view) (annotate) - [select for diffs]
Wed Jan 6 14:30:07 1999 UTC (15 years, 3 months ago) by pw
Branch: MAIN
Changes since 1.19: +3 -2 lines
Diff to previous 1.19
Backout previous change to ensure-class-values. There is more to
this bug than previously thought.

Revision 1.19 - (view) (annotate) - [select for diffs]
Wed Jan 6 13:43:47 1999 UTC (15 years, 3 months ago) by pw
Branch: MAIN
Changes since 1.18: +4 -1 lines
Diff to previous 1.18
Fix ENSURE-CLASS-VALUES so that (defclass myclass(standard-class)()) works
the same as (defclass myclass()()). Had to map LISP:STANDARD-CLASS
to PCL::STANDARD-CLASS when the former was explicitly provided.

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

Revision 1.17 - (view) (annotate) - [select for diffs]
Sun Jun 21 19:04:44 1998 UTC (15 years, 10 months ago) by dtc
Branch: MAIN
Changes since 1.16: +29 -25 lines
Diff to previous 1.16
When initialising class metaobjects and the direct-superclasses is
null or empty, it should default to funcallable-standard-object if the
class is an instance of funcallable-standard-class whereas it was
always defaulting to standard-class.

Catch attempts to change the class of an instance via change-class
between the incompatible standard-class and funcallable-standard-class
metaclasses.

Revision 1.16 - (view) (annotate) - [select for diffs]
Sun Jun 21 10:16:56 1998 UTC (15 years, 10 months ago) by dtc
Branch: MAIN
Changes since 1.15: +5 -1 lines
Diff to previous 1.15
Since funcallable-standard-objects are now disjoint from
standard-objects, classes with meta-class standard-class are no longer
valid super-classes of classes with meta-class
funcallable-standard-class, so validate-superclass should now return
NIL for this combination.

Further classes with meta-class std-class are now valid superclasses
of classes with meta-class of either standard-class or
funcallable-standard-class; add validate-superclass methods allowing
such super-classes which are handy for mixins of both standard-objects
and funcallable-standard-objects.

Revision 1.15 - (view) (annotate) - [select for diffs]
Fri Jun 5 02:53:54 1998 UTC (15 years, 10 months ago) by dtc
Branch: MAIN
Changes since 1.14: +3 -3 lines
Diff to previous 1.14
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.14 - (view) (annotate) - [select for diffs]
Mon May 4 01:27:24 1998 UTC (15 years, 11 months ago) by dtc
Branch: MAIN
Changes since 1.13: +1 -1 lines
Diff to previous 1.13
Gray streams support:
* Rename the 'stream structure class to sys:lisp-stream.
* Add a new none hierarchical 'stream built-in class which inherits
  from: instance, t.
* Hack in the new stream class as a mixin for the structure base
  lisp-stream class which now inherits from: stream, structure-object,
  instance, t.
* Add a new 'fundamental-stream standard-class which includes 'stream
  as a mixin, and add PCL hacks to allow this to be redefined after PCL is
  loaded to be (defclass fundamental-stream (standard-object stream) ...).
* Add appropriate support to the base stream functions to dispatch to
  the Gray stream functions for the handling of fundamental-streams.
  Some of the lisp-streams encapsulating CLOS streams still need
  a little work.

Revision 1.13 - (view) (annotate) - [select for diffs]
Fri Apr 17 00:50:17 1998 UTC (16 years ago) by dtc
Branch: MAIN
Changes since 1.12: +7 -4 lines
Diff to previous 1.12
Within update-cpl, setup the class precedence list before of the class
before calling force-cache-flushes as this in turn calls
update-lisp-class-layout which need the cpl to correctly setup the
layout inherits.

Revision 1.12 - (view) (annotate) - [select for diffs]
Sun Dec 14 20:41:03 1997 UTC (16 years, 4 months ago) by pw
Branch: MAIN
Changes since 1.11: +5 -1 lines
Diff to previous 1.11
This set of changes enables the use of forward referenced classes in PCL.
The problem was(is) that the wrapper object needed to connect the Lisp
type system to PCL classes doesn't exist until the forward-referenced-class
is defined. At that time all the subclasses of it are initialized and
wrappers attached. In the meantime, the actual forward referenced class is
an instance of pcl::forward-referenced-class and any subclasses are
pcl class instances with most slots nil.

The fix herein arranges for UPDATE-LISP-CLASS-LAYOUT to also set
the lisp:class-name and use (setf lisp:find-class) to connect the
new layout to the Lisp class system.

An undesired consequence of this is that DEFCLASS can't return a valid
class object unless all superclasses are defined. This shouldn't be a
real problem as the classes can't be used in the intermediate state,
but the HyperSpec says DEFCLASS returns a class object. We return
a valid class object or NIL.

Revision 1.11 - (view) (annotate) - [select for diffs]
Sat Aug 30 18:40:27 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.10: +6 -7 lines
Diff to previous 1.10
Re-define the documentation function according to the ANSI CL spec.;
the doc-type argument is no longer optional.

Revision 1.10 - (view) (annotate) - [select for diffs]
Fri Aug 29 20:21:32 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.9: +2 -1 lines
Diff to previous 1.9
Stop the documentation function calling the lisp::documentation
function; causes a loop.

Revision 1.9 - (view) (annotate) - [select for diffs]
Thu Feb 6 21:24:22 1997 UTC (17 years, 2 months ago) by pw
Branch: MAIN
Branch point for: RELENG_18
Changes since 1.8: +122 -72 lines
Diff to previous 1.8
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.

Revision 1.8 - (view) (annotate) - [select for diffs]
Mon Feb 8 17:39:23 1993 UTC (21 years, 2 months ago) by phg
Branch: MAIN
Branch point for: cmu
Changes since 1.7: +1 -2 lines
Diff to previous 1.7
Changed the definition of force-cache-flushes by removing unnecessary
call to update-constructors, as suggested by Richard Harris.

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

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

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

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

Revision 1.3 - (view) (annotate) - [select for diffs]
Wed Oct 23 15:35:19 1991 UTC (22 years, 6 months ago) by ram
Branch: MAIN
Changes since 1.2: +0 -1 lines
Diff to previous 1.2
Deleted spurious line at EOF due to non-newline termination in merge.

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

Revision 1.1 - (view) (annotate) - [select for diffs]
Sun Aug 12 03:48:21 1990 UTC (23 years, 8 months ago) by wlott
Branch: MAIN
Branch point for: patch_15
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