chiark / gitweb /
Merge branches 'mdw/kwargs' and 'mdw/c11'
* mdw/kwargs: (29 commits)
New feature: initialization keyword arguments.
src/method-{proto,impl}.lisp: New `method-keyword-argument-lists' protocol.
New feature: proper object lifecycle protocol; init and teardown fragments.
src/builtin.lisp: Bind `me' around slot initializers, and define the order.
Replace the `init' class-slot function with an `init' message.
Compatibility: the `init' function no longer calls `imprint' for you.
src/method-{proto,impl}.lisp: Introduce `effective-method-live-p' protocol.
doc/runtime.tex, lib/sod.3: Restructure the runtime library reference.
doc/concepts.tex: Reorganize the instance lifecycle material.
doc/: Miscellaneous clarifications and rewordings.
doc/concepts.tex: Don't highlight `primary' as literal, because it's not.
src/: Abolish the distinction between different kinds of initializers.
src/method-{proto,impl}.lisp: Abolish `sod-message-no-varargs-tail'.
New feature: messages with keyword arguments!
lib/: Pure C machinery for handling `keyword arguments' to functions.
doc/runtime.tex: Demote the object-system support stuff to a section.
src/c-types-*.lisp: New type for functions which take keyword arguments.
src/c-types-parse.lisp (parse-declarator): Refactor argument list parsing.
src/c-types-parse.lisp (parse-declarator): Explain how it works.
src/: New function `reify-variable-argument-tail'.
...
* mdw/c11:
src/c-types-impl.lisp, src/c-types-parse.lisp: Support C11 `_Alignas'.
src/c-types-{proto,impl,parse}.lisp: Add `storage specifiers' to the model.
src/c-types-{impl,parse}.lisp: Support C11 `_Atomic'.
src/c-types-{impl,parse}.tex: Support `_Atomic' types.
src/c-types-parse.lisp: Introduce a pluggable parser for declspecs.
src/c-types-parse.lisp: Hoist up the `ds-FOO' methods for raw types.
src/c-types-parse.lisp: Improve handling of compatibility keywords.
src/final.lisp: Add function for interactively testing type parsing.
src/c-types-proto.lisp, src/c-types-impl.lisp: Qualifier name protocol.
src/module-parse.lisp (parse-raw-class-item): Commit after declarator.
Add a new class slot `align', holding the instance layout alignment.
src/c-types-impl.lisp (make-or-intern-c-type): Pull out useful function.
src/c-types-parse.lisp, src/c-types-proto.lisp: Some minor cleanups.
src/parser/parser-proto.lisp: Add functions returning standard parsers.
src/parser/: Allow parsers to commit to a parse while peeking.
doc/clang.tex: Improve documentation of C type spec expansion.
Conflicts:
doc/SYMBOLS (regenerated)
doc/syntax.tex (hand-merge; extra parameter to <declarator>)
lib/sod.h (simple hand-merge)
src/sod-module.5 (extra parameter to <declarator>, added by hand)
12 files changed: