Merge from vendor branch TNF:
[pkgsrcv2.git] / devel / libffi / DESCR
1 The libffi library provides a portable, high level programming
2 interface to various calling conventions.  This allows a programmer to
3 call any function specified by a call interface description at
4 run-time.
5
6 Some programs may not know at the time of compilation what arguments
7 are to be passed to a function.  For instance, an interpreter may be
8 told at run-time about the number and types of arguments used to call
9 a given function.  Libffi can be used in such programs to provide a
10 bridge from the interpreter program to compiled code.
11
12 Ffi stands for Foreign Function Interface.  A foreign function
13 interface is the popular name for the interface that allows code
14 written in one language to call code written in another language.  The
15 libffi library really only provides the lowest, machine dependent
16 layer of a fully featured foreign function interface.  A layer must
17 exist above libffi that handles type conversions for values passed
18 between the two languages.