From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Xue Fuqiao Newsgroups: gmane.emacs.devel Subject: Re: Adding c/c++ scripting Date: Mon, 25 Jan 2016 16:46:58 +0800 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: ger.gmane.org 1453711626 9598 80.91.229.3 (25 Jan 2016 08:47:06 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 25 Jan 2016 08:47:06 +0000 (UTC) Cc: Emacs-devel To: Tom Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jan 25 09:47:05 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aNcng-0000fx-Bk for ged-emacs-devel@m.gmane.org; Mon, 25 Jan 2016 09:47:04 +0100 Original-Received: from localhost ([::1]:35830 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aNcnf-0005I3-UB for ged-emacs-devel@m.gmane.org; Mon, 25 Jan 2016 03:47:03 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38093) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aNcnc-0005HY-Cc for emacs-devel@gnu.org; Mon, 25 Jan 2016 03:47:01 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aNcnb-0006G8-90 for emacs-devel@gnu.org; Mon, 25 Jan 2016 03:47:00 -0500 Original-Received: from mail-io0-x231.google.com ([2607:f8b0:4001:c06::231]:33183) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aNcnb-0006G2-4R for emacs-devel@gnu.org; Mon, 25 Jan 2016 03:46:59 -0500 Original-Received: by mail-io0-x231.google.com with SMTP id q21so145104756iod.0 for ; Mon, 25 Jan 2016 00:46:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=t3k+kHiDi1kwj5bW8YhOpktgmNFiilbohqms8geKU2o=; b=BDQqM9+Y/ubNDVkdcm87/yWEr2Iu6wtEegNJXDGECnyA40yD2vhiEuHyvOmxdCipHC JqiCDmM8JUQabQs6uN6iyk2qJ0Bgc4z2GH4pa2qmCro+WZnb/7GWhzblwKfkfNlKBbk7 beDzpPwoRXcGkqdwLNVMsbUDdFUPl1Smjwe2eJyjTqn7u3VEgp6rIvsDTbDv193SZWY7 5YFS4IALe4rqJPwAP/hwq+r0XMXLf5LUzbWOZcp4HBzb8gaLv1ssNbTwsvSTxYbCxraa pL4A1fdW/yy7I4TrWebDlTi8FUULZHHSH8fZcqi86P6bfnVJRVPJsFyr2UBfGsfOQMIH 9YnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=t3k+kHiDi1kwj5bW8YhOpktgmNFiilbohqms8geKU2o=; b=fgOJxithkgfbkj21ONar9dBsxbb9QtjymAuWv203bn9iwGUykyaPpcZwGmFE8iFwY6 hm9Sj4TW5PInYiuslEywZtTMYkBJV/4/3NUvKEZOdswezodUhREA25cEnAEYwykyIIS9 gdbd0XfcBT+3PHDkTcse7f0qWPxE6rzJG446728rzCiMMH7g7IT2QPqc5F7K+BdhcUjK UZF7tCGqC1Cr5ViUfQteInJsHtKkM7nshCoLhm7c2R+pMs1f1yJfaXWJ6kpsbirLifVC 4xtAQouaeVWCUik0KVXqYXUAYiOT/iLrD+hU+n2dSNFYlaaxuJ4fYv8TwaiKdQ8zjef3 cWtQ== X-Gm-Message-State: AG10YOQ/5Rb86SYxQox7xFp8D9apWR4cJrobEcXNTQVp1Qzxz9x3+InIkH5e6988cabdZ9KGHKCbuj90BDFe2w== X-Received: by 10.107.14.72 with SMTP id 69mr16124879ioo.145.1453711618330; Mon, 25 Jan 2016 00:46:58 -0800 (PST) Original-Received: by 10.79.30.131 with HTTP; Mon, 25 Jan 2016 00:46:58 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:4001:c06::231 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:198751 Archived-At: On Sun, Jan 24, 2016 at 1:35 PM, Tom wrote: > Xue Fuqiao gmail.com> writes: >> >> PS: Personally, I like Neovim's plugin architecture. With the msgpack >> API, you can even use C#/Ruby/JavaScript/... to write plugins. > > Does it support calling, for example, a function defined in a C# > plugin from a Javascript plugin? No. > Because that is the important thing that you could write a plugin in > any language and use the resulting code from any other language. > > If it's not possible then these plugins are just isolated pieces > of code which is much less useful. Quoting Justin (a Neovim developer)[1]: The msgpack API is equivalent to a REST/HTTP API that allows you to call other "services" (plugins) which are listening behind that API. Everything gets marshaled through msgpack. To make a C# function callable by a javascript plugin, the C# plugin would need to listen for an event. And there is certainly no "binding" of live objects any plugin can of course map VimL functions to its language-of-choice (C#, javascript, ...) functions, and those VimL functions can be called by other functions I don't agree that "the important part" is having a magic FFI that bridges all languages. And I do think that isolation is good. [1] https://gitter.im/neovim/neovim?at=56a594cf586242210adf4ed9