From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ted Zlatanov Newsgroups: gmane.emacs.devel Subject: Re: emacs-dynamic-module in Emacs Git? Date: Mon, 01 Dec 2014 09:47:36 -0500 Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos Message-ID: References: <85h9xwhpy9.fsf@stephe-leake.org> <87k32sh50f.fsf@lifelogs.com> <85tx1rg64e.fsf_-_@stephe-leake.org> <87siha7r3b.fsf@lifelogs.com> <87lhmz4mtj.fsf@lifelogs.com> <87sih575rc.fsf@lifelogs.com> <8361dyaqf1.fsf@gnu.org> <837fycae5p.fsf@gnu.org> <87y4qs19mi.fsf@lifelogs.com> <874mtfu0et.fsf@lifelogs.com> Reply-To: emacs-devel@gnu.org NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1417445295 10889 80.91.229.3 (1 Dec 2014 14:48:15 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 1 Dec 2014 14:48:15 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Dec 01 15:48:08 2014 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 1XvSGk-0003JV-PJ for ged-emacs-devel@m.gmane.org; Mon, 01 Dec 2014 15:48:06 +0100 Original-Received: from localhost ([::1]:60468 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XvSGk-0004Gk-Em for ged-emacs-devel@m.gmane.org; Mon, 01 Dec 2014 09:48:06 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53583) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XvSGc-0004Fe-Vb for emacs-devel@gnu.org; Mon, 01 Dec 2014 09:48:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XvSGX-0005nt-1A for emacs-devel@gnu.org; Mon, 01 Dec 2014 09:47:58 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:56394) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XvSGW-0005nk-QH for emacs-devel@gnu.org; Mon, 01 Dec 2014 09:47:52 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1XvSGU-0003BI-No for emacs-devel@gnu.org; Mon, 01 Dec 2014 15:47:50 +0100 Original-Received: from 198.0.146.153 ([198.0.146.153]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 01 Dec 2014 15:47:50 +0100 Original-Received: from tzz by 198.0.146.153 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 01 Dec 2014 15:47:50 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Original-Lines: 32 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 198.0.146.153 X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6; d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" Mail-Copies-To: never User-Agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/25.0.50 (darwin) Cancel-Lock: sha1:+lk/I4M+t2kfz9jVXe+S4csU7Iw= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 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:178580 Archived-At: On Mon, 01 Dec 2014 08:45:53 -0500 Stefan Monnier wrote: >>>> What do you think about the current modules? SM> Haven't really looked at them yet. >> It would be good if everyone did before it's merged. It's probably the >> most important new architectural feature we'll see in the next release. SM> Then I must have misunderstood. We were talking about APIs, and AFAIK SM> the new code doesn't really define an API (yet). So "current modules" SM> above seemed to refer to actual modules, not about the new Emacs-side SM> code that hosts/loads those modules. The branch defines both actual modules and the means to load and call them. Currently they can call the Emacs core directly, so there's no API. Aurélien was already asking how to define a global variable from inside a module. Also modules can have a license and other metadata that should be easy to obtain before loading them. So I hope the API is settled to some degree before we merge. IMHO the first API should be call-only and very simple: * load: makes the functions available * describe: list the functions, the module metadata (version, license, etc), and the loaded/not loaded state. Functions are passed as a struct with a name and 1-7 parameters; each parameter has a name and type (text, 32-bit int, or 48-bit float). * funcall: call a specific function (this would be hidden from the ELisp code, which just calls the function by name) Ted