Mercurial > pub > dyncall > bindings
view lua/luadyncall/doc/guide.tex @ 46:c21d1c2c84e1
- removed pydc.py wrapper overhead (which only called pydcext.so functions, directly, anyways)
* implies renaming pydcext.* to pydc.*
* while at it, iterate directly over args that are passed in (before we did extract fptr, sig and a tuple for the args and iterated over latter afterwards); we might have a tiny perf improvement now
- added type stub as package_data
author | Tassilo Philipp |
---|---|
date | Fri, 13 Nov 2020 14:10:31 +0100 |
parents | 0cfcc391201f |
children |
line wrap: on
line source
\documentclass{article} \begin{document} \section{Introduction} The luadyncall package is a framework for writing system-level software using lua. It uses the libraries from the DynCall Project for the low-level implementation such as code loading, symbol resolving and invocation of function calls. It implements the portable dynamic linkage system 'dynport' for lua which allows to bind whole shared C libraries with a single command. \section{Overview} This package provides the following extensions: \begin{description} \item [dynload] dynamic loading of code and resolving of C functions \item [dyncall] dynamic calling of loaded C functions \item [dynport] dynamic binding of whole shared C libraries \item [array] allocate and access C-typed arrays \item [smartptr] smart pointer utility \item [int64] 64-bit (unsigned) integer datatype for lua \item [ldynguess] guess the operating system \end{description} \section{C Pointers} One major issue was to decide how to handle pointer values and in particular NULL pointers using dynports. Lua can compare pointer-values. The current dyncall implementation comes with a function \verb@topointer(value)@ which makes a pointer value from an integer value. There is also a \verb@NULL@ variable which holds a pointer value of 0. \section{Dynport} \subsection {The LDP\_PATH environment variable} The variable contains the patterns to search for dynport files when \verb@dynport("someport")@ is called. \end{document}