Well, *I* want these changes you've proposed in the core, but of
course, I'm not in charge. I guess the real question is, what is the
process to ensure that Rich sees and considers a potential core
improvement like this? I think the main mechanism for this is to post
it as an "issue" on google code, but I'm not certain whether you're
supposed to post an issue unless he's seen the newsgroup thread and
says, "Yes, that sounds good, please post it as an issue." But if he
misses the thread for some reason, that will never happen. So it's a
bit of a catch-22. Anyway, maybe someone can clarify the procedure.
Thanks.
> I guess the real question is, what is the
> process to ensure that Rich sees and considers a potential core
> improvement like this? I think the main mechanism for this is to post
> it as an "issue" on google code, but I'm not certain whether you're
> supposed to post an issue unless he's seen the newsgroup thread and
> says, "Yes, that sounds good, please post it as an issue." But if he
> misses the thread for some reason, that will never happen. So it's a
> bit of a catch-22. Anyway, maybe someone can clarify the procedure.
Yes, it is not supposed to be posted as a core issue unless Rich OK's
it here.
I just had a discussion about just this "meta"-issue on IRC. Chouser
says that Rich still reads every message on the group. See also the
further-up discussion in [1] for more procedural details, where it is
also suggested that an explicit sign-off here should be required for
posting clojure.contrib issues.
[1] http://groups.google.com/group/clojure/msg/657291bc62c48f32?hl=en
Anyway, I'm feeling quite frustrated and won't try to push this (or
any other) issue further. I know Rich and the team are very busy, but
it really saps my will to contribute when I have to keep pushing to
get an authoritative answer (be it yes or no) on even (what seems to
me to be) a fairly uncontroversial change like this one, or [2].
[2] http://groups.google.com/group/clojure/browse_thread/thread/5d11bc0da25a7ecc?hl=en#
Sorry for taking your question as a jumping off point for whining
about not getting attention. I guess my short answer is: the policy
is fairly clear, but its current implementation may be discouraging
potential contributors like myself.
-Jason
OK, I am sorry. I know I have made at least one misguided post, and a
few quibbles about relatively minor things, but by and large I thought
I was being helpful. I have tried to meter out my posts, and focus on
issues of broader use to the community, but I guess I am failing on
both counts and will have to try harder.
> I'd advise you to be more patient, build up a small library of helper
> functions you use frequently, make contributions of the most important
> of them to contrib. Clojure doesn't change that fast and it's not
> going to. I like to consider things and I can't address every
> suggestion as it is made.
Fair enough.
> Separate out the important things (like potential bugs) so they get
> more attention.
>
> As for these:
>
> - 0-arg distinct? returns true, not an exception (so (apply distinct?
> nil) = true)
>
> Not now, will consider.
>
> - rewrite concat so that (apply concat seq) doesn't evaluate the
> first three elements of seq
>
> No, may fall out of streams work.
>
> - make every?, not-every?, some, not-any? take multiple seq args like
> map, i.e., (every? not= [1 2 3] [2 3 4])
>
> No.
>
> - allow arguments to merge-with after the first to be lists of
> pairs.
>
> No.
OK, thanks.
-Jason
(ns my-ns(:use [clojure.set :exclude (difference)][clojure.contrib.set :only (difference)]))
OK, from that I take it the Clojure way is to not call "set" on the
arguments either, and let whatever happens happen if you pass the
functions non-sets? Note that here this has the potential to be
especially confusing since, e.g., (union #{1 2 3} [4 5]) might succeed
while (union #{1 2} [3 4 5]) would error.
Second, should this be combined with this issue to make efficient
versions that take any number of arguments?
http://code.google.com/p/clojure/issues/detail?id=52&colspec=ID%20Type%20Status%20Priority%20Reporter%20Owner%20Summary
> An issue w/patch for this would be welcome.
Finally, I don't know how to make a patch, and found nothing in a
quick search of the wiki/newsgroup/website. I heard "Git" floating
around somewhere earlier; am I to check out the SVN with git-svn and
make a patch that way?
-Jason
> Finally, I don't know how to make a patch, and found nothing in a
> quick search of the wiki/newsgroup/website. I heard "Git" floating
> around somewhere earlier; am I to check out the SVN with git-svn and
> make a patch that way?
To prepare a patch, use svn to checkout Clojure to a directory. Edit
the files within it to incorporate the changes you'd like included in
the patch, then cd to the top level of the checkout directory and
issue the command:
svn diff > my-patch.patch
You can also use the command:
svn status
from the top level of the checkout directory to see which files you
changed.
For completeness, if you'd like to apply such a patch to a fresh
Clojure checkout, copy the patch file to "/tmp", cd to the top level
of the checkout directory and issue the command:
patch -p0 < /tmp/my-patch.patch
Note: I used the /tmp temporary placeholder just to make the path in
the example literal.
--Steve
Thanks for the detailed instructions!
-Jason