chiark / gitweb /
Static instance support.
[sod] / doc / SYMBOLS
index d9587ee34b1e0b37939e1531aa7b224f1559bf7f..dc1e784b181a5f12e31ac39c6c54b4d5ecd85f79 100644 (file)
@@ -7,22 +7,28 @@ builtin.lisp
 
 c-types-class-impl.lisp
   c-class-type                                  class
-  c-type-class                                  generic setf
-  cl:class                                      class c-type
+  c-type-class                                  generic setf-generic
+  cl:class                                      class c-type-form
   find-class-type                               function
   find-sod-class                                function
   make-class-type                               function
   record-sod-class                              function
 
 c-types-impl.lisp
-  cl:*                                          variable function c-type
-  cl:array                                      class c-type
-  bool                                          c-type
+  cl:*                                          variable function c-type-form
+  alignas
+  alignas-storage-specifier                     class
+  cl:array                                      class c-type-form
+  atomic                                        c-type-form
+  bool                                          c-type-spec c-type-form
   c-array-dimensions                            generic
   c-array-type                                  class
+  c-atomic-type                                 class
   c-enum-type                                   class
   c-function-arguments                          generic
+  c-function-keywords                           generic
   c-function-type                               class
+  c-keyword-function-type                       class
   c-pointer-type                                class
   c-struct-type                                 class
   c-tagged-type-kind                            generic
@@ -35,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
@@ -46,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
@@ -55,85 +89,121 @@ c-types-impl.lisp
   c-type-void                                   variable
   c-type-wchar-t                                variable
   c-union-type                                  class
-  cl:char                                       function setf c-type parser
+  cl:char                                       function setf-function c-type-spec c-type-form parser-form
   commentify-argument-names                     function
   commentify-function-type                      function
-  const-string                                  c-type
+  const-string                                  c-type-spec
   define-simple-c-type                          macro
-  double                                        c-type
-  double-complex                                c-type
-  double-imaginary                              c-type
-  enum                                          c-type
-  cl:float                                      function class c-type
-  float-complex                                 c-type
-  float-imaginary                               c-type
-  fn                                            c-type
-  fun                                           c-type
-  func                                          c-type
-  cl:function                                   function class c-type
-  int                                           c-type
+  double                                        c-type-spec c-type-form
+  double-complex                                c-type-spec c-type-form
+  double-imaginary                              c-type-spec c-type-form
+  enum                                          c-type-form
+  find-simple-c-type                            function
+  cl:float                                      function class c-type-spec c-type-form
+  float-complex                                 c-type-spec c-type-form
+  float-imaginary                               c-type-spec c-type-form
+  fn                                            c-type-form
+  fun                                           c-type-form
+  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
-  long                                          c-type
-  long-double                                   c-type
-  long-double-complex                           c-type
-  long-double-imaginary                         c-type
-  long-int                                      c-type
-  long-long                                     c-type
-  long-long-int                                 c-type
+  llong                                         c-type-spec
+  long                                          c-type-spec c-type-form
+  long-double                                   c-type-spec c-type-form
+  long-double-complex                           c-type-spec c-type-form
+  long-double-imaginary                         c-type-spec c-type-form
+  long-int                                      c-type-spec
+  long-long                                     c-type-spec c-type-form
+  long-long-int                                 c-type-spec
   make-array-type                               function
+  make-atomic-type                              function
   make-c-tagged-type                            function
   make-enum-type                                function
   make-function-type                            function
+  make-keyword-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
+  merge-keyword-lists                           function
+  cl:nil                                        constant c-type-form parser-spec parser-form
+  pointer                                       c-type-form
+  pprint-argument-list                          function
+  pprint-c-function-type                        function
+  ptr                                           c-type-form
+  ptrdiff-t                                     c-type-spec c-type-form
+  reify-variable-argument-tail                  function
+  cl:schar                                      function setf-function c-type-spec
+  short                                         c-type-spec c-type-form
+  short-int                                     c-type-spec
+  signed                                        c-type-spec
+  signed-char                                   c-type-spec c-type-form
+  signed-int                                    c-type-spec
+  signed-long                                   c-type-spec
+  signed-long-int                               c-type-spec
+  signed-long-long                              c-type-spec
+  signed-long-long-int                          c-type-spec
+  signed-short                                  c-type-spec
+  signed-short-int                              c-type-spec
   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
+  sint                                          c-type-spec
+  size-t                                        c-type-spec c-type-form
+  sllong                                        c-type-spec
+  slong                                         c-type-spec
+  specs                                         c-type-form
+  sshort                                        c-type-spec
+  cl:string                                     function class c-type-spec opthandler
+  struct                                        c-type-form
   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
-  wchar-t                                       c-type
-  []                                            c-type
+  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
+  unsigned                                      c-type-spec c-type-form
+  unsigned-char                                 c-type-spec c-type-form
+  unsigned-int                                  c-type-spec
+  unsigned-long                                 c-type-spec c-type-form
+  unsigned-long-int                             c-type-spec
+  unsigned-long-long                            c-type-spec c-type-form
+  unsigned-long-long-int                        c-type-spec
+  unsigned-short                                c-type-spec c-type-form
+  unsigned-short-int                            c-type-spec
+  ushort                                        c-type-spec
+  va-list                                       c-type-spec c-type-form
+  vec                                           c-type-form
+  void                                          c-type-spec c-type-form
+  wchar-t                                       c-type-spec c-type-form
+  []                                            c-type-form
 
 c-types-parse.lisp
   parse-c-type                                  function
@@ -141,29 +211,40 @@ c-types-parse.lisp
 
 c-types-proto.lisp
   argument                                      class
+  argument-default                              function
   argument-name                                 function
   argument-type                                 function
   argumentp                                     function
   c-name-case                                   function
+  c-qualifier-keyword                           generic
+  c-storage-specifiers-type                     class
   c-type                                        macro class
   c-type-alias                                  macro
   c-type-equal-p                                generic
+  c-type-qualifier-keywords                     function
   c-type-qualifiers                             generic
   c-type-space                                  function
+  c-type-specifiers                             generic
   c-type-subtype                                generic
   canonify-qualifiers                           function
   commentify-argument-name                      generic
   defctype                                      macro
+  define-c-storage-specifier-syntax             macro
   define-c-type-syntax                          macro
+  expand-c-storage-specifier                    generic
+  expand-c-storage-specifier-form               generic
   expand-c-type-form                            generic
   expand-c-type-spec                            generic
   format-qualifiers                             function
   make-argument                                 function
   maybe-in-parens                               macro
+  pprint-c-storage-specifier                    generic
   pprint-c-type                                 generic
+  print-c-storage-specifier                     generic
   print-c-type                                  generic
   qualifiable-c-type                            class
   qualify-c-type                                generic
+  wrap-c-type                                   function
 
 class-finalize-impl.lisp
   c3-cpl                                        function
@@ -171,15 +252,22 @@ class-finalize-impl.lisp
   dylan-cpl                                     function
   flavors-cpl                                   function
   l*loops-cpl                                   function
+  merge-class-lists                             function
   python-cpl                                    function
+  report-class-list-merge-error                 function
 
 class-finalize-proto.lisp
+  check-class-initializer                       generic
   check-sod-class                               generic
   compute-chains                                generic
   compute-cpl                                   generic
+  finalization-error                            macro
+  finalization-failed                           function
   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
@@ -210,6 +298,8 @@ class-layout-proto.lisp
   effective-slot-class                          generic
   effective-slot-direct-slot                    generic
   effective-slot-initializer                    generic
+  find-class-initializer                        generic
+  find-slot-initargs                            generic
   find-slot-initializer                         generic
   ichain                                        class
   ichain-body                                   generic
@@ -224,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
@@ -241,22 +332,42 @@ class-layout-proto.lisp
   vtmsgs-entries                                generic
   vtmsgs-subclass                               generic
 
+class-make-impl.lisp
+  check-method-argument-lists                   function
+  check-method-return-type                      function
+  check-method-return-type-against-message      function
+
 class-make-proto.lisp
   check-message-type                            generic
   check-method-type                             generic
   guess-metaclass                               generic
   make-sod-class                                function
+  make-sod-class-initfrag                       generic
   make-sod-class-initializer                    generic
+  make-sod-class-tearfrag                       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
+  make-sod-slot-initarg                         generic
+  make-sod-slot-initarg-using-slot              generic
+  make-sod-user-initarg                         generic
+  make-static-instance                          generic
+  sod-initarg-argument                          generic
   sod-message-method-class                      generic
 
 class-output.lisp
   *instance-class*                              variable
+  *static-instance*                             variable
+  declare-static-instance                       generic
+  emit-class-conversion-macro                   generic
+  emit-class-object-decl                        generic
+  emit-class-typedef                            generic
+  emit-message-macro                            generic
+  emit-message-macro-defn                       generic
+  output-static-instance-initializer            generic
 
 class-utilities.lisp
   argument-lists-compatible-p                   function
@@ -269,8 +380,12 @@ class-utilities.lisp
   ichain-struct-tag                             function
   ichain-union-tag                              function
   ilayout-struct-tag                            function
+  inheritance-path-reporter-state               class
   islots-struct-tag                             function
+  make-inheritance-path-reporter-state          function
   message-macro-name                            function
+  report-inheritance-path                       function
+  select-minimal-class-property                 function
   sod-subclass-p                                function
   valid-name-p                                  function
   vtable-name                                   function
@@ -284,30 +399,40 @@ classes.lisp
   sod-class-chain-head                          generic
   sod-class-chain-link                          generic
   sod-class-chains                              generic
-  sod-class-class-initializers                  generic setf
+  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
-  sod-class-messages                            generic setf
+  sod-class-instance-initializers               generic setf-generic
+  sod-class-messages                            generic setf-generic
   sod-class-metaclass                           generic
-  sod-class-methods                             generic setf
+  sod-class-methods                             generic setf-generic
   sod-class-name                                generic
   sod-class-nickname                            generic
   sod-class-precedence-list                     generic
-  sod-class-slots                               generic setf
+  sod-class-slots                               generic setf-generic
   sod-class-state                               generic
+  sod-class-tearfrags                           generic setf-generic
   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
-  sod-initializer-value-form                    generic
-  sod-initializer-value-kind                    generic
+  sod-initializer-value                         generic
   sod-instance-initializer                      class
   sod-message                                   class
   sod-message-class                             generic
   sod-message-name                              generic
+  sod-message-readonly-p                        generic
   sod-message-type                              generic
   sod-method                                    class
   sod-method-body                               generic
@@ -316,91 +441,102 @@ classes.lisp
   sod-method-type                               generic
   sod-slot                                      class
   sod-slot-class                                generic
+  sod-slot-initarg                              class
   sod-slot-name                                 generic
   sod-slot-type                                 generic
+  sod-user-initarg                              class
+  static-instance                               class
+  static-instance-class                         generic
+  static-instance-const-p                       generic
+  static-instance-extern-p                      generic
+  static-instance-initializers                  generic setf-generic
+  static-instance-name                          generic
 
 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
+  *null-pointer*                                variable
   *sod-ap*                                      variable
   *sod-master-ap*                               variable
+  banner-inst                                   class
   block-inst                                    class
   break-inst                                    class
+  call-inst                                     class
   codegen-add-function                          generic
   codegen-build-function                        function
-  codegen-functions                             generic setf
+  codegen-functions                             generic
   codegen-pop                                   generic
   codegen-pop-block                             generic
   codegen-pop-function                          generic
   codegen-push                                  generic
+  cond-inst                                     class
   continue-inst                                 class
   convert-stmts                                 function
   definst                                       macro
+  deliver-call                                  function
   deliver-expr                                  function
+  do-while-inst                                 class
+  emit-banner                                   function
   emit-decl                                     generic
   emit-decls                                    generic
   emit-inst                                     generic
   emit-insts                                    generic
   ensure-var                                    generic
   expr-inst                                     class
+  for-inst                                      class
+  format-banner-comment                         function
   format-compound-statement                     macro
   format-temporary-name                         generic
   function-inst                                 class
+  if-inst                                       class
   inst                                          class
+  inst-alt                                      generic
+  inst-args                                     generic
+  inst-banner                                   generic
+  inst-banner-args                              generic
   inst-body                                     generic
+  inst-cond                                     generic
+  inst-conseq                                   generic
+  inst-control                                  generic
   inst-decls                                    generic
   inst-expr                                     generic
+  inst-func                                     generic
   inst-init                                     generic
   inst-metric                                   generic
   inst-name                                     generic
   inst-op                                       generic
   inst-type                                     generic
+  inst-update                                   generic
   inst-var                                      generic
+  make-banner-inst                              function
   make-block-inst                               function
   make-break-inst                               function
+  make-call-inst                                function
+  make-cond-inst                                function
   make-continue-inst                            function
+  make-do-while-inst                            function
   make-expr-inst                                function
+  make-for-inst                                 function
   make-function-inst                            function
+  make-if-inst                                  function
   make-return-inst                              function
   make-set-inst                                 function
   make-update-inst                              function
   make-var-inst                                 function
+  make-while-inst                               function
   return-inst                                   class
   set-inst                                      class
   temp-tag                                      generic
   temporary-name                                class
   temporary-var                                 generic
   update-inst                                   class
-  var-in-use-p                                  generic setf
+  var-in-use-p                                  generic setf-generic
   var-inst                                      class
+  while-inst                                    class
   with-temporary-var                            macro
 
 final.lisp
@@ -408,6 +544,9 @@ final.lisp
   *sod-version*                                 variable
   exercise                                      function
   test-module                                   function
+  test-parse-c-type                             function
+  test-parse-pset                               function
+  test-parser                                   macro
 
 fragment-parse.lisp
   parse-delimited-fragment                      function
@@ -415,12 +554,13 @@ fragment-parse.lisp
 
 lexer-proto.lisp
   define-indicator                              function
-  cl:error                                      function class parser
-  lexer-error                                   function
+  cl:error                                      function class parser-form
+  lexer-error                                   function class
+  must                                          parser-form
   scan-comment                                  function
-  skip-until                                    function parser
+  skip-until                                    parser-form
   sod-token-scanner                             class
-  syntax-error                                  function
+  syntax-error                                  function class
 
 method-aggregate.lisp
   aggregating-effective-method                  class
@@ -442,6 +582,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
@@ -454,6 +595,7 @@ method-proto.lisp
   codegen-method                                generic
   codegen-target                                generic
   compute-effective-method-body                 generic
+  compute-effective-method-keyword-arguments    function
   compute-effective-methods                     generic
   compute-method-entry-functions                generic
   compute-sod-effective-method                  generic
@@ -462,6 +604,8 @@ method-proto.lisp
   effective-method-basic-argument-names         generic
   effective-method-class                        generic
   effective-method-function-name                generic
+  effective-method-keywords                     generic
+  effective-method-live-p                       generic
   effective-method-message                      generic
   ensure-ilayout-var                            function
   inst-chain-head                               generic
@@ -469,6 +613,7 @@ method-proto.lisp
   inst-expr                                     generic
   invoke-delegation-chain                       function
   invoke-method                                 function
+  keyword-message-p                             function
   make-convert-to-ilayout-inst                  function
   make-method-entries                           generic
   make-trampoline                               function
@@ -479,12 +624,18 @@ 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
   sod-message-argument-tail                     generic
+  sod-message-check-methods                     generic
   sod-message-effective-method-class            generic
-  sod-message-no-varargs-tail                   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
   sod-method-next-method-type                   generic
@@ -492,8 +643,6 @@ method-proto.lisp
 
 module-impl.lisp
   *module-dirs*                                 variable
-  c-fragment                                    class
-  c-fragment-text                               generic
   code-fragment                                 generic
   code-fragment-constraints                     generic
   code-fragment-item                            class
@@ -506,8 +655,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
@@ -518,17 +670,22 @@ module-proto.lisp
   add-clear-the-decks-function                  function
   add-module-binding                            function
   add-to-module                                 generic
+  c-fragment                                    class
+  c-fragment-text                               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-dependencies                           generic setf-generic
+  module-errors                                 generic
+  module-files                                  generic setf-generic
   module-import                                 generic
-  module-items                                  generic setf
+  module-items                                  generic setf-generic
   module-name                                   generic
   module-pset                                   generic
+  module-state                                  generic setf-generic
   with-module-environment                       macro
   with-temporary-module                         macro
 
@@ -541,14 +698,15 @@ output-proto.lisp
   make-sequencer-item                           function
   sequence-output                               macro
   sequencer                                     class
-  sequencer-constraints                         generic setf
+  sequencer-constraints                         generic setf-generic
   sequencer-item                                class
-  sequencer-item-functions                      function setf
+  sequencer-item-functions                      function setf-function
   sequencer-item-name                           function
   sequencer-item-p                              function
   sequencer-table                               generic
 
 pset-parse.lisp
+  parse-property                                function
   parse-property-set                            function
 
 pset-proto.lisp
@@ -556,13 +714,14 @@ pset-proto.lisp
   check-unused-properties                       function
   coerce-property-value                         generic
   decode-property                               generic
+  default-slot-from-property                    macro
   get-property                                  function
   make-property                                 function
   make-property-set                             function
   make-pset                                     function
   p-key                                         function
   p-name                                        function
-  p-seenp                                       function setf
+  p-seenp                                       function setf-function
   p-type                                        function
   p-value                                       function
   property                                      class
@@ -580,7 +739,25 @@ pset-proto.lisp
 Classes:
 cl:t
   sb-pcl::slot-object
+    cl:condition
+      sod-parser:condition-with-location
+        sod-parser:error-with-location [cl:error]
+          sod-parser:base-lexer-error
+            lexer-error [sod-parser:parser-error]
+          sod-parser:base-syntax-error
+            syntax-error [sod-parser:parser-error]
+      cl:serious-condition
+        cl:error
+          sod-parser:error-with-location [sod-parser:condition-with-location]
+            sod-parser:base-lexer-error
+              lexer-error [sod-parser:parser-error]
+            sod-parser:base-syntax-error
+              syntax-error [sod-parser:parser-error]
+          sod-parser:parser-error
+            lexer-error [sod-parser:base-lexer-error]
+            syntax-error [sod-parser:base-syntax-error]
     cl:standard-object
+      alignas-storage-specifier
       base-offset
       sod::basic-codegen
         codegen
@@ -589,7 +766,10 @@ cl:t
       c-type
         c-array-type
         c-function-type
+          c-keyword-function-type
+        c-storage-specifiers-type
         qualifiable-c-type
+          c-atomic-type
           c-pointer-type
           simple-c-type
             c-class-type
@@ -611,22 +791,23 @@ cl:t
         sod-class-effective-slot
       ichain
       ilayout
+      inheritance-path-reporter-state
       inst
+        banner-inst
         block-inst
         break-inst
         call-inst
+        cond-inst
         continue-inst
         convert-to-ilayout-inst
         do-while-inst
         expr-inst
+        for-inst
         function-inst
         if-inst
         return-inst
         set-inst
         update-inst
-        va-copy-inst
-        va-end-inst
-        va-start-inst
         var-inst
         while-inst
       islots
@@ -641,6 +822,9 @@ cl:t
           cl:class [sb-pcl::definition-source-mixin sb-pcl::standard-specializer]
       sequencer
       sod-class
+      sod-initarg
+        sod-slot-initarg
+        sod-user-initarg
       sod-initializer
         sod-class-initializer
         sod-instance-initializer
@@ -655,6 +839,7 @@ cl:t
           delegating-direct-method
       sod-slot
         sod-class-slot
+      static-instance
       temporary-name
         temporary-argument
         temporary-function
@@ -691,6 +876,11 @@ c-fragment-text
   c-fragment
 c-function-arguments
   c-function-type
+c-function-keywords
+  c-keyword-function-type
+c-qualifier-keyword
+  (eql :atomic)
+  cl:symbol
 c-tagged-type-kind
   c-enum-type
   c-struct-type
@@ -700,22 +890,30 @@ c-type-class
 (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-pointer-type c-pointer-type
-  qualifiable-c-type qualifiable-c-type
-  simple-c-type simple-c-type
-  tagged-c-type tagged-c-type
+  t t [and]
+  c-array-type c-array-type [and]
+  c-atomic-type c-atomic-type [and]
+  c-class-type c-class-type [and]
+  c-function-type c-function-type [and]
+  c-keyword-function-type c-keyword-function-type [and]
+  c-pointer-type c-pointer-type [and]
+  c-storage-specifiers-type c-type [:around]
+  c-type c-storage-specifiers-type [:around]
+  qualifiable-c-type qualifiable-c-type [and]
+  simple-c-type simple-c-type [and]
+  tagged-c-type tagged-c-type [and]
 c-type-name
   simple-c-type
 c-type-qualifiers
   qualifiable-c-type
+c-type-specifiers
+  c-storage-specifiers-type
 c-type-subtype
   c-array-type
+  c-atomic-type
   c-function-type
   c-pointer-type
+  c-storage-specifiers-type
 c-type-tag
   tagged-c-type
 chain-offset-chain-head
@@ -727,6 +925,9 @@ chain-offset-target-head
 check-aggregating-message-type
   t t t
   aggregating-message (eql :progn) c-function-type
+check-class-initializer
+  effective-slot sod-class
+  sod-class-effective-slot sod-class
 check-message-type
   aggregating-message t
   sod-message c-function-type
@@ -760,8 +961,6 @@ codegen-class
   method-codegen
 codegen-functions
   codegen
-(setf codegen-functions)
-  t codegen
 codegen-message
   method-codegen
 codegen-method
@@ -777,12 +976,15 @@ codegen-push
 codegen-target
   method-codegen
 coerce-property-value
+  cl:integer (eql :int) (eql :boolean)
+  cl:string (eql :id) (eql :boolean)
   cl:string (eql :id) (eql :keyword)
   cl:string (eql :id) (eql :symbol)
   cl:string (eql :id) (eql :type)
   cl:string (eql :string) (eql :id)
   cl:string (eql :string) (eql :keyword)
   cl:string (eql :string) (eql :symbol)
+  cl:symbol (eql :symbol) (eql :boolean)
   cl:symbol (eql :symbol) (eql :id)
   cl:symbol (eql :symbol) (eql :keyword)
   t t (eql cl:t)
@@ -805,6 +1007,7 @@ compute-chains
 compute-cpl
   sod-class
 compute-effective-method-body
+  basic-effective-method t t [:around]
   simple-effective-method t t
 compute-effective-methods
   sod-class
@@ -819,7 +1022,7 @@ compute-islots
   sod-class sod-class
 compute-method-entry-functions
   basic-effective-method
-  simple-effective-method
+  effective-method [:around]
 compute-sod-effective-method
   sod-message sod-class
 compute-vtable
@@ -830,6 +1033,8 @@ compute-vtables
   sod-class
 compute-vtmsgs
   sod-class sod-class sod-class sod-class
+declare-static-instance
+  t t
 decode-property
   cl:character
   cl:cons
@@ -837,6 +1042,7 @@ decode-property
   cl:integer
   cl:string
   cl:symbol
+  c-fragment
   c-type
   property
 effective-method-after-methods
@@ -851,6 +1057,14 @@ 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
+  aggregating-effective-method
+  sod::lifecycle-effective-method
+  simple-effective-method
 effective-method-message
   effective-method
 effective-slot-class
@@ -859,6 +1073,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
@@ -868,10 +1092,21 @@ 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
   sod::basic-codegen t t
+expand-c-storage-specifier
+  cl:list
+  cl:symbol
+expand-c-storage-specifier-form
+  (eql alignas) t
+  (eql sod-parser:lisp) t
 expand-c-type-form
   (eql cl:*) t
   (eql cl:array) t
@@ -881,6 +1116,7 @@ expand-c-type-form
   (eql cl:function) t
   (eql cl:nil) t
   (eql cl:union) t
+  (eql atomic) t
   (eql bool) t
   (eql double) t
   (eql double-complex) t
@@ -891,7 +1127,20 @@ expand-c-type-form
   (eql fn) t
   (eql fun) t
   (eql func) t
-  (eql int) 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
@@ -903,7 +1152,22 @@ expand-c-type-form
   (eql short) t
   (eql signed-char) t
   (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
@@ -915,6 +1179,7 @@ expand-c-type-form
   (eql wchar-t) t
   (eql []) t
   (eql sod-parser:lisp) t
+  (eql sod-utilities:int) t
   cl:string t
 expand-c-type-spec
   (eql cl:char)
@@ -928,7 +1193,20 @@ expand-c-type-spec
   (eql double-imaginary)
   (eql float-complex)
   (eql float-imaginary)
-  (eql int)
+  (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)
@@ -956,6 +1234,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)
@@ -971,20 +1263,28 @@ expand-c-type-spec
   (eql va-list)
   (eql void)
   (eql wchar-t)
+  (eql sod-utilities:int)
   cl:list
   cl:string
 sod-parser:file-location
   c-fragment
   property
   sod-class
+  sod-initarg
   sod-initializer
   sod-message
   sod-method
   sod-slot
+  static-instance
 finalize-module
   module
 finalize-sod-class
   sod-class
+  sod-class [:around]
+find-class-initializer
+  effective-slot sod-class
+find-slot-initargs
+  sod-class sod-slot
 find-slot-initializer
   sod-class sod-slot
 format-temporary-name
@@ -1006,36 +1306,47 @@ hook-output
   code-fragment-item t t
   delegating-direct-method (eql :c) t
   effective-slot (eql cl:class) t
+  effective-slot (eql static-instance) t
   ichain (eql :h) t
   ichain (eql cl:class) t
   ichain (eql ilayout) t
-  ichain t t
+  ichain (eql static-instance) t
+  ichain t t [:after]
+  ilayout (eql :h) t [:after]
   ilayout (eql :h) t
-  ilayout t t
+  ilayout t t [:after]
   islots (eql :h) t
   islots (eql cl:class) t
-  islots t t
+  islots (eql static-instance) 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
+  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
+  sod-class (eql static-instance) 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
+  static-instance (eql :c) t [:after]
+  static-instance (eql :c) t
+  static-instance (eql :h) t
   vtable (eql :c) t
   vtable (eql :h) t
-  vtable t t
+  vtable t t [:after]
   vtable-pointer (eql :h) t
   vtable-pointer (eql cl:class) t
+  vtable-pointer (eql static-instance) t
   vtmsgs (eql :c) t
   vtmsgs (eql :h) t
   vtmsgs (eql vtmsgs) t
-  vtmsgs t t
+  vtmsgs t t [:after]
 ichain-body
   ichain
 ichain-class
@@ -1049,17 +1360,19 @@ ilayout-class
 ilayout-ichains
   ilayout
 inst-alt
+  cond-inst
   if-inst
-inst-ap
-  va-end-inst
-  va-start-inst
-inst-arg
-  va-start-inst
 inst-args
+  banner-inst
   call-inst
+inst-banner
+  function-inst
+inst-banner-args
+  function-inst
 inst-body
   block-inst
   do-while-inst
+  for-inst
   function-inst
   while-inst
 inst-chain-head
@@ -1067,11 +1380,16 @@ inst-chain-head
 inst-class
   convert-to-ilayout-inst
 inst-cond
+  cond-inst
   do-while-inst
+  for-inst
   if-inst
   while-inst
 inst-conseq
+  cond-inst
   if-inst
+inst-control
+  banner-inst
 inst-decls
   block-inst
 inst-expr
@@ -1080,31 +1398,31 @@ inst-expr
   return-inst
   set-inst
   update-inst
-inst-from
-  va-copy-inst
 inst-func
   call-inst
 inst-init
+  for-inst
   var-inst
 inst-metric
   cl:list
   cl:null
   t
+  banner-inst
   block-inst
   break-inst
   call-inst
+  cond-inst
   continue-inst
   convert-to-ilayout-inst
   do-while-inst
   expr-inst
+  for-inst
   function-inst
   if-inst
   return-inst
   set-inst
+  sod::suppliedp-struct-inst
   update-inst
-  va-copy-inst
-  va-end-inst
-  va-start-inst
   var-inst
   while-inst
 inst-name
@@ -1112,13 +1430,14 @@ inst-name
   var-inst
 inst-op
   update-inst
-inst-to
-  va-copy-inst
 inst-type
   function-inst
   var-inst
+inst-update
+  for-inst
 inst-var
   set-inst
+  sod::suppliedp-struct-inst
   update-inst
 invoke-sequencer-items
   sequencer
@@ -1134,6 +1453,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
@@ -1142,12 +1463,16 @@ make-method-entries
   basic-effective-method sod-class sod-class
 sod-parser:make-scanner-stream
   sod-token-scanner
+make-sod-class-initfrag
+  sod-class t t
 make-sod-class-initializer
-  sod-class t t t t t
+  sod-class t t t t
+make-sod-class-tearfrag
+  sod-class t t
 make-sod-initializer-using-slot
-  sod-class sod-slot t t t t t
+  sod-class sod-slot t t t t
 make-sod-instance-initializer
-  sod-class t t t t t
+  sod-class t t t t
 make-sod-message
   sod-class t t t
 make-sod-method
@@ -1156,6 +1481,14 @@ make-sod-method-using-message
   sod-message sod-class t t t t
 make-sod-slot
   sod-class t t t
+make-sod-slot-initarg
+  sod-class t t t t
+make-sod-slot-initarg-using-slot
+  sod-class t sod-slot t
+make-sod-user-initarg
+  sod-class t t t
+make-static-instance
+  sod-class t t t t
 method-entry-chain-head
   method-entry
 method-entry-chain-tail
@@ -1166,12 +1499,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
@@ -1183,26 +1527,48 @@ 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
+output-static-instance-initializer
+  static-instance effective-slot t
+pprint-c-storage-specifier
+  cl:symbol t
+  alignas-storage-specifier t
 pprint-c-type
-  t t t
+  t t t [:around]
   c-array-type t t
+  c-atomic-type t t
   c-function-type t t
+  c-keyword-function-type t t
   c-pointer-type t t
+  c-storage-specifiers-type t t
   simple-c-type t t
   tagged-c-type t t
 primary-method-class
   simple-message
   standard-message
+print-c-storage-specifier
+  t cl:symbol
+  t t
+  t alignas-storage-specifier
 print-c-type
   t c-array-type
+  t c-atomic-type
   t c-class-type
   t c-function-type
   t c-pointer-type
+  t c-storage-specifiers-type
   t simple-c-type
   t tagged-c-type
 cl:print-object
+  banner-inst t
   base-offset t
   block-inst t
   break-inst t
@@ -1211,12 +1577,14 @@ cl:print-object
   call-inst t
   chain-offset t
   class-pointer t
+  cond-inst t
   continue-inst t
   convert-to-ilayout-inst t
   do-while-inst t
   effective-method t
   effective-slot t
   expr-inst t
+  for-inst t
   function-inst t
   ichain t
   if-inst t
@@ -1232,11 +1600,11 @@ cl:print-object
   sod-message t
   sod-method t
   sod-slot t
+  sod-slot-initarg t
+  sod-user-initarg t
+  static-instance 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
@@ -1256,29 +1624,32 @@ sequencer-constraints
 sequencer-table
   sequencer
 cl:shared-initialize
-  aggregating-message t
-  basic-direct-method t
-  c-function-type t
-  method-codegen t
-  module t
+  aggregating-message t [:before]
+  basic-direct-method t [:after]
+  c-function-type t [:after]
+  c-keyword-function-type t [:after]
+  effective-method t [:after]
+  method-codegen t [:after]
+  module t [:after]
   sequencer t
-  simple-effective-method t
-  sod-class t
-  sod-class-slot t
-  sod-initializer t
-  sod-message t
-  sod-method t
-  sod-slot t
-  sod-token-scanner t
+  simple-effective-method t [:after]
+  sod-class t [:after]
+  sod-class-slot t [:after]
+  sod-initializer t [:after]
+  sod-message t [:after]
+  sod-method t [:after]
+  sod-slot t [:after]
+  sod-token-scanner t [:after]
+  static-instance t [:after]
 simple-method-body
   aggregating-effective-method t t
+  sod::lifecycle-effective-method t t
   standard-effective-method t t
 cl:slot-unbound
   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 sod-class (eql sod::%ilayout)
@@ -1298,8 +1669,18 @@ 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)
+  t sod-class
 sod-class-instance-initializers
   sod-class
 (setf sod-class-instance-initializers)
@@ -1326,43 +1707,71 @@ sod-class-slots
   t sod-class
 sod-class-state
   sod-class
+sod-class-tearfrags
+  sod-class
+(setf sod-class-tearfrags)
+  t sod-class
 sod-class-type
   sod-class
 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
   sod-initializer
-sod-initializer-value-form
-  sod-initializer
-sod-initializer-value-kind
+sod-initializer-value
   sod-initializer
+sod-message-applicable-methods
+  sod-message sod-class
 sod-message-argument-tail
   basic-message
+sod-message-check-methods
+  sod-message sod-class t
 sod-message-class
   sod-message
 sod-message-combination
   aggregating-message
 sod-message-effective-method-class
   aggregating-message
+  sod::initialization-message
   standard-message
+  sod::teardown-message
 sod-message-kernel-function
   aggregating-message
+sod-message-keyword-argument-lists
+  sod::initialization-message sod-class t t
+  sod-message sod-class t t
 sod-message-method-class
   basic-message sod-class t
   simple-message sod-class t
   sod-message sod-class t
 sod-message-name
   sod-message
-sod-message-no-varargs-tail
-  basic-message
+sod-message-readonly-p
+  sod-message
+sod-message-receiver-type
+  sod-message sod-class
 sod-message-type
   sod-message
 sod-method-body
   sod-method
 sod-method-class
   sod-method
+sod-method-description
+  basic-direct-method
 sod-method-function-name
   basic-direct-method
 sod-method-function-type
@@ -1385,6 +1794,18 @@ sod-slot-prepare-function
   sod-class-slot
 sod-slot-type
   sod-slot
+static-instance-class
+  static-instance
+static-instance-const-p
+  static-instance
+static-instance-extern-p
+  static-instance
+static-instance-initializers
+  static-instance
+(setf static-instance-initializers)
+  t static-instance
+static-instance-name
+  static-instance
 temp-tag
   temporary-name
 temporary-var
@@ -1418,11 +1839,14 @@ vtmsgs-entries
   vtmsgs
 vtmsgs-subclass
   vtmsgs
+write-dependency-file
+  module t t
 
 -----------------------------------------------------------------------------
 Package `sod-frontend'
 
 frontend.lisp
+  augment-options                               function
   main                                          function
 
 Classes:
@@ -1434,15 +1858,17 @@ Methods:
 Package `sod-parser'
 
 floc-proto.lisp
-  cerror*                                       function
+  base-lexer-error                              class
+  base-syntax-error                             class
   cerror*-with-location                         function
   cerror-with-location                          function
+  classify-condition                            generic
   condition-with-location                       class
   count-and-report-errors                       macro
-  enclosed-condition                            generic
-  enclosing-condition                           class
   enclosing-condition-with-location             class
+  enclosing-condition-with-location-type        generic
   enclosing-error-with-location                 class
+  enclosing-information-with-location           class
   enclosing-warning-with-location               class
   error-with-location                           function class
   file-location                                 generic class
@@ -1450,30 +1876,37 @@ floc-proto.lisp
   file-location-filename                        function
   file-location-line                            function
   file-location-p                               function
+  info-with-location                            function
+  information-with-location                     class
   make-condition-with-location                  function
   make-file-location                            function
+  parser-error                                  class
+  parser-error-expected                         generic
+  parser-error-found                            generic
+  report-parser-error                           function
   simple-condition-with-location                class
   simple-error-with-location                    class
+  simple-information-with-location              class
+  simple-lexer-error                            class
+  simple-syntax-error                           class
   simple-warning-with-location                  class
   warn-with-location                            function
   warning-with-location                         class
   with-default-error-location                   macro
 
 parser-expr-proto.lisp
-  apply-operator                                generic
   binop                                         macro
   close-parenthesis                             class
-  expr                                          parser
+  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
@@ -1486,28 +1919,31 @@ parser-impl.lisp
   string-parser                                 class
 
 parser-proto.lisp
-  ?                                             parser
-  cl:and                                        macro parser
+  ?                                             parser-form
+  cl:and                                        macro parser-form
   call-pluggable-parser                         function
-  cl:char                                       function setf c-type parser
+  cl:char                                       function setf-function c-type-spec c-type-form parser-form
   character-parser-context                      class
   combine-parser-failures                       function
+  commit                                        parser-form
   cond-parse                                    macro
   define-pluggable-parser                       macro
   defparse                                      macro
   expand-parser-form                            generic
   expand-parser-spec                            generic
-  filter                                        parser
-  if-char                                       parser
+  filter                                        parser-form
+  if-char                                       parser-form
   if-parse                                      macro
   sod-utilities:it
-  label                                         parser
-  lisp                                          c-type parser
-  cl:list                                       function class parser opthandler
-  many                                          parser
-  cl:not                                        function parser
-  cl:or                                         macro parser
+  label                                         parser-form
+  lisp                                          c-type-form parser-form
+  cl:list                                       function class parser-form opthandler
+  many                                          parser-form
+  cl:not                                        function parser-form
+  cl:or                                         macro parser-form
   parse
+  parse-empty                                   function
+  parse-fail                                    function
   parser                                        macro
   parser-at-eof-p                               generic
   parser-capture-place                          generic
@@ -1518,13 +1954,13 @@ parser-proto.lisp
   parser-step                                   generic
   parser-token-type                             generic
   parser-token-value                            generic
-  peek                                          parser
-  plug                                          parser
+  peek                                          parser-form
+  plug                                          parser-form
   pluggable-parser-add                          function
-  cl:satisfies                                  parser
-  seq                                           parser
-  skip-many                                     parser
-  token                                         parser
+  cl:satisfies                                  parser-form
+  seq                                           parser-form
+  skip-many                                     parser-form
+  token                                         parser-form
   token-parser-context                          class
   when-parse                                    macro
   with-parser-context                           macro
@@ -1534,6 +1970,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
 
@@ -1553,12 +1990,13 @@ scanner-proto.lisp
   parser-scanner                                generic
   scanner-at-eof-p                              generic
   scanner-capture-place                         generic
-  scanner-column                                generic setf
+  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
+  scanner-line                                  generic setf-generic
   scanner-release-place                         generic
   scanner-restore-place                         generic
   scanner-step                                  generic
@@ -1572,19 +2010,81 @@ scanner-proto.lisp
   token-value                                   generic
   with-scanner-place                            macro
 
-streams-impl.lisp
+streams-proto.lisp
   position-aware-input-stream                   class
   position-aware-output-stream                  class
   position-aware-stream                         class
-  position-aware-stream-column                  generic setf
-  position-aware-stream-line                    generic setf
-
-streams-proto.lisp
+  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
 
 Classes:
 cl:t
   sb-pcl::slot-object
+    cl:condition
+      condition-with-location
+        enclosing-condition-with-location [sod-utilities:enclosing-condition]
+          enclosing-error-with-location [cl:error]
+          enclosing-information-with-location [sod-utilities:information]
+          enclosing-warning-with-location [cl:warning]
+        error-with-location [cl:error]
+          base-lexer-error
+            simple-lexer-error [simple-error-with-location]
+          base-syntax-error
+            simple-syntax-error [simple-error-with-location]
+          simple-error-with-location [cl:simple-error]
+            simple-lexer-error [base-lexer-error]
+            simple-syntax-error [base-syntax-error]
+        information-with-location [sod-utilities:information]
+          simple-information-with-location [sod-utilities:simple-information]
+        simple-condition-with-location [cl:simple-condition]
+        warning-with-location [cl:warning]
+          simple-warning-with-location [cl:simple-warning]
+      sod-utilities:enclosing-condition
+        enclosing-condition-with-location [condition-with-location]
+          enclosing-error-with-location [cl:error]
+          enclosing-information-with-location [sod-utilities:information]
+          enclosing-warning-with-location [cl:warning]
+      sod-utilities:information
+        enclosing-information-with-location [enclosing-condition-with-location]
+        information-with-location [condition-with-location]
+          simple-information-with-location [sod-utilities:simple-information]
+        sod-utilities:simple-information [cl:simple-condition]
+          simple-information-with-location [information-with-location]
+      cl:serious-condition
+        cl:error
+          enclosing-error-with-location [enclosing-condition-with-location]
+          error-with-location [condition-with-location]
+            base-lexer-error
+              simple-lexer-error [simple-error-with-location]
+            base-syntax-error
+              simple-syntax-error [simple-error-with-location]
+            simple-error-with-location [cl:simple-error]
+              simple-lexer-error [base-lexer-error]
+              simple-syntax-error [base-syntax-error]
+          parser-error
+          cl:simple-error [cl:simple-condition]
+            simple-error-with-location [error-with-location]
+              simple-lexer-error [base-lexer-error]
+              simple-syntax-error [base-syntax-error]
+      cl:simple-condition
+        simple-condition-with-location [condition-with-location]
+        cl:simple-error [cl:error]
+          simple-error-with-location [error-with-location]
+            simple-lexer-error [base-lexer-error]
+            simple-syntax-error [base-syntax-error]
+        sod-utilities:simple-information [sod-utilities:information]
+          simple-information-with-location [information-with-location]
+        cl:simple-warning [cl:warning]
+          simple-warning-with-location [warning-with-location]
+      cl:warning
+        enclosing-warning-with-location [enclosing-condition-with-location]
+        cl:simple-warning [cl:simple-condition]
+          simple-warning-with-location [warning-with-location]
+        warning-with-location [condition-with-location]
+          simple-warning-with-location [cl:simple-warning]
     cl:standard-object
       character-parser-context
         character-scanner-context [scanner-context]
@@ -1642,6 +2142,7 @@ cl:t
         token-scanner-context [scanner-context]
       token-scanner
     cl:structure-object
+      charbuf-scanner-place
       file-location
       list-scanner
       string-scanner
@@ -1681,14 +2182,19 @@ 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
-enclosed-condition
-  enclosing-condition
+classify-condition
+  cl:error
+  cl:warning
+  base-lexer-error
+  base-syntax-error
+  sod-utilities:information
+enclosing-condition-with-location-type
+  cl:condition
+  cl:error
+  cl:warning
+  sod-utilities:information
 expand-parser-form
   t (eql cl:and) t
   t (eql cl:list) t
@@ -1697,6 +2203,7 @@ expand-parser-form
   t (eql cl:t) t
   t (eql cl:when) t
   t (eql ?) t
+  t (eql commit) t
   t (eql expr) t
   t (eql label) t
   t (eql lisp) t
@@ -1715,6 +2222,7 @@ expand-parser-form
   list-parser (eql cl:type) t
   token-parser-context (eql token) t
   token-scanner-context (eql cl:error) t
+  token-scanner-context (eql sod:must) t
   token-scanner-context (eql sod:skip-until) t
 expand-parser-spec
   t (eql :eof)
@@ -1734,15 +2242,18 @@ file-location
   sod:c-fragment
   sod:property
   sod:sod-class
+  sod:sod-initarg
   sod:sod-initializer
   sod:sod-message
   sod:sod-method
   sod:sod-slot
+  sod:static-instance
   character-scanner
-  sod-parser::charbuf-scanner-place
+  charbuf-scanner-place
   condition-with-location
   file-location
   position-aware-stream
+  string-scanner
   token-scanner
   token-scanner-place
 cl:make-load-form
@@ -1752,6 +2263,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
@@ -1776,6 +2290,10 @@ parser-capture-place
 parser-current-char
   character-scanner-context
   string-parser
+parser-error-expected
+  parser-error
+parser-error-found
+  parser-error
 parser-places-must-be-released-p
   t
   list-parser
@@ -1802,6 +2320,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)
@@ -1809,13 +2331,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
-  prefix-operator sod-parser::expression-parse-state
-push-value
-  t sod-parser::expression-parse-state
 scanner-at-eof-p
   charbuf-scanner
   list-scanner
@@ -1830,6 +2345,7 @@ scanner-capture-place
 scanner-column
   t
   charbuf-scanner
+  string-scanner
   token-scanner
 (setf scanner-column)
   t token-scanner
@@ -1839,6 +2355,7 @@ scanner-current-char
 scanner-filename
   t
   charbuf-scanner
+  string-scanner
   token-scanner
 scanner-interval
   charbuf-scanner t
@@ -1846,6 +2363,7 @@ scanner-interval
 scanner-line
   t
   charbuf-scanner
+  string-scanner
   token-scanner
 (setf scanner-line)
   t token-scanner
@@ -1867,10 +2385,14 @@ scanner-token
   sod:sod-token-scanner
 scanner-unread
   charbuf-scanner t
+  string-scanner t
 cl:shared-initialize
-  charbuf-scanner t
-  simple-binary-operator t
-  token-scanner t
+  charbuf-scanner t [:after]
+  simple-binary-operator t [:after]
+  token-scanner t [:after]
+stream-line-and-column
+  cl:stream
+  position-aware-stream
 sb-gray:stream-line-column
   position-aware-output-stream
 stream-pathname
@@ -1934,26 +2456,26 @@ optparse.lisp
   exit                                          function
   help-options                                  optmacro
   inc                                           opthandler
-  int                                           opthandler
+  sod-utilities:int                             c-type-spec c-type-form opthandler
   invoke-option-handler                         function
   cl:keyword                                    opthandler
-  cl:list                                       function class parser opthandler
+  cl:list                                       function class parser-form opthandler
   make-option                                   function
   make-option-parser                            function
   moan                                          function
-  op-long-only-p                                function setf
-  op-negated-numeric-p                          function setf
-  op-negated-p                                  function setf
-  op-non-option                                 function setf
-  op-numeric-p                                  function setf
-  op-options                                    function setf
-  opt-arg-name                                  function setf
-  opt-arg-optional-p                            function setf
-  opt-documentation                             function setf
-  opt-long-name                                 function setf
-  opt-negated-tag                               function setf
-  opt-short-name                                function setf
-  opt-tag                                       function setf
+  op-long-only-p                                function setf-function
+  op-negated-numeric-p                          function setf-function
+  op-negated-p                                  function setf-function
+  op-non-option                                 function setf-function
+  op-numeric-p                                  function setf-function
+  op-options                                    function setf-function
+  opt-arg-name                                  function setf-function
+  opt-arg-optional-p                            function setf-function
+  opt-documentation                             function setf-function
+  opt-long-name                                 function setf-function
+  opt-negated-tag                               function setf-function
+  opt-short-name                                function setf-function
+  opt-tag                                       function setf-function
   option                                        class
   option-parse-error                            function class
   option-parse-next                             function
@@ -1972,16 +2494,18 @@ optparse.lisp
   show-help                                     function
   show-usage                                    function
   simple-usage                                  function
-  cl:string                                     function class c-type opthandler
+  cl:string                                     function class c-type-spec opthandler
   with-unix-error-reporting                     macro
 
-Leaked slot names: cl:documentation, options
-  option: cl:documentation
-  option-parser: options
-
 Classes:
 cl:t
   sb-pcl::slot-object
+    cl:condition
+      cl:serious-condition
+        cl:error
+          option-parse-error [cl:simple-condition]
+      cl:simple-condition
+        option-parse-error [cl:error]
     cl:structure-object
       option
       option-parser
@@ -1994,6 +2518,7 @@ cl:print-object
 Package `sod-utilities'
 
 utilities.lisp
+  aand                                          macro
   acase                                         macro
   acond                                         macro
   aecase                                        macro
@@ -2004,19 +2529,31 @@ utilities.lisp
   awhen                                         macro
   backtrack-position                            function
   categorize                                    macro
+  cerror*                                       function
   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
+  defvar-unbound                                macro
+  designated-condition                          function
+  distinguished-point-shortest-paths            function
   dosequence                                    macro
+  enclosed-condition                            generic
+  enclosing-condition                           class
   sb-mop:eql-specializer                        class
   sb-mop:eql-specializer-object                 generic
+  find-duplicates                               function
   frob-identifier                               function
-  sb-mop:generic-function-methods               generic setf
+  sb-mop:generic-function-methods               generic setf-generic
   inconsistent-merge-error                      class
+  info                                          function
+  information                                   class
   instance-initargs                             generic
+  int                                           c-type-spec c-type-form opthandler
+  invoke-associated-restart                     function
   it
   lbuild-add                                    function
   lbuild-add-list                               function
@@ -2028,12 +2565,18 @@ utilities.lisp
   mappend                                       function
   maybe-print-unreadable-object                 macro
   merge-error-candidates                        generic
+  merge-error-present-function                  generic
   merge-lists                                   function
   sb-mop:method-specializers                    generic
+  noted                                         function
   once-only                                     macro
   parse-body                                    function
+  partial-order-minima                          function
   print-ugly-stuff                              function
-  ref                                           function setf
+  promiscuous-cerror                            function
+  ref                                           function setf-function
+  simple-control-error                          class
+  simple-information                            class
   symbolicate                                   function
   update-position                               function
   whitespace-char-p                             function
@@ -2043,6 +2586,21 @@ utilities.lisp
 Classes:
 cl:t
   sb-pcl::slot-object
+    cl:condition
+      enclosing-condition
+      information
+        simple-information [cl:simple-condition]
+      cl:serious-condition
+        cl:error
+          cl:control-error
+            simple-control-error [cl:simple-error]
+          inconsistent-merge-error
+          cl:simple-error [cl:simple-condition]
+            simple-control-error [cl:control-error]
+      cl:simple-condition
+        cl:simple-error [cl:error]
+          simple-control-error [cl:control-error]
+        simple-information [information]
     cl:standard-object
       sb-mop:metaobject
         sb-mop:specializer
@@ -2056,8 +2614,14 @@ cl:t
       loc
 
 Methods:
+sod-parser:classify-condition
+  information
 copy-instance-using-class
   cl:standard-class t
+enclosed-condition
+  enclosing-condition
+sod-parser:enclosing-condition-with-location-type
+  information
 sb-mop:eql-specializer-object
   sb-mop:eql-specializer
 sb-mop:generic-function-methods
@@ -2068,6 +2632,8 @@ instance-initargs
   cl:standard-object
 merge-error-candidates
   inconsistent-merge-error
+merge-error-present-function
+  inconsistent-merge-error
 sb-mop:method-specializers
   cl:standard-method