From: Klaus-Dieter Bauer <bauer.klaus.dieter@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 33016@debbugs.gnu.org
Subject: bug#33016: 26.1; (make-process ...) doesn't signal an error, when executable given as absolute Windows path does not exist
Date: Fri, 19 Oct 2018 10:03:00 +0200 [thread overview]
Message-ID: <CANtbJLEVLux4giW65UKREP7J_xVKz86Vvy+hZzEdHmEVcboaHQ@mail.gmail.com> (raw)
In-Reply-To: <835zy8y34x.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 2497 bytes --]
On Thu, Oct 11, 2018 at 4:22 PM Eli Zaretskii <eliz@gnu.org> wrote:
> > From: Klaus-Dieter Bauer <bauer.klaus.dieter@gmail.com>
> > Date: Thu, 11 Oct 2018 14:55:27 +0200
> >
> > Entering
> >
> > M-x eval-expression RET
> > (make-process :name "test" :command '("No Such Command"))
> >
> > will bring up the debugger with
> >
> > (file-missing "Searching for program" "No such file or directory"
> "nosuchcommand")
> >
> > However, entering
> >
> > M-x eval-expression RET
> > (make-process :name "test" :command '("c:/No Such Command"))
> >
> > will merely display in the echo-area message:
> >
> > eval: Spawning child process: Invalid argument
> >
> > I stumbled upon this when debugging a quick-and-dirty
> > script, that called a program by absolute path. When a new
> > version of the program changed the name of the executable
> > (tex2lyx2.3 -> tex2lyx), this issue occurred, and hindered
> > debugging the problem.
> >
> > The wording of the message might indicate a
> > Windows-specific issue.
>
> The error in the second case is Windows specific, but the
> inconsistency isn't: on Unix the second case "succeeds", in that it
> returns a process object without any error messages.
>
> The error message you see in the first case is because Emacs searches
> for the program along exec-path (because it is not an absolute file
> name). In the second case this search is not done, because the file
> name is already absolute.
>
> So I don't think this is a bug.
>
Now I understand the intent of the implementation better. However, the
Unix/Windows difference still seems like a bug to me.
On Unix, the elisp will succeed, but the output and exit-status of the
process clarify the issue.
On Windows, a non-local exit occurs due to the resulting exception.
As example:
(let (p)
(setq p
(make-process :name "test" :command '("/tmp/nosuchcommand") :buffer
(current-buffer)))
;; -- Subsequent code never reached on Windows
(while (process-live-p p)
(sleep-for 0.01))
(message "(Process exit status %d)"
(process-exit-status p)))
So on Windows two issues occur:
- The exception doesn't indicate what went wrong.
- The control-flow of the Elisp program is different from Unix.
This different seems, like it may give rise to Windows-specific bugs, that
would be unnecessarily hard to debug.
Then again, calling programs by full path is probably rare, so it's
probably a pretty low-priority issue.
- Klaus
[-- Attachment #2: Type: text/html, Size: 4250 bytes --]
next prev parent reply other threads:[~2018-10-19 8:03 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-11 12:55 bug#33016: 26.1; (make-process ...) doesn't signal an error, when executable given as absolute Windows path does not exist Klaus-Dieter Bauer
2018-10-11 14:22 ` Eli Zaretskii
2018-10-19 8:03 ` Klaus-Dieter Bauer [this message]
2018-10-19 8:30 ` Eli Zaretskii
2019-04-08 18:34 ` Noam Postavsky
2019-04-08 18:58 ` Eli Zaretskii
2019-04-09 14:13 ` Noam Postavsky
2019-04-09 14:33 ` Eli Zaretskii
2019-04-10 21:58 ` Noam Postavsky
2019-04-11 14:04 ` Eli Zaretskii
2019-04-11 17:34 ` Noam Postavsky
2019-04-11 17:55 ` Eli Zaretskii
2019-04-12 0:44 ` Noam Postavsky
2019-04-12 8:44 ` Eli Zaretskii
2019-04-12 18:20 ` Noam Postavsky
2019-04-12 18:44 ` Eli Zaretskii
2019-04-15 12:21 ` Noam Postavsky
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=CANtbJLEVLux4giW65UKREP7J_xVKz86Vvy+hZzEdHmEVcboaHQ@mail.gmail.com \
--to=bauer.klaus.dieter@gmail.com \
--cc=33016@debbugs.gnu.org \
--cc=eliz@gnu.org \
/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.