help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: wrong-type-argument listp \.\.\.


From: Drew Adams
Subject: RE: wrong-type-argument listp \.\.\.
Date: Tue, 29 Jun 2010 16:43:55 -0700

> > To make sense of a debugger backtrace, first load the Lisp 
> > source files that are concerned (e.g. newsticker.el), not
> > the byte-compiled files (e.g. newsticker.elc).
> >
> > The error message is saying that function
> > newsticker--stat-num-items expected a list argument (i.e.
> > nil or a cons), but it instead was passed a symbol whose
> > name is "...".
> 
> To be exact, the same message also occurs with some other operations,
> for example org-mobile-push. So I don't think it's an error 
> connected to newsticker.el. Something more general must be wrong.
> And I can't find it.

In that case, you need to use a binary search, to narrow things down. Split your
.emacs or your `custom-file' in half by commenting out half. or just
`eval-region' of half. or some such. That makes your problem half as big.
Repeat (half of half; half of half of half; etc.).  It's very quick.

The alternative is what you're doing now: trying to shake everything together in
a giant sack and divine what the culprit might be.  Narrow it down, and the
culprit will stand out.

> Is there really a symbol called "..."?

Well, you can see that yourself from the call `car(\.\.\.)' in your backtrace.

The backtrace shows `mapcar' applying `car' to a list whose last item is the
symbol `...' (not a list):

>   mapcar(car (("~/aktuell/myconf/from-mobile.org" 
> "cd2fdb6d-1ca6-45e7-b0d6-02044edcbbb9") 
...
> ("~/aktuell/myconf/mygtd.org" 
> "c76519fa-c2ba-434c-b3e2-e3838b72e6e3") \.\.\.))

--this list item is a symbol, not a list-----^

Look at the code that creates the list in question.  In this case, the list is
`org-id-locations': `(mapcar (quote car) org-id-locations))'

But _start_ by narrowing things down.  Throw out org, newsticker etc., until you
know just what is causing the problem.  Split the unknown by half N times and it
becomes a tiny unknown.

And, as I suggested, check to see if some common data file is used, which might
be corrupted.  If those programs all share a common data file, that could be the
culprit.  This smells of something like a corrupted desktop, session, or
save-history file.

It would be sufficient for some program to incorrectly save data to such a file.
>From then on, other code would be reading crap from the file and trying to make
sense of it.

The other thing that suggests this is that you are (presumably) using the same
source code on different platforms.  But you might well be using different data
(e.g. history) files...  See what I wrote before (at the end).

> Can it be an encoding problem?

I know nothing about encoding; sorry.  Don't guess blindly; narrow it down
systematically. Binary search is _very_ rapid.

> Below is a debug output of org-mobile-push.
> 
> Debugger entered--Lisp error: (wrong-type-argument listp \.\.\.)
>   car(\.\.\.)
>   mapcar(car (("~/aktuell/myconf/from-mobile.org" 
> "cd2fdb6d-1ca6-45e7-b0d6-02044edcbbb9") 
> ("~/aktuell/myconf/from-mobile.org" 
> "fdcc85e2-51c8-4d3d-827c-396687ca5a13") 
...
> ("~/aktuell/myconf/mygtd.org" 
> "f20acbfb-c03c-4b08-bd22-d1b614dc7688") 
> ("~/aktuell/myconf/mygtd.org" 
> "c76519fa-c2ba-434c-b3e2-e3838b72e6e3") \.\.\.))
>   (setq org-id-files (mapcar (quote car) org-id-locations))

Did you do the following?

> > Be sure you have the same source code on the various 
> > platforms, for the files in question. If newsticker uses
> > some other file (e.g. a data file), then make sure
> > that file is also the same across platforms. 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]