Re: `let` to automatically add metadata / fn names?

2013-02-11 Thread dgrnbrg
vary-meta slipped my mind! I've updated the gist to include it. The reason I check for IObj and IMeta is that I want symbols and other custom deftypes to recieve the metadata as well. I thought about namespacing the let-names, but for my current purposes I don't need that extra data (although

Re: `let` to automatically add metadata / fn names?

2013-02-10 Thread Phil Hagelberg
On Sat, Feb 9, 2013 at 4:20 PM, vemv v...@vemv.net wrote: Then library consumers can specify either [com.example/awesomelib 1.4.0], [com.example 1.4.0-DEBUG], or [com.example 1.4.0-NO-DEBUG] in their :dependencies vector, in the corresponding project.clj. If no version directive is specified,

Re: `let` to automatically add metadata / fn names?

2013-02-10 Thread dgrnbrg
I've written an implementation of this here: https://gist.github.com/dgrnbrg/4751473 It does incur a 2 instance check penalty (the branches should be 100% predictable, and never hurt in practice). I'm not sure if I could use protocols to further reduce the cost of the check. I've already put

Re: `let` to automatically add metadata / fn names?

2013-02-10 Thread vemv
Glad to hear that Phil! You're entirely right - I didn't realise that distributing jar to Java consumers doesn't imply AOT-compiling the libraries at all. David, on your implementation - I may be missing something, but why not just vary-meta each collection found in the bindings? Also, it

Re: `let` to automatically add metadata / fn names?

2013-02-09 Thread Stuart Halloway
+1 on this line of thought. We are definitely interested in decomplecting dev mode utility from production lean-and-meanness. One question along this path is What options exist in Java/maven land for doing multiple releases of the same artifact with e.g. different performance and debugging

Re: `let` to automatically add metadata / fn names?

2013-02-09 Thread Mark
Going the build route, probably use maven to produce debug and production artifacts of differing versions: blah-1.0.0-DEBUG.jar and blah-1.0.0.jar. Rather than go that route and the ensuing naming convention madness, I wonder how much we could rely on the JIT to push the decision of debug vs

Re: `let` to automatically add metadata / fn names?

2013-02-09 Thread vemv
Going the build route, probably use maven to produce debug and production artifacts of differing versions: blah-1.0.0-DEBUG.jar and blah-1.0.0.jar. My thoughts too. And there's no need for convention madness - e.g. Leiningen could transparently create those versions to the user: the

Re: `let` to automatically add metadata / fn names?

2013-02-09 Thread Mark
Are you thinking that the client developer (the person using the library) would maintain the proper magic ear-muffs in lein profiles? On Saturday, February 9, 2013 3:17:51 PM UTC-8, vemv wrote: Going the build route, probably use maven to produce debug and production artifacts of differing

Re: `let` to automatically add metadata / fn names?

2013-02-09 Thread vemv
I had something like this in mind: - There's a set of clojure.core vars that mean something (potentially) expensive yet convenient, and default to true - Neither library producers or consumers have ever to touch those (unless they want fine-grained control for some specific

Re: `let` to automatically add metadata / fn names?

2013-02-09 Thread Stuart Halloway
It is likely that, once this Pandora's box is opened, there will be more profiles that just debug yes/no. It is almost certain that whatever we do must be maven friendly. (Maven is a de facto standard for 1000x more people than leiningen, and some of them want to use libs written in Clojure.)

Re: `let` to automatically add metadata / fn names?

2013-02-09 Thread VĂ­ctor M . V .
Thanks for the advice Stu! I might give it a shot at Confluence at some point. Just for the record, I like to defend my hypotethical approach: Non-Clojure consumers most likely win nothing from extended metadata facilities etc. So on second thoughts, the best default for mylib-*1.0.0*.jar is to

`let` to automatically add metadata / fn names?

2013-02-08 Thread vemv
Given that: a) fns can have names for debugging purposes, and b) data structures can have metadata, wouldn't it be a good idea to let let auto attach (where possible) the names of the bindings to their corresponding values? For example, the improved let I'm thinking of would translate this

Re: `let` to automatically add metadata / fn names?

2013-02-08 Thread dgrnbrg
I would find this very useful in several projects I'm working on, where the library would be able to give better information on where the error is in the user's code if this metadata was available. On Friday, February 8, 2013 12:18:54 PM UTC-5, vemv wrote: Given that: a) fns can have names

Re: `let` to automatically add metadata / fn names?

2013-02-08 Thread Herwig Hochleitner
2013/2/8 vemv v...@vemv.net Do you see such a mechanism being incorporated to clojure.core/let - should I open a ticket? Only for debugging and not before it has a proven implementation. For production, we actually want less metadata. At least in memory constrained environments like android.

Re: `let` to automatically add metadata / fn names?

2013-02-08 Thread Daniel Glauser
This sounds like a great idea. I was working with some tests today and it would have been really useful to have some way to query the current function/execution context. Seems like passing that through all lets would go a long way, provided I'm reading this right. On Friday, February 8, 2013

Re: `let` to automatically add metadata / fn names?

2013-02-08 Thread Brian Marick
On Feb 8, 2013, at 7:56 PM, Daniel Glauser danglau...@gmail.com wrote: This sounds like a great idea. I was working with some tests today and it would have been really useful to have some way to query the current function/execution context. Seems like passing that through all lets would