From: Richard Stallman <rms@gnu.org>
To: "Eric M. Ludlam" <eric@siege-engine.com>
Cc: jasonr@gnu.org, lennart.borgman@gmail.com, sdl.web@gmail.com,
monnier@iro.umontreal.ca, emacs-devel@gnu.org
Subject: Re: Multiple major modes
Date: Sun, 01 Jul 2007 16:40:13 -0400 [thread overview]
Message-ID: <E1I56DN-0006bY-H2@fencepost.gnu.org> (raw)
In-Reply-To: <200706251404.l5PE4dgc011720@projectile.siege-engine.com> (eric@siege-engine.com)
The function overload mechanism is also a feature I use in semantic.
Most features that work in multiple major modes today provide a
variable where you can put a symbol that is a function that would then
provide some mode-specific functionality.
My semantic tool has hundreds of these functions, so I abstracted the
concept up so that the implementations could be declarative, instead
of programmatic.
I really don't like the idea of function overloads. This mechanism
shares the drawbacks of advice: that a function doesn't do what its
definition says.
It also makes it easy to make most functions
overridable, which helps avoid forcing users to use advice when
customizing my tool.
It is easy to replace advising with another similar mechanism,
but it doesn't solve the problem.
It seems to me that there is no need for this. Calling a variable
with funcall should do the same job. That way, the call _shows_
that the function isn't fixed.
next prev parent reply other threads:[~2007-07-01 20:40 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-11 23:27 Should nXML be included Leo
2007-06-12 10:50 ` Lennart Borgman (gmail)
2007-06-12 11:21 ` Jason Rumney
2007-06-12 12:57 ` Lennart Borgman (gmail)
2007-06-12 13:42 ` Peter Heslin
2007-06-12 14:20 ` Jason Rumney
2007-06-12 15:06 ` Multiple major modes (was: Should nXML be included) Stefan Monnier
2007-06-12 15:15 ` Multiple major modes Leo
2007-06-12 18:48 ` Lennart Borgman (gmail)
2007-06-12 20:14 ` Re[2]: " Eric M. Ludlam
2007-06-12 21:04 ` Lennart Borgman (gmail)
2007-06-12 23:10 ` Stefan Monnier
2007-06-13 16:22 ` Richard Stallman
2007-06-13 16:22 ` Richard Stallman
2007-06-19 2:09 ` Re[2]: " Eric M. Ludlam
2007-06-24 14:41 ` Richard Stallman
2007-06-25 14:04 ` Re[2]: " Eric M. Ludlam
2007-07-01 20:40 ` Richard Stallman
2007-07-05 2:29 ` Re[2]: " Eric M. Ludlam
2007-07-05 20:34 ` Richard Stallman
2007-07-01 20:40 ` Richard Stallman [this message]
2007-07-04 16:35 ` T. V. Raman
2007-07-04 17:01 ` David Kastrup
2007-07-05 1:31 ` Richard Stallman
2007-07-05 14:49 ` Stefan Monnier
2007-07-06 4:38 ` Richard Stallman
2007-07-06 6:01 ` Stephen J. Turnbull
2007-07-07 13:07 ` Richard Stallman
2007-07-07 14:13 ` Lennart Borgman (gmail)
2007-07-08 16:56 ` Richard Stallman
2007-09-04 9:03 ` Highlight advice (was: Multiple major modes) Johan Bockgård
2007-07-07 17:43 ` Multiple major modes Stephen J. Turnbull
2007-07-06 16:00 ` Stefan Monnier
2007-07-06 16:10 ` Drew Adams
2007-07-07 13:06 ` Richard Stallman
2007-07-07 17:21 ` Stephen J. Turnbull
2007-07-08 16:55 ` Richard Stallman
2007-07-09 5:29 ` Stephen J. Turnbull
2007-07-09 17:21 ` Richard Stallman
2007-07-07 0:48 ` Johan Bockgård
2007-07-05 1:44 ` Re[2]: " Eric M. Ludlam
2007-07-08 22:23 ` Richard Stallman
2007-07-09 0:49 ` Re[2]: " Eric M. Ludlam
2007-07-09 17:21 ` Richard Stallman
2007-06-12 13:26 ` Should nXML be included Stefan Monnier
2007-06-12 13:16 ` Peter Heslin
2007-06-12 13:11 ` Leo
2007-06-12 13:59 ` joakim
2007-06-12 14:17 ` Peter Heslin
2007-06-12 14:14 ` David Kastrup
2007-06-12 15:11 ` Stefan Monnier
2007-06-13 8:06 ` Richard Stallman
2007-06-13 17:45 ` Claus
2007-06-14 16:19 ` Richard Stallman
2007-06-14 16:28 ` Leo
2007-06-15 19:21 ` Richard Stallman
2007-06-14 17:44 ` Eric Hanchrow
-- strict thread matches above, loose matches on Subject: below --
2008-06-10 21:26 Multiple Major Modes Nordlöw
2008-06-10 21:47 ` Lennart Borgman (gmail)
2008-06-11 5:42 ` William Xu
2009-10-29 9:45 Nordlöw
2009-10-29 13:40 ` Pascal J. Bourguignon
2009-10-29 20:04 ` Joost Kremers
2009-10-29 22:14 ` Lennart Borgman
[not found] ` <mailman.9707.1256854525.2239.help-gnu-emacs@gnu.org>
2009-10-29 23:03 ` Pascal J. Bourguignon
2009-10-29 23:49 ` Lennart Borgman
[not found] ` <mailman.9710.1256860199.2239.help-gnu-emacs@gnu.org>
2009-10-30 0:52 ` Pascal J. Bourguignon
2009-10-30 3:28 ` Joseph Brenner
2009-11-01 23:14 ` Lennart Borgman
[not found] ` <mailman.9873.1257117309.2239.help-gnu-emacs@gnu.org>
2009-12-11 6:19 ` Joseph Brenner
2009-12-11 17:08 ` Lennart Borgman
2009-12-11 21:57 ` Joe Brenner
2009-12-11 22:06 ` Lennart Borgman
2009-12-12 2:16 ` Joe Brenner
2009-12-12 2:18 ` Lennart Borgman
2009-12-12 2:37 ` Joe Brenner
2009-11-01 21:24 ` Dave Love
2009-11-02 12:32 ` Lennart Borgman
2009-11-02 14:01 ` Richard Riley
2009-11-02 14:22 ` Lennart Borgman
2009-11-02 14:28 ` Richard Riley
2009-11-02 14:44 ` Richard Riley
2009-11-02 15:11 ` Richard Riley
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=E1I56DN-0006bY-H2@fencepost.gnu.org \
--to=rms@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=eric@siege-engine.com \
--cc=jasonr@gnu.org \
--cc=lennart.borgman@gmail.com \
--cc=monnier@iro.umontreal.ca \
--cc=sdl.web@gmail.com \
/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.