3.25 Performance Hints: begin-encourage-inline
(require racket/performance-hint) | package: base |
The bindings documented in this section are provided by the racket/performance-hint library, not racket/base or racket.
syntax
(begin-encourage-inline form ...)
Attaches a 'compiler-hint:cross-module-inline
syntax property to each form, which is useful when a
form is a function definition. See define-values.
The begin-encourage-inline form is also provided by the (submod racket/performance-hint begin-encourage-inline) module, which has fewer dependencies than racket/performance-hint.
Changed in version 6.2 of package base: Added the (submod racket/performance-hint begin-encourage-inline) submodule.
syntax
(define-inline id expr)
(define-inline (head args) body ...+)
head = id | (head args) args = arg ... | arg ... . rest-id arg = arg-id | [arg-id default-expr] | keyword arg-id | keyword [arg-id default-expr]
Like define, but ensures that the definition will be inlined at its
call sites. Recursive calls are not inlined, to avoid infinite inlining.
Higher-order uses are supported, but also not inlined. Misapplication (by
supplying the wrong number of arguments or incorrect keyword arguments) is
also not inlined and left as a run-time error.
The define-inline form may interfere with the Racket compiler’s own inlining heuristics, and should only be used when other inlining attempts (such as begin-encourage-inline) fail.
Changed in version 8.1.0.5 of package base: Changed to treat misapplication as a run-time error.