"wrong type argument: stringp, nil" on emacs 24.0.94.1?

716 views
Skip to first unread message

SamA

unread,
Mar 24, 2012, 2:28:41 PM3/24/12
to mu-di...@googlegroups.com
Hello,

I have been using notmuch for a while, and I am new to mu. When, on Reddit, I read djcb's comment: 

"notmuch uses tagging and keeps changes in the database, while mu4e actually manipulates the physical maildirs (and keeps the database up-to-date with that). The user-interface is also quite a bit different" I was eager to try it out.

I like notmuch per se, but I do not like the fact that all the work that one does tagging, ultimately ends up into a database and it is not reflected into the maildirs proper. What if one day one decides he wants to check out a new system (like mu)? Then, all the hard work would be lost.

I have always been trying to use tools that are as transparent as possible, even with the location of the "metadata", like tags, etc.

So, I wanted to tried mu. I installed the latest version , mu-0.9.8.2, on OS X 10.7.2, including mu4e, using emacs 24.0.94.1. The problem I have is that I cannot invoke mu4e from inside emacs. When I run M-x mu4e, I get "wrong type argument: stringp, nil".

Is there anything special one has to put inside .emacs (in my case, ~/.emacs.d/init.el), beside the load path and:

(require 'mu4e)

Thank you in advance for any pointer.

Sam Ask

SamA

unread,
Mar 25, 2012, 5:06:00 AM3/25/12
to mu-discuss
Trying with Aquamacs 2.4 (GNU Emacs 23.3.50.1), it works just fine.
Very nice!

The error message I saw could have something to do with the new emacs.
I guess I shall have to wait to use mu4e, because I cannot go back to
emacs 23.

Thank you!

Sam

Pedro Silva

unread,
Mar 25, 2012, 6:10:15 AM3/25/12
to mu-di...@googlegroups.com
SamA <forum...@forumcivico.it> writes:

> The error message I saw could have something to do with the new emacs.
> I guess I shall have to wait to use mu4e, because I cannot go back to
> emacs 23.

I run mu4e fine with GNU Emacs 24.0.93.2 (x86_64-unknown-linux-gnu) of
2012-02-23.

Pedro
--
Men rarely (if ever) manage to dream up a God superior to
themselves. Most Gods have the manners and morals of a spoiled child.
-- Lazarus Long

Dirk-Jan C. Binnema

unread,
Mar 25, 2012, 6:35:40 AM3/25/12
to mu-di...@googlegroups.com
Hi,

On Sat 24 Mar 2012 08:28:41 PM EET, SamA wrote:

> Hello,
>
> I have been using notmuch for a while, and I am new to mu. When, on Reddit,
> I read djcb's comment:
>
> "notmuch uses tagging and keeps changes in the database, while mu4e
> actually manipulates the physical maildirs (and keeps the database
> up-to-date with that). The user-interface is also quite a bit different" I
> was eager to try it out.
>
> I like notmuch per se, but I do not like the fact that all the work that
> one does tagging, ultimately ends up into a database and it is not
> reflected into the maildirs proper. What if one day one decides he wants to
> check out a new system (like mu)? Then, all the hard work would be lost.

Yeah; that's one of the design decisions I took.

> I have always been trying to use tools that are as transparent as possible,
> even with the location of the "metadata", like tags, etc.
>
> So, I wanted to tried mu. I installed the latest version , mu-0.9.8.2, on
> OS X 10.7.2, including mu4e, using emacs 24.0.94.1. The problem I have is
> that I cannot invoke mu4e from inside emacs. When I run M-x mu4e, I get
> "wrong type argument: stringp, nil".

> Is there anything special one has to put inside .emacs (in my case,
> ~/.emacs.d/init.el), beside the load path and:
>
> (require 'mu4e)

I could mean many different things -- but you should be able to get a
backtrace by executing

M-x toggle-debug-on-error

before starting mu4e. With that, we should be able to pinpoint the
problem.

Best wishes,
Dirk.


--
Dirk-Jan C. Binnema Helsinki, Finland
e:dj...@djcbsoftware.nl w:www.djcbsoftware.nl
pgp: D09C E664 897D 7D39 5047 A178 E96A C7A1 017D DA3C

SamA

unread,
Mar 26, 2012, 3:37:38 AM3/26/12
to mu-discuss
On Mar 25, 12:35 pm, Dirk-Jan C. Binnema <d...@djcbsoftware.nl> wrote:
> Hi,
> > Is there anything special one has to put inside .emacs (in my case,
> > ~/.emacs.d/init.el), beside the load path and:
>
> > (require 'mu4e)
>
> I could mean many different things -- but you should be able to get a
> backtrace by executing
>
>   M-x toggle-debug-on-error
>
> before starting mu4e. With that, we should be able to pinpoint the
> problem.


Hi,

Thank you for the debug advice.

This is the backtrace:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
file-executable-p(nil)
(if (file-executable-p mu4e-mu-binary) nil (error (format "`mu4e-mu-
binary' (%S) not found" mu4e-mu-binary)))
(unless (file-executable-p mu4e-mu-binary) (error (format "`mu4e-mu-
binary' (%S) not found" mu4e-mu-binary)))
mu4e-start-proc()
(if (mu4e-proc-is-running) nil (mu4e-start-proc))
(unless (mu4e-proc-is-running) (mu4e-start-proc))
mu4e-proc-send-command("ping")
mu4e-proc-ping()
(progn (setq mu4e-proc-pong-func (lambda (version doccount) (unless
(string= version mu4e-mu-version) (error "mu server has version %s,
but we need %s" version mu4e-mu-version)) (mu4e-main-view) (when mu4e-
update-interval (setq mu4e-update-timer (run-at-time 0 mu4e-update-
interval (quote mu4e-update-mail)))) (message "Started mu4e with %d
message%s in store" doccount (if (= doccount 1) "" "s")))) (mu4e-proc-
ping))
(if (< emacs-major-version 23) (error "Emacs >= 23.x is required for
mu4e") (progn (setq mu4e-proc-pong-func (lambda (version doccount)
(unless (string= version mu4e-mu-version) (error "mu server has
version %s, but we need %s" version mu4e-mu-version)) (mu4e-main-view)
(when mu4e-update-interval (setq mu4e-update-timer (run-at-time 0 mu4e-
update-interval (quote mu4e-update-mail)))) (message "Started mu4e
with %d message%s in store" doccount (if (= doccount 1) "" "s"))))
(mu4e-proc-ping)))
(if (buffer-live-p (get-buffer mu4e-main-buffer-name)) (switch-to-
buffer mu4e-main-buffer-name) (mu4e-check-requirements) (if (< emacs-
major-version 23) (error "Emacs >= 23.x is required for mu4e") (progn
(setq mu4e-proc-pong-func (lambda (version doccount) (unless (string=
version mu4e-mu-version) (error "mu server has version %s, but we need
%s" version mu4e-mu-version)) (mu4e-main-view) (when mu4e-update-
interval (setq mu4e-update-timer (run-at-time 0 mu4e-update-
interval ...))) (message "Started mu4e with %d message%s in store"
doccount (if (= doccount 1) "" "s")))) (mu4e-proc-ping))))
mu4e()
call-interactively(mu4e t nil)
execute-extended-command(nil)
call-interactively(execute-extended-command nil nil)

I checked, and the binary mu is in my shell PATH:

$ which mu
/usr/local/bin/mu

Also:

$ mu -v
mu (mail indexer/searcher) version 0.9.8.2
Copyright (C) 2008-2011 Dirk-Jan C. Binnema (GPLv3+)

What I do not understand is why the binary is seen by Emacs 23, and
not by Emacs 24. .emacs and init.el files are the same.

Thank you for your time and help!

Sam

Dirk-Jan C. Binnema

unread,
Mar 26, 2012, 2:26:55 PM3/26/12
to mu-di...@googlegroups.com
Hi,

On Mon 26 Mar 2012 10:37:38 AM EEST, SamA wrote:

> Hi,
>
> Thank you for the debug advice.
>
> This is the backtrace:
>
> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
> file-executable-p(nil)
> (if (file-executable-p mu4e-mu-binary) nil (error (format "`mu4e-mu-
> binary' (%S) not found" mu4e-mu-binary)))

<snip>

>
> I checked, and the binary mu is in my shell PATH:
>
> $ which mu
> /usr/local/bin/mu
>
> Also:
>
> $ mu -v
> mu (mail indexer/searcher) version 0.9.8.2
> Copyright (C) 2008-2011 Dirk-Jan C. Binnema (GPLv3+)
>
> What I do not understand is why the binary is seen by Emacs 23, and
> not by Emacs 24. .emacs and init.el files are the same.

It's a bit odd. Do you start emacs in a different way, i.e., from
command line vs clicking an icon? PATH may be different in those cases.

In emacs, you can try
M-: (getenv "PATH")
and see what it says.

I think the problem is outside mu, but the error message you got was not
very nice, so at least I added some code to make that a bit clearer.

SamA

unread,
Mar 28, 2012, 11:35:41 AM3/28/12
to mu-discuss
> It's a bit odd. Do you start emacs in a different way, i.e., from
> command line vs clicking an icon? PATH may be different in those cases.
>
> In emacs, you can try
>   M-: (getenv "PATH")
> and see what it says.
>
> I think the problem is outside mu, but the error message you got was not
> very nice, so at least I added some code to make that a bit clearer.

Thank you so much for that pointer.

It turns out that Emacs on OS X does not set PATH properly unless it
is launched from the command line. Aquamacs does that already, with
one of its many hidden OS X based customizations. If I launch Emacs 24
from the terminal I can use mu4e with no problems.

See also this: http://stackoverflow.com/questions/8606954/path-and-exec-path-set-but-emacs-does-not-find-executable

I love mu and mu4e, and I would like to ask about a few things, but I
will create a new post for that, if I may.

I am very grateful for mu, and for your time helping.

Sam
Reply all
Reply to author
Forward
0 new messages