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

:refer-clojure :exclude #714

Closed
esb-dev opened this issue Jan 24, 2015 · 6 comments
Closed

:refer-clojure :exclude #714

esb-dev opened this issue Jan 24, 2015 · 6 comments
Milestone

Comments

@esb-dev
Copy link

esb-dev commented Jan 24, 2015

Since rev 0.1.44 I experience the following behaviour:

Given

(ns clj.exclude
  (:refer-clojure :exclude [==])
  (:use clojure.core.logic))

Evaluation of

(run* [q]
      (== q 1) )

runs into an exception:

CompilerException java.lang.IllegalStateException: == already refers to: #'clojure.core.logic/== in namespace: ....

Hat's wrong?

Kind Regards
Burkhardt Renz

@cursive-ide
Copy link
Owner

I'm not sure - I can't think of anything that Cursive would do that would cause that. I don't know anything about how core.logic works, but it's very strange that that error should be produced by run* - normally that error happens when referring a var into a namespace.

@esb-dev
Copy link
Author

esb-dev commented Jan 25, 2015

Hi,

Can I go back to the previous revision?
I would like to check whether the problem vanishes then.

Kinds regards,
Burkhardt Renz

@cursive-ide
Copy link
Owner

Yes, see Manually Installing Cursive.

@esb-dev
Copy link
Author

esb-dev commented Jan 26, 2015

Hi,

I moved back to rev. 0.1.43 and the problem is gone.

What am I doing?

The source is

(ns clj.exclude
  (:refer-clojure :exclude [==])
  (:use clojure.core.logic))

(run* [q]
      (== q 1) )

I start the REPL, change into the namespace clj.excludeand run the two forms.

With 0.1.44 the exception is thrown

CompilerException java.lang.IllegalStateException: == already refers to: #'clojure.core.logic/== in namespace:  cli.exclude...

In 0.1.43 all is fine.

It seems as if in the evaluation of (run* ...) the REPL tries to define == from Clojure.core, but
it is already defined by clojure.core.logic.

It would be great, if you try to reproduce the situation, so that I can be sure there's no other reason with my project settings.

Kinds regards,
Burkhardt Renz

@cursive-ide
Copy link
Owner

That is very strange - I'll try to reproduce this.

@cursive-ide cursive-ide added this to the 0.1.45 milestone Jan 26, 2015
@cursive-ide
Copy link
Owner

You were absolutely right, this was a problem introduced in 0.1.44. It's fixed in the next build.

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