emacs-devel
[Top][All Lists]
Advanced

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

Re: [elpa] excorporate.el:257:23:Error: Wrong type argument: listp, star


From: Thomas Fitzsimmons
Subject: Re: [elpa] excorporate.el:257:23:Error: Wrong type argument: listp, start-exco--fsm
Date: Sun, 10 Jul 2016 11:17:05 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)

Stefan Monnier <address@hidden> writes:

>> So the problem seems to be that compilation order is relevant.  If fsm
>> is loaded uncompiled, it fails.
>> I wonder if this is consider a bug in fsm.el,
>
> It does sound like a bug in fsm.el (tho it might be a bug
> elsewhere, of course).
>
>> or if we shall add the above quick fix to the GNUMakefile.
>
> Not without first understanding the nature of the problem.

Agreed.  I've been experimenting with macro expansions of
define-state-machine.

I don't know the last time I did a clean build of ELPA, and that's the
only time it shows up (i.e., when fsm.elc doesn't exist yet).  Maybe
this won't have shown up in nightly builds for the same reason.  It'd be
interesting to know when it started happening, since I hadn't seen it
while building ELPA, before Mario's report.

When I added fsm.el to ELPA I changed it to use lexical binding.  The
issue seems to be related that, and to evaluating a lambda at macro
expansion time.  The compiler doesn't like the generated closure's
environment.

I test this patch, and it works:

--- a/packages/fsm/fsm.el
+++ b/packages/fsm/fsm.el
@@ -186,7 +186,7 @@ (cl-defmacro define-state-machine (name &key start sleep)
               (put fsm :name ',name)
               (put fsm :state nil)
               (put fsm :state-data nil)
-              (put fsm :sleep ,(or sleep (lambda (secs)
+              (put fsm :sleep ,(or sleep '(lambda (secs)
                                            (accept-process-output
                                             nil secs))))
               (put fsm :deferred nil)

But I'm still not sure exactly why the compiler complains about the
closure environment.

Thomas



reply via email to

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