Hey, I'm sorry to be a nuisance, but https://clojure.atlassian.net/jira/software/c/projects/CLJ/issues/CLJ-2786 really keeps biting me over and over. It came up today again – after roundtripping a large data structure (a list of DB rows) through either Nippy or EDN, every tuple occupies 240b more memory. And because so many things rely on transients these days, you pay the 240b tax every time you use:
• mapv
• into []
• and many others
Is there a good reason to keep the fix on the backburner? The proposed fix is independent of the proposal to explore other solutions, one doesn't prevent the other.
ticket looked familiar, just realised that your patch might fix https://clojure.atlassian.net/browse/CLJ-2594 ?
Yes indeed. It's also funny that we arrived at the exact same fix
I know that it is always more desirable to have such things in the official Clojure distribution, but out of curiosity, how seriously have you considered using a locally patched version with the enhancement?
I did consider it. If I were running a substantial public Clojure-but-faster fork, I would definitely include this fix there; but it doesn't feel worth it just for this alone. It would also be much easier if this could be monkey-patched on the Clojure side somehow; but since this is Java stuff with classes that are internal and non-public, it's just too much noise and clunk to ship the fully reimplemented transients together with a application/library.