[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Dynamic loading progress
From: |
Daniel Colascione |
Subject: |
Re: Dynamic loading progress |
Date: |
Fri, 13 Feb 2015 07:58:12 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
On 02/13/2015 07:49 AM, Eli Zaretskii wrote:
>> Date: Fri, 13 Feb 2015 07:06:17 -0800
>> From: Daniel Colascione <address@hidden>
>> CC: address@hidden, address@hidden
>>
>> This way, instead of loaded modules needing to track Emacs' historically
>> unstable internal data structures, elisp needs to track module ABIs,
>
> How's that better? That's the same problem in the opposite direction,
> only much worse, since the modules out there are not under our control
> at all.
The risk isn't symmetric:
1) Shared libraries traditionally expose stable ABIs; when ABIs change
incompatibly, libraries change sonames. Shared libraries need stable
ABIs whether or not Emacs loads them: they're linked into other programs
and aren't necessarily rebuilt at the same time as their dependencies.
The Emacs core has never had a stable ABI, and creating one would
constrain our optimization opportunities.
(That is, libpng.so's ABI ought to change a lot less often than
/usr/bin/emacs's: the former promises to provide a stable ABI and the
latter never has.)
2) If a shared library's ABI does change, a Lisp update can fix the
problem. On the other hand, if a strongly-coupled module becomes
incompatible with the Emacs core, the remedy involves recompiling either
Emacs or the module. It's much easier to update Lisp than to rebuild
native code.
signature.asc
Description: OpenPGP digital signature
- Re: Dynamic loading progress, (continued)
- Re: Dynamic loading progress, Stefan Monnier, 2015/02/10
- Re: Dynamic loading progress, Paul Eggert, 2015/02/10
- Re: Dynamic loading progress, Stefan Monnier, 2015/02/10
- Re: Dynamic loading progress, Ted Zlatanov, 2015/02/11
- Re: Dynamic loading progress, Paul Eggert, 2015/02/12
- Re: Dynamic loading progress, Eli Zaretskii, 2015/02/13
- Re: Dynamic loading progress, Daniel Colascione, 2015/02/13
- Re: Dynamic loading progress, Eli Zaretskii, 2015/02/13
- Re: Dynamic loading progress, Daniel Colascione, 2015/02/13
- Re: Dynamic loading progress, Eli Zaretskii, 2015/02/13
- Re: Dynamic loading progress,
Daniel Colascione <=
- Re: Dynamic loading progress, Eli Zaretskii, 2015/02/13
- Re: Dynamic loading progress, Daniel Colascione, 2015/02/13
- Re: Dynamic loading progress, Eli Zaretskii, 2015/02/13
- Re: Dynamic loading progress, Paul Eggert, 2015/02/13
- Re: Dynamic loading progress, Daniel Colascione, 2015/02/13
- Re: Dynamic loading progress, Eli Zaretskii, 2015/02/13
- Re: Dynamic loading progress, Daniel Colascione, 2015/02/13
- Re: Dynamic loading progress, Stephen Leake, 2015/02/13
- Re: Dynamic loading progress, Eli Zaretskii, 2015/02/14
- Re: Dynamic loading progress, Stephen J. Turnbull, 2015/02/14