(index ("$" 0))
(def (sig (syntax "($ [RETURNTYPE] NAME (TYPE ARGUMENT) ...)" (id $))) (p "Invokes a C/C++ function by evaluating the arguments, performing the neccessary type-conversions for the foreign type-specifiers " (tt "TYPE ...") " and calling " (tt "NAME") " (which must be a symbol).") (p "If " (tt "RETURNTYPE") " is given, then the result will be converted properly and returned, otherwise " (tt "void") " is assumed.") (p "The type/argument lists may also be literal Scheme data or expressions of the form " (tt "(quote LITERAL)") " or " (tt "(location ...)") " - in this case the arguments are converted according to the type of the literal or are treated as a " (tt "c-pointer") ", respectively.") (p "Booleans, characters, numbers, strings, SRFI-4 number vectors and symbols are converted, all other data is passed as being of type " (tt "scheme-object") ".") (p "Callbacks into Scheme are not allowed inside the invoked foreign code.") (p "This macro expands into one of the " (tt "foreign-lambda*") ", " (tt "foreign-code") " or " (tt "foreign-value") " forms."))
