On 02/15/2015 10:00 AM, Eli Zaretskii wrote: >> Date: Sun, 15 Feb 2015 09:31:12 -0800 >> From: Daniel Colascione >> CC: stephen_leake@stephe-leake.org, emacs-devel@gnu.org >> >> On 02/15/2015 09:28 AM, Eli Zaretskii wrote: >>>> Date: Sun, 15 Feb 2015 09:04:01 -0800 >>>> From: Daniel Colascione >>>> CC: stephen_leake@stephe-leake.org, emacs-devel@gnu.org >>>> >>>> Modules provide an initialization function to Emacs: Emacs then >>>> calls this initialization function with a pointer to a C structure >>>> containing a table of function pointers. Modules call these function >>>> pointers to do their work. >>> >>> How will modules know which function in the table does what job? >> >> Positionally, as fixed in the structure that defines the table. >> >> struct { >> void (*func1)(int); >> void (*func2)(double); >> /* etc. */ >> } >> >> This way, the ABI Emacs exports is explicit, and breaking it is unlikely >> to happen accidentally. > > I see. > > Would you like to propose a list of functions that should be in that > table? I don't mean function names, I mean a short description of > each one of them. That depends on the supported module use cases, which are being discussed on other branches of the thread. Keep in mind that my first preference is still to do everything with CFFI and not export any Emacs-specific facilities at all.