unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Bill Wohler <wohler@newt.com>
Cc: mh-e-devel@lists.sourceforge.net, emacs-devel@gnu.org
Subject: Re: mh-e/mh-acros.el advices `require' incorrectly
Date: Sun, 15 Jan 2006 17:29:56 -0800	[thread overview]
Message-ID: <4375.1137374996@olgas.newt.com> (raw)
In-Reply-To: "Richard M. Stallman"'s message of Sun, 15 Jan 2006 18:07:19 EST. <E1EyGxz-0005Ws-Uq@fencepost.gnu.org>

Richard M. Stallman <rms@gnu.org> wrote:

>     What do people think about my updating lisp/Makefile.in to remove
>     lisp/mh-e/*.elc if and only if lisp/mh-e/*.el changes?
> 
> That won't help with M-x byte-recompile.  The right solution is to
> make the graph of requires acyclic, and put the macro file at the
> start of the alphabet.  Given the way the software in fact works,
> that should be totally reliable.

Thank you. I think I'm going to go ahead and bite the bullet and do just
that. I've appended a proposal I sent to the MH-E developers today.
While I don't expect you to understand MH-E, perhaps you can let me know
whether your gut says "good idea" or "bad idea" and why.

(mh-customize.el holds all of our defcustom and defface calls.
mh-loaddefs.el is the internal MH-E analog of loaddefs.el.)

1. Remove all (require 'mh-*) lines, move the provides in
   mh-customize.el and mh-e.el to the end and start from scratch ;-).

2. Make mh-utils.el a pure "utility" package. I'm thinking chunks could
   go into mh-xface.el and mh-scan.el (taking stuff from mh-e.el too).
   We would then create files for each of the modes. We now already have
   mh-search.el, so I'd propose mh-show.el and mh-folder.el, maybe
   renaming mh-comp.el to mh-letter.el for consistency. Move
   mh-modify to mh-funcs.el where it belongs.

3. Make mh-e.el a lean, mean entry point. Make it require mh-acros,
   mh-customize, *and nothing else* within MH-E. Have it define pretty
   much only mh-rmail, mh-smail, and mh-version (functions with the
   ;;;###autoload cookie) as well as a few other generic globals such as
   mh-xemacs-flag. The frequently-used commands would go into
   mh-folder.el and the rest would go into mh-funcs.el.

4. Make mh-customize require mh-loaddefs to get the function definitions
   it needs *and nothing else* within MH-E.

5. Everything else then requires mh-e.el (implicitly getting
   mh-customize and mh-loaddefs) *and nothing else* within MH-E (except
   for perhaps variable-only files like mh-buffers.el and mh-scan.el).

6. Limit scope of variables to just the file in which it is defined.
   If necessary, provide access to variables via functions that are
   found in mh-loaddefs.el.

7. Move all macros into mh-acros.el so that we can remove the defadvice
   of require in mh-acros.el.

-- 
Bill Wohler <wohler@newt.com>  http://www.newt.com/wohler/  GnuPG ID:610BD9AD
Maintainer of comp.mail.mh FAQ and MH-E. Vote Libertarian!
If you're passed on the right, you're in the wrong lane.

  reply	other threads:[~2006-01-16  1:29 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87oe2gez38.fsf@olgas.newt.com>
2006-01-13 21:04 ` mh-e/mh-acros.el advices `require' incorrectly Drew Adams
2006-01-13 22:11   ` Bill Wohler
2006-01-13 23:36     ` Satyaki Das
2006-01-14  1:39       ` Bill Wohler
2006-01-14  0:29     ` Kenichi Handa
2006-01-14 16:14     ` Richard M. Stallman
2006-01-14 23:00       ` Bill Wohler
2006-01-14 23:16         ` Andreas Schwab
2006-01-15  0:26           ` Bill Wohler
2006-01-15  2:22             ` Stefan Monnier
2006-01-15 23:07         ` Richard M. Stallman
2006-01-16  1:29           ` Bill Wohler [this message]
2006-01-17  3:24             ` Richard M. Stallman
2006-01-17  4:20               ` Bill Wohler
2006-01-17  9:18                 ` David Kastrup
2006-01-17 17:19                   ` Bill Wohler
2006-01-29 19:22                 ` MH-E reorg (was: mh-e/mh-acros.el advices `require' incorrectly) Bill Wohler
2006-01-29 21:10                   ` MH-E reorg Bill Wohler
2006-01-30 18:45                   ` MH-E reorg (was: mh-e/mh-acros.el advices `require' incorrectly) Richard M. Stallman
2006-01-30 19:24                     ` Bill Wohler
2006-01-13  7:49 mh-e/mh-acros.el advices `require' incorrectly Kenichi Handa
2006-01-13 18:56 ` Bill Wohler
2006-01-13 21:45 ` Stefan Monnier
2006-01-14  2:52   ` Bill Wohler
2006-01-14 16:14   ` Richard M. Stallman
2006-01-14 17:47     ` Stefan Monnier
2006-01-14  5:49 ` Richard M. Stallman
2006-01-14  8:25   ` Bill Wohler

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4375.1137374996@olgas.newt.com \
    --to=wohler@newt.com \
    --cc=emacs-devel@gnu.org \
    --cc=mh-e-devel@lists.sourceforge.net \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).