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.