It's surprisingly not that bad.
call, which is useful when writing wrapper functions.
\end{enumerate}
call, which is useful when writing wrapper functions.
\end{enumerate}
+Perhaps surprisingly, keyword arguments have a relatively small performance
+impact. On the author's aging laptop, a call to a simple function, passing
+two out of three keyword arguments, takes about 30 cycles longer than calling
+a standard function which just takes integer arguments. On the other hand,
+quite a lot of code is involved in decoding keyword arguments, so code size
+will naturally suffer.
+
Keyword arguments are provided as a general feature for C functions.
However, Sod has special support for messages which accept keyword arguments
(\xref{sec:concepts.methods.keywords}); and they play an essential rôle in
Keyword arguments are provided as a general feature for C functions.
However, Sod has special support for messages which accept keyword arguments
(\xref{sec:concepts.methods.keywords}); and they play an essential rôle in
but are the only practical way in which a caller can decide at runtime
which arguments to include in a call,
which is useful when writing wrapper functions.
but are the only practical way in which a caller can decide at runtime
which arguments to include in a call,
which is useful when writing wrapper functions.
+.PP
+Perhaps surprisingly,
+keyword arguments have a relatively small performance impact.
+On the author's aging laptop,
+a call to a simple function,
+passing two out of three keyword arguments,
+takes about 30 cycles longer than
+calling a standard function which just takes integer arguments.
+On the other hand,
+quite a lot of code is involved in decoding keyword arguments,
+so code size will naturally suffer.
.
.SS Type definitions
The header file defines two simple structure types.
.
.SS Type definitions
The header file defines two simple structure types.