Re: An Error spec?

2018-11-07 Thread alex
How about using exception instances as errors? That plays pretty nicely with ex-info and (try ... (catch Exception e e)). I've built https://github.com/dawcs/flow on top of that approach and that seems like pretty good abstraction. Despite I'm not sure about CLJS. Anomalies are also great and y

Re: [ANN] 1.10.0-beta5

2018-11-07 Thread Alex Miller
On Wednesday, November 7, 2018 at 3:19:27 AM UTC-6, Khalid Jebbari wrote: > > Example usage of tap: > https://quanttype.net/posts/2018-10-18-how-i-use-tap.html > > I've also briefly read the source code of the datafy namespace (short and > easy to understand), and my understanding is that it's

Re: [ANN] 1.10.0-beta5

2018-11-07 Thread Alex Miller
On Wednesday, November 7, 2018 at 2:12:44 AM UTC-6, Khalid Jebbari wrote: > > Alex, it's funny that the example you showed about using the new extension > mechanism looks very much like implementing lifecycle hooks in React.js > (and the various CLJ/CLJS wrappers). > > Indeed having value-based

Re: What if ^:const could inline everything before macroexpanssion?

2018-11-07 Thread Didier
Ah right, I see now. Ya, so it seems macros are fully expanded first, and then constant are inlined, and then code is evaled. So there's really no way to specify a global to be used within a macro itself, unless you resolve it explicitly within your macro, using resolve or eval, or if you use

Re: What's the end goal for tools.deps?

2018-11-07 Thread Khalid Jebbari
Sean, your deps.edn is a golden mine. Thanks a lot for sharing it. On Sunday, November 4, 2018 at 4:46:45 AM UTC+1, Didier wrote: > > I read the rationale, and I understand that we needed a way to bundle > depencies for clj and clojure cli. But in practice, I'm seeing a lot of > people move to i

Re: What if ^:const could inline everything before macroexpanssion?

2018-11-07 Thread juan.facorro
Sorry, I now understand what you mean. The unfolding logic that I proposed before was completely missing the fact that the foo macro is not: (defmacro foo [x] `(+ 10 ~x)) But: (defmacro foo [x] (+ 10 x)) The following assertion from the previous post is blatantly wrong with the corre

Re: What if ^:const could inline everything before macroexpanssion?

2018-11-07 Thread juan.facorro
That's strange, this is what I get in the REPL when evaluating that expression: $ clj Clojure 1.9.0 user=> (. clojure.lang.Numbers (add 10 100)) 110 user=> On Wednesday, November 7, 2018 at 10:01:20 AM UTC+1, Didier wrote: > > Hey, thanks for the deep dive, but I'm not sure I either understand

Re: [ANN] 1.10.0-beta5

2018-11-07 Thread Khalid Jebbari
Example usage of tap: https://quanttype.net/posts/2018-10-18-how-i-use-tap.html I've also briefly read the source code of the datafy namespace (short and easy to understand), and my understanding is that it's currently for one-way transformation of Java Objects into Clojure data through the Da

Re: What if ^:const could inline everything before macroexpanssion?

2018-11-07 Thread Didier
Hey, thanks for the deep dive, but I'm not sure I either understand, or that it is correct. So what we end up with is the equivalent to analyzing the expression `(. > clojure.lang.Numbers (add 10 100))`. > When I run my example, I get: ClassCastException clojure.lang.Symbol cannot be cast to

Re: [ANN] 1.10.0-beta5

2018-11-07 Thread Didier
Hum, just noticed tap. Seems really interesting. I'm not thinking of any concrete usage for now, but I like it! Also, is the object in the datafy description referring to a Java object? If so, is it a way to transform nested Java objects into Clojure data, and possibly back? On Wednesday, 7 No

Re: [ANN] 1.10.0-beta5

2018-11-07 Thread Khalid Jebbari
Alex, it's funny that the example you showed about using the new extension mechanism looks very much like implementing lifecycle hooks in React.js (and the various CLJ/CLJS wrappers). Indeed having value-based extension makes it much more flexible than having to use deftype/defrecord. My unders