From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Newsgroups: gmane.emacs.devel Subject: Re: guile and emacs and elisp, oh my! Date: Wed, 21 Apr 2010 18:43:34 +0200 Message-ID: <87ljcg4uyx.fsf@gnu.org> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" X-Trace: dough.gmane.org 1271869014 14233 80.91.229.12 (21 Apr 2010 16:56:54 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 21 Apr 2010 16:56:54 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Apr 21 18:56:53 2010 connect(): No such file or directory Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1O4dEK-0007M9-RR for ged-emacs-devel@m.gmane.org; Wed, 21 Apr 2010 18:56:53 +0200 Original-Received: from localhost ([127.0.0.1]:44072 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O4dEK-0005pC-9v for ged-emacs-devel@m.gmane.org; Wed, 21 Apr 2010 12:56:52 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O4d1e-0006bb-Uh for emacs-devel@gnu.org; Wed, 21 Apr 2010 12:43:47 -0400 Original-Received: from [140.186.70.92] (port=48843 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O4d1d-0006Yc-2e for emacs-devel@gnu.org; Wed, 21 Apr 2010 12:43:46 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O4d1a-0006U1-Kt for emacs-devel@gnu.org; Wed, 21 Apr 2010 12:43:44 -0400 Original-Received: from mail4-relais-sop.national.inria.fr ([192.134.164.105]:22203) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O4d1a-0006Tp-Do for emacs-devel@gnu.org; Wed, 21 Apr 2010 12:43:42 -0400 X-IronPort-AV: E=Sophos;i="4.52,251,1270418400"; d="scan'208";a="61043887" Original-Received: from laptop-147-210-128-170.labri.fr (HELO nixey) ([147.210.128.170]) by mail4-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 21 Apr 2010 18:43:41 +0200 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 2 =?iso-8859-1?Q?Flor=E9al?= an 218 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu Cancel-Lock: sha1:lCX5c80mt0+z7/IdZaPvMg3Q9/Y= In-Reply-To: (Tom Tromey's message of "Tue, 20 Apr 2010 16:36:34 -0600") X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:123991 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello Tom, (My first post on this list, so I=E2=80=99m a bit impressed. ;-)) I think this discussion should be framed in the larger context of the GNU System. Guile came into existence to =E2=80=9Cspread the Emacs nature= =E2=80=9D to the rest of GNU, to paraphrase Andy[*]. The GNU System as I view it aims to liberate users in two ways: 1. Legally, by using software licenses that guarantee the 4 freedoms. 2. Technically, by providing extension points allowing users to easily adapt the system to their own needs. The latter is paramount to the design of 3 key components of GNU: the Hurd, Guile, and Emacs. Guile is meant to be a powerful interface between users and the GNU System, more powerful than a Bourne shell, and more moldable than a C API. It aims to be a substrate allowing system components to be glued together to let new applications emerge. Users should be able to take Emacs, GnuTLS, and Mailutils and have Gnus benefit from what each component has to offer. They should be able to write GTK+/GNUstep GUIs that present Org-Mode files in a nice way, or render them as PDF via GNU PDF. All these GNU libraries, programs, and Emacs modes should be able to be tightly integrated together, and this is where Guile comes in. Part of this is already possible, but the interface between Emacs and the rest of GNU remains disappointingly poor. A few remarks: Tom Tromey writes: > First, people have often discussed the desirability of one runtime to > rule them all. This has even been attempted -- Gnome floated a > proposal, there is Parrot, even the JVM and .NET are getting in on it. Guile isn=E2=80=99t aiming at support for tens of languages like Parrot. G= uile is a Scheme implementation, first and foremost. It has an elisp compiler and integrates well with elisp because elisp is primordial as an extension language for GNU. It also comes with a compiler for ECMAScript, which turns out to have many features comparable to Scheme and a surface syntax that some people prefer. (It also has a Brainfuck front-end. Imagine yourself extending Emacs in Brainfuck, thank Guile!) > Multiple languages equals chaos. I don=E2=80=99t think it=E2=80=99s that clear cut. Vim (heh...) supports s= everal extension languages, PLT Scheme implements multiple languages. Emacs-on-Guile as I imagine it would be mainly about elisp and (to a lesser extent) Scheme, though. > * FFI, and dynamically loadable libraries. This feature has come up and > been rejected several times for Emacs. In practice D-BUS can be thought of as an FFI, not to mention the use of special-purpose external programs such as =E2=80=98gnutls-cli=E2=80=99. Thanks, Ludo=E2=80=99. [*] I recommend looking at or rather listening to Andy=E2=80=99s talk at G=C3=B6teborg=E2=80=99s GHM, entitled =E2=80=9CGuile, GNU, and You=E2= =80=9D: http://www.gnu.org/ghm/2009/ . --=-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEARECAAYFAkvPKzoACgkQd92V4upS7PRIVQCfdhQ+sa4Yo0PrP4649n12PAg9 dE0An1ouEB82auzBfgN/p59Z+m80dkn6 =o8fx -----END PGP SIGNATURE----- --=-=-=--