I created a slightly modified version of clojure.set and have released it
as funjible.set

More info here, if you are curious:

    https://github.com/jafingerhut/funjible

Andy


On Mon, Sep 30, 2013 at 8:00 PM, splondike <splond...@gmail.com> wrote:

> If it's a case of prioritization, that makes sense. I was going to suggest
> raising a bug, and then triaging it as low priority, but I notice that
> there is already a declined JIRA 
> issue<http://dev.clojure.org/jira/browse/CLJ-810>.
> I apologize for not checking there before adding this thread.
>
> I'm very new to Clojure which is why I wasn't sure whether this kind of
> runtime defensive programming was the norm, and you seem to suggest that
> it's not. A static checker/lint would of course be preferable if it could
> catch these kinds of programmer errors.
>
> I notice that there's a very successful crowdsource fund going toward
> core.typed <http://www.indiegogo.com/projects/typed-clojure>, perhaps
> this static checker will be a reality this time next year.
>
> On Monday, September 30, 2013 5:55:01 PM UTC-4, stuart....@gmail.comwrote:
>
>> Hi splondike,
>>
>> I disagree with your arguments about what is sensible -- *any* behavior
>> is sensible when you violate the contract of an API.
>>
>> Of course everybody could get behind the "throwing the error" plan if the
>> cost of throwing that error was zero:  zero assessment cost, zero
>> development cost, zero runtime cost, and zero maintenance cost.  But those
>> costs are not zero, so as a screener I have to ask myself "should I spend
>> my next half hour looking at this issue, which impacts only broken
>> programs, or one of the (currently 20) screenable tickets, many of which
>> impact *correct* programs?
>>
>> That said, perhaps core.typed can help us here.  I believe core.typed can
>> allow us to check programs and detect these kinds of errors, without
>> runtime impact (and without any change to Clojure at all.)  I am doing some
>> experiments with exactly this case, and will follow up on a separate thread.
>>
>> Regards,
>> Stu
>>
>>
>> On Mon, Sep 30, 2013 at 2:20 PM, splondike <splo...@gmail.com> wrote:
>>
>>> Thanks for the comment. The current behaviour is sensible for the code
>>> branch where the second argument is the same length or shorter than the
>>> first (see my first post). It is the other branch that does not do what you
>>> would expect. My real issue though is how the behaviour changes
>>> dramatically once we hit this branch (for non set args).
>>>
>>> The original author of the 
>>> patch<https://github.com/clojure/clojure/commit/60e805dc7bd42b7b26fc8c8925bf71079729e0e6>which
>>>  produced this behaviour noted
>>> this shortcoming himself <http://dev.clojure.org/jira/browse/CLJ-67>,
>>> and only refrained from implementing the check due to being unsure about
>>> the performance penalty.
>>>
>>> I think that people who are currently relying on this function working
>>> for non set arguments are playing a risky game (which, like me, they're
>>> probably not aware of) due to this sudden change in behaviour. I would
>>> argue that existing users would be better served by having an error thrown
>>> rather than having unexpected data generated which is hard to track down.
>>>
>>> On Sunday, September 29, 2013 7:05:17 PM UTC-4, stuart....@gmail.comwrote:
>>>>
>>>> I think the bar for such an enhancement is fairly high, and the value
>>>> delivered fairly low.  It isn't so much the impact of assessing this single
>>>> change, as the impact of managing the universe of such changes.
>>>>
>>>> Regards,
>>>> Stu
>>>>
>>> --
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@googlegroups.com
>>>
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+u...@googlegroups.com
>>>
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+u...@googlegroups.com.
>>>
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
> --
> 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 this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
-- 
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 this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to