[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
- [elpa] excorporate.el:257:23:Error: Wrong type argument: listp, start-exco--fsm, Mario Lang, 2016/07/08
- Re: [elpa] excorporate.el:257:23:Error: Wrong type argument: listp, start-exco--fsm, Paul Eggert, 2016/07/08
- Re: [elpa] excorporate.el:257:23:Error: Wrong type argument: listp, start-exco--fsm, Thomas Fitzsimmons, 2016/07/08
- Re: [elpa] excorporate.el:257:23:Error: Wrong type argument: listp, start-exco--fsm, Mario Lang, 2016/07/10
- Re: [elpa] excorporate.el:257:23:Error: Wrong type argument: listp, start-exco--fsm, Stefan Monnier, 2016/07/10
- Re: [elpa] excorporate.el:257:23:Error: Wrong type argument: listp, start-exco--fsm,
Thomas Fitzsimmons <=
- Re: [elpa] excorporate.el:257:23:Error: Wrong type argument: listp, start-exco--fsm, Stefan Monnier, 2016/07/10
- Re: [elpa] excorporate.el:257:23:Error: Wrong type argument: listp, start-exco--fsm, Stefan Monnier, 2016/07/10
- Re: [elpa] excorporate.el:257:23:Error: Wrong type argument: listp, start-exco--fsm, Thomas Fitzsimmons, 2016/07/10
- [elpa] packages/rudel/rudel-display.el:40:1:Error: eieio-oref called on a class: rudel-backend-factory, Mario Lang, 2016/07/10
- Re: [elpa] packages/rudel/rudel-display.el:40:1:Error: eieio-oref called on a class: rudel-backend-factory, Stefan Monnier, 2016/07/10
- Re: [elpa] packages/rudel/rudel-display.el:40:1:Error: eieio-oref called on a class: rudel-backend-factory, Stefan Monnier, 2016/07/10
- Re: [elpa] packages/rudel/rudel-display.el:40:1:Error: eieio-oref called on a class: rudel-backend-factory, Mario Lang, 2016/07/12