5.4 Defining Bindings
|option|| ||=|| ||#:provide provide-id|
| || ||||| ||#:define core-define-id|
| || ||||| ||#:default-make-fail default-make-fail-expr|
Binds define-id as a definition form to extract bindings from
the library produced by ffi-lib-expr. The syntax of
|(define-id id type-expr|
| bind-option ...)|
|bind-option|| ||=|| ||#:c-id c-id|
| || ||||| ||#:wrap wrap-expr|
| || ||||| ||#:make-fail make-fail-expr|
| || ||||| ||#:fail fail-expr|
A define-id form binds id by extracting a binding
with the name c-id from the library produced by
ffi-lib-expr, where c-id defaults to id.
The other options support further wrapping and configuration:
Before the extracted result is bound as id, it is
passed to the result of wrap-expr, which defaults to
values. Expressions such as (allocator delete) or (deallocator) are useful as
The #:make-fail and #:fail options are
mutually exclusive; if make-fail-expr is provided, it
is applied to 'id to obtain the last
argument to get-ffi-obj; if fail-expr is
provided, it is supplied directly as the last argument to
get-ffi-obj. The make-not-available function
is useful as make-fail-expr to cause a use of
id to report an error when it is applied if
c-id was not found in the foreign library.
If provide-id is provided to define-ffi-definer, then
define-id also provides its binding using
provide-id. The provide-protected form is usually a
good choice for provide-id.
If core-define-id is provided to define-ffi-definer,
then code-define-id is used in place of define in
the expansion of define-id for each binding.
If default-make-fail-expr is provided to
define-ffi-definer, it serves as the default
#:make-fail value for define-id.
(define-ffi-definer define-gtk gtk-lib)
binds define-gtk to extract FFI bindings from
gtk-lib, so that gtk_rc_parse could be bound as
(define-gtk gtk_rc_parse (_fun _path -> _void))
If gtk_rc_parse is not found, then define-gtk reports an
error immediately. If define-gtk is instead defined with
then if gtk_rc_parse is not found in gtk-lib, an error
is reported only when gtk_rc_parse is called.
Returns a procedure that takes any number of arguments and reports an
error message from name
. This function is intended for using