src/method-{proto,impl}.lisp: Abstract out the receiver type.
[sod] / doc / SYMBOLS
index ffa6387..b170827 100644 (file)
@@ -41,6 +41,20 @@ c-types-impl.lisp
   c-type-float-complex                          variable
   c-type-float-imaginary                        variable
   c-type-int                                    variable
+  c-type-int-fast16-t                           variable
+  c-type-int-fast32-t                           variable
+  c-type-int-fast64-t                           variable
+  c-type-int-fast8-t                            variable
+  c-type-int-least16-t                          variable
+  c-type-int-least32-t                          variable
+  c-type-int-least64-t                          variable
+  c-type-int-least8-t                           variable
+  c-type-int16-t                                variable
+  c-type-int32-t                                variable
+  c-type-int64-t                                variable
+  c-type-int8-t                                 variable
+  c-type-intmax-t                               variable
+  c-type-intptr-t                               variable
   c-type-long                                   variable
   c-type-long-double                            variable
   c-type-long-double-complex                    variable
@@ -52,6 +66,20 @@ c-types-impl.lisp
   c-type-signed-char                            variable
   c-type-size-t                                 variable
   c-type-tag                                    generic
+  c-type-uint-fast16-t                          variable
+  c-type-uint-fast32-t                          variable
+  c-type-uint-fast64-t                          variable
+  c-type-uint-fast8-t                           variable
+  c-type-uint-least16-t                         variable
+  c-type-uint-least32-t                         variable
+  c-type-uint-least64-t                         variable
+  c-type-uint-least8-t                          variable
+  c-type-uint16-t                               variable
+  c-type-uint32-t                               variable
+  c-type-uint64-t                               variable
+  c-type-uint8-t                                variable
+  c-type-uintmax-t                              variable
+  c-type-uintptr-t                              variable
   c-type-unsigned                               variable
   c-type-unsigned-char                          variable
   c-type-unsigned-long                          variable
@@ -79,6 +107,20 @@ c-types-impl.lisp
   func                                          c-type-form
   cl:function                                   function class c-type-form
   sod-utilities:int                             c-type-spec c-type-form opthandler
+  int-fast16-t                                  c-type-spec c-type-form
+  int-fast32-t                                  c-type-spec c-type-form
+  int-fast64-t                                  c-type-spec c-type-form
+  int-fast8-t                                   c-type-spec c-type-form
+  int-least16-t                                 c-type-spec c-type-form
+  int-least32-t                                 c-type-spec c-type-form
+  int-least64-t                                 c-type-spec c-type-form
+  int-least8-t                                  c-type-spec c-type-form
+  int16-t                                       c-type-spec c-type-form
+  int32-t                                       c-type-spec c-type-form
+  int64-t                                       c-type-spec c-type-form
+  int8-t                                        c-type-spec c-type-form
+  intmax-t                                      c-type-spec c-type-form
+  intptr-t                                      c-type-spec c-type-form
   kind-c-tagged-type                            generic
   llong                                         c-type-spec
   long                                          c-type-spec c-type-form
@@ -130,6 +172,20 @@ c-types-impl.lisp
   tagged-c-type                                 class
   uchar                                         c-type-spec
   uint                                          c-type-spec
+  uint-fast16-t                                 c-type-spec c-type-form
+  uint-fast32-t                                 c-type-spec c-type-form
+  uint-fast64-t                                 c-type-spec c-type-form
+  uint-fast8-t                                  c-type-spec c-type-form
+  uint-least16-t                                c-type-spec c-type-form
+  uint-least32-t                                c-type-spec c-type-form
+  uint-least64-t                                c-type-spec c-type-form
+  uint-least8-t                                 c-type-spec c-type-form
+  uint16-t                                      c-type-spec c-type-form
+  uint32-t                                      c-type-spec c-type-form
+  uint64-t                                      c-type-spec c-type-form
+  uint8-t                                       c-type-spec c-type-form
+  uintmax-t                                     c-type-spec c-type-form
+  uintptr-t                                     c-type-spec c-type-form
   ullong                                        c-type-spec
   ulong                                         c-type-spec
   cl:union                                      function c-type-form
@@ -210,6 +266,8 @@ class-finalize-proto.lisp
   finalize-sod-class                            generic
 
 class-layout-impl.lisp
+  effective-slot-initializer-function           generic
+  effective-slot-prepare-function               generic
   sod-class-effective-slot                      class
   sod-class-slot                                class
   sod-slot-initializer-function                 generic
@@ -256,6 +314,7 @@ class-layout-proto.lisp
   islots-slots                                  generic
   islots-subclass                               generic
   make-base-offset                              generic
+  make-chain-offset                             generic
   make-class-pointer                            generic
   vtable                                        class
   vtable-body                                   generic
@@ -300,6 +359,11 @@ class-make-proto.lisp
 
 class-output.lisp
   *instance-class*                              variable
+  emit-class-conversion-macro                   generic
+  emit-class-object-decl                        generic
+  emit-class-typedef                            generic
+  emit-message-macro                            generic
+  emit-message-macro-defn                       generic
 
 class-utilities.lisp
   argument-lists-compatible-p                   function
@@ -333,7 +397,9 @@ classes.lisp
   sod-class-chains                              generic
   sod-class-class-initializers                  generic setf-generic
   sod-class-direct-superclasses                 generic
+  sod-class-effective-methods                   generic
   sod-class-ilayout                             generic
+  sod-class-initargs                            generic setf-generic
   sod-class-initfrags                           generic setf-generic
   sod-class-initializer                         class
   sod-class-instance-initializers               generic setf-generic
@@ -349,6 +415,11 @@ classes.lisp
   sod-class-type                                generic
   sod-class-vtables                             generic
   sod-initarg                                   class
+  sod-initarg-class                             generic
+  sod-initarg-default                           generic
+  sod-initarg-name                              generic
+  sod-initarg-slot                              generic
+  sod-initarg-type                              generic
   sod-initializer                               class
   sod-initializer-class                         generic
   sod-initializer-slot                          generic
@@ -386,7 +457,7 @@ codegen-proto.lisp
   call-inst                                     class
   codegen-add-function                          generic
   codegen-build-function                        function
-  codegen-functions                             generic setf-generic
+  codegen-functions                             generic
   codegen-pop                                   generic
   codegen-pop-block                             generic
   codegen-pop-function                          generic
@@ -500,6 +571,7 @@ method-impl.lisp
   effective-method-after-methods                generic
   effective-method-around-methods               generic
   effective-method-before-methods               generic
+  effective-method-functions                    generic
   simple-effective-method                       class
   simple-message                                class
   sod-method-role                               generic
@@ -541,7 +613,9 @@ method-proto.lisp
   method-entry-effective-method                 generic
   method-entry-function-name                    generic
   method-entry-function-type                    generic
+  method-entry-role                             generic
   method-entry-slot-name                        generic
+  method-entry-slot-name-by-role                generic
   primary-method-class                          generic
   simple-method-body                            generic
   sod-message-applicable-methods                generic
@@ -549,6 +623,7 @@ method-proto.lisp
   sod-message-check-methods                     generic
   sod-message-effective-method-class            generic
   sod-message-keyword-argument-lists            generic
+  sod-message-receiver-type                     generic
   sod-method-description                        generic
   sod-method-function-name                      generic
   sod-method-function-type                      generic
@@ -569,9 +644,11 @@ module-output.lisp
   banner                                        function
   declare-output-type                           function
   guard-name                                    function
+  module-output-file                            generic
   one-off-output                                function
   output-module                                 function
   output-type-pathname                          function
+  write-dependency-file                         generic
 
 module-parse.lisp
   class-item
@@ -592,10 +669,12 @@ module-proto.lisp
   module                                        class
   module-dependencies                           generic setf-generic
   module-errors                                 generic
+  module-files                                  generic setf-generic
   module-import                                 generic
   module-items                                  generic setf-generic
   module-name                                   generic
   module-pset                                   generic
+  module-state                                  generic setf-generic
   with-module-environment                       macro
   with-temporary-module                         macro
 
@@ -870,8 +949,6 @@ codegen-class
   method-codegen
 codegen-functions
   codegen
-(setf codegen-functions)
-  t codegen
 codegen-message
   method-codegen
 codegen-method
@@ -966,6 +1043,8 @@ effective-method-class
   effective-method
 effective-method-function-name
   effective-method
+effective-method-functions
+  basic-effective-method
 effective-method-keywords
   effective-method
 effective-method-live-p
@@ -980,6 +1059,16 @@ effective-slot-direct-slot
   effective-slot
 effective-slot-initializer
   effective-slot
+effective-slot-initializer-function
+  sod-class-effective-slot
+effective-slot-prepare-function
+  sod-class-effective-slot
+emit-class-conversion-macro
+  sod-class sod-class t
+emit-class-object-decl
+  sod-class t
+emit-class-typedef
+  sod-class t
 emit-decl
   sod::basic-codegen t
 emit-decls
@@ -989,6 +1078,11 @@ emit-inst
 emit-insts
   t t
   sod::basic-codegen t
+emit-message-macro
+  sod-class method-entry t
+emit-message-macro-defn
+  sod-class method-entry t t t t t
+  sod-class method-entry t t t t t [:around]
 ensure-sequencer-item
   sequencer t
 ensure-var
@@ -1019,6 +1113,20 @@ expand-c-type-form
   (eql fn) t
   (eql fun) t
   (eql func) t
+  (eql int-fast16-t) t
+  (eql int-fast32-t) t
+  (eql int-fast64-t) t
+  (eql int-fast8-t) t
+  (eql int-least16-t) t
+  (eql int-least32-t) t
+  (eql int-least64-t) t
+  (eql int-least8-t) t
+  (eql int16-t) t
+  (eql int32-t) t
+  (eql int64-t) t
+  (eql int8-t) t
+  (eql intmax-t) t
+  (eql intptr-t) t
   (eql long) t
   (eql long-double) t
   (eql long-double-complex) t
@@ -1032,6 +1140,20 @@ expand-c-type-form
   (eql size-t) t
   (eql specs) t
   (eql struct) t
+  (eql uint-fast16-t) t
+  (eql uint-fast32-t) t
+  (eql uint-fast64-t) t
+  (eql uint-fast8-t) t
+  (eql uint-least16-t) t
+  (eql uint-least32-t) t
+  (eql uint-least64-t) t
+  (eql uint-least8-t) t
+  (eql uint16-t) t
+  (eql uint32-t) t
+  (eql uint64-t) t
+  (eql uint8-t) t
+  (eql uintmax-t) t
+  (eql uintptr-t) t
   (eql unsigned) t
   (eql unsigned-char) t
   (eql unsigned-long) t
@@ -1057,6 +1179,20 @@ expand-c-type-spec
   (eql double-imaginary)
   (eql float-complex)
   (eql float-imaginary)
+  (eql int-fast16-t)
+  (eql int-fast32-t)
+  (eql int-fast64-t)
+  (eql int-fast8-t)
+  (eql int-least16-t)
+  (eql int-least32-t)
+  (eql int-least64-t)
+  (eql int-least8-t)
+  (eql int16-t)
+  (eql int32-t)
+  (eql int64-t)
+  (eql int8-t)
+  (eql intmax-t)
+  (eql intptr-t)
   (eql llong)
   (eql long)
   (eql long-double)
@@ -1084,6 +1220,20 @@ expand-c-type-spec
   (eql sshort)
   (eql uchar)
   (eql uint)
+  (eql uint-fast16-t)
+  (eql uint-fast32-t)
+  (eql uint-fast64-t)
+  (eql uint-fast8-t)
+  (eql uint-least16-t)
+  (eql uint-least32-t)
+  (eql uint-least64-t)
+  (eql uint-least8-t)
+  (eql uint16-t)
+  (eql uint32-t)
+  (eql uint64-t)
+  (eql uint8-t)
+  (eql uintmax-t)
+  (eql uintptr-t)
   (eql ullong)
   (eql ulong)
   (eql unsigned)
@@ -1130,47 +1280,50 @@ format-temporary-name
 guess-metaclass
   sod-class
 hook-output
-  t t t [progn]
-  base-offset (eql :c) t [progn]
-  base-offset (eql :h) t [progn]
-  basic-effective-method (eql :c) t [progn]
-  chain-offset (eql :c) t [progn]
-  chain-offset (eql :h) t [progn]
-  class-pointer (eql :c) t [progn]
-  class-pointer (eql :h) t [progn]
-  code-fragment-item t t [progn]
-  delegating-direct-method (eql :c) t [progn]
-  effective-slot (eql cl:class) t [progn]
-  ichain (eql :h) t [progn]
-  ichain (eql cl:class) t [progn]
-  ichain (eql ilayout) t [progn]
-  ichain t t [progn]
-  ilayout (eql :h) t [progn]
-  ilayout t t [progn]
-  islots (eql :h) t [progn]
-  islots (eql cl:class) t [progn]
-  islots t t [progn]
-  method-entry (eql :c) t [progn]
-  method-entry (eql vtmsgs) t [progn]
-  module (eql :c) t [progn]
-  module (eql :h) t [progn]
-  module t t [progn]
-  sod-class (eql :c) t [progn]
-  sod-class (eql :h) t [progn]
-  sod-class t t [progn]
-  sod-class-effective-slot (eql cl:class) t [progn]
-  sod-method (eql :c) t [progn]
-  sod-method (eql :h) t [progn]
-  sod-slot (eql islots) t [progn]
-  vtable (eql :c) t [progn]
-  vtable (eql :h) t [progn]
-  vtable t t [progn]
-  vtable-pointer (eql :h) t [progn]
-  vtable-pointer (eql cl:class) t [progn]
-  vtmsgs (eql :c) t [progn]
-  vtmsgs (eql :h) t [progn]
-  vtmsgs (eql vtmsgs) t [progn]
-  vtmsgs t t [progn]
+  t t t
+  base-offset (eql :c) t
+  base-offset (eql :h) t
+  basic-effective-method (eql :c) t
+  chain-offset (eql :c) t
+  chain-offset (eql :h) t
+  class-pointer (eql :c) t
+  class-pointer (eql :h) t
+  code-fragment-item t t
+  delegating-direct-method (eql :c) t
+  effective-slot (eql cl:class) t
+  ichain (eql :h) t
+  ichain (eql cl:class) t
+  ichain (eql ilayout) t
+  ichain t t [:after]
+  ilayout (eql :h) t [:after]
+  ilayout (eql :h) t
+  ilayout t t [:after]
+  islots (eql :h) t
+  islots (eql cl:class) t
+  islots t t [:after]
+  method-entry (eql :c) t
+  method-entry (eql vtmsgs) t
+  module (eql :c) t
+  module (eql :h) t
+  module t t [:after]
+  sod-class (eql :c) t [:after]
+  sod-class (eql :c) t
+  sod-class (eql :h) t [:after]
+  sod-class (eql :h) t
+  sod-class t t [:after]
+  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 [:after]
+  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 [:after]
 ichain-body
   ichain
 ichain-class
@@ -1277,6 +1430,8 @@ kind-c-tagged-type
   (eql :union)
 make-base-offset
   sod-class sod-class
+make-chain-offset
+  sod-class sod-class sod-class
 make-class-pointer
   sod-class sod-class sod-class sod-class
 cl:make-load-form
@@ -1319,14 +1474,23 @@ method-entry-function-name
   effective-method sod-class t
 method-entry-function-type
   method-entry
+method-entry-role
+  method-entry
 method-entry-slot-name
   method-entry
+method-entry-slot-name-by-role
+  method-entry (eql :valist) t
+  method-entry (eql cl:nil) t
 module-dependencies
   module
 (setf module-dependencies)
   t module
 module-errors
   module
+module-files
+  module
+(setf module-files)
+  t module
 module-import
   t
   module
@@ -1338,8 +1502,15 @@ module-items
   t module
 module-name
   module
+module-output-file
+  module cl:pathname t
+  module cl:symbol t
 module-pset
   module
+module-state
+  module
+(setf module-state)
+  t module
 pprint-c-storage-specifier
   cl:symbol t
   alignas-storage-specifier t
@@ -1469,8 +1640,14 @@ sod-class-class-initializers
   t sod-class
 sod-class-direct-superclasses
   sod-class
+sod-class-effective-methods
+  sod-class
 sod-class-ilayout
   sod-class
+sod-class-initargs
+  sod-class
+(setf sod-class-initargs)
+  t sod-class
 sod-class-initfrags
   sod-class
 (setf sod-class-initfrags)
@@ -1511,6 +1688,17 @@ sod-class-vtables
   sod-class
 sod-initarg-argument
   sod-initarg
+sod-initarg-class
+  sod-initarg
+sod-initarg-default
+  sod-initarg
+  sod-user-initarg
+sod-initarg-name
+  sod-initarg
+sod-initarg-slot
+  sod-slot-initarg
+sod-initarg-type
+  sod-initarg
 sod-initializer-class
   sod-initializer
 sod-initializer-slot
@@ -1543,6 +1731,8 @@ sod-message-method-class
   sod-message sod-class t
 sod-message-name
   sod-message
+sod-message-receiver-type
+  sod-message sod-class
 sod-message-type
   sod-message
 sod-method-body
@@ -1606,6 +1796,8 @@ vtmsgs-entries
   vtmsgs
 vtmsgs-subclass
   vtmsgs
+write-dependency-file
+  module t t
 
 -----------------------------------------------------------------------------
 Package `sod-frontend'
@@ -1660,20 +1852,18 @@ floc-proto.lisp
   with-default-error-location                   macro
 
 parser-expr-proto.lisp
-  apply-operator                                generic
   binop                                         macro
   close-parenthesis                             class
   expr                                          parser-form
   lparen                                        function
   open-parenthesis                              class
+  operator-associativity                        generic
   operator-left-precedence                      generic
   operator-push-action                          generic
   operator-right-precedence                     generic
   postop                                        macro
   prefix-operator                               class
   preop                                         macro
-  push-operator                                 generic
-  push-value                                    generic
   rparen                                        function
   simple-binary-operator                        class
   simple-operator                               class
@@ -1737,6 +1927,7 @@ parser-proto.lisp
 scanner-charbuf-impl.lisp
   charbuf-scanner                               class
   charbuf-scanner-map                           generic
+  charbuf-scanner-place                         class
   charbuf-scanner-place-p                       function
   charbuf-scanner-stream                        class
 
@@ -1759,6 +1950,7 @@ scanner-proto.lisp
   scanner-column                                generic setf-generic
   scanner-context                               class
   scanner-current-char                          generic
+  scanner-file-location                         function
   scanner-filename                              generic
   scanner-interval                              generic
   scanner-line                                  generic setf-generic
@@ -1780,6 +1972,7 @@ streams-proto.lisp
   position-aware-output-stream                  class
   position-aware-stream                         class
   position-aware-stream-column                  generic setf-generic
+  position-aware-stream-file                    generic setf-generic
   position-aware-stream-line                    generic setf-generic
   stream-line-and-column                        generic
   stream-pathname                               generic
@@ -1906,6 +2099,7 @@ cl:t
         token-scanner-context [scanner-context]
       token-scanner
     cl:structure-object
+      charbuf-scanner-place
       file-location
       list-scanner
       string-scanner
@@ -1945,10 +2139,6 @@ cl:t
             position-aware-input-stream [position-aware-stream]
 
 Methods:
-apply-operator
-  open-parenthesis sod-parser::expression-parse-state
-  simple-binary-operator sod-parser::expression-parse-state
-  simple-unary-operator sod-parser::expression-parse-state
 charbuf-scanner-map
   charbuf-scanner t
 classify-condition
@@ -2015,7 +2205,7 @@ file-location
   sod:sod-method
   sod:sod-slot
   character-scanner
-  sod-parser::charbuf-scanner-place
+  charbuf-scanner-place
   condition-with-location
   file-location
   position-aware-stream
@@ -2029,6 +2219,9 @@ make-scanner-stream
   character-scanner
   charbuf-scanner
   string-scanner
+operator-associativity
+  t
+  simple-binary-operator
 operator-left-precedence
   simple-binary-operator
   simple-postfix-operator
@@ -2083,6 +2276,10 @@ position-aware-stream-column
   position-aware-stream
 (setf position-aware-stream-column)
   t position-aware-stream
+position-aware-stream-file
+  position-aware-stream
+(setf position-aware-stream-file)
+  t position-aware-stream
 position-aware-stream-line
   position-aware-stream
 (setf position-aware-stream-line)
@@ -2090,13 +2287,6 @@ position-aware-stream-line
 cl:print-object
   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 [:after]
-  prefix-operator sod-parser::expression-parse-state
-push-value
-  t sod-parser::expression-parse-state
 scanner-at-eof-p
   charbuf-scanner
   list-scanner
@@ -2299,6 +2489,7 @@ utilities.lisp
   compose                                       function
   copy-instance                                 function
   copy-instance-using-class                     generic
+  cross-product                                 function
   default-slot                                  macro
   define-access-wrapper                         macro
   define-on-demand-slot                         macro