Previous: Using Format Tables, Up: Usage [Contents][Index]
Normally, FoCus behaves dynamically, meaning that the translation to
standard format
calls occurs at run-time. This is the default behavior
because it allows for maximum flexibility… and weirdness,
admitedly, as the same call to FoCus’s format
may behave differently
if the current format table has changed in the meantime. The drawback of
this approach, however, is that it induces a run-time overhead, which
may become undesirable in format-intensive applications.
One way around this is to have your format table known at compile-time
and instruct FoCus to perform a compile-time translation
instead. This way, all dynamic trace of FoCus will disappear from
your application. This can be done by setting the *compile*
flag
to a non-nil value (at compile-time of course!). By the way, this also
explains why format
is a macro instead of a regular function in
FoCus.
When the flv
extension is available (see Optional Features),
this variable is automatically made file-local, and
in-format-table
sets it to t
, so that you don’t have
anything to do to switch to compile-time behavior. The
demos/quotation library in the distribution provides an example
of using FoCus in such a way.
Finally, when compile-time behavior is switched on, you may also use
FoCus’s wrapper around the formatter
macro.
Wrapper around the standard FORMATTER macro.