* doc/ref/goops.texi (Redefinable Classes): New subsection.
(Default Class Redefinition Behaviour)
(Changing the Class of an Instance): Update for class redefinition
change.
* NEWS: Add 2.3.0 section.
* doc/ref/goops.texi (Merging Generics): Change (my-module) example to
use (oop goops) and use the right syntax for #:duplicates. Reported
by David Pirotte <david@altosw.be>.
* doc/ref/goops.texi (Class Definition Protocol): Removed `*fixme
Need to insert something here about checking that the value is not
unbound'. It's a fine detail, and also I imagine there could be a
valid application that would choose to allow SCM_GOOPS_UNBOUND
values to escape through here.
* doc/ref/goops.texi (Method Definition): Unindent text about
define-method invoking add-method!.
(Method Definition Internals): Add @noindent's.
(Generic Function Invocation): Add intro text, and tidy up the tree.
* doc/ref/goops.texi (Class Redefinition): Deleted, with its material
all merged into later `Redefining a Class' and `Changing the Class of
an Instance' sections.
* doc/ref/goops.texi (Instance Creation Protocol): Rename from
`Customizing Instance Creation', and move before the more
complicated class definition stuff. Couple of very minor edits.
(Class Definition Protocol): Remove ensure-metaclass-with-supers
(too internal) and repeated material. Move class-redefinition
stuff to (existing) later section on that. Merge reference-like
material from `Customizing Class Definition' to here.
* doc/ref/goops.texi (The Metaobject Protocol): Simplify intro text.
Minor edits and simplifications throughout this section.
(Metaobjects and the Metaobject Protocol): Insert "default".
(Metaclasses): Renamed from `Terminology', and deleted the material
on CPL and accessors, which just duplicated what has already been
covered earlier in the chapter. Remove statements that confuse
whether "metaclass of" means "class of class of" or "class of
(something that is itself a class)". (I think it's actually the
latter.)
(Class Definition Protocol): Renamed from `Class Definition
Internals'.
* doc/ref/goops.texi (The Metaobject Protocol): Bring forward to
before `Class Options', and add intro text to explain why. All of
the sections now remaining are ones where the MOP is more likely to
be relevant than not.
* doc/ref/goops.texi (GOOPS Object Miscellany): New section, combining
previous `Object Comparison', `Cloning Objects' and `Write and
Display'. Replace `Object Comparison' text with something that
makes sense. Add a snippet to the end of the write/display section.
* doc/ref/goops.texi (Introspection): Make a bit snappier.
(Classes): Add intro. Remove "the" and "metaobject" everywhere.
Remove `class-environment', since I don't know what it's useful for.
(Instances): Remove implementation notes.
(Built-in classes): Merge with `Instances'. Reorder text points.
(Generic Functions): Add intro. Remove "the" and "metaobject"
everywhere.
(Generic Function Methods): Merge with `Generic Functions'.
* doc/ref/goops.texi (Introspection): Move to after `Generic Functions
and Methods'. The idea is to have all of that sections that make
sense without needing to understand the MOP, before sections that
really depend on the MOP.
* doc/ref/goops.texi (Methods and Generic Functions): More explanation
of generic function invocation. Created (or moved) subsections here
to cover material on the following that was previously spread elsewhere:
accessors; extending primitives; merging generics; generic function
examples; handling invocation errors. Edited for clarity throughout.
(Generic functions and methods, Example): Nodes deleted, with their
material incorporated above.
(Class Precedence List): Edited to improve clarity.
(Sorting Methods): New subsection.
material
* doc/ref/goops.texi (GOOPS): Move use of (oop goops) here.
(Class Definition): Merged with `Defining New Classes'
(Instance Creation): Insert before covering slot options. Merge in
material from `Creating Instances'.
(Slot Options): Merged some better wording and index entries from
the tutorial version.
(Slot Description Example): New node, containing the <my-complex>
material from the tutorial.
(Methods and Generic Functions, Inheritance): Tutorial sections
moved into main line of the manual.
* doc/ref/goops-tutorial.texi: Nothing left here now.
These sections are pretty similar in aim, but `Tutorial' is mostly
better material.
* doc/ref/goops-tutorial.texi (Class definition): Add a sentence about
what slots are.
* doc/ref/goops-tutorial.texi (Tutorial): Remove repetition of the Stk
origin, and index entries that are overly general in the context of
the whole Guile manual.
(Generic functions): Add text here about the nature of methods,
previously in Quick Start.
* doc/ref/goops.texi (Quick Start): Move `Built-in classes' subsection
to be part of `Introspection'. Delete the rest, apart from snippets
moved into Tutorial.
* doc/ref/goops.texi (Adding Methods to Generic Functions): Move the
bit about no applicable methods to `Invoking Generic Functions'.
Other minor edits.
(Basic Method Definition): Flattened into parent.
(Method Definition Internals): Moved to MOP section at end of
chapter.
* doc/ref/goops.texi (Generic Function Internals): Moved to MOP section
at end of chapter.
(Basic Generic Function Creation): Flattened into parent, and text
simplified.
(Extending Primitives): Renamed from `Extending Guiles Primitives';
removed `generic-capability?', which is no longer available;
simplified a bit.
(Merging Generics): New subsection for the material about merging;
text simplified a bit.
* doc/ref/goops.texi (Generic Functions and Accessors): Renamed from
`Creating Generic Functions'. Explain what an accessor is.
(Basic Generic Function Creation): Clarify the point of the text
about generics having short names.
As module/oop/goops/stklos.scm, the available compatibility is
superficial only, so it isn't worth documenting.
* doc/ref/goops.texi (STKlos Compatibility): Removed.
* doc/ref/goops.texi (Defining New Classes): Move `Class Definition
Internals' and `Customizing Class Definition' notes to the
metaobject protocol section.
* doc/ref/goops.texi (Defining New Classes): Remove "fixme" text
(saying we should have something that we in fact already have). A
few minor edits throughout.
(Basic Class Definition): Move content up into `Defining New
Classes'.
(Class Options): Move after `Slot Options' (because slot options are
more important). Remove doc of the #:environment option, since I
believe it's now fictitious.
(Slot Options): Reorder the options so that the most commonly used
ones come first.
* doc/ref/goops.texi (Metaobjects and the Metaobject Protocol): Remove
para about GOOPS classes belonging to the usual Scheme namespace.
Interest doesn't justify the space that it takes.
* doc/ref/goops.texi (Introductory Remarks): Node deleted, with
material moved to...
(The Metaobject Protocol): ...here.
(MOP Specification): Moved to become a subnode of `The Metaobject
Protocol'.
* doc/ref/goops.texi (Built-in classes): New node.
(User-defined classes): Show is-a? v and class-of v here, instead of
in next node.
(Asking for the class of an object): Deleted, no longer needed.
* doc/ref/goops.texi (Quick Start): Remove words that only reiterate
"quick start".
* doc/ref/goops.texi (Methods, User-defined classes, Asking for the
class of an object): Say "class" instead of "type". They
are called classes elsewhere, and in an object-oriented system, people
expect classes!
So as to enable more free refactoring of the rest of the chapter
* doc/ref/goops.texi (Copyright Notice): New section containing the
Stk copyright.
* doc/ref/goops-tutorial.texi (Copyright): Equivalent section here
deleted.