unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Sebastian Wiesner <lunaryorn@gmail.com>
Cc: schwab@suse.de, nbtrap@nbtrap.com, emacs-devel@gnu.org
Subject: Re: Compile Mode and "host" Emacs
Date: Tue, 29 Oct 2013 21:57:09 +0200	[thread overview]
Message-ID: <83iowfetpm.fsf@gnu.org> (raw)
In-Reply-To: <CALf2awQFeT8F55qjRrO3ScHkS28QwtMY_SNGCPh-c2RGjMoVuQ@mail.gmail.com>

> Date: Tue, 29 Oct 2013 20:09:04 +0100
> From: Sebastian Wiesner <lunaryorn@gmail.com>
> Cc: schwab@suse.de, nbtrap@nbtrap.com, emacs-devel@gnu.org
> 
> 2013/10/29 Eli Zaretskii <eliz@gnu.org>:
> >> Date: Tue, 29 Oct 2013 16:52:42 +0100
> >> From: Sebastian Wiesner <lunaryorn@gmail.com>
> >> Cc: Nathan Trapuzzano <nbtrap@nbtrap.com>, emacs-devel@gnu.org
> >>
> >> I would have preferred to have my question answered and my problem
> >> solved rather than seeing my question arrogantly dismissed as "not
> >> useful", and being lectured upon what my problem actually is.
> >
> > Perhaps if you explained in more details what is your problem, the
> > issue would become more clear, and you could get more focused replies.
> > As things stand, you only described in very general terms what you
> > want to do, and on that level, Andreas is right: the OOB tool to
> > communicate with Emacs is emacsclient.  Providing more details might
> > clarify whether emacsclient fits the bill or not, and why, and if it
> > doesn't, what might fit the bill.
> 
> "emacsclient" runs code in a running Emacs.  I don't want a use the
> running session, but rather a fresh session, but using the same Emacs.

Ah, but you could use emacsclient to provide the absolute file name of
the running Emacs, like this:

  emacsclient --eval "(concat invocation-directory invocation-name)"

and then use the result to invoke a fresh instance of the same binary.

> An Emacs Lisp developer runs her ERT tests in a fresh Emacs session.
> She has a Makefile with a "test" target, and a bunch of different
> Emacs versions installed (e.g. Emacs 23.4, Emacs 24.2, Emacs 24.3,
> three different Emacs trunk builds), to test her package against all
> supported Emacs versions.   When developing her package, she has
> different Emacs versions running in parallel to try how different
> Emacs versions behave.   She wants "M-x compile RET make test" to use
> the Emacs version she is currently in, and she does not want to
> remember to explicitly specify the target version in each Emacs
> session with "make EMACS=emacs23.4 test".

No need to remember, there could be a specialized command to
automatically add the EMACS=whatever part.

> She also byte-compiles her libraries in a fresh Emacs session to make
> sure that they cause no warnings (e.g. assignment to free variables,
> unused lexical variables, undefined functions, whatever).  For this
> purpose, she has a "compile" target in her Makefile, and she also
> wants to compile against the very she is currently in.

Same-same.

> A Emacs Lisp has written a little script to update all her installed
> packages from the command line.  As she uses a lot of packages and
> updates only once in a while, updates take long, and she wants to
> continue working meanwhile.  Thus, she calls her update script via
> "M-x compile", watches the compile buffer for progress, and calls
> "package-initialize" once the update is done, to make her Emacs use
> the new packages.  Obviously, she wants to install packages for the
> Emacs she is currently using, and not the one, which is in "$PATH".
> She has a few systems, where these are actually different:  A Fedora
> system at work, where she has no root privileges.  She installed Emacs
> trunk from source, and added it to the Gnome 3 menu.  Also an OS X
> system at home, where she installed Emacs 24.3 as App Bundle, by just
> dragging it into the "/Applications" folder.  In both cases, the
> "emacs" in $PATH is different from the Emacs she uses and starts from
> the GUI.  She does not want this Emacs to be used in her script,
> because it would break in both cases, because the system "emacs" is
> outdated.
> 
> I hope these use cases make my intend a little more clear.

They are all the same use case, and I can see at least 2 solutions,
outlined above.  One that uses custom commands which wrap "M-x compile",
the other that uses emacsclient to glean the file name of the running
binary.



  reply	other threads:[~2013-10-29 19:57 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-29  9:55 Compile Mode and "host" Emacs Sebastian Wiesner
2013-10-29 12:38 ` Nathan Trapuzzano
2013-10-29 12:50   ` Sebastian Wiesner
2013-10-29 12:54     ` Andreas Schwab
2013-10-29 13:11       ` Sebastian Wiesner
2013-10-29 13:53         ` Andreas Schwab
2013-10-29 14:04           ` Sebastian Wiesner
2013-10-29 15:28             ` Andreas Schwab
2013-10-29 15:52               ` Sebastian Wiesner
2013-10-29 16:02                 ` Michael Albinus
2013-10-29 16:12                 ` Andreas Schwab
2013-10-29 17:07                 ` Eli Zaretskii
2013-10-29 19:09                   ` Sebastian Wiesner
2013-10-29 19:57                     ` Eli Zaretskii [this message]
2013-10-29 20:22                       ` Óscar Fuentes
2013-10-29 20:27                         ` Eli Zaretskii
2013-10-29 15:59             ` David Engster
2013-10-29 17:00             ` Eli Zaretskii
2013-10-29 18:42               ` Sebastian Wiesner
2013-10-29 13:10     ` Nathan Trapuzzano
2013-10-29 13:18       ` Sebastian Wiesner
2013-10-29 13:31         ` Nathan Trapuzzano
2013-10-29 13:36           ` Sebastian Wiesner
2013-10-29 13:42             ` Nathan Trapuzzano
2013-10-29 13:55               ` Sebastian Wiesner
2013-10-29 13:58                 ` Nathan Trapuzzano
2013-10-29 14:07                   ` Sebastian Wiesner
2013-10-29 14:16                     ` Nathan Trapuzzano
2013-10-29 14:25                       ` Sebastian Wiesner
2013-10-29 14:27                         ` Nathan Trapuzzano
2013-10-30  4:43                         ` Stephen J. Turnbull
2013-10-30  7:23                           ` Jorgen Schaefer
2013-10-30  8:09                             ` Stephen J. Turnbull
2013-10-29 17:22         ` chad
2013-10-29 16:52 ` Stefan Monnier
2013-10-29 18:42   ` Sebastian Wiesner
2013-10-29 21:40     ` Stefan Monnier
2013-10-29 22:55       ` Xue Fuqiao

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=83iowfetpm.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=lunaryorn@gmail.com \
    --cc=nbtrap@nbtrap.com \
    --cc=schwab@suse.de \
    /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).