From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Pascal J. Bourguignon" Newsgroups: gmane.emacs.help Subject: Re: making software with Emacs and Elisp Date: Wed, 23 Oct 2013 02:36:02 +0200 Organization: Informatimago Message-ID: <87sivsg6x9.fsf@informatimago.com> References: <87ob6k23t3.fsf@nl106-137-194.student.uu.se> <87d2mw52sh.fsf@nl106-137-194.student.uu.se> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1382488605 31405 80.91.229.3 (23 Oct 2013 00:36:45 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 23 Oct 2013 00:36:45 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Oct 23 02:36:48 2013 Return-path: Envelope-to: geh-help-gnu-emacs@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 1VYmRL-0005Xb-Qc for geh-help-gnu-emacs@m.gmane.org; Wed, 23 Oct 2013 02:36:48 +0200 Original-Received: from localhost ([::1]:47145 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VYmRL-0001NQ-5R for geh-help-gnu-emacs@m.gmane.org; Tue, 22 Oct 2013 20:36:47 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43586) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VYmR3-0001HR-8B for help-gnu-emacs@gnu.org; Tue, 22 Oct 2013 20:36:34 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VYmQv-0007nc-Tu for help-gnu-emacs@gnu.org; Tue, 22 Oct 2013 20:36:29 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:45197) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VYmQv-0007n5-Eg for help-gnu-emacs@gnu.org; Tue, 22 Oct 2013 20:36:21 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1VYmQq-0005EJ-Or for help-gnu-emacs@gnu.org; Wed, 23 Oct 2013 02:36:16 +0200 Original-Received: from amontsouris-651-1-117-120.w83-202.abo.wanadoo.fr ([83.202.52.120]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 23 Oct 2013 02:36:16 +0200 Original-Received: from pjb by amontsouris-651-1-117-120.w83-202.abo.wanadoo.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 23 Oct 2013 02:36:16 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 84 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: amontsouris-651-1-117-120.w83-202.abo.wanadoo.fr Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:MTJiYzZkMjlhNmNmNzgyMWZjNjg2MjQxNGFjOWMwN2MwNzZhNzM2OA== X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:94157 Archived-At: Emanuel Berg writes: > Marcin Borkowski writes: > >> I understand that you want to develop your application >> in "EmacsOS" > > You are actually the *third* person who brought up the > "OS" aspect with me. I never thought of Emacs that way. > > Well, it isn't like the Linux kernel because it is > interactive, and it doesn't access and allocate hardware > to a pool of processes. For example, if you run a shell > command from Emacs, that is continuous/background in > character, isn't that run next to Emacs, with the kernel > doing the multitasking, rather than on top of Emacs, and > Emacs doing the scheduling etc.? cf. the process objects. emacs does manage memory, or schedule processor time for the various functions running in emacs. Also, "Operating System" doesn't mean unix-like architecture. You can have very different architectures. > But you may also include other stuff in a definition of > "OS", like the libraries, the tools, the interface... In > that sense I agree Emacs is very much an OS, perhaps > even the best there is! Indeed, an OS is not a kernel. cf. GNU vs. Linux, or GNU vs. Hurd. cf. emacs vs. Linux http://informatimago.com/linux/emacs-on-user-mode-linux.html > But (in the kernel "OS" interpretation), that's overkill > for my purposes, I don't need to spawn processes/threads > and all that, I just need to be able to execute my Elisp > software elsewhere, the same way it is executed on my > machine. > > Doesn't for example Python code work everywhere, as long > as you have a Python interpreter? No it doesn't. There are a lot of versions of python, and python libraries may or may not work on several of those versions. Distributions usually package them so that several versions can be installed at the same time, and a python program chooses one version or another to run. The same is true for ruby (with even a specific tools to setup the environment with a given ruby version and gem configuartion, cf. rvm). Some implementations also can install different versions of emacs. (cf. gentoo eselect, /etc/alternatives on ubuntu, etc). > Something like that would be enough, and I suppose the > Elisp interpreter is... Emacs. That said, there's less differences between (consecutive) versions of emacs than in the case of ruby or python, and it's easier to write a program that can run on different versions of emacs lisp. As long as emacs is installed (it may be a dependency of your program, so it gets installed automatically in a given distribtion package management system), you can run your program with: $ emacs -Q --batch -l myprogram.el you can provide a script to launch your program such as: $ cat myprogram #!/bin/sh exec emacs -Q --batch -l myprogram.el $ -- __Pascal Bourguignon__ http://www.informatimago.com/