all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* FAQ: gnuplot vs. emacs' compile command
@ 2003-05-10  5:31 Dan Jacobson
  2003-05-11  4:42 ` Dan Jacobson
  0 siblings, 1 reply; 7+ messages in thread
From: Dan Jacobson @ 2003-05-10  5:31 UTC (permalink / raw)
  Cc: bug-gnu-emacs

The following message is a courtesy copy of an article
that has been posted to comp.graphics.apps.gnuplot as well.

What's the big problem that
$ cat Makefile
gp:
	echo "plot 'file';pause -1"|gnuplot -persist
$ make #works fine
$ emacs -eval '(compile "make")' #doesn't plot anything.
$ emacs -eval '(shell-command "make")'  #works wonderfully
$ emacs -eval '(shell-command "make&")' #doesn't plot anything

Sure you'll tell me to see /usr/share/doc/gnuplot-doc/0FAQ.gz's
"7.10 Calling gnuplot in a pipe or with a gnuplot-script doesn't produce a plot!"
but even that fancy perl example doesn't cover my emacs vs. gnuplot
dilemma.

Or you will try to change the subject by offering
http://feff.phys.washington.edu/~ravel/software/gnuplot-mode/
But that doesn't answer my question of how does one run gnuplot from a
Makefile in GNU emacs' compile mode?

Don't tell me that there is no way for this to be overcome.
I will never be able to do it "because the technology Jacobson was
asking for was 5-10 years in the future."  "He was essentially asking
for plugging the standard input to the standard putoff, no simple
algorithm there."

OK, one can indeed do
gp:
	echo -e 1\\n2 > a
	echo "plot 'a';pause $p" > b
	gnuplot b
With p=-1, the compilation never finished even after the window closes.
With p=5 etc, one has to set an arbitrary time limit, however the
compilation will indeed finish.
-persist doesn't help here.
-- 
http://jidanni.org/ Taiwan(04)25854780

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: FAQ: gnuplot vs. emacs' compile command
  2003-05-10  5:31 FAQ: gnuplot vs. emacs' compile command Dan Jacobson
@ 2003-05-11  4:42 ` Dan Jacobson
  2003-05-13  3:47   ` Dan Jacobson
  0 siblings, 1 reply; 7+ messages in thread
From: Dan Jacobson @ 2003-05-11  4:42 UTC (permalink / raw)


The following message is a courtesy copy of an article
that has been posted to comp.graphics.apps.gnuplot as well.

cd /tmp && echo -e 1 1\\n2 2 >file && cat >Makefile<<!
gp:
	echo "plot 'file';pause -1"|gnuplot -persist
!
emacs -eval '(compile "make")' #doesn't plot anything.
emacs -eval '(shell-command "make&")' #doesn't plot anything
emacs -eval '(shell-command "make")'  #works wonderfully
make #works fine

H> Quite hard to tell, actually.  You've piled up three big programs
H> together (four, if you count in the shell), and somehow the combination
H> of all of them fails to do quite exactly what you want.
H> 
H> From the symptoms you quote, I'd put the blame at emacs, or the way
H> you're using it.  You're also over-doing things on the gnuplot end a
H> bit.  You should use either "pause -1", or "-persist". Doing both is
H> not generally useful. 
H> 
H> "Doesn't plot anything" is not the whole story, either.  What *else*
H> do you see?  I.e.: what _does_ it do?  What is displayed in your
H> *compile* buffer in emacs? Did you actually type a <Return> into the
H> compilation buffer to satisfy your "pause -1"?
No, it's all over before I have a chance.
Using emacs -eval '(compile "make")'
With: echo "plot 'file';pause -1"|gnuplot -persist
just flashes the graph for a split second.
With: 
	echo "plot 'file'"         |gnuplot
	echo "plot 'file'"         |gnuplot -persist
	echo "plot 'file';pause -1"|gnuplot
apparently gnuplot acts like a noop, no graph is seen; gnuplot's exit
value is 0.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: FAQ: gnuplot vs. emacs' compile command
  2003-05-11  4:42 ` Dan Jacobson
@ 2003-05-13  3:47   ` Dan Jacobson
  2004-02-12 14:43     ` Kim F. Storm
  0 siblings, 1 reply; 7+ messages in thread
From: Dan Jacobson @ 2003-05-13  3:47 UTC (permalink / raw)
  Cc: arafune

Fellas, the gnuplot team may have found ugly emacs process bugs, see
http://groups.google.com/groups?threadm=b9o6mk$4q1$1%40nets3.rz.RWTH-Aachen.DE

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: FAQ: gnuplot vs. emacs' compile command
  2003-05-13  3:47   ` Dan Jacobson
@ 2004-02-12 14:43     ` Kim F. Storm
  2004-02-12 19:34       ` Stefan Monnier
  0 siblings, 1 reply; 7+ messages in thread
From: Kim F. Storm @ 2004-02-12 14:43 UTC (permalink / raw)
  Cc: Dan Jacobson, arafune


Did anyone actually look at this bug back in May ?
FYI, I have included the text at the referenced link here.

Dan Jacobson <jidanni@dman.ddts.net> writes:

> Fellas, the gnuplot team may have found ugly emacs process bugs, see
> <...>
> 

: Dan Jacobson <jidanni@dman.ddts.net> wrote:
: 
: > Using emacs -eval '(compile "make")'
: > With: echo "plot 'file';pause -1"|gnuplot -persist
: > just flashes the graph for a split second.
: 
: So let's get into dissecting this further.  The first candidate to
: remove is 'make'.  It doesn't really do anything useful in this whole
: setup, so we might as well get rid of it.  Let's replace it by a shell
: script doing the same things.  And while at it, let's get rid of the
: separate data file, too:
: 
: --- gpaction ---
: gnuplot -persist <<EOS
:  plot '-'
:    1 1
:    2 2
:   e
: EOS
: ---- end ---
: 
: sh gpaction                                 # does the plot and returns
: emacs -eval '(compile "sh gpaction")'       # doesn't plot, but returns
: emacs -eval '(shell-command "sh gpaction")' # plot, but no return
: 
: For the latter, emacs is unresponsive --- it's obviously waiting for
: something to happen, which doesn't.  Only after you terminate the
: gnuplot graph window (key 'q' into it), or press Ctrl-G in emacs to
: forcibly break out of the wait loop, it will continue.
: 
: During that pause, look at the output from 'ps jx' and you'll find
: that gnuplot_x11 is an orphan --- i.e. it's the only surviving process
: in its process group.  In "shell-command", emacs apparently doesn't
: kill it, whereas in "compile", it probably does.
: -- 
: Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
: Even if all the snow were burnt, ashes would remain.

-- 
Kim F. Storm  http://www.cua.dk

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: FAQ: gnuplot vs. emacs' compile command
  2004-02-12 14:43     ` Kim F. Storm
@ 2004-02-12 19:34       ` Stefan Monnier
  2004-02-12 22:47         ` Kim F. Storm
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Monnier @ 2004-02-12 19:34 UTC (permalink / raw)
  Cc: Dan Jacobson, arafune, emacs-devel

> Did anyone actually look at this bug back in May ?
> FYI, I have included the text at the referenced link here.

What is the bug exactly?
My understanding is of the problem:
when Emacs exits, gnuplot is killed because its stdout is connected to
Emacs (i.e. it receives a SIGPIPE or SIGHUP or somesuch).


        Stefan


> Dan Jacobson <jidanni@dman.ddts.net> writes:

>> Fellas, the gnuplot team may have found ugly emacs process bugs, see
>> <...>
>> 

> : Dan Jacobson <jidanni@dman.ddts.net> wrote:
> : 
> : > Using emacs -eval '(compile "make")'
> : > With: echo "plot 'file';pause -1"|gnuplot -persist
> : > just flashes the graph for a split second.
> : 
> : So let's get into dissecting this further.  The first candidate to
> : remove is 'make'.  It doesn't really do anything useful in this whole
> : setup, so we might as well get rid of it.  Let's replace it by a shell
> : script doing the same things.  And while at it, let's get rid of the
> : separate data file, too:
> : 
> : --- gpaction ---
> : gnuplot -persist <<EOS
> :  plot '-'
> :    1 1
> :    2 2
> :   e
> : EOS
> : ---- end ---
> : 
> : sh gpaction                                 # does the plot and returns
> : emacs -eval '(compile "sh gpaction")'       # doesn't plot, but returns
> : emacs -eval '(shell-command "sh gpaction")' # plot, but no return
> : 
> : For the latter, emacs is unresponsive --- it's obviously waiting for
> : something to happen, which doesn't.  Only after you terminate the
> : gnuplot graph window (key 'q' into it), or press Ctrl-G in emacs to
> : forcibly break out of the wait loop, it will continue.
> : 
> : During that pause, look at the output from 'ps jx' and you'll find
> : that gnuplot_x11 is an orphan --- i.e. it's the only surviving process
> : in its process group.  In "shell-command", emacs apparently doesn't
> : kill it, whereas in "compile", it probably does.
> : -- 
> : Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
> : Even if all the snow were burnt, ashes would remain.

> -- 
> Kim F. Storm  http://www.cua.dk



> _______________________________________________
> Emacs-devel mailing list
> Emacs-devel@gnu.org
> http://mail.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: FAQ: gnuplot vs. emacs' compile command
  2004-02-12 19:34       ` Stefan Monnier
@ 2004-02-12 22:47         ` Kim F. Storm
  2004-02-13  0:05           ` Dan Jacobson
  0 siblings, 1 reply; 7+ messages in thread
From: Kim F. Storm @ 2004-02-12 22:47 UTC (permalink / raw)
  Cc: arafune, Dan Jacobson, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> > Did anyone actually look at this bug back in May ?
> > FYI, I have included the text at the referenced link here.
> 
> What is the bug exactly?

I don't know.  Dan, can you elaborate?

> My understanding is of the problem:
> when Emacs exits, gnuplot is killed because its stdout is connected to
> Emacs (i.e. it receives a SIGPIPE or SIGHUP or somesuch).

.. which emacs cannot do anything about.

> 
> 
>         Stefan
> 
> 
> > Dan Jacobson <jidanni@dman.ddts.net> writes:
> 
> >> Fellas, the gnuplot team may have found ugly emacs process bugs, see
> >> <...>
> >> 
> 
> > : Dan Jacobson <jidanni@dman.ddts.net> wrote:
> > : 
> > : > Using emacs -eval '(compile "make")'
> > : > With: echo "plot 'file';pause -1"|gnuplot -persist
> > : > just flashes the graph for a split second.
> > : 
> > : So let's get into dissecting this further.  The first candidate to
> > : remove is 'make'.  It doesn't really do anything useful in this whole
> > : setup, so we might as well get rid of it.  Let's replace it by a shell
> > : script doing the same things.  And while at it, let's get rid of the
> > : separate data file, too:
> > : 
> > : --- gpaction ---
> > : gnuplot -persist <<EOS
> > :  plot '-'
> > :    1 1
> > :    2 2
> > :   e
> > : EOS
> > : ---- end ---
> > : 
> > : sh gpaction                                 # does the plot and returns
> > : emacs -eval '(compile "sh gpaction")'       # doesn't plot, but returns
> > : emacs -eval '(shell-command "sh gpaction")' # plot, but no return
> > : 
> > : For the latter, emacs is unresponsive --- it's obviously waiting for
> > : something to happen, which doesn't.  Only after you terminate the
> > : gnuplot graph window (key 'q' into it), or press Ctrl-G in emacs to
> > : forcibly break out of the wait loop, it will continue.
> > : 
> > : During that pause, look at the output from 'ps jx' and you'll find
> > : that gnuplot_x11 is an orphan --- i.e. it's the only surviving process
> > : in its process group.  In "shell-command", emacs apparently doesn't
> > : kill it, whereas in "compile", it probably does.
> > : -- 
> > : Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
> > : Even if all the snow were burnt, ashes would remain.
> 
> > -- 
> > Kim F. Storm  http://www.cua.dk
> 
> 
> 
> > _______________________________________________
> > Emacs-devel mailing list
> > Emacs-devel@gnu.org
> > http://mail.gnu.org/mailman/listinfo/emacs-devel
> 
> 

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: FAQ: gnuplot vs. emacs' compile command
  2004-02-12 22:47         ` Kim F. Storm
@ 2004-02-13  0:05           ` Dan Jacobson
  0 siblings, 0 replies; 7+ messages in thread
From: Dan Jacobson @ 2004-02-13  0:05 UTC (permalink / raw)


I recall the gnuplot author had a lot of response.
I am only good at finding bugs, not following up.
If next time I run into a bug, you'll be sure to hear from me.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2004-02-13  0:05 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-05-10  5:31 FAQ: gnuplot vs. emacs' compile command Dan Jacobson
2003-05-11  4:42 ` Dan Jacobson
2003-05-13  3:47   ` Dan Jacobson
2004-02-12 14:43     ` Kim F. Storm
2004-02-12 19:34       ` Stefan Monnier
2004-02-12 22:47         ` Kim F. Storm
2004-02-13  0:05           ` Dan Jacobson

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.