From b9d603a074ce320686143ef4e18b990e3791b4bf Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Tue, 22 Sep 2015 11:27:11 +0100 Subject: [PATCH] doc/SYMBOLS, doc/list-exports.lisp: Nail down output order properly. --- doc/SYMBOLS | 1487 ++++++++++++++++++++++++++----------------------- doc/list-exports.lisp | 101 +++- 2 files changed, 866 insertions(+), 722 deletions(-) diff --git a/doc/SYMBOLS b/doc/SYMBOLS index 8ce8d69..5951fd5 100644 --- a/doc/SYMBOLS +++ b/doc/SYMBOLS @@ -1,168 +1,317 @@ ----------------------------------------------------------------------------- Package `sod' -pset-proto.lisp - add-property function - check-unused-properties function - coerce-property-value generic - decode-property generic - get-property function - make-property function - make-property-set function - make-pset function - p-key function setf - p-name function setf - p-seenp function setf - p-type function setf - p-value function setf - property class - property-key function - property-set generic - propertyp function - pset class - pset-get function - pset-map function - pset-store function - psetp function - store-property function - with-pset-iterator macro +builtin.lisp + *builtin-module* variable + make-builtin-module function -pset-parse.lisp - parse-property-set function +c-types-class-impl.lisp + c-class-type class + c-type-class generic setf + cl:class class c-type + find-class-type function + find-sod-class function + make-class-type function + record-sod-class function -output-proto.lisp - add-sequencer-constraint generic - add-sequencer-item-function generic - ensure-sequencer-item generic - hook-output generic - invoke-sequencer-items generic - make-sequencer-item function - sequence-output macro - sequencer class - sequencer-constraints generic setf - sequencer-item class - sequencer-item-functions function setf - sequencer-item-name function - sequencer-item-p function - sequencer-table generic +c-types-impl.lisp + cl:* variable function c-type + cl:array class c-type + c-array-dimensions generic + c-array-type class + c-enum-type class + c-function-arguments generic + c-function-type class + c-pointer-type class + c-struct-type class + c-tagged-type-kind generic + c-type-name generic + c-type-tag generic + c-union-type class + cl:char function setf c-type parser + commentify-argument-names function + commentify-function-type function + const-string c-type + define-simple-c-type macro + double c-type + enum c-type + cl:float function class c-type + fn c-type + fun c-type + func c-type + cl:function function class c-type + int c-type + kind-c-tagged-type generic + llong c-type + long c-type + long-double c-type + long-int c-type + long-long c-type + long-long-int c-type + make-array-type function + make-c-tagged-type function + make-enum-type function + make-function-type function + make-pointer-type function + make-simple-type function + make-struct-type function + make-union-type function + cl:nil constant c-type parser + pointer c-type + ptr c-type + ptrdiff-t c-type + cl:schar function setf c-type + short c-type + short-int c-type + signed c-type + signed-char c-type + signed-int c-type + signed-long c-type + signed-long-int c-type + signed-long-long c-type + signed-long-long-int c-type + signed-short c-type + signed-short-int c-type + simple-c-type class + sint c-type + size-t c-type + sllong c-type + slong c-type + sshort c-type + cl:string function class c-type opthandler + struct c-type + tagged-c-type class + uchar c-type + uint c-type + ullong c-type + ulong c-type + cl:union function c-type + unsigned c-type + unsigned-char c-type + unsigned-int c-type + unsigned-long c-type + unsigned-long-int c-type + unsigned-long-long c-type + unsigned-long-long-int c-type + unsigned-short c-type + unsigned-short-int c-type + ushort c-type + va-list c-type + vec c-type + void c-type + [] c-type -module-proto.lisp - *module* variable - add-clear-the-decks-function function - add-module-binding function - add-to-module generic - clear-the-decks function - define-clear-the-decks macro - define-module macro - define-module-var macro - finalize-module generic - module class - module-dependencies generic setf - module-import generic - module-items generic setf - module-name generic - module-pset generic - with-module-environment macro - with-temporary-module macro +c-types-parse.lisp + parse-c-type function + parse-declarator function -module-parse.lisp - read-module function +c-types-proto.lisp + argument class + argument-name function setf + argument-type function setf + argumentp function + c-name-case function + c-type macro class + c-type-alias macro + c-type-equal-p generic + c-type-qualifiers generic + c-type-space function + c-type-subtype generic + canonify-qualifiers function + commentify-argument-name generic + defctype macro + define-c-type-syntax macro + expand-c-type-form generic + expand-c-type-spec generic + format-qualifiers function + make-argument function + maybe-in-parens macro + pprint-c-type generic + print-c-type generic + qualifiable-c-type class + qualify-c-type generic -module-output.lisp - banner function - declare-output-type function - guard-name function - output-module function - output-type-pathname function +class-finalize-impl.lisp + c3-cpl function + clos-cpl function + dylan-cpl function + flavors-cpl function + l*loops-cpl function + python-cpl function -module-impl.lisp - *module-dirs* variable - c-fragment class - c-fragment-text generic setf - code-fragment-item class - find-file function - type-item class +class-finalize-proto.lisp + check-sod-class generic + compute-chains generic + compute-cpl generic + finalize-sod-class generic -method-proto.lisp - codegen-class generic - codegen-message generic - codegen-method generic - codegen-target generic - compute-effective-method-body generic - compute-effective-methods generic - compute-method-entry-functions generic - compute-sod-effective-method generic - convert-to-ilayout-inst class - effective-method class - effective-method-basic-argument-names generic - effective-method-class generic - effective-method-function-name generic - effective-method-message generic - ensure-ilayout-var function - inst-chain-head generic - inst-class generic - inst-expr generic - invoke-delegation-chain function - invoke-method function - make-convert-to-ilayout-inst function - make-method-entries generic - make-trampoline function - message-effective-method-class generic - method-codegen class - method-entry class - method-entry-chain-head generic - method-entry-chain-tail generic - method-entry-effective-method generic - method-entry-function-name generic - method-entry-function-type generic - method-entry-slot-name generic - primary-method-class generic - simple-method-body generic - sod-message-argument-tail generic - sod-message-no-varargs-tail generic - sod-method-function-name generic - sod-method-function-type generic - sod-method-next-method-type generic - varargs-message-p function +class-layout-impl.lisp + sod-class-effective-slot class + sod-class-slot class + sod-slot-initializer-function generic + sod-slot-prepare-function generic -method-impl.lisp - basic-direct-method class - basic-effective-method class - basic-effective-method-body function - basic-message class - daemon-direct-method class - delegating-direct-method class - simple-effective-method class - simple-message class - standard-effective-method class - standard-message class +class-layout-proto.lisp + base-offset class + base-offset-chain-head generic + base-offset-class generic + chain-offset class + chain-offset-chain-head generic + chain-offset-class generic + chain-offset-target-head generic + class-pointer class + class-pointer-chain-head generic + class-pointer-class generic + class-pointer-meta-chain-head generic + class-pointer-metaclass generic + compute-effective-slot generic + compute-ichain generic + compute-ilayout generic + compute-islots generic + compute-vtable generic + compute-vtable-items generic + compute-vtables generic + compute-vtmsgs generic + effective-slot class + effective-slot-class generic + effective-slot-direct-slot generic + effective-slot-initializer generic + find-slot-initializer generic + ichain class + ichain-body generic + ichain-class generic + ichain-head generic + ichain-tail generic + ilayout class + ilayout-class generic + ilayout-ichains generic + islots class + islots-class generic + islots-slots generic + islots-subclass generic + make-base-offset generic + make-class-pointer generic + vtable class + vtable-body generic + vtable-chain-head generic + vtable-chain-tail generic + vtable-class generic + vtable-pointer class + vtable-pointer-chain-head generic + vtable-pointer-chain-tail generic + vtable-pointer-class generic + vtmsgs class + vtmsgs-chain-head generic + vtmsgs-chain-tail generic + vtmsgs-class generic + vtmsgs-entries generic + vtmsgs-subclass generic -method-aggregate.lisp - aggregating-effective-method class - aggregating-message class - aggregating-message-properties generic - check-aggregating-message-type generic - compute-aggregating-message-kernel generic - define-aggregating-method-combination macro +class-make-proto.lisp + check-message-type generic + check-method-type generic + define-sod-class macro + guess-metaclass generic + make-sod-class function + make-sod-class-initializer generic + make-sod-initializer-using-slot generic + make-sod-instance-initializer generic + make-sod-message generic + make-sod-method generic + make-sod-method-using-message generic + make-sod-slot generic + sod-message-method-class generic -lexer-proto.lisp - define-indicator function - cl:error function class parser - lexer-error function - scan-comment function - skip-until function parser - sod-token-scanner class - syntax-error function +class-utilities.lisp + argument-lists-compatible-p function + find-class-slot-by-name function + find-instance-slot-by-name function + find-message-by-name function + find-root-metaclass function + find-root-superclass function + find-superclass-by-nick function + ichain-struct-tag function + ichain-union-tag function + ilayout-struct-tag function + islots-struct-tag function + message-macro-name function + sod-subclass-p function + valid-name-p function + vtable-name function + vtable-struct-tag function + vtable-union-tag function + vtmsgs-struct-tag function -fragment-parse.lisp - parse-delimited-fragment function - scan-c-fragment function +classes.lisp + sod-class class + sod-class-chain generic + sod-class-chain-head generic + sod-class-chain-link generic + sod-class-chains generic + sod-class-class-initializers generic setf + sod-class-direct-superclasses generic + sod-class-ilayout generic + sod-class-initializer class + sod-class-instance-initializers generic setf + sod-class-messages generic setf + sod-class-metaclass generic + sod-class-methods generic setf + sod-class-name generic + sod-class-nickname generic + sod-class-precedence-list generic + sod-class-slots generic setf + sod-class-state generic + sod-class-type generic + sod-class-vtables generic + sod-initializer class + sod-initializer-class generic + sod-initializer-slot generic + sod-initializer-value-form generic + sod-initializer-value-kind generic + sod-instance-initializer class + sod-message class + sod-message-class generic + sod-message-name generic + sod-message-type generic + sod-method class + sod-method-body generic + sod-method-class generic + sod-method-message generic + sod-method-type generic + sod-slot class + sod-slot-class generic + sod-slot-name generic + sod-slot-type generic -final.lisp - *debugout-pathname* variable - *sod-version* variable - exercise function - test-module function +codegen-impl.lisp + call-inst class + codegen class + do-while-inst class + if-inst class + inst-alt generic + inst-ap generic + inst-arg generic + inst-args generic + inst-body generic + inst-cond generic + inst-conseq generic + inst-from generic + inst-func generic + inst-to generic + make-call-inst function + make-do-while-inst function + make-if-inst function + make-va-copy-inst function + make-va-end-inst function + make-va-start-inst function + make-while-inst function + temporary-argument class + temporary-function function class + temporary-variable class + va-copy-inst class + va-end-inst class + va-start-inst class + while-inst class codegen-proto.lisp *sod-ap* variable @@ -218,309 +367,192 @@ codegen-proto.lisp var-inst class with-temporary-var macro -codegen-impl.lisp - call-inst class - codegen class - do-while-inst class - if-inst class - inst-alt generic - inst-ap generic - inst-arg generic - inst-args generic - inst-body generic - inst-cond generic - inst-conseq generic - inst-from generic - inst-func generic - inst-to generic - make-call-inst function - make-do-while-inst function - make-if-inst function - make-va-copy-inst function - make-va-end-inst function - make-va-start-inst function - make-while-inst function - temporary-argument class - temporary-function function class - temporary-variable class - va-copy-inst class - va-end-inst class - va-start-inst class - while-inst class +final.lisp + *debugout-pathname* variable + *sod-version* variable + exercise function + test-module function -classes.lisp - sod-class class - sod-class-chain generic - sod-class-chain-head generic - sod-class-chain-link generic - sod-class-chains generic - sod-class-class-initializers generic setf - sod-class-direct-superclasses generic - sod-class-ilayout generic - sod-class-initializer class - sod-class-instance-initializers generic setf - sod-class-messages generic setf - sod-class-metaclass generic - sod-class-methods generic setf - sod-class-name generic - sod-class-nickname generic - sod-class-precedence-list generic - sod-class-slots generic setf - sod-class-state generic - sod-class-type generic - sod-class-vtables generic - sod-initializer class - sod-initializer-class generic - sod-initializer-slot generic - sod-initializer-value-form generic - sod-initializer-value-kind generic - sod-instance-initializer class - sod-message class - sod-message-class generic - sod-message-name generic - sod-message-type generic - sod-method class - sod-method-body generic - sod-method-class generic - sod-method-message generic - sod-method-type generic - sod-slot class - sod-slot-class generic - sod-slot-name generic - sod-slot-type generic +fragment-parse.lisp + parse-delimited-fragment function + scan-c-fragment function -class-utilities.lisp - argument-lists-compatible-p function - find-class-slot-by-name function - find-instance-slot-by-name function - find-message-by-name function - find-root-metaclass function - find-root-superclass function - find-superclass-by-nick function - ichain-struct-tag function - ichain-union-tag function - ilayout-struct-tag function - islots-struct-tag function - message-macro-name function - sod-subclass-p function - valid-name-p function - vtable-name function - vtable-struct-tag function - vtable-union-tag function - vtmsgs-struct-tag function +lexer-proto.lisp + define-indicator function + cl:error function class parser + lexer-error function + scan-comment function + skip-until function parser + sod-token-scanner class + syntax-error function -class-make-proto.lisp - check-message-type generic - check-method-type generic - define-sod-class macro - guess-metaclass generic - make-sod-class function - make-sod-class-initializer generic - make-sod-initializer-using-slot generic - make-sod-instance-initializer generic - make-sod-message generic - make-sod-method generic - make-sod-method-using-message generic - make-sod-slot generic - sod-message-method-class generic +method-aggregate.lisp + aggregating-effective-method class + aggregating-message class + aggregating-message-properties generic + check-aggregating-message-type generic + compute-aggregating-message-kernel generic + define-aggregating-method-combination macro + sod-message-combination generic + sod-message-kernel-function generic -class-layout-proto.lisp - base-offset class - base-offset-chain-head generic - base-offset-class generic - chain-offset class - chain-offset-chain-head generic - chain-offset-class generic - chain-offset-target-head generic - class-pointer class - class-pointer-chain-head generic - class-pointer-class generic - class-pointer-meta-chain-head generic - class-pointer-metaclass generic - compute-effective-slot generic - compute-ichain generic - compute-ilayout generic - compute-islots generic - compute-vtable generic - compute-vtable-items generic - compute-vtables generic - compute-vtmsgs generic - effective-slot class - effective-slot-class generic - effective-slot-direct-slot generic - effective-slot-initializer generic - find-slot-initializer generic - ichain class - ichain-body generic - ichain-class generic - ichain-head generic - ichain-tail generic - ilayout class - ilayout-class generic - ilayout-ichains generic - islots class - islots-class generic - islots-slots generic - islots-subclass generic - make-base-offset generic - make-class-pointer generic - vtable class - vtable-body generic - vtable-chain-head generic - vtable-chain-tail generic - vtable-class generic - vtable-pointer class - vtable-pointer-chain-head generic - vtable-pointer-chain-tail generic - vtable-pointer-class generic +method-impl.lisp + basic-direct-method class + basic-effective-method class + basic-effective-method-body function + basic-message class + daemon-direct-method class + delegating-direct-method class + effective-method-after-methods generic + effective-method-around-methods generic + effective-method-before-methods generic + simple-effective-method class + simple-message class + sod-method-role generic + standard-effective-method class + standard-message class + +method-proto.lisp + codegen-class generic + codegen-message generic + codegen-method generic + codegen-target generic + compute-effective-method-body generic + compute-effective-methods generic + compute-method-entry-functions generic + compute-sod-effective-method generic + convert-to-ilayout-inst class + effective-method class + effective-method-basic-argument-names generic + effective-method-class generic + effective-method-function-name generic + effective-method-message generic + ensure-ilayout-var function + inst-chain-head generic + inst-class generic + inst-expr generic + invoke-delegation-chain function + invoke-method function + make-convert-to-ilayout-inst function + make-method-entries generic + make-trampoline function + method-codegen class + method-entry class + method-entry-chain-head generic + method-entry-chain-tail generic + method-entry-effective-method generic + method-entry-function-name generic + method-entry-function-type generic + method-entry-slot-name generic + primary-method-class generic + simple-method-body generic + sod-message-argument-tail generic + sod-message-effective-method-class generic + sod-message-no-varargs-tail generic + sod-method-function-name generic + sod-method-function-type generic + sod-method-next-method-type generic + varargs-message-p function -class-layout-impl.lisp - sod-class-effective-slot class - sod-class-slot class +module-impl.lisp + *module-dirs* variable + c-fragment class + c-fragment-text generic setf + code-fragment generic + code-fragment-constraints generic + code-fragment-item class + code-fragment-name generic + code-fragment-reason generic + find-file function + type-item class -class-finalize-proto.lisp - check-sod-class generic - compute-chains generic - compute-cpl generic - finalize-sod-class generic +module-output.lisp + banner function + declare-output-type function + guard-name function + output-module function + output-type-pathname function -class-finalize-impl.lisp - c3-cpl function - clos-cpl function - dylan-cpl function - flavors-cpl function - l*loops-cpl function - python-cpl function +module-parse.lisp + class-item + read-module function -c-types-proto.lisp - argument class - argument-name function setf - argument-type function setf - argumentp function - c-name-case function - c-type macro class - c-type-alias macro - c-type-equal-p generic - c-type-qualifiers generic - c-type-space function - c-type-subtype generic - canonify-qualifiers function - commentify-argument-name generic - defctype macro - define-c-type-syntax macro - expand-c-type-form generic - expand-c-type-spec generic - format-qualifiers function - make-argument function - maybe-in-parens macro - pprint-c-type generic - print-c-type generic - qualifiable-c-type class - qualify-c-type generic +module-proto.lisp + *module* variable + add-clear-the-decks-function function + add-module-binding function + add-to-module generic + clear-the-decks function + define-clear-the-decks macro + define-module macro + define-module-var macro + finalize-module generic + module class + module-dependencies generic setf + module-import generic + module-items generic setf + module-name generic + module-pset generic + with-module-environment macro + with-temporary-module macro -c-types-parse.lisp - parse-c-type function - parse-declarator function +output-proto.lisp + add-sequencer-constraint generic + add-sequencer-item-function generic + ensure-sequencer-item generic + hook-output generic + invoke-sequencer-items generic + make-sequencer-item function + sequence-output macro + sequencer class + sequencer-constraints generic setf + sequencer-item class + sequencer-item-functions function setf + sequencer-item-name function + sequencer-item-p function + sequencer-table generic -c-types-impl.lisp - cl:* variable function c-type - cl:array class c-type - c-array-dimensions generic - c-array-type class - c-enum-type class - c-function-arguments generic - c-function-type class - c-pointer-type class - c-struct-type class - c-tagged-type-kind generic - c-type-name generic - c-type-tag generic - c-union-type class - cl:char function setf c-type parser - commentify-argument-names function - commentify-function-type function - const-string c-type - define-simple-c-type macro - double c-type - enum c-type - cl:float function class c-type - fn c-type - fun c-type - func c-type - cl:function function class c-type - int c-type - kind-c-tagged-type generic - llong c-type - long c-type - long-double c-type - long-int c-type - long-long c-type - long-long-int c-type - make-array-type function - make-c-tagged-type function - make-enum-type function - make-function-type function - make-pointer-type function - make-simple-type function - make-struct-type function - make-union-type function - cl:nil constant c-type parser - pointer c-type - ptr c-type - ptrdiff-t c-type - cl:schar function setf c-type - short c-type - short-int c-type - signed c-type - signed-char c-type - signed-int c-type - signed-long c-type - signed-long-int c-type - signed-long-long c-type - signed-long-long-int c-type - signed-short c-type - signed-short-int c-type - simple-c-type class - sint c-type - size-t c-type - sllong c-type - slong c-type - sshort c-type - cl:string function class c-type opthandler - struct c-type - tagged-c-type class - uchar c-type - uint c-type - ullong c-type - ulong c-type - cl:union function c-type - unsigned c-type - unsigned-char c-type - unsigned-int c-type - unsigned-long c-type - unsigned-long-int c-type - unsigned-long-long c-type - unsigned-long-long-int c-type - unsigned-short c-type - unsigned-short-int c-type - ushort c-type - va-list c-type - vec c-type - void c-type - [] c-type +pset-parse.lisp + parse-property-set function -c-types-class-impl.lisp - c-class-type class - c-type-class generic setf - cl:class class c-type - find-class-type function - find-sod-class function - make-class-type function - record-sod-class function +pset-proto.lisp + add-property function + check-unused-properties function + coerce-property-value generic + decode-property generic + get-property function + make-property function + make-property-set function + make-pset function + p-key function setf + p-name function setf + p-seenp function setf + p-type function setf + p-value function setf + property class + property-key function + property-set generic + propertyp function + pset class + pset-get function + pset-map function + pset-store function + psetp function + store-property function + with-pset-iterator macro -builtin.lisp - *builtin-module* variable - make-builtin-module function +Leaked slot names: #:func, #:class, #:expr, #:cond, #:expr, #:type, #:cond, #:expr, #:expr, #:expr, #:type, #:cond + call-inst: #:func + convert-to-ilayout-inst: #:class, #:expr + do-while-inst: #:cond + expr-inst: #:expr + function-inst: #:type + if-inst: #:cond + return-inst: #:expr + set-inst: #:expr + update-inst: #:expr + var-inst: #:type + while-inst: #:cond Classes: cl:t @@ -609,6 +641,7 @@ cl:t type-item vtable vtable-pointer + vtmsgs cl:structure-object argument property @@ -623,8 +656,8 @@ add-sequencer-item-function add-to-module module t aggregating-message-properties - aggregating-message (eql :custom) t t + aggregating-message (eql :custom) base-offset-chain-head base-offset base-offset-class @@ -634,33 +667,32 @@ c-array-dimensions c-fragment-text c-fragment (setf c-fragment-text) - t c-fragment c-function-arguments c-function-type c-tagged-type-kind - c-union-type - c-struct-type c-enum-type + c-struct-type + c-union-type c-type-class c-class-type (setf c-type-class) t c-class-type c-type-equal-p + t t + c-array-type c-array-type c-class-type c-class-type c-function-type c-function-type - c-array-type c-array-type c-pointer-type c-pointer-type - tagged-c-type tagged-c-type - simple-c-type simple-c-type qualifiable-c-type qualifiable-c-type - t t + simple-c-type simple-c-type + tagged-c-type tagged-c-type c-type-name simple-c-type c-type-qualifiers qualifiable-c-type c-type-subtype - c-function-type c-array-type + c-function-type c-pointer-type c-type-tag tagged-c-type @@ -671,14 +703,14 @@ chain-offset-class chain-offset-target-head chain-offset check-aggregating-message-type - aggregating-message (eql :or) c-function-type + t t t aggregating-message (eql :and) c-function-type + aggregating-message (eql :or) c-function-type aggregating-message (eql :progn) c-function-type - t t t check-message-type aggregating-message t - sod-message c-type sod-message c-function-type + sod-message c-type check-method-type daemon-direct-method sod-message c-function-type sod-method sod-message c-function-type @@ -693,6 +725,14 @@ class-pointer-meta-chain-head class-pointer class-pointer-metaclass class-pointer +code-fragment + code-fragment-item +code-fragment-constraints + code-fragment-item +code-fragment-name + code-fragment-item +code-fragment-reason + code-fragment-item codegen-add-function codegen t codegen-class @@ -716,28 +756,28 @@ codegen-push codegen-target method-codegen coerce-property-value - cl:symbol (eql :symbol) (eql :id) - cl:string (eql :string) (eql :id) - cl:string (eql :string) (eql :symbol) + cl:string (eql :id) (eql :keyword) cl:string (eql :id) (eql :symbol) + cl:string (eql :string) (eql :id) cl:string (eql :string) (eql :keyword) - cl:string (eql :id) (eql :keyword) + cl:string (eql :string) (eql :symbol) + cl:symbol (eql :symbol) (eql :id) cl:symbol (eql :symbol) (eql :keyword) - t t t t t (eql cl:t) + t t t commentify-argument-name - temporary-name cl:null t + temporary-name compute-aggregating-message-kernel - aggregating-message (eql :custom) t t t t - aggregating-message (eql :or) t t t t aggregating-message (eql :and) t t t t + aggregating-message (eql :custom) t t t t aggregating-message (eql :max) t t t t aggregating-message (eql :min) t t t t + aggregating-message (eql :or) t t t t aggregating-message (eql :product) t t t t - aggregating-message (eql :sum) t t t t aggregating-message (eql :progn) t t t t + aggregating-message (eql :sum) t t t t compute-chains sod-class compute-cpl @@ -756,8 +796,8 @@ compute-ilayout compute-islots sod-class sod-class compute-method-entry-functions - simple-effective-method basic-effective-method + simple-effective-method compute-sod-effective-method sod-message sod-class compute-vtable @@ -769,15 +809,21 @@ compute-vtables compute-vtmsgs sod-class sod-class sod-class sod-class decode-property - cl:symbol - cl:integer - cl:string cl:character - property cl:cons cl:function + cl:integer + cl:string + cl:symbol + property +effective-method-after-methods + basic-effective-method +effective-method-around-methods + basic-effective-method effective-method-basic-argument-names basic-effective-method +effective-method-before-methods + basic-effective-method effective-method-class effective-method effective-method-function-name @@ -797,103 +843,104 @@ emit-decls emit-inst sod::basic-codegen t emit-insts - sod::basic-codegen t t t + sod::basic-codegen t ensure-sequencer-item sequencer t ensure-var sod::basic-codegen t t expand-c-type-form + (eql cl:*) t + (eql cl:array) t + (eql cl:char) t (eql cl:class) t - (eql fn) t - (eql func) t - (eql cl:nil) t + (eql cl:float) t (eql cl:function) t - (eql fun) t - (eql vec) t - (eql cl:array) t - (eql []) t - (eql ptr) t - (eql pointer) t - (eql cl:*) t + (eql cl:nil) t (eql cl:union) t - (eql struct) t + (eql double) t (eql enum) t - (eql ptrdiff-t) t - (eql size-t) t - (eql va-list) t + (eql fn) t + (eql fun) t + (eql func) t + (eql int) t + (eql long) t (eql long-double) t - (eql double) t - (eql cl:float) t - (eql unsigned-long-long) t (eql long-long) t - (eql unsigned-long) t - (eql long) t - (eql unsigned-short) t + (eql pointer) t + (eql ptr) t + (eql ptrdiff-t) t (eql short) t - (eql unsigned) t - (eql int) t (eql signed-char) t + (eql size-t) t + (eql struct) t + (eql unsigned) t (eql unsigned-char) t - (eql cl:char) t + (eql unsigned-long) t + (eql unsigned-long-long) t + (eql unsigned-short) t + (eql va-list) t + (eql vec) t (eql void) t - cl:string t + (eql []) t (eql sod-parser:lisp) t + cl:string t expand-c-type-spec - (eql const-string) + (eql cl:char) + (eql cl:float) + (eql cl:schar) (eql cl:string) - (eql ptrdiff-t) - (eql size-t) - (eql va-list) - (eql long-double) + (eql const-string) (eql double) - (eql cl:float) - (eql ullong) - (eql unsigned-long-long-int) - (eql unsigned-long-long) - (eql sllong) + (eql int) (eql llong) - (eql signed-long-long-int) + (eql long) + (eql long-double) + (eql long-int) + (eql long-long) (eql long-long-int) + (eql ptrdiff-t) + (eql short) + (eql short-int) + (eql signed) + (eql signed-char) + (eql signed-int) + (eql signed-long) + (eql signed-long-int) (eql signed-long-long) - (eql long-long) - (eql ulong) - (eql unsigned-long-int) - (eql unsigned-long) + (eql signed-long-long-int) + (eql signed-short) + (eql signed-short-int) + (eql sint) + (eql size-t) + (eql sllong) (eql slong) - (eql signed-long-int) - (eql long-int) - (eql signed-long) - (eql long) - (eql ushort) - (eql unsigned-short-int) - (eql unsigned-short) (eql sshort) - (eql signed-short-int) - (eql short-int) - (eql signed-short) - (eql short) + (eql uchar) (eql uint) - (eql unsigned-int) + (eql ullong) + (eql ulong) (eql unsigned) - (eql sint) - (eql signed-int) - (eql signed) - (eql int) - (eql cl:schar) - (eql signed-char) - (eql uchar) (eql unsigned-char) - (eql cl:char) + (eql unsigned-int) + (eql unsigned-long) + (eql unsigned-long-int) + (eql unsigned-long-long) + (eql unsigned-long-long-int) + (eql unsigned-short) + (eql unsigned-short-int) + (eql ushort) + (eql va-list) (eql void) - cl:string cl:list + cl:string sod-parser:file-location - sod-class + c-fragment property - sod-method - sod-message + sod-class sod-initializer + sod-message + sod-method sod-slot finalize-module module @@ -902,54 +949,54 @@ finalize-sod-class find-slot-initializer sod-class sod-slot format-temporary-name - temporary-function t - temporary-variable t temporary-argument t + temporary-function t temporary-name t + temporary-variable t guess-metaclass sod-class hook-output - effective-slot (eql cl:class) t - sod-class-effective-slot (eql cl:class) t - vtable-pointer (eql cl:class) t - islots (eql cl:class) t - ichain (eql cl:class) t - method-entry (eql :c) t - sod::vtmsgs (eql :c) t - chain-offset (eql :c) t + t t t base-offset (eql :c) t - class-pointer (eql :c) t - vtable (eql :c) t + base-offset (eql :h) t basic-effective-method (eql :c) t - sod-method (eql :c) t - delegating-direct-method (eql :c) t - sod-class (eql :c) t + chain-offset (eql :c) t chain-offset (eql :h) t - base-offset (eql :h) t + class-pointer (eql :c) t class-pointer (eql :h) t - method-entry (eql sod::vtmsgs) t - sod::vtmsgs t t - sod::vtmsgs (eql sod::vtmsgs) t - sod::vtmsgs (eql :h) t - vtable (eql :h) t - sod-method (eql :h) t - vtable t t - islots (eql :h) t - islots t t - vtable-pointer (eql :h) t - ichain (eql ilayout) t + code-fragment-item t t + delegating-direct-method (eql :c) t + effective-slot (eql cl:class) t ichain (eql :h) t - ilayout (eql :h) t + ichain (eql cl:class) t + ichain (eql ilayout) t ichain t t + ilayout (eql :h) t ilayout t t - sod-slot (eql islots) t - sod-class t t - sod-class (eql :h) t + islots (eql :h) t + islots (eql cl:class) t + islots t t + method-entry (eql :c) t + method-entry (eql vtmsgs) t module (eql :c) t module (eql :h) t - code-fragment-item t t module t t - t t t + sod-class (eql :c) t + sod-class (eql :h) t + sod-class t t + sod-class-effective-slot (eql cl:class) t + sod-method (eql :c) t + sod-method (eql :h) t + sod-slot (eql islots) t + vtable (eql :c) t + vtable (eql :h) t + vtable t t + vtable-pointer (eql :h) t + vtable-pointer (eql cl:class) t + vtmsgs (eql :c) t + vtmsgs (eql :h) t + vtmsgs (eql vtmsgs) t + vtmsgs t t ichain-body ichain ichain-class @@ -972,18 +1019,18 @@ inst-arg inst-args call-inst inst-body + block-inst do-while-inst - while-inst function-inst - block-inst + while-inst inst-chain-head convert-to-ilayout-inst inst-class convert-to-ilayout-inst inst-cond do-while-inst - while-inst if-inst + while-inst inst-conseq if-inst inst-decls @@ -992,8 +1039,8 @@ inst-expr convert-to-ilayout-inst expr-inst return-inst - update-inst set-inst + update-inst inst-from va-copy-inst inst-func @@ -1001,26 +1048,26 @@ inst-func inst-init var-inst inst-metric - convert-to-ilayout-inst + cl:list + cl:null + t + block-inst + break-inst call-inst - va-end-inst - va-copy-inst - va-start-inst + continue-inst + convert-to-ilayout-inst do-while-inst - while-inst - if-inst - function-inst - block-inst expr-inst - continue-inst - break-inst + function-inst + if-inst return-inst - update-inst set-inst - var-inst - t - cl:null - cl:list + update-inst + va-copy-inst + va-end-inst + va-start-inst + var-inst + while-inst inst-name function-inst var-inst @@ -1032,8 +1079,8 @@ inst-type function-inst var-inst inst-var - update-inst set-inst + update-inst invoke-sequencer-items sequencer islots-class @@ -1043,9 +1090,9 @@ islots-slots islots-subclass islots kind-c-tagged-type - (eql :union) - (eql :struct) (eql :enum) + (eql :struct) + (eql :union) make-base-offset sod-class sod-class make-class-pointer @@ -1070,9 +1117,6 @@ make-sod-method-using-message sod-message sod-class t t t t make-sod-slot sod-class t t t -message-effective-method-class - aggregating-message - standard-message method-entry-chain-head method-entry method-entry-chain-tail @@ -1090,10 +1134,10 @@ module-dependencies (setf module-dependencies) t module module-import + t + module sod-class type-item - module - t module-items module (setf module-items) @@ -1103,64 +1147,65 @@ module-name module-pset module pprint-c-type - c-function-type t t + t t t c-array-type t t + c-function-type t t c-pointer-type t t - tagged-c-type t t simple-c-type t t - t t t + tagged-c-type t t primary-method-class - standard-message simple-message + standard-message print-c-type + t c-array-type t c-class-type t c-function-type - t c-array-type t c-pointer-type - t tagged-c-type t simple-c-type + t tagged-c-type cl:print-object - vtable t - chain-offset t base-offset t - class-pointer t - ilayout t - ichain t - vtable-pointer t - islots t - method-entry t - effective-method t - effective-slot t - convert-to-ilayout-inst t - sequencer-item t + block-inst t + break-inst t c-fragment t + c-type t call-inst t - va-end-inst t - va-copy-inst t - va-start-inst t + chain-offset t + class-pointer t + continue-inst t + convert-to-ilayout-inst t do-while-inst t - while-inst t - if-inst t - temporary-name t - function-inst t - block-inst t + effective-method t + effective-slot t expr-inst t - continue-inst t - break-inst t + function-inst t + ichain t + if-inst t + ilayout t + islots t + method-entry t + pset t return-inst t - update-inst t + sequencer-item t set-inst t - var-inst t - pset t - sod-method t - sod-message t + sod-class t sod-initializer t + sod-message t + sod-method t sod-slot t - sod-class t - c-type t + temporary-name t + update-inst t + va-copy-inst t + va-end-inst t + va-start-inst t + var-inst t + vtable t + vtable-pointer t + vtmsgs t + while-inst t property-set - pset cl:list + pset qualify-c-type qualifiable-c-type t sod-parser:scanner-token @@ -1173,32 +1218,32 @@ sequencer-table sequencer cl:shared-initialize aggregating-message t + basic-direct-method t + c-function-type t method-codegen t + module t simple-effective-method t - basic-direct-method t + sod-class t sod-class-slot t - sod-method t - sod-message t sod-initializer t + sod-message t + sod-method t sod-slot t - sod-class t - module t - c-function-type t sod-token-scanner t simple-method-body aggregating-effective-method t t standard-effective-method t t cl:slot-unbound - t basic-effective-method (eql sod::functions) + t basic-direct-method (eql sod::function-type) t basic-effective-method (eql sod::basic-argument-names) + t basic-effective-method (eql sod::functions) + t basic-message (eql sod::argument-tail) + t basic-message (eql sod::no-varargs-tail) t delegating-direct-method (eql sod::function-type) t delegating-direct-method (eql sod::next-method-type) - t basic-direct-method (eql sod::function-type) - t basic-message (eql sod::no-varargs-tail) - t basic-message (eql sod::argument-tail) - t sod-class (eql sod::vtables) - t sod-class (eql sod::effective-methods) t sod-class (eql sod::%ilayout) + t sod-class (eql sod::effective-methods) + t sod-class (eql sod::vtables) sod-class-chain sod-class sod-class-chain-head @@ -1257,9 +1302,16 @@ sod-message-argument-tail basic-message sod-message-class sod-message +sod-message-combination + aggregating-message +sod-message-effective-method-class + aggregating-message + standard-message +sod-message-kernel-function + aggregating-message sod-message-method-class - simple-message sod-class t basic-message sod-class t + simple-message sod-class t sod-message sod-class t sod-message-name sod-message @@ -1279,12 +1331,18 @@ sod-method-message sod-method sod-method-next-method-type delegating-direct-method +sod-method-role + basic-direct-method sod-method-type sod-method sod-slot-class sod-slot +sod-slot-initializer-function + sod-class-slot sod-slot-name sod-slot +sod-slot-prepare-function + sod-class-slot sod-slot-type sod-slot temp-tag @@ -1292,8 +1350,8 @@ temp-tag temporary-var sod::basic-codegen t var-in-use-p - temporary-variable t + temporary-variable (setf var-in-use-p) t temporary-variable vtable-body @@ -1310,6 +1368,16 @@ vtable-pointer-chain-tail vtable-pointer vtable-pointer-class vtable-pointer +vtmsgs-chain-head + vtmsgs +vtmsgs-chain-tail + vtmsgs +vtmsgs-class + vtmsgs +vtmsgs-entries + vtmsgs +vtmsgs-subclass + vtmsgs ----------------------------------------------------------------------------- Package `sod-frontend' @@ -1582,104 +1650,105 @@ charbuf-scanner-map enclosed-condition enclosing-condition expand-parser-form - token-scanner-context (eql cl:error) t - token-scanner-context (eql sod:skip-until) t - t (eql expr) t - list-parser (eql cl:type) t - list-parser (eql cl:quote) t - token-parser-context (eql token) t - character-parser-context (eql filter) t - character-parser-context (eql cl:not) t - character-parser-context (eql cl:satisfies) t - character-parser-context (eql cl:char) t - character-parser-context (eql if-char) t - t (eql peek) t - t (eql plug) t - t (eql ?) t - t (eql cl:or) t - t (eql skip-many) t - t (eql cl:list) t - t (eql many) t - t (eql lisp) t t (eql cl:and) t - t (eql seq) t - t (eql cl:when) t + t (eql cl:list) t t (eql cl:nil) t + t (eql cl:or) t t (eql cl:t) t + t (eql cl:when) t + t (eql ?) t + t (eql expr) t t (eql label) t + t (eql lisp) t + t (eql many) t + t (eql peek) t + t (eql plug) t + t (eql seq) t + t (eql skip-many) t t t t + character-parser-context (eql cl:char) t + character-parser-context (eql cl:not) t + character-parser-context (eql cl:satisfies) t + character-parser-context (eql filter) t + character-parser-context (eql if-char) t + list-parser (eql cl:quote) t + list-parser (eql cl:type) t + token-parser-context (eql token) t + token-scanner-context (eql cl:error) t + token-scanner-context (eql sod:skip-until) t expand-parser-spec - list-parser t - token-parser-context cl:string - token-parser-context t - character-parser-context cl:string - character-parser-context (eql :whitespace) - character-parser-context cl:character - character-parser-context (eql :any) + t (eql :eof) t (eql cl:nil) t (eql cl:t) - t (eql :eof) t cl:list + character-parser-context (eql :any) + character-parser-context (eql :whitespace) + character-parser-context cl:character + character-parser-context cl:string + list-parser t + token-parser-context cl:string + token-parser-context t file-location - sod:sod-class + cl:stream + t + sod:c-fragment sod:property - sod:sod-method - sod:sod-message + sod:sod-class sod:sod-initializer + sod:sod-message + sod:sod-method sod:sod-slot - token-scanner-place - sod-parser::charbuf-scanner-place - token-scanner character-scanner - position-aware-stream - cl:stream - t + sod-parser::charbuf-scanner-place condition-with-location file-location + position-aware-stream + token-scanner + token-scanner-place cl:make-load-form file-location make-scanner-stream sod:sod-token-scanner + character-scanner charbuf-scanner string-scanner - character-scanner operator-left-precedence - simple-postfix-operator simple-binary-operator + simple-postfix-operator operator-push-action - open-parenthesis t - t open-parenthesis t t + t open-parenthesis + open-parenthesis t operator-right-precedence - simple-prefix-operator - simple-postfix-operator simple-binary-operator + simple-postfix-operator + simple-prefix-operator parser-at-eof-p + list-parser scanner-context string-parser - list-parser token-parser-context parser-capture-place + t + list-parser scanner-context string-parser - list-parser - t parser-current-char character-scanner-context string-parser parser-places-must-be-released-p + t + list-parser sod-parser::list-scanner-context - sod-parser::string-scanner-context string-parser - list-parser - t + sod-parser::string-scanner-context parser-release-place - scanner-context t t t + scanner-context t parser-restore-place + list-parser t scanner-context t string-parser t - list-parser t parser-scanner scanner-context parser-step @@ -1698,77 +1767,77 @@ position-aware-stream-line (setf position-aware-stream-line) t position-aware-stream cl:print-object - simple-operator t file-location t + simple-operator t push-operator + t sod-parser::expression-parse-state close-parenthesis sod-parser::expression-parse-state open-parenthesis sod-parser::expression-parse-state prefix-operator sod-parser::expression-parse-state - t sod-parser::expression-parse-state push-value t sod-parser::expression-parse-state scanner-at-eof-p - token-scanner charbuf-scanner list-scanner string-scanner -scanner-capture-place token-scanner +scanner-capture-place + t charbuf-scanner list-scanner string-scanner - t + token-scanner scanner-column + t charbuf-scanner token-scanner - t (setf scanner-column) t token-scanner scanner-current-char charbuf-scanner string-scanner scanner-filename + t charbuf-scanner token-scanner - t scanner-interval charbuf-scanner t string-scanner t scanner-line + t charbuf-scanner token-scanner - t (setf scanner-line) t token-scanner scanner-release-place - token-scanner t - charbuf-scanner t t t -scanner-restore-place + charbuf-scanner t token-scanner t +scanner-restore-place charbuf-scanner t list-scanner t string-scanner t + token-scanner t scanner-step - token-scanner charbuf-scanner list-scanner string-scanner + token-scanner scanner-token sod:sod-token-scanner scanner-unread charbuf-scanner t cl:shared-initialize + charbuf-scanner t simple-binary-operator t token-scanner t - charbuf-scanner t sb-gray:stream-line-column position-aware-output-stream stream-pathname + cl:file-stream + cl:stream position-aware-stream sod-parser::proxy-stream - cl:stream - cl:file-stream sb-gray:stream-peek-char character-scanner-stream sb-gray:stream-read-char @@ -1800,8 +1869,8 @@ token-value list-scanner token-scanner wrap-parser - string-parser t t t + string-parser t ----------------------------------------------------------------------------- Package `optparse' diff --git a/doc/list-exports.lisp b/doc/list-exports.lisp index 93ee8be..5cb8600 100644 --- a/doc/list-exports.lisp +++ b/doc/list-exports.lisp @@ -155,13 +155,22 @@ (defvar charbuf-size 0) +(defun exported-symbol-p (symbol &optional (package (symbol-package symbol))) + (and package + (multiple-value-bind (sym how) + (find-symbol (symbol-name symbol) package) + (and (eq sym symbol) + (eq how :external))))) + (defun pretty-symbol-name (symbol package) - (let* ((pkg (symbol-package symbol)) - (exportp (member symbol (list-exported-symbols pkg)))) + (let ((pkg (symbol-package symbol)) + (exportp (exported-symbol-p symbol))) (format nil "~(~:[~A:~:[:~;~]~;~2*~]~A~)" (and exportp (eq pkg package)) - (if (keywordp symbol) "" (best-package-name pkg)) - exportp (symbol-name symbol)))) + (cond ((keywordp symbol) "") + ((eq pkg nil) "#") + (t (best-package-name pkg))) + (or exportp (null pkg)) (symbol-name symbol)))) (defun analyse-classes (package) (setf package (find-package package)) @@ -196,6 +205,69 @@ (walk-down sub this (1+ depth))))) (walk-down (find-class t) nil 0)))) +(defmacro deep-compare ((left right) &body body) + (let ((block (gensym "BLOCK-")) (func (gensym "FUNC-")) + (l (gensym "LEFT-")) (r (gensym "RIGHT-"))) + `(macrolet ((focus (expr &body body) + `(flet ((,',func (it) ,expr)) + (let ((,',l (,',func ,',l)) + (,',r (,',func ,',r))) + ,@body))) + (update (expr) + `(flet ((,',func (it) ,expr)) + (psetf ,',l (,',func ,',l) + ,',r (,',func ,',r)))) + (compare (expr) + `(cond ((let ((left ,',l) (right ,',r)) ,expr) + (return-from ,',block t)) + ((let ((right ,',l) (left ,',r)) ,expr) + (return-from ,',block nil)))) + (typesw (&rest clauses) + (labels ((iter (clauses) + (if (null clauses) + 'nil + (destructuring-bind (type &rest body) + (car clauses) + (if (eq type t) + `(progn ,@body) + `(if (typep ,',l ',type) + (if (typep ,',r ',type) + (progn ,@body) + (return-from ,',block t)) + (if (typep ,',r ',type) + (return-from ,',block nil) + ,(iter (cdr clauses))))))))) + (iter clauses)))) + (let ((,l ,left) (,r ,right)) + (block ,block + ,@body))))) + +(defun order-specializers (la lb) + (deep-compare (la lb) + (loop (typesw (null (return nil))) + (focus (car it) + (typesw (sb-mop:eql-specializer + (focus (sb-mop:eql-specializer-object it) + (typesw (keyword + (compare (string< left right))) + (symbol + (focus (package-name (symbol-package it)) + (compare (string< left right))) + (compare (string< left right))) + (t + (focus (with-output-to-string (out) + (prin1 it out) + (write-char #\nul)) + (compare (string< left right))))))) + (class + (focus (class-name it) + (focus (package-name (symbol-package it)) + (compare (string< left right))) + (compare (string< left right)))) + (t + (error "unexpected things")))) + (update (cdr it))))) + (defun analyse-generic-functions (package) (setf package (find-package package)) (flet ((function-name-core (name) @@ -248,7 +320,10 @@ ((cons (eql setf) t) (format t "(setf ~A)~%" (pretty-symbol-name (cadr name) package))))) - (dolist (method (sb-mop:generic-function-methods function)) + (dolist (method (sort (copy-list + (sb-mop:generic-function-methods function)) + #'order-specializers + :key #'sb-mop:method-specializers)) (when (gethash method methods) (format t "~2T~{~A~^ ~}~%" (mapcar @@ -279,13 +354,11 @@ (let* ((slot-names (mapcar #'sb-mop:slot-definition-name (sb-mop:class-direct-slots class))) - (exported (remove-if-not + (exported (remove-if (lambda (sym) - (or (and (symbol-package sym) - (not (eq (symbol-package - sym) - package))) - (member sym symbols))) + (and (not (exported-symbol-p sym)) + (eq (symbol-package sym) + package))) slot-names))) (and exported (list (cons (class-name class) @@ -301,7 +374,9 @@ (format t "~A~%Package `~(~A~)'~2%" (make-string 77 :initial-element #\-) (package-name package)) - (dolist (assoc (categorize-symbols paths package)) + (dolist (assoc (sort (categorize-symbols paths package) #'string< + :key (lambda (assoc) + (file-namestring (car assoc))))) (when (cdr assoc) (format t "~A~%" (file-namestring (car assoc))) (dolist (def (cdr assoc)) @@ -333,7 +408,7 @@ (slot-value comp 'asdf::components)) (files (comp) (sort (remove-if-not (lambda (comp) - (typep comp 'asdf:cl-source-file)) + (typep comp 'asdf:cl-source-file)) (components comp)) #'string< :key #'asdf:component-name)) (by-name (comp name) -- 2.11.0