Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Relax Clojure 1.8 requirement in next release #15

Closed
danielcompton opened this issue May 8, 2016 · 2 comments
Closed

Relax Clojure 1.8 requirement in next release #15

danielcompton opened this issue May 8, 2016 · 2 comments

Comments

@danielcompton
Copy link
Collaborator

danielcompton commented May 8, 2016

0.3.0 uses string/index-of, a new function in 1.8. If you're still on 1.7, you will get the log messages below. It will look like the problem is Unable to resolve var: dirac.nrepl/middleware in this context, but this is just a symptom, and the root problem is the missing string/index-of function which stops compilation. Upgrading to 1.8 is all that is required to fix this, but it was quite confusing to figure out, as there was a lot of logging (as I had set my logging to DEBUG globally), and it wasn't immediately clear what the true problem was.

It could be good to add notes to the 0.3.0 release notes and installation notes to say that 1.8 is required.

$ lein repl
Error loading dirac.nrepl: java.lang.RuntimeException: No such var: string/index-of, compiling:(dirac/nrepl/sessions.clj:149:14)
21:36:21.464 [main] DEBUG clj-logging-config.log4j - Set logger: logger is :root, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x1b18f38f "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1b18f38f"], :level #object[org.apache.log4j.Level 0x3e40bea1 "INFO"]}
21:36:21.467 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1b18f38f
21:36:21.467 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.468 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger root
21:36:21.469 [main] DEBUG clj-logging-config.log4j - Setting level to INFO
21:36:21.469 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.469 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.browser-tests, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x1000fbae "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.470 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae
21:36:21.470 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.470 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.browser-tests
21:36:21.470 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.470 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.agent-tests, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x1000fbae "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.agent-tests
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.test, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x1000fbae "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.test
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.agent, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x46bcdf2e "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@46bcdf2e"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@46bcdf2e
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.agent
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.agent-impl, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x46bcdf2e "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@46bcdf2e"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@46bcdf2e
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.agent-impl
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.nrepl, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x5927fc8e "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@5927fc8e"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@5927fc8e
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.nrepl
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.logging, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x4eeda18f "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@4eeda18f"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@4eeda18f
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.logging
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.lib, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x4eeda18f "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@4eeda18f"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@4eeda18f
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.lib
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.lib.weasel-server, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x268c4507 "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@268c4507"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@268c4507
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.lib.weasel-server
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.475 [main] INFO  dirac.agent-impl - Booting Dirac Agent...
21:36:21.513 [main] DEBUG dirac.agent-impl - effective config:
 {:log-level "WARN",
 :max-boot-trials 10,
 :initial-boot-delay 1000,
 :delay-between-boot-trials 500,
 :skip-logging-setup false,
 :nrepl-server {:host "localhost", :port 8230},
 :nrepl-tunnel {:host "localhost", :port 8231}}

Exception in thread "main" java.lang.RuntimeException: Unable to resolve var: dirac.nrepl/middleware in this context, compiling:(/private/var/folders/1z/vv_fwgqj67518h3j_gdgnl_00000gq/T/form-init109334489615094292.clj:1:1767)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6730)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.analyze(Compiler.java:6485)
    at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3791)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6725)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.analyze(Compiler.java:6485)
    at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3791)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6725)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.access$300(Compiler.java:38)
    at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6129)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6723)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.analyze(Compiler.java:6485)
    at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5861)
    at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5296)
    at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3925)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6721)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.eval(Compiler.java:6779)
    at clojure.lang.Compiler.eval(Compiler.java:6772)
    at clojure.lang.Compiler.eval(Compiler.java:6772)
    at clojure.lang.Compiler.load(Compiler.java:7227)
    at clojure.lang.Compiler.loadFile(Compiler.java:7165)
    at clojure.main$load_script.invoke(main.clj:275)
    at clojure.main$init_opt.invoke(main.clj:280)
    at clojure.main$initialize.invoke(main.clj:308)
    at clojure.main$null_opt.invoke(main.clj:343)
    at clojure.main$main.doInvoke(main.clj:421)
    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.RuntimeException: Unable to resolve var: dirac.nrepl/middleware in this context
    at clojure.lang.Util.runtimeException(Util.java:221)
    at clojure.lang.Compiler$TheVarExpr$Parser.parse(Compiler.java:698)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6723)
    ... 34 more
21:36:22.517 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent
21:36:23.029 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #2)
21:36:23.530 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #3)
21:36:24.034 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #4)
21:36:24.537 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #5)
21:36:25.040 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #6)
21:36:25.541 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #7)
21:36:26.046 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #8)
21:36:26.550 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #9)
21:36:27.055 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #10)
21:36:27.560 [clojure-agent-send-off-pool-1] ERROR dirac.agent-impl - Failed to start Dirac Agent. The nREPL server didn't come online in time. Made 10 connection attempts over last 5.00 seconds.
Did you really start your nREPL server at nrepl://localhost:8230? Maybe a firewall problem?
^[[A^C⏎
@darwin
Copy link
Member

darwin commented May 8, 2016

Thanks for reporting. I have updated the release notes. Also I will leave this ticket open and stop using 1.8-only functions in next release.

@darwin darwin changed the title Add notes to 0.3.0 release that it requires Clojure 1.8 (The nREPL server didn't come online in time) Drop Clojure 1.8 requirement in next release May 8, 2016
@darwin darwin changed the title Drop Clojure 1.8 requirement in next release Relax Clojure 1.8 requirement in next release May 8, 2016
@darwin
Copy link
Member

darwin commented May 17, 2016

Dirac v0.4.0 works with older Clojure again (da2bc1e)

@darwin darwin closed this as completed May 17, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants