kibit icon indicating copy to clipboard operation
kibit copied to clipboard

stack overflow aborts kibit

Open mattiasw2 opened this issue 9 years ago • 2 comments

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

  • First, that it happens,
  • secondly, that it is impossible to understand which file created the error,
  • thirdly, I cannot find a simple solution to make kibit skip this file.

Possible solutions:

  • I understand that the function is rather big, so the stack overflow is logical somehow.
  • A solution would be writing out "Checking file XXXXX" before each file
  • adding a -ignore filename would make me use kibit on the rest.

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$walk_STAR_.invoke(logic.clj:228) at clojure.core.logic$walk_STAR_$fn__1620.invoke(logic.clj:233) at clojure.core.logic$eval1821$fn__1822.invoke(logic.clj:984) at clojure.core.logic.protocols$eval277$fn__278$G__268__285.invoke(protocols.clj:55) at clojure.core.logic$walk_STAR_.invoke(logic.clj:229) at clojure.core.logic$walk_STAR_$fn__1620.invoke(logic.clj:233) `

mattiasw2 avatar Mar 23 '16 09:03 mattiasw2

This has been solved in the current version afaics

lenw avatar Mar 16 '17 16:03 lenw

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)

defndaines avatar May 09 '17 09:05 defndaines