From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Stephen J. Turnbull" Newsgroups: gmane.emacs.devel Subject: Re: Dynamic loading progress Date: Sat, 14 Feb 2015 21:18:51 +0900 Message-ID: <87twyolm8k.fsf@uwakimon.sk.tsukuba.ac.jp> References: <85oapy5kt6.fsf@stephe-leake.org> <83y4oiiw81.fsf@gnu.org> <838ugdf251.fsf@gnu.org> <54D80098.3020209@cs.ucla.edu> <54D85304.1030600@cs.ucla.edu> <54D9AC29.2020603@cs.ucla.edu> <54DA8539.1020905@cs.ucla.edu> <87zj8ktq8f.fsf@lifelogs.com> <54DD6413.1000403@cs.ucla.edu> <83wq3m436s.fsf@gnu.org> <54DDEB4D.5040300@dancol> <83egpt4zz6.fsf@gnu.org> <54DE12E9.5040606@dancol.org> <85twypiiug.fsf@stephe-leake.org> <83zj8g3n16.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 X-Trace: ger.gmane.org 1423916375 29558 80.91.229.3 (14 Feb 2015 12:19:35 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 14 Feb 2015 12:19:35 +0000 (UTC) Cc: Stephen Leake , emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Feb 14 13:19:27 2015 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 1YMbgx-0000mJ-Pf for ged-emacs-devel@m.gmane.org; Sat, 14 Feb 2015 13:19:23 +0100 Original-Received: from localhost ([::1]:59550 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YMbgx-0003mN-7f for ged-emacs-devel@m.gmane.org; Sat, 14 Feb 2015 07:19:23 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:56857) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YMbgk-0003m4-2O for emacs-devel@gnu.org; Sat, 14 Feb 2015 07:19:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YMbgi-0004d4-PZ for emacs-devel@gnu.org; Sat, 14 Feb 2015 07:19:09 -0500 Original-Received: from shako.sk.tsukuba.ac.jp ([130.158.97.161]:55232) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YMbgZ-0004cC-JN; Sat, 14 Feb 2015 07:18:59 -0500 Original-Received: from uwakimon.sk.tsukuba.ac.jp (uwakimon.sk.tsukuba.ac.jp [130.158.99.156]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by shako.sk.tsukuba.ac.jp (Postfix) with ESMTPS id 7E76E1C38F0; Sat, 14 Feb 2015 21:18:51 +0900 (JST) Original-Received: by uwakimon.sk.tsukuba.ac.jp (Postfix, from userid 1000) id 3D91E1A26E3; Sat, 14 Feb 2015 21:18:51 +0900 (JST) In-Reply-To: <83zj8g3n16.fsf@gnu.org> X-Mailer: VM undefined under 21.5 (beta34) "kale" acf1c26e3019 XEmacs Lucid (x86_64-unknown-linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 130.158.97.161 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:183052 Archived-At: Eli Zaretskii writes: > > From: Stephen Leake > > Date: Fri, 13 Feb 2015 15:48:07 -0600 > > > > My use case requires calling lisp functions; in particular, > > put-text-property, but also other higher-level lisp functions in > > ada-mode. > > Why do you need to call Lisp in the module? I think it's a no-no for > modules to call Lisp; that should be done in the Lisp code that uses > the module. I don't understand. XEmacs's ELLs (dynamically loadable modules) have no problem with calling Lisp (use Ffuncall) or using symbols (use Fintern). The only requirement that I've seen expressed in this thread that XEmacs ELLs don't satisfy is that a module should be compilable for use with multiple versions of XEmacs (of course modules actually work with multiple versions, but that's not officially supported). XEmacs also doesn't really support unloading, although there's an unload function (there is no real guarantee that everything of interest will be cleaned), but I can't really see why that's an important requirement. It's mostly a convenience to enable a fast compile-load-test-unload cycle, and if it works half the time, it's a significant saving over compile-restart-load-test. > > I need a compiled module to implement an LALR parser for the Ada > > language that is fast enough for very large files. > > Why does an implementation of a parser need to call Lisp? I can't give you a reason in the case of a parser, but in general compiled Lisp functions may want to provide Lisp hooks, or implement inner loops for simple functionality in C but do flexible handling of more complex functionality in Lisp. Perhaps a similar motivation is relevant to the Ada parser.