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.com wrote: > > 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<javascript:> > > 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<javascript:> >> 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 <javascript:> >> 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 <javascript:>. >> 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.