Re: [ANN] Clojure 1.6.0-beta1

2014-02-18 Thread Alex Miller
Re the discussion around some?/if-some/when-some... Summarizing feedback here: 1) some? has a confusion with some (but some congruence with some-, some-) 2) other names might be better (not-nil?, nnil?, exists?, value?) 3) if-some and when-some lack the word let to clue you into their binding

Re: [ANN] Clojure 1.6.0-beta1

2014-02-17 Thread Herwig Hochleitner
Since transients are no longer marked as alpha, I want to take this (last?) chance to raise an interface question concerning them: Right now, we cannot distinguish whether a transient contains a key with a nik value or if it doesn't contain the key, because contains? doesn't work on transients.

Re: [ANN] Clojure 1.6.0-beta1

2014-02-17 Thread Alex Miller
CLJ-700 is a bug, regardless of whether it is marked as alpha or not. This ticket has a strange history of approval statuses (pre-dating my involvement with jira) that caused it not to be included in 1.6 earlier. Unfortunately, I think it is too big a change to consider at this point in 1.6

Re: [ANN] Clojure 1.6.0-beta1

2014-02-16 Thread Alex Walker
Part of Rich's objection to not-nil? variants could be that they are a double negative, not-(no value)?, which can decrease clarity and require more coffee. - nil Means 'nothing/no-value'- represents Java null and tests logical false [clojure.org/reader] To compete with some?

Re: [ANN] Clojure 1.6.0-beta1

2014-02-16 Thread Mars0i
I like Alex's suggestions. Another option is something rather than some or exists. Something has the disadvantage that it's long, so when you combine it with addition strings, you get something even longer. On the other hand, for me both some and exists sound like existential quantifiers

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Alex Miller
Thanks! Great to hear positive benchmark results. I'd guess that if you did (count (distinct (map hash your-set))) you'd see that was a lot smaller than (count your-set) in 1.5.1 indicating hash collisions. -- You received this message because you are subscribed to the Google Groups Clojure

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Alex Miller
I'd agree with all that. One place we've seen nil but not false become more prevalent lately is in core.async. Channels reserve special meaning for nil (closed) but false is a valid channel value. So if-some and when-some are particularly useful in go loops that take from a channel. There are a

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Andy-
inline On Saturday, February 15, 2014 12:41:52 AM UTC-5, Mars0i wrote: Could someone clarify for me why some? as a name for not nil makes sense at all in the first place? Not criticizing. I just don't understand what existence or there being some of something has to do with nil. Maybe

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Mars0i
Thanks for all of the very helpful answers about nil and some. I understand now. I'll add my voice to those who are bothered by the two distinct uses of some (some, some-fn vs some-, some-, some?) bother me. I celebrate the semi-arbitrary quirkiness of function names in Common Lisp, but

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Mars0i
Thank you for all of the very helpful answers about nil and some. I understand now. I am *very* grateful to Rich Hickey and all of the other dedicated Clojure developers. For what it's worth, I'll add my voice to those who are bothered by the two distinct uses of some (some, some-fn vs

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Mars0i
Thank you for all of the very helpful answers about nil and some. I understand now. I am *very* grateful to Rich Hickey and all of the other dedicated Clojure developers. For what it's worth, I'll add my voice to those who are bothered by the two distinct uses of some (some, some-fn vs

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Alex Miller
truthy? = identity falsey? = not -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Joel Hodbrooks
That’s fair. On February 15, 2014 at 1:02:43 PM, Alex Miller (a...@puredanger.com) wrote: truthy? = identity falsey? = not -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Joel Hodbrooks
Actually, truthy? = boolean.  Anyway, throw everything I said in the trash. :-) No more sleepy posts to the ML from me. On February 15, 2014 at 1:02:43 PM, Alex Miller (a...@puredanger.com) wrote: truthy? = identity falsey? = not -- You received this message because you are subscribed to

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Andy Fingerhut
Alex's suggestion is a good way to determine whether the 10k clj-tuples in a set case is being sped up by the new hash function -- just look at the variety of values of (hash x) for all x's in the set and see whether it is significantly more unique hash values in 1.6.0-beta1 than with 1.5.1. As

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Alex Baranosky
Great job on the new release guys :) My one bit of feedback is that if-some and when-some behave like a let, but don't include let in the name. My guess is that this was chosen because if-some-let and when-some-let are starting to get awkwardly long. On Sat, Feb 15, 2014 at 2:32 PM, Andy

Re: [ANN] Clojure 1.6.0-beta1

2014-02-15 Thread Эльдар Габдуллин
Like this, just not-nil? if-not-nil when-not-nil is much better for me. суббота, 15 февраля 2014 г., 7:12:21 UTC+4 пользователь Joel Holdbrooks написал: As an addendum to my last comment, *not-nil?* would also be a good candidate. That really doesn't leave room for doubt. This:

[ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Alex Miller
Clojure 1.6.0-beta1 is now available. Try it via - Download: http://central.maven.org/maven2/org/clojure/clojure/1.6.0-beta1 - Leiningen: [org.clojure/clojure 1.6.0-beta1] Highlights below or see the full change log here: https://github.com/clojure/clojure/blob/master/changes.md We expect

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Dom Kiva-Meyer
Great changes! I have a question about #5. 5) New some operations Many conditional functions rely on logical truth (where falsey values are nil or false). Sometimes it is useful to have functions that rely on not nilness instead. These functions have been added to support these cases

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Howard M. Lewis Ship
Looking forward to this ... any ideas on submitted issues w/ valid patches that are in limbo? (*) (*) No good deed, such as this beta release announcement, goes unpunished. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Andrey Antukh
Awesome! Thanks! 2014-02-14 21:47 GMT+01:00 Daniel doubleagen...@gmail.com: Thanks to everyone involved! On Friday, February 14, 2014 1:04:09 PM UTC-6, Alex Miller wrote: Clojure 1.6.0-beta1 is now available. Try it via - Download: http://central.maven.org/maven2/org/clojure/

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Timothy Baldridge
+1 to everything Dom Kiva-Meyer said. On Fri, Feb 14, 2014 at 2:13 PM, Andrey Antukh n...@niwi.be wrote: Awesome! Thanks! 2014-02-14 21:47 GMT+01:00 Daniel doubleagen...@gmail.com: Thanks to everyone involved! On Friday, February 14, 2014 1:04:09 PM UTC-6, Alex Miller wrote: Clojure

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread David Nolen
exists? doesn't seem right to me. Also we do use `exists?` currently in ClojureScript since feature detection is so common in client side code and the name seems more appropriate to me in that context. That could of course change but we would need to coordinate. David On Fri, Feb 14, 2014 at

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Tassilo Horn
Dom Kiva-Meyer li...@domkm.com writes: 5) New some operations Many conditional functions rely on logical truth (where falsey values are nil or false). Sometimes it is useful to have functions that rely on not nilness instead. These functions have been added to support these cases [CLJ-1343]:

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Nicola Mometto
I would also like to point out that `if-some` reads like it would work like `if-not` rather than like `if-let`. Same applies obviously to `when-some` too. Timothy Baldridge writes: +1 to everything Dom Kiva-Meyer said. On Fri, Feb 14, 2014 at 2:13 PM, Andrey Antukh n...@niwi.be wrote:

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread David Nolen
Also I think the ship on overloading some already sailed with some- and some- David On Fri, Feb 14, 2014 at 3:27 PM, Dom Kiva-Meyer li...@domkm.com wrote: Great changes! I have a question about #5. 5) New some operations Many conditional functions rely on logical truth (where falsey

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Alex Miller
Hey Howard, Same story as always - when we moved into the 1.6 release train, we basically stopped putting new tickets into work so that we could stabilize the release. That process has taken longer than I expected. My expectation is that: 1) All of you will try out 1.6.0-beta1 as soon as

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Alex Miller
On Friday, February 14, 2014 2:27:49 PM UTC-6, DomKM wrote: Great changes! I have a question about #5. 5) New some operations Many conditional functions rely on logical truth (where falsey values are nil or false). Sometimes it is useful to have functions that rely on not nilness

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Michael Gardner
On Feb 14, 2014, at 17:25 , Alex Miller a...@puredanger.com wrote: The names of these functions were chosen by Rich. There was already some name overloading of some even before these new functions with some (truthy) and some-/some- (not nil). The new functions keep with the latter meaning.

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Joel Holdbrooks
As an addendum to my last comment, *not-nil?* would also be a good candidate. That really doesn't leave room for doubt. This: (some? false) ;; = true Would confuse me. On the other hand this: (not-nil? false) ;; = true Would not. There's really no need to complicate the naming story

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread David Nolen
exists? is a pretty critical feature for application writers and I asked several users about it before committing to a name. Unless Clojure decides to adopt it, little incentive to cause unnecessary breakage. David On Fri, Feb 14, 2014 at 10:28 PM, Joel Holdbrooks cjholdbro...@gmail.comwrote:

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread David Nolen
Likely discussed in #clojure IRC and I checked with some Clojure/core folks for feedback. David On Fri, Feb 14, 2014 at 10:54 PM, Joel Holdbrooks cjholdbro...@gmail.comwrote: Right. I won't disagree with the function being critical or with avoiding breakage. I'm just mostly whining here

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Mars0i
Could someone clarify for me why some? as a name for not nil makes sense at all in the first place? Not criticizing. I just don't understand what existence or there being some of something has to do with nil. Maybe I don't understand the intent of nil. I came to Clojure from Common Lisp.

Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Mark Engelberg
On Fri, Feb 14, 2014 at 9:41 PM, Mars0i marsh...@logical.net wrote: Could someone clarify for me why some? as a name for not nil makes sense at all in the first place? Not criticizing. I just don't understand what existence or there being some of something has to do with nil. nil is often