clj-commons / kibit

There's a function for that!
1.76k stars 135 forks source link

stack overflow aborts kibit #153

Open mattiasw2 opened 8 years ago

mattiasw2 commented 8 years ago

I like kibit, however, the stackoverflow below is a bit annoying.

Possible solutions:

kill_kibit.zip

` c:\data3\sss4>lein kibit ./src/clj/sss4/Xmldb/BO/kill_kibit.clj lein kibit ./src/clj/sss4/Xmldb/BO/kill_kibit.clj At .\src\clj\sss4\Xmldb\BO\kill_kibit.clj:36: Consider using: 0 instead of: (do 0)

At .\src\clj\sss4\Xmldb\BO\kill_kibit.clj:43: Consider using: 0 instead of: (do 0)

At .\src\clj\sss4\Xmldb\BO\kill_kibit.clj:52: Consider using: (call-builder typ [k data]) instead of: (do (call-builder typ [k data]))

At .\src\clj\sss4\Xmldb\BO\kill_kibit.clj:65: Consider using: {:error-unknown-field [t data]} instead of: (do {:error-unknown-field [t data]})

Exception in thread "main" java.lang.StackOverflowError, compiling:(C:\Users\mattias\AppData\Local\Temp\form-init9138213481084104214.clj:1:109) at clojure.lang.Compiler.load(Compiler.java:7142) at clojure.lang.Compiler.loadFile(Compiler.java:7086) at clojure.main$load_script.invoke(main.clj:274) at clojure.main$init_opt.invoke(main.clj:279) at clojure.main$initialize.invoke(main.clj:307) at clojure.main$null_opt.invoke(main.clj:342) at clojure.main$main.doInvoke(main.clj:420) at clojure.lang.RestFn.invoke(RestFn.java:421) at clojure.lang.Var.invoke(Var.java:383) at clojure.lang.AFn.applyToHelper(AFn.java:156) at clojure.lang.Var.applyTo(Var.java:700) at clojure.main.main(main.java:37) Caused by: java.lang.StackOverflowError at clojure.core.logic$walkSTAR.invoke(logic.clj:228) at clojure.core.logic$walkSTAR$fn1620.invoke(logic.clj:233) at clojure.core.logic$eval1821$fn1822.invoke(logic.clj:984) at clojure.core.logic.protocols$eval277$fn278$G268285.invoke(protocols.clj:55) at clojure.core.logic$walkSTAR.invoke(logic.clj:229) at clojure.core.logic$walkSTAR$fn1620.invoke(logic.clj:233) `

lenw commented 7 years ago

This has been solved in the current version afaics

defndaines commented 7 years ago

May be a different root problem, but I stumbled on a stack overflow, too.

Here's the stack:

Exception in thread "main" java.lang.StackOverflowError, compiling:(/private/var/folders/6p/5w5jj6655z38wvw_3gz35h740000gn/T/form-init6137077259446389377.clj:1:125)
        at clojure.lang.Compiler.load(Compiler.java:7391)
        at clojure.lang.Compiler.loadFile(Compiler.java:7317)
        at clojure.main$load_script.invokeStatic(main.clj:275)
        at clojure.main$init_opt.invokeStatic(main.clj:277)
        at clojure.main$init_opt.invoke(main.clj:277)
        at clojure.main$initialize.invokeStatic(main.clj:308)
        at clojure.main$null_opt.invokeStatic(main.clj:342)
        at clojure.main$null_opt.invoke(main.clj:339)
        at clojure.main$main.invokeStatic(main.clj:421)
        at clojure.main$main.doInvoke(main.clj:384)
        at clojure.lang.RestFn.invoke(RestFn.java:421)
        at clojure.lang.Var.invoke(Var.java:383)
        at clojure.lang.AFn.applyToHelper(AFn.java:156)
        at clojure.lang.Var.applyTo(Var.java:700)
        at clojure.main.main(main.java:37)
Caused by: java.lang.StackOverflowError
        at clojure.core.logic$walk_STAR_$fn__1862.invoke(logic.clj:231)
        at clojure.core.logic$eval2044$fn__2045.invoke(logic.clj:984)
        at clojure.core.logic.protocols$eval520$fn__521$G__511__528.invoke(protocols.clj:55)
        at clojure.core.logic$walk_STAR_.invokeStatic(logic.clj:229)
        at clojure.core.logic$walk_STAR_.invoke(logic.clj:227)
        at clojure.core.logic$walk_STAR_$fn__1862.invoke(logic.clj:233)

I get this when I run

lein kibit src/meiro/unicode.clj

against a particularly nasty bit of code I have. Repo: meiro (changeset: 1b59b9a if it doesn't reproduce on master)