emacs-devel
[Top][All Lists]
Advanced

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

Re: GnuTLS for W32


From: Óscar Fuentes
Subject: Re: GnuTLS for W32
Date: Tue, 03 Jan 2012 15:07:02 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.91 (gnu/linux)

Eli Zaretskii <address@hidden> writes:

>> > Can Emacs modify the DLL search path on W32 so it can install some DLL
>> > from ELPA and then activate it dynamically?  Or does it require a
>> > restart and modifying the global PATH?  Either way, can the process be
>> > automated?
>> 
>> The relevant MS Windows API function (LoadLibrary) accepts a full
>> pathname
>
> That's a factual truth, but it would be a grave mistake on our part to
> use absolute file names for loading dynamic libraries, because it will
> mean a major inconvenience to users.  It is hard on Windows to pick up
> a fixed directory where every user could easily put the library: the
> only directories that are guaranteed to exist on every Windows system
> are frequently locked up by security policies, the only disk drive
> guaranteed to exist can be a remote drive or even a read-only drive,
> etc.  It would be a step in the wrong direction.

You are providing reasons for the package approach: if it is hard for
the user to put the dll in the correct directory, let Emacs do it.

> Besides, even if we did follow this path, it wouldn't solve the
> problem, because:
>
>> so no need for restarts nor changing PATH.
>
> There's much more to loading a new DLL in the middle of a session than
> just the location of the new DLL.  I will address that in a separate
> message.

I was not proposing to unload the old dll and load the new one on the
fly (BTW, I was not prososing anything at all, just providing technical
info). I know very well that that is unfeasible in general. What is
possible: if GnuTLS is absent and the user wants it, download the dll
and start using it right away. If GnuTLS needs to be upgraded, advertise
the fact to the user, ask for his permission, and proceed to
download(*), with an Emacs restart at the end (or some variation of this
sequence of actions).

* DLLs which are in use are not file-writable. Either the dll must be
  unloaded first (which may be unfeasible) or the new version must be
  downloaded to a temporary location and moved to the final place later.




reply via email to

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