- Calling functions that return scalars by value
- Calling functions that accept zero or more scalars by value
- Calling a function passing a pointer to a user-defined struct
- Calling a function returning a pointer to a user-defined struct
- Calling a function that accepts a pointer and modifies the target in place
- Building structs containing arrays
- Building structs containing pointers to other user-defined structs
- Figure out a syntax for pointers
- Figure out how to handle transferring ownership of memory
- Calling a function accepting zero or more structs by value
- Calling functions that return a pointer to an opaque struct
- Calling functions accepting pointers to opaque structs
- Calling functions with variadic arguments (probably tricky)
- Use libffi closures to allow function callbacks back into PHP