clojure-dev

2025-04-09T03:44:06.621429Z

Please add a comment to this issue if you have thoughts on which Vars that are new in Clojure 1.12.0 should be added to the Clojure cheatsheet, and if they should, where in the cheatsheet you think they should be added: https://github.com/clojure/clojure-cheatsheets/issues/55

2025-04-09T03:45:14.310849Z

@seancorfield Pinging you because of your question a month or so back about this topic. Feel free to ping others that you believe are interested.

2025-04-11T16:08:55.050229Z

I moved a few things around in a newly published version today. I tried to put most or all of the functions focused on REPL development into the first section of the cheatsheet. That first section used to be called "Documentation" with one sub-section named "clojure.repl/". Proposed new organization is that first section is called "REPL", with sub-sections "Documentation", "Add libs", and "Other". "Add libs" contains the new add-lib/add-libs functions.

👍 1
2025-04-11T16:09:14.704269Z

Not everything can be first, of course, but REPL-based development is prominent enough it seems worth putting first.

2025-04-10T16:54:39.880039Z

Thanks for those who made suggestions. I don't think I followed them all, but if you want to look at an updated version with most of the new vars from Clojure 1.12.0 included, you can find several variants of it here: https://jafingerhut.github.io/

2025-04-10T16:55:19.512519Z

The changes that I made in that version are described here, in case you have any difficulty noticing the few changes made: https://github.com/clojure/clojure-cheatsheets/pull/56/files#diff-f7b49a1753d620c71bb5025133592b107d8c5cd8c458aa8d6be2df146e8f2bc7

2025-04-10T16:58:00.540459Z

I believe that all of the links to http://ClojureDocs.org for the new vars lead to custom 404-like page on that site, because http://ClojureDocs.org has not had those vars added to it. In those variants of the cheatsheet with tooltips, you can see the doc string in a tooltip by hovering the cursor over the symbol name.

2025-04-10T17:01:33.093589Z

There is a PR created that makes these changes in the cheatsheet, here: https://github.com/clojure/clojure-cheatsheets/pull/56

2025-04-10T17:22:05.520189Z

Note: These changes have not been made to the version of the cheatsheet published here: https://clojure.org/api/cheatsheet. The ones linked above are my own published version, which is sometimes a version or two different than the one on http://clojure.org

dominicm 2025-04-09T10:07:14.563259Z

personally I haven't run into much use of streams in java. so I don't know how useful those are to include, but they're short and sweet. sync deps/etc. is such a boost to the REPL stuff it's probably worth including. I might be inclined to merge all of Documentation with Other/REPL, and then include the new deps stuff in this new section. I haven't looked enough at the new -v variants, I know they solve a problem in the old ones. I might be inclined to think that in new code the new variants should be the default, so replacing them on the cheat sheet might make most sense?

seancorfield 2025-04-09T12:48:54.044339Z

@andy.fingerhut It'll be a while before I have feedback -- in the middle of moving house.

👍 1
🤯 1
2025-04-09T18:13:36.136829Z

one of the things that alex and other core team members have said is that thinking through bug reports and feature requests, reading patches, and/or writing patches takes a lot of time and effort. how long does reviewing a given patch take? if someone puts a patch up for a given bug, how long will a core member spend on it (once they decide to review it)?

Alex Miller (Clojure team) 2025-04-09T18:19:08.871469Z

if the ticket has a great problem and solution description, the patch is often obvious and easy to review

👍 2
Alex Miller (Clojure team) 2025-04-09T18:19:58.664749Z

but it obviously varies widely depending on the complexity of the problem and solution

2025-04-09T18:27:10.589859Z

my experience, from the outside, is largely it is the steps before a patch is created(identifying the problem, considering solutions) that get objections, and once they are objected to it is very hard to get an movement on an issue. A patch on a ticket often seems to get it ignored as seeming to be a "solved" problem, while the objections to the problem statement stop it from being considered for inclusion, and there rarely is much feedback when the problem statement and solution exploration is considered to be lacking

👍 1
2025-04-09T18:29:27.827059Z

to be clear, this isn't me subtly asking "why haven't y'all reviewed my patch!"

2025-04-09T18:30:19.000469Z

there are a lot of tickets and patches that have sat around for 5+ years without any movement, and it's hard to know why that is. hiredman's explanation is helpful.

2025-04-09T18:39:02.878429Z

i think there are a lot of people (myself included) in the clojure community who would love to help make clojure better. throwing random patches at the core team isn't the way to do it, so i'm wondering if it's possible to help the core team out by... doing work ahead of time? doing code reviews of existing patches, cleaning up/rewriting/expanding issue problem statements and discussions, etc

2025-04-09T18:39:47.304769Z

i hold "open source is not about you" at the forefront of my mind when i think about attempting to contribute to clojure

Alex Miller (Clojure team) 2025-04-09T18:40:14.318849Z

better tickets are always appreciated, even more so than patches

👍 1
2025-04-09T18:40:17.512169Z

but it does seem like there are ways that the i/the community could help without stepping on the core team's toes

2025-04-09T18:48:09.214909Z

A lot of that stuff is based on the judgement of the people doing it, so it order to effectively offload/delegate it you need to trust the judgement of whoever you are delegating to, enlarging that circle of trust is a tricky thing

👍 1
Alex Miller (Clojure team) 2025-04-09T18:48:49.029789Z

the reality is, most of the time we simply aren't working on jiras, or sometimes we are but in the context of a bigger scope

2025-04-09T18:52:39.784859Z

yeah, fairly common to if you have a detailed jira issue laying out and issue and solutions with patches, for the issue to get reworked and for a core team member to write a new patch; which sounds like the kind of workflow that would result from jira issues informing some other work list / agenda and then when the work is done the two need reconciling

Alex Miller (Clojure team) 2025-04-09T18:53:42.991739Z

for example, we are spending 95% of our time right now on either core.async vthreads and/or flow (which overlap slightly in terms of release ordering). a consequence of the vthread work is that we are moving towards a world where the go analyzer/expander is no longer used (unless you explicitly ask for it and/or vthreads is not available). there are a bunch of core.async bugs that are effectively "go analyzer doesn't work like Clojure analyzer" that become irrelevant if there is only the Clojure analyzer. so we're "working" on that set of jiras in a very indirect way. same thing happens in Clojure too sometimes.

Alex Miller (Clojure team) 2025-04-09T18:56:13.404659Z

sometimes there are also a bunch of jiras that are really the same problem but we don't understand what the real problem is or even recognize the link. once you somehow find the right entry point to the issue, you can retroactively find the jiras that were all related. The locals clearing stuff we did in 1.11.4 / 1.12.0 was like that.

Alex Miller (Clojure team) 2025-04-09T18:57:23.434879Z

I'd like to say that once a week or a month or whatever we looked at patches and reviewed stuff but I've never been able to coax Rich into that kind of rhythm

😢 2
2025-04-09T18:58:38.774149Z

Right, that all makes sense. I was more thinking of something like https://clojure.atlassian.net/jira/software/c/projects/CLJ/issues/CLJ-2896 (zip/up is called 3 times, i wrote the patch which is why i have it on hand) or https://clojure.atlassian.net/jira/software/c/projects/CLJ/issues/CLJ-2905 (extend deref to Optionals), where problem is self-contained, the issue is descriptive, the change is small, and the impact is small but meaningful. is there a... resistance to spending time on it because of the low impact?

Alex Miller (Clojure team) 2025-04-09T19:00:06.929779Z

what I can do is make good queues ready for that time. my current 1.13 queue is here: https://clojure.atlassian.net/issues/?filter=10046 (the ordering here of bugs before improvements is Rich's preference). Many things on here need work, don't have patches, etc

👍 1
2025-04-09T19:00:53.707969Z

a change like https://clojure.atlassian.net/jira/software/c/projects/CLJ/issues/CLJ-880 (syntax-quote as macro) is bigger, has limited usefulness, and isn't a bug so i understand why it wouldn't necessarily be the top of mind

2025-04-09T19:01:57.071549Z

would it be helpful for you if i looked over those tickets and touched them up, added better problem statements, wrote patches, etc?

Alex Miller (Clojure team) 2025-04-09T19:02:04.398339Z

yes

2025-04-09T19:02:09.070029Z

hell yeah brother

2025-04-09T19:06:32.675439Z

(vaguely puzzled to discover I reported CLJ-880, I guess that rings a bell)

Alex Miller (Clojure team) 2025-04-09T19:16:22.542779Z

https://clojure.atlassian.net/issues/CLJ-2822 would be a great one for some attention

👍 1
Alex Miller (Clojure team) 2025-04-09T19:19:15.510879Z

things marked Prescreened probably do not need attention

👍 1