clojure-dev

2024-05-21T14:56:27.033009Z

looking through old asks and jira tickets, i see ones that are 5+ years old that got a patch that to my eyes looks reasonable enough (a one line change, an updated error message for clarity, etc) that haven't been touched since then. is there a process for reviewing stale tickets that have patches? is there a way for someone who cares about a given ticket to help bring it to the core team's awareness or help shepherd it over the finish line?

Alex Miller (Clojure team) 2024-05-21T14:59:35.806379Z

vote on the equivalent http://ask.clojure.org page

2024-05-21T15:00:38.118859Z

okay

Alex Miller (Clojure team) 2024-05-21T15:00:40.042939Z

as we move past 1.12 we'll look through ask questions in vote ranked order

2024-05-21T15:00:51.194919Z

damn, okay lol

Alex Miller (Clojure team) 2024-05-21T15:01:18.202659Z

https://ask.clojure.org/index.php/questions/clojure?sort=votes

Alex Miller (Clojure team) 2024-05-21T15:01:56.377039Z

you'll notice a lot of those on that first page are closed or in 1.12

๐Ÿ‘ 1
2024-05-21T15:02:10.237859Z

me and my single votes probably won't make it into consideration any time soon then lol

Alex Miller (Clojure team) 2024-05-21T15:04:07.742569Z

insert "there are dozens of us" meme

๐Ÿ˜‚ 3
Alex Miller (Clojure team) 2024-05-21T15:05:12.231019Z

feel free to raise a list here too, I'm happy to take a skim for a 1.13 candidate list

2024-05-21T15:05:35.746019Z

sure, thank you

Alex Miller (Clojure team) 2024-05-21T15:55:06.835509Z

we looked at the last two in 1.12 and pushed out. the last one especially is just such a mess in the impl differences it's way more than it appears. The refer one has been looked at by Rich and he keeps pushing it out (really this one is unobviously related to the serialized require issue). I'll look through the others

๐Ÿ‘ 1
Alex Miller (Clojure team) 2024-05-21T15:58:07.655869Z

the first adds another slow condition check to every kw invocation so that's probably a non-starter unless the check gets moved to an error branch

๐Ÿ‘ 1
Alex Miller (Clojure team) 2024-05-21T16:00:52.576739Z

the conj!/assoc! docstring got through screening all the way to Rich and I think he wanted some kind of wording change that was waiting on me to do, I don't seem to have a note about what though

๐Ÿ‘ 1
Alex Miller (Clojure team) 2024-05-21T16:15:13.564079Z

I added some of the others to the 1.13 list

๐Ÿ˜ 1
2024-05-21T16:15:29.943839Z

thank you, that's very kind of you

souenzzo 2024-05-21T17:07:10.956409Z

there are dozens of usAnother unit in the dozen Can't vote for โ€ข https://ask.clojure.org/index.php/1169/keyword-implements-collection-argument-produces-intuitive โ€ข https://ask.clojure.org/index.php/3325/make-foo-bar-baz-unreadable Because seems to be a breaking change. I don't want breaking changes in clojure. AND I think that these issues are fixed by #clj-kondo and other tools. But voted (some of them were already voted)

Ben Sless 2024-05-21T17:08:15.506249Z

Rich's comment on the conclusion for unrolled assoc is interesting https://ask.clojure.org/index.php/3330/unroll-assoc-and-assoc-for-small-numbers-of-arguments https://clojure.atlassian.net/browse/CLJ-1656 Is it possible to make varargs faster? Is it possible to make them as fast as unrolled code? The real kicker would be defn level support for unrolled varargs Sort of like scheme's syntax-case Anyhow, would be happy if this issue could get some love.

seancorfield 2024-05-21T18:06:04.622349Z

A couple of your links seem wrong @nbtheduke : โ€ข https://ask.clojure.org/index.php/3334/improve-refer-performance โ€ข https://ask.clojure.org/index.php/1957/clojure-java-io-pushback-reader

2024-05-21T18:07:01.998579Z

oops, thanks. i should have double checked before posting!

seancorfield 2024-05-21T18:16:06.841519Z

I upvoted ones that might impact me (and downvoted a couple that would potentially break existing code -- I agree with @souenzzo on those). And saw that I'd already upvoted a couple of them previously so, yeah, love to see those considered ๐Ÿ™‚

2024-05-21T18:17:24.293649Z

I didn't realize folks could downvote, I don't think I have that privilege

2024-05-21T18:19:11.423449Z

I've been bitten by the keyword/symbol one before but maybe that ship has sailed (there's a test in core for halt-when that fails if this is changed). The unreadable symbols one feels the same as enforcing :require in ns forms to me. It's buggy undocumented behavior and it shouldn't have been allowed to begin with.

seancorfield 2024-05-21T18:31:44.313169Z

There have been attempts to tighten up keyword reading in the past but they have turned up much more widespread usage of "invalid" keyword literals than expected... so I'm very wary of making that an error.

seancorfield 2024-05-21T18:34:47.320039Z

As for (sym x y) being a lookup that returns y, is that actually undefined behavior? It seems the behavior is very well defined and, as you say, has at least one core test that depends on it -- plus you may find it is depended on in the wild too. The code behind that lookup explicitly returns nil (or the not found value) when the first argument is not a lookup type...

Alex Miller (Clojure team) 2024-05-21T18:35:46.174609Z

> Is it possible to make varargs faster? Is it possible to make them as fast as unrolled code? we've done some poking on this and think the answer is maybe - going to dig in more on next release

๐Ÿคจ 1
๐ŸŽ‰ 1
2024-05-21T18:37:15.205499Z

Yeah, I won't defend the ilookup one. The error is annoying (and in a different world where it's enforced from the start, no one would bat an eye), but you are correct that it's consistent with the rest of the language and it's too great a change to make now

2024-05-21T18:40:35.143079Z

I think syntax errors should be errors and bugs in what determines what is a syntax error shouldn't be left alone merely because they made it past code review. That people rely on :1 or :foo/bar/baz is unfortunate but outside the purview of bug fixes; it's not just undefined, it's explicitly stated as not allowed by all documentation.

seancorfield 2024-05-21T18:41:42.231719Z

Trying to make :1 an error was what broke several widely-used libraries as I recall...

Ben Sless 2024-05-21T18:42:26.297169Z

Re: varargs, any solution that will involve allocation on call (all rest args allocate an ArraySeq, no?) will always be slower than unrolled code Maybe it would be possible using a multiple arity definline (not hard, I think I have on in clj-fast), then a recursive definition would naturally expand to the unrolled version

seancorfield 2024-05-21T18:42:41.233549Z

(It was done in an alpha and reverted in the next alpha, several releases back)

Ben Sless 2024-05-21T18:43:53.548949Z

this would also not violate the model of compilation unit being a single form