The main point left to decide is: Should non-set args be allowed?
Given the current state (no coercion) calling set functions with non-set args give surprising results. That would be a reason to NOT accept them, so you can change your code after you have detected it.
clj -A:test:coal-mine-clj
throws Caused by: java.lang.RuntimeException: Unable to resolve symbol: instrument in this context
for me.
@flowthing have you updated from the most recent master? I pushed some fixes a couple of minutes ago
Probably not — I'll give it a try.
Maybe you could find the 4clojure problems that focus on sets and then run those specifically. Running all of coal-mine really takes an insane amount of time.
And even if the 4clojure problems break with your specs, it isn’t said that your specs are wrong.
Insane like hours or days? I have a server where I can run long-running tasks, so if it's something like one day, it shouldn't be too bad.
could try, I haven’t done that
And yeah, pulling the latest master fixed the issue. :thumbsup:
I'll give it a go.
I guess I need to add the set functions into speculative.instrument/known-fdefs
before running coal mine tests?
yes.
@flowthing to make sure you are finding errors, you could depend on a :local/root
version of coal-mine and put a deliberate mistake in there like (set/union 1 1)
I think clj -A:test:coal-mine-clj
prints a list of namespaces it's going to test when it starts, but clojure.set functions don't appear in that list even if I add them into known-fdefs
.
I don't have time to continue looking into it today, but I'll take another look tomorrow.
@flowthing if you could push your current branch, I’ll take a look
Weird... it works on my Mac, but not on my Linux server. I'll look into it.
Ah, works now. I just messed up with Git branches.
I'll leave it to run and see how it goes.