unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@IRO.UMontreal.CA>
To: Michael Welsh Duggan <mwd@md5i.com>
Cc: Tom Tromey <tromey@redhat.com>,
	jerry.james@xemacs.org, emacs-devel@gnu.org
Subject: Re: DSO-style FFI
Date: Sat, 12 Oct 2013 14:55:26 -0400	[thread overview]
Message-ID: <jwvbo2uqqa7.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87wqlitse5.fsf@maru2.md5i.com> (Michael Welsh Duggan's message of "Sat, 12 Oct 2013 11:34:26 -0400")

> It seems to me that writing libffi support to Emacs isn't that difficult
> in and of itself.  I have no doubt that I could hack in something
> low-level without too much difficulty.

Could be.  I haven't seen anything concrete (and of course, providing
access to libffi is only one half of the problem, the other half is to
write the binding to lib<foo>, and my impression is that more
people would know how to do that if that part were written in C).

> The problems I see are A) that it would be trivial to use such an
> interface to crash or subvert emacs from elisp,

This is a fundamental property of anything that lets gives access to
"any" library.  DSO or FFI is in the same boat.  IOW, if we really
consider it as too dangerous, then we can't provide anything related to
an FFI or dynamic loading of code.

> and B) that such a binding will allow people to write non-free
> extensions to Emacs in just the way that RMS has specifically stated
> that he would like to avoid.

Presumably we can prevent it by checking (before loading the library)
that the library is compatible with the GPL (following the scheme
designed originally for gcc).

> This isn't to say that something that is not libffi itself could use
> libffi to create something safer.

Don't worry: as long as you want to be able to link libraries written in
languages like C, you can't make it safer.


        Stefan



  reply	other threads:[~2013-10-12 18:55 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-06  9:15 GNU Emacs-libnettle-libhogweed integration patch v1 Ted Zlatanov
2013-10-06  9:58 ` bignum support in Emacs with libgmp (was: GNU Emacs-libnettle-libhogweed integration patch v1) Ted Zlatanov
2013-10-06 16:09 ` GNU Emacs-libnettle-libhogweed integration patch v1 Eli Zaretskii
2013-10-06 21:07   ` Ted Zlatanov
2013-10-06 16:51 ` Stefan Monnier
2013-10-06 16:58   ` Eli Zaretskii
2013-10-06 21:19   ` Ted Zlatanov
2013-10-07  4:02     ` Stefan Monnier
2013-10-07 11:41       ` Ted Zlatanov
2013-10-07 22:03         ` Ted Zlatanov
2013-10-07 22:58           ` Stefan Monnier
2013-10-07 23:43             ` Emacs crypto use cases (was: GNU Emacs-libnettle-libhogweed integration patch v1) Ted Zlatanov
2013-10-08  3:02               ` Emacs crypto use cases Stefan Monnier
2013-10-08 10:33                 ` Ted Zlatanov
2013-10-08 13:17                   ` Stephen J. Turnbull
2013-10-08 16:35                   ` DSO-style FFI (was: Emacs crypto use cases) Stefan Monnier
2013-10-08 17:32                     ` DSO-style FFI Tom Tromey
2013-10-08 19:42                       ` Ted Zlatanov
2013-10-08 20:43                         ` Tom Tromey
2013-10-09 23:21                           ` Ted Zlatanov
2013-10-10  8:09                             ` Andreas Schwab
2013-10-08 20:47                         ` Davis Herring
2013-10-09 22:26                           ` Ted Zlatanov
2013-10-09 23:52                             ` Davis Herring
2013-10-10  1:25                               ` Ted Zlatanov
2013-10-10  4:36                                 ` DSO-style DSOs (this is NOT an FFI!) Stephen J. Turnbull
2013-10-09  1:48                       ` DSO-style FFI Stephen J. Turnbull
2013-10-09  2:40                       ` Stefan Monnier
2013-10-12 15:34                         ` Michael Welsh Duggan
2013-10-12 18:55                           ` Stefan Monnier [this message]
2013-10-18 13:31                             ` Ted Zlatanov
2013-10-19 14:41                               ` Stefan Monnier
2013-10-19 15:08                               ` Stefan Monnier
2013-10-19 17:33                               ` Andy Moreton
2013-10-19 19:44                                 ` Ted Zlatanov
2013-10-12 23:36                           ` Stephen J. Turnbull
2013-10-08 19:50                     ` Ted Zlatanov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwvbo2uqqa7.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=jerry.james@xemacs.org \
    --cc=mwd@md5i.com \
    --cc=tromey@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).