Fork me on GitHub
#clojure-dev
<
2024-05-21
>
Noah Bogart14:05:27

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)15:05:40

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

Noah Bogart15:05:51

damn, okay lol

Alex Miller (Clojure team)15:05:56

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

👍 1
Noah Bogart15:05:10

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

Alex Miller (Clojure team)15:05:07

insert "there are dozens of us" meme

😂 3
Alex Miller (Clojure team)15:05:12

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

Noah Bogart15:05:35

sure, thank you

Alex Miller (Clojure team)15:05:06

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)15:05:07

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)16:05:52

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)16:05:13

I added some of the others to the 1.13 list

😍 1
Noah Bogart16:05:29

thank you, that's very kind of you

souenzzo17:05:10

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-intuitivehttps://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 Sless17:05:15

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.

Noah Bogart18:05:01

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

seancorfield18:05:06

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

Noah Bogart18:05:24

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

Noah Bogart18:05:11

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.

seancorfield18:05:44

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.

seancorfield18:05:47

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)18:05:46

> 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
Noah Bogart18:05:15

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

Noah Bogart18:05:35

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.

seancorfield18:05:42

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

Ben Sless18:05:26

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

seancorfield18:05:41

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

Ben Sless18:05:53

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