From: Thomas Lord <lord@emf.net>
To: Stefan Monnier <monnier@IRO.UMontreal.CA>
Cc: Bruce Stephens <bruce.stephens@isode.com>, emacs-devel@gnu.org
Subject: Re: Guile in Emacs
Date: Tue, 13 Apr 2010 11:56:40 -0700 [thread overview]
Message-ID: <1271185000.6067.70.camel@dell-desktop.example.com> (raw)
In-Reply-To: <jwvpr23mjgl.fsf-monnier+emacs@gnu.org>
On Tue, 2010-04-13 at 12:07 -0400, Stefan Monnier wrote:
> I agree with your conclusion but for a very different reason.
> In my opinion the actual language used is not very important because
> most of the code that will be used with Emacs will be written
> specifically for Emacs.
Well, I'm not so sure that that's entirely true
and I'm also not so sure that that's the only
consideration.
What you say is less than obviously true in this
way, at least: Consider how modern browsers are
often written. On the one hand there is some lower-level
library for rendering HTML and doing various HTTP magic.
On the other hand, there are higher levels that make
the complete application. That lower level part gets re-used
in other applications. A text editor isn't obviously
much (or perhaps at all) a different case. It might
be desirable to start thinking of Emacs in two layers: an
embeddable library and, sure, a default application as its
basic front-end. Emacs lisp library code would then
be "emacs specific" in some sense (relative to the
library) but not really application specific.
Beyond that: While it might be the case that "most"
Emacs lisp library code is Emacs-specific in some sense,
some important code need not be. One example is SCSH
(the Scheme "shell" for managing sub-processes).
A possible future example is Unicode-oriented string
libraries. "Most" of the code might be Emacs-specific
but some important parts of the code need not be.
And, anyway, it's not the only consideration. If
Scheme were used by many GNU programs as an extension
language, then inter-process communication by writing
and reading Scheme s-exps would be more common. Two
standard Scheme environments can exchange s-exps with
relatively little problem. But toss in a very different
lisp - like Emacs lisp - and you start to have problems.
E.g., what does "nil" read as? What's the syntax for
strings? Are symbols case sensitive?
> The availability of alternative implementations is also of no use
> because changing the underlying implementation is the part that's
> difficult (at least with Emacs's current structure).
Sure. But if we're thinking of a long term strategy
rather than quick hacks, we should also keep in mind
that much of what is today in C in Emacs could well be
usefully replaced by Scheme code.
That's part of why I suggest (you know, given the infinite
amount of spare time we all have) the radical option of
stripping Emacs lisp out and re-binding to Scheme: because
that exercise would lead to some careful re-evaluation of
what needs to be in the C part and how best to make a
clean interface to it.
> What matters is that we reuse some existing implementation and benefit
> from all the work done on it, so we don't have to spend time working on
> the Elisp byte-compiler.
I fully agree that that matters.
> I like the idea of Guile not because it's using a "standard preexisting
> language with libraries and experienced coders", but because it'll give
> us a bunch of hackers working on efficient implementation,
> multithreading, ...
Yup. A big "gotcha" trap to watch out for on that path
is Guile's C API. The less intertwingled Guile's (or any
other implementations) assumptions about the C client can
be, the better and more flexible the result. I.e., it would
be pretty much the same mistake as being too Emacs lisp centric
to be too Guile centric. It would ideally be plausible to
swap out Guile for some other implementation, even if the
initial investment and commitment is to use Guile.
-t
>
> Stefan
>
>
> PS: The same holds for the redisplay engine; I really hope/wish we will
> be able to switch to some other project's redisplay engine at some point.
>
>
next prev parent reply other threads:[~2010-04-13 18:56 UTC|newest]
Thread overview: 127+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4B8147A9.7030504@gmail.com>
[not found] ` <87ljemdzxo.fsf@stupidchicken.com>
2010-02-23 5:31 ` Next pretest, and branching plans Jason Rumney
2010-02-23 18:29 ` Eli Zaretskii
2010-02-23 21:12 ` Jason Rumney
2010-02-24 6:04 ` Richard Stallman
2010-02-24 13:34 ` Sean Sieger
2010-02-24 15:05 ` Davis Herring
2010-02-24 15:18 ` Sean Sieger
2010-02-24 14:05 ` Chong Yidong
2010-02-25 14:26 ` Richard Stallman
2010-02-26 18:03 ` manuals [was Re: Next pretest, and branching plans] Glenn Morris
2010-02-27 2:32 ` Richard Stallman
2010-02-27 16:52 ` Next pretest, and branching plans Johan Bockgård
2010-03-03 3:52 ` Glenn Morris
2010-03-05 0:31 ` Johan Bockgård
2010-03-05 19:50 ` integer overflow [was Re: Next pretest, and branching plans] Glenn Morris
2010-03-05 22:35 ` integer overflow Stefan Monnier
2010-03-06 2:55 ` Glenn Morris
2010-03-06 3:11 ` Chong Yidong
2010-03-06 7:03 ` Helmut Eller
2010-03-06 15:45 ` Stefan Monnier
2010-03-06 16:23 ` Davis Herring
2010-03-06 16:33 ` Drew Adams
2010-03-07 7:52 ` Richard Stallman
2010-03-07 16:06 ` David Kastrup
2010-03-07 17:18 ` Stephen J. Turnbull
2010-03-07 17:42 ` David Kastrup
2010-03-08 4:49 ` Jay Belanger
2010-03-08 8:04 ` Richard Stallman
2010-03-08 14:41 ` Guile in Emacs (was: integer overflow) Ted Zlatanov
2010-03-08 17:32 ` Guile in Emacs Ted Zlatanov
2010-03-08 18:42 ` Guile in Emacs (was: integer overflow) Chad Brown
2010-03-09 7:07 ` Ken Raeburn
2010-03-09 16:22 ` Guile in Emacs Ted Zlatanov
2010-03-10 8:07 ` Ken Raeburn
2010-03-10 13:58 ` David Kastrup
2010-03-09 3:19 ` Guile in Emacs (was: integer overflow) Richard Stallman
2010-04-11 23:33 ` Thomas Lord
2010-04-12 12:30 ` Richard Stallman
2010-04-12 20:05 ` Thomas Lord
2010-04-13 12:44 ` Guile in Emacs Bruce Stephens
2010-04-13 15:51 ` Thomas Lord
2010-04-13 16:07 ` Stefan Monnier
2010-04-13 18:56 ` Thomas Lord [this message]
2010-04-13 19:22 ` Christian Lynbech
2010-04-14 10:14 ` Bruce Stephens
2010-04-14 14:10 ` joakim
2010-04-13 19:13 ` Christian Lynbech
2010-04-14 1:47 ` Thomas Lord
2010-04-14 3:33 ` Christian Lynbech
2010-04-14 23:33 ` Richard Stallman
2010-04-14 5:02 ` Richard Stallman
2010-04-14 6:45 ` christian.lynbech
2010-04-14 19:07 ` Thomas Lord
2010-04-14 19:34 ` Bruce Stephens
2010-04-14 20:09 ` Jose A. Ortega Ruiz
2010-04-15 7:34 ` christian.lynbech
2010-04-14 23:33 ` Richard Stallman
2010-04-15 3:52 ` Drew Adams
2010-04-15 6:01 ` David Kastrup
2010-04-15 6:54 ` Drew Adams
2010-04-15 11:59 ` Jeff Clough
2010-04-15 12:49 ` christian.lynbech
2010-04-15 13:54 ` Jeff Clough
2010-04-15 14:03 ` Lennart Borgman
2010-04-15 16:13 ` Drew Adams
2010-04-16 13:48 ` Jeff Clough
2010-04-16 14:03 ` christian.lynbech
2010-04-16 14:25 ` Jeff Clough
2010-04-16 14:25 ` Drew Adams
2010-04-16 14:39 ` David Kastrup
2010-04-16 14:40 ` Jeff Clough
2010-04-16 8:27 ` christian.lynbech
2010-04-17 4:41 ` Richard Stallman
2010-04-19 7:52 ` christian.lynbech
2010-04-16 22:29 ` Emacs Info manuals (was: Guile in Emacs) Juri Linkov
2010-04-15 16:11 ` Guile in Emacs Drew Adams
2010-04-15 7:21 ` christian.lynbech
2010-04-15 7:36 ` David Kastrup
2010-04-15 8:34 ` christian.lynbech
2010-04-15 9:06 ` David Kastrup
2010-04-15 9:45 ` Helmut Eller
2010-04-15 10:39 ` christian.lynbech
2010-04-15 18:47 ` Richard Stallman
2010-04-15 22:42 ` Harald Hanche-Olsen
2010-04-15 22:50 ` Harald Hanche-Olsen
2010-04-17 4:40 ` Richard Stallman
2010-04-15 23:02 ` Helmut Eller
2010-04-17 4:40 ` Richard Stallman
2010-04-17 6:46 ` Helmut Eller
2010-04-17 19:55 ` Richard Stallman
2010-04-14 13:30 ` John Wiegley
2010-04-14 14:18 ` Helmut Eller
2010-04-14 15:40 ` Tom Tromey
2010-04-14 7:51 ` David Kastrup
2010-04-14 8:42 ` christian.lynbech
2010-04-14 9:55 ` immanuel litzroth
2010-04-14 10:28 ` christian.lynbech
2010-04-14 11:25 ` Stephen J. Turnbull
2010-04-14 12:26 ` christian.lynbech
2010-04-14 16:49 ` Ken Raeburn
2010-04-14 18:29 ` Tom Tromey
2010-04-14 20:02 ` Ken Raeburn
2010-04-14 11:23 ` Jeff Clough
2010-04-14 13:11 ` Stephen J. Turnbull
2010-04-14 13:11 ` Stephen Eilert
2010-04-14 13:49 ` Helmut Eller
2010-04-14 15:47 ` Tom Tromey
2010-04-14 16:41 ` Drew Adams
2010-04-14 20:10 ` David De La Harpe Golden
2010-04-15 10:38 ` Leo
2010-03-06 19:04 ` integer overflow Helmut Eller
2010-03-06 21:26 ` Stefan Monnier
2010-03-07 7:51 ` Richard Stallman
2010-03-07 19:05 ` Johan Bockgård
2010-03-06 20:35 ` Chong Yidong
2010-03-13 3:10 ` Next pretest, and branching plans Christoph
2010-03-13 7:42 ` Eli Zaretskii
2010-03-13 14:54 ` Christoph
2010-03-13 18:30 ` Stefan Monnier
2010-03-13 19:06 ` Eli Zaretskii
2010-03-14 2:38 ` Jason Rumney
2010-03-14 2:50 ` Christoph
2010-03-14 3:07 ` Jason Rumney
2010-03-14 17:55 ` Eli Zaretskii
2010-03-17 0:29 ` Christoph
2010-03-17 4:14 ` Eli Zaretskii
2010-03-17 12:44 ` Jason Rumney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1271185000.6067.70.camel@dell-desktop.example.com \
--to=lord@emf.net \
--cc=bruce.stephens@isode.com \
--cc=emacs-devel@gnu.org \
--cc=monnier@IRO.UMontreal.CA \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.