rewrite-clj

https://github.com/clj-commons/rewrite-clj
2019-09-12T22:21:41.069400Z

@lee been trying to wrap my head around defprotocol+ - if you don't mind me asking, why do you think this is used over vanilla defprotocol in rewrite-clj? the original docs say: a protocol that won't evaluate if an equivalent protocol with the same name aleady exists. the version in rewrite-clj is a simpler version, right?

lread 2019-09-12T22:24:38.071600Z

@sogaiu I remember asking myself the very same question and came to the foggy conclusion that it is just a performance optimization. I can’t tell you if it is still necessary but we could someday do perf tests with and without it to see what it gives us. For cljs it is currently a no-op.

2019-09-12T22:26:25.071900Z

thanks!

2019-09-12T22:28:50.074800Z

i experimentally removed all of potemkin except defprotocol+ the other day when trying to get proto-rewrite-cljc to work with babashka the other day, so may be i can try without deprotocol+ too.

lread 2019-09-12T22:29:53.075900Z

well rewrite-clj uses defprotocol+ as well. I’m guessing it might be the edn reader I am using that is causing graal problems, but that is just a wild guess.

2019-09-12T22:30:48.076900Z

thanks for the guess - it can help to have something concrete to start from :)

lread 2019-09-12T22:32:33.078500Z

I’d join you in your experiment, it seems like a fun exploration, but I am currently distracted by cljdoc and diffing apis. :simple_smile:

2019-09-12T22:32:58.079Z

np - hope that is going well :)

lread 2019-09-12T22:33:41.079800Z

yep! all roads lead out from rewrite-cljc, hopefully they also lead back!