diff options
Diffstat (limited to 'doc/ext_ffi_semantics.html')
-rw-r--r-- | doc/ext_ffi_semantics.html | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/doc/ext_ffi_semantics.html b/doc/ext_ffi_semantics.html index f9a118a0..d9aa27c8 100644 --- a/doc/ext_ffi_semantics.html +++ b/doc/ext_ffi_semantics.html | |||
@@ -582,6 +582,10 @@ Reference types are dereferenced <em>before</em> performing each of | |||
582 | the operations below — the operation is applied to the | 582 | the operations below — the operation is applied to the |
583 | C type pointed to by the reference. | 583 | C type pointed to by the reference. |
584 | </p> | 584 | </p> |
585 | <p> | ||
586 | The pre-defined operations are always tried first before deferring to a | ||
587 | metamethod for a ctype (if defined). | ||
588 | </p> | ||
585 | 589 | ||
586 | <h3 id="cdata_array">Indexing a cdata object</h3> | 590 | <h3 id="cdata_array">Indexing a cdata object</h3> |
587 | <ul> | 591 | <ul> |
@@ -803,9 +807,10 @@ vararg functions</a>. | |||
803 | </p> | 807 | </p> |
804 | <p> | 808 | <p> |
805 | Memory areas returned by C functions (e.g. from <tt>malloc()</tt>) | 809 | Memory areas returned by C functions (e.g. from <tt>malloc()</tt>) |
806 | must be manually managed, of course. Pointers to cdata objects are | 810 | must be manually managed, of course (or use |
807 | indistinguishable from pointers returned by C functions (which is one | 811 | <a href="ext_ffi_api.html#ffi_gc"><tt>ffi.gc()</tt></a>)). Pointers to |
808 | of the reasons why the GC cannot follow them). | 812 | cdata objects are indistinguishable from pointers returned by C |
813 | functions (which is one of the reasons why the GC cannot follow them). | ||
809 | </p> | 814 | </p> |
810 | 815 | ||
811 | <h2 id="clib">C Library Namespaces</h2> | 816 | <h2 id="clib">C Library Namespaces</h2> |
@@ -977,6 +982,9 @@ two.</li> | |||
977 | value.</li> | 982 | value.</li> |
978 | <li>Calls to C functions with 64 bit arguments or return values | 983 | <li>Calls to C functions with 64 bit arguments or return values |
979 | on 32 bit CPUs.</li> | 984 | on 32 bit CPUs.</li> |
985 | <li>Calls to ctype metamethods which are not plain functions.</li> | ||
986 | <li>ctype <tt>__newindex</tt> tables and non-string lookups in ctype | ||
987 | <tt>__index</tt> tables.</li> | ||
980 | <li>Accesses to external variables in C library namespaces.</li> | 988 | <li>Accesses to external variables in C library namespaces.</li> |
981 | <li><tt>tostring()</tt> for cdata types.</li> | 989 | <li><tt>tostring()</tt> for cdata types.</li> |
982 | <li>The following <a href="ext_ffi_api.html">ffi.* API</a> functions: | 990 | <li>The following <a href="ext_ffi_api.html">ffi.* API</a> functions: |
@@ -988,7 +996,6 @@ Other missing features: | |||
988 | <ul> | 996 | <ul> |
989 | <li>Bit operations for 64 bit types.</li> | 997 | <li>Bit operations for 64 bit types.</li> |
990 | <li>Arithmetic for <tt>complex</tt> numbers.</li> | 998 | <li>Arithmetic for <tt>complex</tt> numbers.</li> |
991 | <li>User-defined metamethods for C types.</li> | ||
992 | <li>Callbacks from C code to Lua functions.</li> | 999 | <li>Callbacks from C code to Lua functions.</li> |
993 | <li>Atomic handling of <tt>errno</tt>.</li> | 1000 | <li>Atomic handling of <tt>errno</tt>.</li> |
994 | <li>Passing structs by value to vararg C functions.</li> | 1001 | <li>Passing structs by value to vararg C functions.</li> |