From: joakim@verona.se
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: Re: FFI again
Date: Sat, 05 Oct 2013 18:24:30 +0200 [thread overview]
Message-ID: <m34n8v8z41.fsf@exodia.verona.se> (raw)
In-Reply-To: <jwv4n8vlnph.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Sat, 05 Oct 2013 12:11:26 -0400")
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> As you may remember, I'd really like for Emacs to grow some kind of FFI.
> Last time we discussed it, I mostly remember the following points being made:
> - An FFI can be a lot of work, and the benefit is not as obvious as it seems.
> - Emacs-Guile would give us an FFI for free.
> - The xwidget branch indirectly gives us some limited FFI.
>
> The Emacs-Guile route seems promising, but I'm not sure I want to depend
> on its schedule. The xwidget one seems a bit too limited for my taste.
> And I surely don't want to put a lot of work into it.
>
> So I'd like an FFI, but one that's really cheap to design/implement.
>
> The main purpose of an FFI, as far as I'm concerned, it to make it
> possible for Emacs to use any .so library it feels, rather than only the
> ones that it was compiled with. More specifically, so that ELPA
> packages can use such .so libraries if they feel like.
>
> I think a "cheapish" way to do that is to make it possible for an ELPA
> package to come with a .c file that exports a "syms_of_module" function
> that can call things like defsubsr.
>
> Installing such an ELPA package would require running a C compiler,
> obviously (unless we also provide some pre-compiled versions for
> particular target systems?). And we'd need to add some function that
> can load the resulting compiled object (along with the .so libraries it
> depends on, since in many cases the whole purpose would be to call
> functions in those .so libs).
>
> It's not ideal, but it should be reasonably cheap to implement, and
> would let people get access to pretty much any library they want.
Whats wrong with libffi?
http://sourceware.org/libffi/
Its what everyone else uses, including Guile, Xwidgets, and the existing
Emacs FFI patches.
>
>
> Stefan
>
--
Joakim Verona
next prev parent reply other threads:[~2013-10-05 16:24 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-05 16:11 FFI again Stefan Monnier
2013-10-05 16:24 ` joakim [this message]
2013-10-05 22:18 ` Stefan Monnier
2013-10-05 22:33 ` joakim
2013-10-06 16:39 ` Stefan Monnier
2013-10-06 16:54 ` Eli Zaretskii
2013-10-06 18:17 ` Stefan Monnier
2013-10-06 19:04 ` Eli Zaretskii
2013-10-07 1:41 ` Stephen J. Turnbull
2013-10-07 3:29 ` Stefan Monnier
2013-10-07 4:34 ` Stephen J. Turnbull
2013-10-07 4:58 ` Stefan Monnier
2013-10-07 22:14 ` Andy Moreton
2013-10-07 22:47 ` Stefan Monnier
2013-10-08 6:54 ` Eli Zaretskii
2013-10-08 2:22 ` Stephen J. Turnbull
2013-10-08 2:47 ` Richard Stallman
2013-10-08 5:33 ` Stephen J. Turnbull
2013-10-08 7:14 ` Eli Zaretskii
2013-10-05 17:07 ` Eli Zaretskii
2013-10-05 23:24 ` Daniel Colascione
2013-10-06 19:19 ` Richard Stallman
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m34n8v8z41.fsf@exodia.verona.se \
--to=joakim@verona.se \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.