emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Dynamic loading progress


From: Paul Eggert
Subject: Re: Dynamic loading progress
Date: Thu, 12 Feb 2015 18:40:19 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

To help make progress on the plugin compatibility issue I installed commit 65563fd7714271582d5146c09202c0f7a0631fe5 in the master. A plugin should do this:

#define DEFINE_NONNIL_Q_SYMBOL_MACROS false

before including globals.h either directly or indirectly. This #define could be part of any new emacs.h.

We're not out of the woods yet, I'm afraid. For example, suppose a new version of Emacs adds a new kind of function, and that the implementation of functionp changes. And suppose a plugin is compiled with the old version of Emacs and uses the FUNCTIONP macro. Since FUNCTIONP's expansion calls functionp and functionp is an extern inline function, the plugin may use the old version of functionp or it may use the new one -- the C standard allows either behavior. Either way, the plugin may misbehave.

This sort of thing suggests that it may be difficult to guarantee upward compatibility of plugins from one version of Emacs to the next. And perhaps we shouldn't even try.

This raises another question: what exactly should go into emacs.h? The more we put into emacs.h, the more likely plugin compatibility won't survive the transition from one version of Emacs to the next.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]