Comments (3)
You get this error in your code, or this error is thrown inside Eulalie? Do you have a stracktrace handy?
from eulalie.
It is a compile error.
#error {
:cause Can only recur from tail position
:via
[{:type clojure.lang.Compiler$CompilerException
:message java.lang.UnsupportedOperationException: Can only recur from tail position, compiling:(eulalie/core.cljc:107:24)
:at [clojure.lang.Compiler analyzeSeq Compiler.java 6730]}
{:type java.lang.UnsupportedOperationException
:message Can only recur from tail position
:at [clojure.lang.Compiler$RecurExpr$Parser parse Compiler.java 6402]}]
:trace
[[clojure.lang.Compiler$RecurExpr$Parser parse Compiler.java 6402]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler access$300 Compiler.java 38]
[clojure.lang.Compiler$LetExpr$Parser parse Compiler.java 6129]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$CaseExpr$Parser parse Compiler.java 8579]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 5861]
[clojure.lang.Compiler$LetExpr$Parser parse Compiler.java 6179]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler access$300 Compiler.java 38]
[clojure.lang.Compiler$LetExpr$Parser parse Compiler.java 6129]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 5861]
[clojure.lang.Compiler$LetExpr$Parser parse Compiler.java 6179]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 5861]
[clojure.lang.Compiler$TryExpr$Parser parse Compiler.java 2261]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 5861]
[clojure.lang.Compiler$FnMethod parse Compiler.java 5296]
[clojure.lang.Compiler$FnExpr parse Compiler.java 3925]
[clojure.lang.Compiler analyzeSeq Compiler.java 6721]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$InvokeExpr parse Compiler.java 3737]
[clojure.lang.Compiler analyzeSeq Compiler.java 6725]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$TryExpr$Parser parse Compiler.java 2232]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler access$300 Compiler.java 38]
[clojure.lang.Compiler$LetExpr$Parser parse Compiler.java 6129]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 5861]
[clojure.lang.Compiler$FnMethod parse Compiler.java 5296]
[clojure.lang.Compiler$FnExpr parse Compiler.java 3925]
[clojure.lang.Compiler analyzeSeq Compiler.java 6721]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler access$300 Compiler.java 38]
[clojure.lang.Compiler$LetExpr$Parser parse Compiler.java 6129]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 5861]
[clojure.lang.Compiler$FnMethod parse Compiler.java 5296]
[clojure.lang.Compiler$FnExpr parse Compiler.java 3925]
[clojure.lang.Compiler analyzeSeq Compiler.java 6721]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$InvokeExpr parse Compiler.java 3791]
[clojure.lang.Compiler analyzeSeq Compiler.java 6725]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 5861]
[clojure.lang.Compiler$LetExpr$Parser parse Compiler.java 6179]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler access$300 Compiler.java 38]
[clojure.lang.Compiler$LetExpr$Parser parse Compiler.java 6129]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 5861]
[clojure.lang.Compiler$LetExpr$Parser parse Compiler.java 6179]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 5861]
[clojure.lang.Compiler$FnMethod parse Compiler.java 5296]
[clojure.lang.Compiler$FnExpr parse Compiler.java 3925]
[clojure.lang.Compiler analyzeSeq Compiler.java 6721]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyzeSeq Compiler.java 6711]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler access$300 Compiler.java 38]
[clojure.lang.Compiler$DefExpr$Parser parse Compiler.java 577]
[clojure.lang.Compiler analyzeSeq Compiler.java 6723]
[clojure.lang.Compiler analyze Compiler.java 6524]
[clojure.lang.Compiler analyze Compiler.java 6485]
[clojure.lang.Compiler eval Compiler.java 6786]
[clojure.lang.Compiler load Compiler.java 7227]
[clojure.lang.RT loadResourceScript RT.java 371]
[clojure.lang.RT loadResourceScript RT.java 362]
[clojure.lang.RT load RT.java 446]
[clojure.lang.RT load RT.java 412]
[clojure.core$load$fn__5448 invoke core.clj 5866]
[clojure.core$load doInvoke core.clj 5865]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invoke core.clj 5671]
[clojure.core$load_lib$fn__5397 invoke core.clj 5711]
[clojure.core$load_lib doInvoke core.clj 5710]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invoke core.clj 632]
[clojure.core$load_libs doInvoke core.clj 5749]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invoke core.clj 632]
[clojure.core$require doInvoke core.clj 5832]
[clojure.lang.RestFn invoke RestFn.java 930]
[eulalie.sns$eval3321$loading__5340__auto____3322 invoke sns.cljc 1]
[eulalie.sns$eval3321 invoke sns.cljc 1]
[clojure.lang.Compiler eval Compiler.java 6782]
[clojure.lang.Compiler eval Compiler.java 6771]
[clojure.lang.Compiler load Compiler.java 7227]
[clojure.lang.RT loadResourceScript RT.java 371]
[clojure.lang.RT loadResourceScript RT.java 362]
[clojure.lang.RT load RT.java 446]
[clojure.lang.RT load RT.java 412]
[clojure.core$load$fn__5448 invoke core.clj 5866]
[clojure.core$load doInvoke core.clj 5865]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invoke core.clj 5671]
[clojure.core$load_lib$fn__5397 invoke core.clj 5711]
[clojure.core$load_lib doInvoke core.clj 5710]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invoke core.clj 632]
[clojure.core$load_libs doInvoke core.clj 5749]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invoke core.clj 632]
[clojure.core$require doInvoke core.clj 5832]
[clojure.lang.RestFn invoke RestFn.java 482]
[fink_nottle.internal.sns$eval3315$loading__5340__auto____3316 invoke sns.cljc 1]
[fink_nottle.internal.sns$eval3315 invoke sns.cljc 1]
[clojure.lang.Compiler eval Compiler.java 6782]
[clojure.lang.Compiler eval Compiler.java 6771]
[clojure.lang.Compiler load Compiler.java 7227]
[clojure.lang.RT loadResourceScript RT.java 371]
[clojure.lang.RT loadResourceScript RT.java 362]
[clojure.lang.RT load RT.java 446]
[clojure.lang.RT load RT.java 412]
[clojure.core$load$fn__5448 invoke core.clj 5866]
[clojure.core$load doInvoke core.clj 5865]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invoke core.clj 5671]
[clojure.core$load_lib$fn__5397 invoke core.clj 5711]
[clojure.core$load_lib doInvoke core.clj 5710]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invoke core.clj 632]
[clojure.core$load_libs doInvoke core.clj 5749]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invoke core.clj 632]
[clojure.core$require doInvoke core.clj 5832]
[clojure.lang.RestFn invoke RestFn.java 436]
[fink_nottle.sns$eval3309$loading__5340__auto____3310 invoke sns.cljc 1]
[fink_nottle.sns$eval3309 invoke sns.cljc 1]
[clojure.lang.Compiler eval Compiler.java 6782]
[clojure.lang.Compiler eval Compiler.java 6771]
[clojure.lang.Compiler load Compiler.java 7227]
[clojure.lang.RT loadResourceScript RT.java 371]
[clojure.lang.RT loadResourceScript RT.java 362]
[clojure.lang.RT load RT.java 446]
[clojure.lang.RT load RT.java 412]
[clojure.core$load$fn__5448 invoke core.clj 5866]
[clojure.core$load doInvoke core.clj 5865]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invoke core.clj 5671]
[clojure.core$load_lib$fn__5397 invoke core.clj 5711]
[clojure.core$load_lib doInvoke core.clj 5710]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invoke core.clj 632]
[clojure.core$load_libs doInvoke core.clj 5749]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invoke core.clj 632]
[clojure.core$require doInvoke core.clj 5832]
[clojure.lang.RestFn invoke RestFn.java 805]
[episode_next.tasks$eval3303$loading__5340__auto____3304 invoke tasks.clj 1]
[episode_next.tasks$eval3303 invoke tasks.clj 1]
[clojure.lang.Compiler eval Compiler.java 6782]
[clojure.lang.Compiler eval Compiler.java 6771]
[clojure.lang.Compiler load Compiler.java 7227]
[clojure.lang.RT loadResourceScript RT.java 371]
[clojure.lang.RT loadResourceScript RT.java 362]
[clojure.lang.RT load RT.java 446]
[clojure.lang.RT load RT.java 412]
[clojure.core$load$fn__5448 invoke core.clj 5866]
[clojure.core$load doInvoke core.clj 5865]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invoke core.clj 5671]
[clojure.core$load_lib$fn__5397 invoke core.clj 5711]
[clojure.core$load_lib doInvoke core.clj 5710]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invoke core.clj 632]
[clojure.core$load_libs doInvoke core.clj 5749]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invoke core.clj 632]
[clojure.core$require doInvoke core.clj 5832]
[clojure.lang.RestFn invoke RestFn.java 805]
[episode_next.db$eval978$loading__5340__auto____979 invoke db.clj 1]
[episode_next.db$eval978 invoke db.clj 1]
[clojure.lang.Compiler eval Compiler.java 6782]
[clojure.lang.Compiler eval Compiler.java 6771]
[clojure.lang.Compiler load Compiler.java 7227]
[clojure.lang.RT loadResourceScript RT.java 371]
[clojure.lang.RT loadResourceScript RT.java 362]
[clojure.lang.RT load RT.java 446]
[clojure.lang.RT load RT.java 412]
[clojure.core$load$fn__5448 invoke core.clj 5866]
[clojure.core$load doInvoke core.clj 5865]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invoke core.clj 5671]
[clojure.core$load_lib$fn__5397 invoke core.clj 5711]
[clojure.core$load_lib doInvoke core.clj 5710]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invoke core.clj 632]
[clojure.core$load_libs doInvoke core.clj 5749]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invoke core.clj 632]
[clojure.core$require doInvoke core.clj 5832]
[clojure.lang.RestFn invoke RestFn.java 457]
[repl$eval14$loading__5340__auto____15 invoke repl.clj 1]
[repl$eval14 invoke repl.clj 1]
[clojure.lang.Compiler eval Compiler.java 6782]
[clojure.lang.Compiler eval Compiler.java 6771]
[clojure.lang.Compiler load Compiler.java 7227]
[clojure.lang.RT loadResourceScript RT.java 371]
[clojure.lang.RT loadResourceScript RT.java 362]
[clojure.lang.RT load RT.java 446]
[clojure.lang.RT load RT.java 412]
[clojure.core$load$fn__5448 invoke core.clj 5866]
[clojure.core$load doInvoke core.clj 5865]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invoke core.clj 5671]
[clojure.core$load_lib$fn__5397 invoke core.clj 5711]
[clojure.core$load_lib doInvoke core.clj 5710]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invoke core.clj 632]
[clojure.core$load_libs doInvoke core.clj 5749]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invoke core.clj 632]
[clojure.core$require doInvoke core.clj 5832]
[clojure.lang.RestFn invoke RestFn.java 408]
[user$eval5 invoke form-init2936256088395689051.clj 1]
[clojure.lang.Compiler eval Compiler.java 6782]
[clojure.lang.Compiler eval Compiler.java 6771]
[clojure.lang.Compiler eval Compiler.java 6771]
[clojure.lang.Compiler load Compiler.java 7227]
[clojure.lang.Compiler loadFile Compiler.java 7165]
[clojure.main$load_script invoke main.clj 275]
[clojure.main$init_opt invoke main.clj 280]
[clojure.main$initialize invoke main.clj 308]
[clojure.main$null_opt invoke main.clj 343]
[clojure.main$main doInvoke main.clj 421]
[clojure.lang.RestFn invoke RestFn.java 421]
[clojure.lang.Var invoke Var.java 383]
[clojure.lang.AFn applyToHelper AFn.java 156]
[clojure.lang.Var applyTo Var.java 700]
[clojure.main main main.java 37]]}
from eulalie.
Thanks! It looks like the case statement there is somehow getting macroexpanded in some regressive & unanticipated way. I have no idea how core.async is playing into this, but I can confirm that just changing the dependency version is enough to trigger the compilation error. It continues to look like a tail call to me, but I guess I'm not a compiler.
In any case, I pushed 0.6.3-SNAPSHOT
, which just changes the case
to a cond
Can you let me know if you get on any better with that? (e.g. by excluding the transitive eulalie dependency via your fink-nottle vector, and directly depending on 0.6.3-SNAPSHOT
)? I tried it out a little here - if it works out for you, I'll release and update the dependent projects.
from eulalie.
Related Issues (20)
- NPE in httpkit.HeaderMap.encodeHeaders when :content nil
- In issue-request, allow symbolic service names in addition to service objects HOT 1
- Remove SDK dep in tests & use canned examples of signed requests
- Turn messy service defprotocol into a set of multimethods
- Enhance SNS support
- Add SQS support
- Support in-browser use
- Using IAM credentials causes :invalid-client-token-id error HOT 3
- Support reading creds from AWS CLI config HOT 6
- Conditionally use feross/buffer instead of Node's Buffer
- Replace buffer-crc32 Node module
- Replace use of Node's crypto module with goog.crypt.Sha256
- Conditionally use browser-aware HTTP client
- Conditionally skip some SQS tests if GCM_API_KEY is not set
- Occasionally locked at 100% CPU usage HOT 11
- Test SES error response parsing
- At least for STS, parse-xml-error chokes on non XML errors
- Errors in create function with zip-file can get very long HOT 3
- X-Ray support
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eulalie.