X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/sod/blobdiff_plain/dea4d05507e59ab779ed4bb209e05971d87e260c..bf090e021a5c20da452a4841cdfb8eb78e29544e:/src/impl-class-finalize.lisp diff --git a/src/impl-class-finalize.lisp b/src/impl-class-finalize.lisp index 6193836..39ac234 100644 --- a/src/impl-class-finalize.lisp +++ b/src/impl-class-finalize.lisp @@ -53,8 +53,8 @@ (cl:in-package #:sod) (defun clos-tiebreaker (candidates so-far) "The CLOS linearization tiebreaker function. - Intended for use with MERGE-LISTS. Returns the member of CANDIDATES which - has a direct subclass furthest to the right in the list SO-FAR. + Intended for use with `merge-lists'. Returns the member of CANDIDATES + which has a direct subclass furthest to the right in the list SO-FAR. This must disambiguate. The SO-FAR list cannot be empty, since the class under construction precedes all of the others. If two classes share a @@ -73,9 +73,9 @@ (defun clos-tiebreaker (candidates so-far) (defun c3-tiebreaker (candidates cpls) "The C3 linearization tiebreaker function. - Intended for use with MERGE-LISTS. Returns the member of CANDIDATES which - appears in the earliest element of CPLS, which should be the list of the - class precedence lists of the direct superclasses of the class in + Intended for use with `merge-lists'. Returns the member of CANDIDATES + which appears in the earliest element of CPLS, which should be the list of + the class precedence lists of the direct superclasses of the class in question, in the order specified in the class declaration. The only class in the class precedence list which does not appear in one @@ -104,7 +104,7 @@ (defun clos-cpl (class) "Compute the class precedence list of CLASS using CLOS linearization rules. We merge the direct-superclass lists of all of CLASS's superclasses, - disambiguating using CLOS-TIEBREAKER. + disambiguating using `clos-tiebreaker'. The CLOS linearization preserves local class ordering, but is not monotonic, and does not respect the extended precedence graph. CLOS @@ -128,7 +128,7 @@ (defun dylan-cpl (class) We merge the direct-superclass list of CLASS with the full class precedence lists of its direct superclasses, disambiguating using - CLOS-TIEBREAKER. (Inductively, these lists will be consistent with the + `clos-tiebreaker'. (Inductively, these lists will be consistent with the CPLs of indirect superclasses, since those CPLs' orderings are reflected in the CPLs of the direct superclasses.) @@ -150,7 +150,7 @@ (defun c3-cpl (class) We merge the direct-superclass list of CLASS with the full class precedence lists of its direct superclasses, disambiguating using - C3-TIEBREAKER. + `c3-tiebreaker'. The C3 linearization preserves local class ordering, is monotonic, and respects the extended precedence graph. It is the linearization used in @@ -335,9 +335,9 @@ (defmethod check-sod-class ((class sod-class)) (defmethod finalize-sod-class ((class sod-class)) - ;; CLONE-AND-HACK WARNING: Note that BOOTSTRAP-CLASSES has a (very brief) + ;; CLONE-AND-HACK WARNING: Note that `bootstrap-classes' has a (very brief) ;; clone of the CPL and chain establishment code. If the interface changes - ;; then BOOTSTRAP-CLASSES will need to be changed too. + ;; then `bootstrap-classes' will need to be changed too. (with-default-error-location (class) (ecase (sod-class-state class)