Fork me on GitHub
#clojure-dev
<
2016-06-07
>
bronsa16:06:15

this could really use the satisfies? cache patch :)

Alex Miller (Clojure team)16:06:51

yeah, I saw that and was going to raise that again

andrewhr17:06:53

Would be nice to have Inst default print support? Or it's a non-issue for date/time libraries?

Alex Miller (Clojure team)17:06:53

feel free to file a jira - there's a bit more on that coming, just didn't want to hold up the release on it

Alex Miller (Clojure team)17:06:18

java.util.Date's already print as #inst tagged literals

andrewhr17:06:51

yep, I'm thinking more about integration with java.time.* and for example. I'll reach for Jira 🙂

Alex Miller (Clojure team)17:06:38

so that is exactly the part still coming :)

Alex Miller (Clojure team)17:06:52

plan to have conditional support for treating Instant's as Inst

Alex Miller (Clojure team)17:06:24

so maybe hold up till that's out and if there is a gap, then we can log it

andrewhr18:06:57

ok. I was thinking about to tackle that, but if it's already on the oven I will wait a little more 😄

andrewhr18:06:06

thanks Alex!

seancorfield20:06:51

Not quite sure where to raise this but I’ve run into an interesting issue with taoensso.encore and Clojure 1.9.0 Alpha 5. That uses cljx to produce Clojure and ClojureScript versions and it has the following code:

#+clj
(do
  (def ^:const bytes-class (Class/forName "[B"))
  (defn bytes? [x] (instance? bytes-class x))
  (defn ba= [^bytes x ^bytes y] (java.util.Arrays/equals x y))
…)
Notice the bytes? function which is now part of core. This silently compiles fine on Alpha 5 but the bytes? function does not get defined — so when another namespace (taoensso.nippy) tries to use encore/bytes?, it fails: No such var: encore/bytes?

seancorfield20:06:23

Is this expected behavior? That a defn inside a do just silently fails to define a global if it is already defined as part of core?

hiredman20:06:09

if you put a (println bytes?) after the #+clj block, what does it print out?

hiredman20:06:28

oh, I guess that error message isn't what happens with unbound

hiredman20:06:46

it seems like that shouldn't silently compile fine, you should get the such and such overwrites such and such

hiredman20:06:57

you should see if you can reproduce it from the output of cljx

hiredman21:06:48

I have gotten the output of cljx, from the lein plugin, the code looks fine and seems to be fine, and it definitely prints the WARNING about bytes? replacing the bytes? from core, given that you build is silent I suspect that is where the problem is

seancorfield22:06:15

Thanks @hiredman — yeah, I guess the warning is just being hidden, but normally you’d actually get the new symbol definition (and a warning) whereas this time the symbol simply isn’t being defined and it isn’t "error" enough to stop the build. Weird.

hiredman22:06:50

if the warning is being hidden, you have to ask yourself, what else is being hidden?

Alex Miller (Clojure team)22:06:43

based on my experience as a homeowner, probably mold