manpagez: man pages & more
info guile
Home | html | info | man
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.9.9 Inlinable Procedures

You can define an inlinable procedure by using define-inlinable instead of define. An inlinable procedure behaves the same as a regular procedure, but direct calls will result in the procedure body being inlined into the caller.

Procedures defined with define-inlinable are always inlined, at all direct call sites. This eliminates function call overhead at the expense of an increase in code size. Additionally, the caller will not transparently use the new definition if the inline procedure is redefined. It is not possible to trace an inlined procedures or install a breakpoint in it (see section Traps). For these reasons, you should not make a procedure inlinable unless it demonstrably improves performance in a crucial way.

In general, only small procedures should be considered for inlining, as making large procedures inlinable will probably result in an increase in code size. Additionally, the elimination of the call overhead rarely matters for for large procedures.

Scheme Syntax: define-inlinable (name parameter ...) body ...

Define name as a procedure with parameters parameters and body body.


© manpagez.com 2000-2026
Individual documents may contain additional copyright information.